BERT、RoBERTa已经在文本语义相似度任务(semantic textual similarity ,STS)上达到了sota。然而,BERT要求句子对拼接到一起再传入模型中,这会导致巨大的计算开销——例如,在10000条句子中寻找最相似的两条,则需要约5*10^7次计算,如果使用BERT,则需要约65小时,这导致许多涉及篇章向量的任务,如相似度计算、聚类等无从开展。

基于此,我们提出了sentence-BERT(SBERT),它使用基于预训练过的BERT的孪生网络,获得在语义上有足够意义的篇章向量。该方法在保持BERT的效果的同时,可以将计算时间从65小时降低到约5秒。

  • 论文地址:https://arxiv.org/abs/1908.10084
  • 代码地址:https://github.com/UKPLab/sentence-transformers

介绍和相关工作

面对BERT在线上部署时的计算开销问题,Humeau et al. (2019)提出过一种解决方案(即poly-encoder),该方法利用Attention机制计算m个上下文向量,然后再计算它们和预先计算好的候选embedding之间的得分。然而poly-encoder也存在不足——首先,它的打分函数并不对称;其次,它的计算开销对于聚类这样的任务而言还是太大(O(N^2))。

模型

总的来说,作者在模型方面采取了以下几种新的尝试:

  • 得到定长Embedding的不同方式:

    1. 直接取[CLS];
    2. 对得到的每个Embedding取mean-pooling;
    3. 对得到的每个Embedding取max-pooling。
  • 针对不同的任务,建立了三种不同的目标函数:

(1)Classification Objective Function

如图1左侧所示,我们分别获得两句话的句子向量 u 和 v ,并将 u  、v 和二者按位求差向量   进行拼接,再将拼接好的向量乘上一个可训练的权重   :

其中,   为句子向量维度,   为类别数。

                                                                                                        图1

(2)Regression Objective Function

如图1右侧所示,目标函数是MSE-loss,直接对两句话的句子向量 计算余弦相似度,然后计算。

(3)Triplet Objective Function

在这个目标函数下,将模型框架进行修改,将原来的两个输入,变成三个句子输入。给定一个锚定句 a ,一个肯定句 p和一个否定句 n ,模型通过使 p和a 的距离小于 n和a 的距离,来优化模型。使其目标函数o最小,即:

其中|| · ||代表的是两个样本的距离,本文采用的是欧氏距离,而S_a、S_p、S_n均为对应样本的sentence-Embedding。实验时,作者将超参数epsilon设为1.

实验结果

实验一

                                                                                                        图2

如图2,以上为各个方法将输入句子转为sentence-vector后计算相似度,再计算相似度和实际结果之间的斯皮尔曼系数(结果乘以100)。从图中可见,SBERT的效果优于直接输入BERT。

实验二 迁移实验

如图3,本实验选取了新的数据集Argument Facet Similarity (AFS)(Misra et al.)。该数据集主要包含三个话题的数据,因而可以进行话题迁移性测试。具体的测试方式为——使用任意三个话题中的两个作为训练集,剩下的一个作为测试集,对语义相似度进行试验。最终结果表明,sentence-BERT的迁移性较差。由于传统的BERT的cross-encoder做法,可以直接在两个句子上做Attention,而SBERT不行,他要先将一个未知topic的句子映射到向量空间才能做比较。作者认为可能需要更多的训练以满足“迁移”的性能。

                                                                                                        图3

实验三 消融实验

                                                                                                        图4

如图4所示,本实验检测了不同pooling方法和不同特征concat手段对结果的影响。最终发现,特征concat方式对结果有较大的影响,而pooling方法影响不大。特别的是,加上u*v这个特征后,效果反而会有所下降。

实验四 计算开销试验

                                                                                                        图5

如图5所示,该实验衡量了不同的句子Embedding生成方法的速度。从图中可以看出,在CPU上运行时,InferSent的速度比SBERT大约快65%;但切换到可并行的GPU后,transformer可并行的优势就显现出来,当SBERT采用聪明的batch size时,它的速度比InferSent快~9%。

总结

总的来说,本文是一篇BERT工程实践方面的论文。本文所提到的sentence-BERT的方法,可以快速生成大量无限复用的效果不错的sentence Embedding,得以进行聚类、相似度计算等任务。它的存在,可以让BERT在生产环境中的使用得以实现。

Sentence-BERT 论文阅读相关推荐

  1. BERT论文阅读(一): Pre-training of Deep Bidirectional Transformers for Language Understanding

    BERT三大核心: pre-training bidirectional==>alleviates the unidirectionality constriant of fine-tuning ...

  2. Google BERT 论文阅读

    BERT: Bidirectional Encoder Representations from Transformers. 摘要 论文引入了一种称为BERT的语言表征新模型,它支持transform ...

  3. bert 论文阅读笔记

    论文:https://arxiv.org/pdf/1810.04805.pdf 1.每个序列的第一个标签为[CLS].句子中间用[SEP]来分割 用A.B 来表示前后两个句子 Masked LM(Ma ...

  4. BERT论文阅读(二): CG-BERT:Conditional Text Generation with BERT for Generalized Few-shot Intent Detection

    目录 The proposed method Input Representation The Encoder The Decoder fine-tuning discriminate a joint ...

  5. 谷歌AI论文BERT双向编码器表征模型:机器阅读理解NLP基准11种最优(公号回复“谷歌BERT论文”下载彩标PDF论文)

    谷歌AI论文BERT双向编码器表征模型:机器阅读理解NLP基准11种最优(公号回复"谷歌BERT论文"下载彩标PDF论文) 原创: 秦陇纪 数据简化DataSimp 今天 数据简化 ...

  6. 《论文阅读》RoBERTa: A Robustly Optimized BERT Pretraining Approach

    <论文阅读>RoBERTa: A Robustly Optimized BERT Pretraining Approach 简介 想法来源 数据集的选择 创新点 总结 期刊:arxiv 2 ...

  7. 【论文阅读翻译】A STRUCTURED SELF - ATTENTIVE SENTENCE EMBEDDING

    [论文阅读翻译]A STRUCTURED SELF - ATTENTIVE SENTENCE EMBEDDING Abstruct 1. Introducion 2. Approach 2.1 Mod ...

  8. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](7)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](7) Into the Weeds Other types of grap ...

  9. Learning Span-Level Interactions for Aspect Sentiment Triplet Extraction 论文阅读 ACL2021

    目录 摘要 针对问题: 解决方法: 2 Span-based ASTE 2.1 Task Formulation 2.2 Model Architecture 2.2.1 Sentence Encod ...

  10. [论文阅读笔记53]2021深度神经方法的关系三元组抽取综述

    1. 题目 Deep Neural Approaches to Relation Triplets Extraction: A Comprehensive Survey Tapas Nayak†, N ...

最新文章

  1. 3-runtime 之 Tagged Pointer
  2. oracle-ords
  3. php session 回收,关于php session gc回收的问题
  4. Leetcode题库 125.验证回文串(双指针 C实现)
  5. zune linux_快速提示:在出售Zune HD之前,先擦除所有内容
  6. 在VS2015中使用SDL2.0
  7. MySQL高可用性分析
  8. 【月径流预测】基于matlab人工生态系统算法优化BP神经网络月径流预测【含Matlab源码 2000期】
  9. 数据结构实验5-递归
  10. java 高级工程师要求
  11. AWVS12-Windows
  12. 【VUE】vue安装教程
  13. 均匀裁剪图片(3000X3000到1000X1000)
  14. python输入名字配对情侣网名_输入名字自动取情侣网名,输入名字自动取网名
  15. 【铁矿石期货怎么开通】11月22日午盘基本面资讯整理
  16. 海康威视工业相机MAC地址
  17. Python Windows发出警报声、蜂鸣器、声音报警
  18. 网页跳转(APP内/浏览器)
  19. javaScript数组操作--有道笔记整理
  20. 【Java】AWT和Swing概述

热门文章

  1. 游戏素材怎么找?1 分钟教你获取一套漂亮的游戏素材!
  2. JAVA常用jar包简介
  3. 畅捷通t6选择服务器信息,用友软件t6服务器地址
  4. 送人玫瑰手留余香——分享快乐、快乐分享
  5. 【MySQL操作练习】
  6. python 处理soap-post方法
  7. 数据中心的直流电源与交流电源
  8. 嵌入式应用市场四大热点及趋势
  9. 实验四 基于原型的软件需求获取
  10. 到底什么是ERP系统