
:背景介绍
BERT和RoBERTa在句子对的回归任务如文本语义相似度方面取得了SOTA成果。但是,它们都需要同时向网络中馈入两个句子,这将导致巨大的计算开销:从一万个句子中找出最相似的句子对大约需要5000万(C100002=49,995,000)次推理计算,在V100GPU上大约需要65个小时。这种结构使得BERT不适合语义相似性搜索和无监督的任务(如聚类)。
在对BERT网络进行改进的基础上,提出了一种情感-Bert (S Bert)网络结构。这种网络结构利用孪生网络和三元网络结构生成语义句子嵌入向量,语义相似的句子有比较接近的嵌入向量,可以用来计算相似度(余弦相似度、曼哈顿距离、欧式距离)。网络结构是寻找最相似的句子对,从上面的65小时大幅缩减到5秒(余弦相似度约为0.01s),准确率可以保持不变。这样,SBERT可以完成一些新的特定任务,如相似性比较、聚类和基于语义的信息检索。
二、型号介绍
1)联营战略
s在SBERT/Roberta的输出结果上增加了一个pooling运算,从而生成一个固定大小的句子嵌入向量。在实验中,采用了三种池策略进行比较:
整个句子的向量表示由直接CLS位置的输出向量来表示。
均值策略,计算每个标记输出向量的平均值来表示句子向量
MAX策略,取所有输出向量各维度的最大值来表示句子向量。
三种策略的实验对比效果如下:
可以看出,均值策略是三种策略中最好的,所以在后面的实验中默认采用均值策略。
2)模型结构
为了微调BERT/RoBERTa,使用twin网络和triplet网络更新权重参数,使生成的句子向量具有语义意义。网络结构取决于具体的训练数据。在本文中,测试了以下结构和目标函数:
分类目标函数:
这里,嵌入向量U和V以及它们之间的差向量被拼接在一起形成新的向量,该向量乘以权重参数WtR3n*k,其中n表示向量的维数,k是分类标签的数目。
交叉熵损失函数用于优化。
回归目标函数:
两个句子嵌入向量U和V的相似度计算结构如下:
MAE(均方误差)损失作为优化的目标函数。
三元目标函数:
给定一个主句A、一个肯定句P和一个否定句N,三重损失调整网络,使得A和P之间的距离小于A和N之间的距离。数学上,我们最小化以下损失函数:
句子嵌入向量表示S,P,N,||||表示距离,边缘参数表示sp与sa的距离至少比sn的距离近。
3)模型训练
在本文中,训练结合了SNLI(斯坦福自然语言感染)和多体裁NLI数据集。SNLI有57万个人工标注的句子对,标签分为矛盾、隐含、中立三种。MultiNLI是SNLI的升级版,具有相同的格式和标签。有43万对句子,主要是一系列口语和书面语。文本含义描述了两个文本之间的推理关系,其中一个是前提,另一个是假设。如果假设H可以从前提P推出,那么P隐含H,写成P-H,参考例子如下:
实验中,每个epoch作者使用3路softmax分类目标函数微调SBERT,batch_size=16,Adam优化器,学习速率=2e-5,池化策略均值。
三、评估-语义文本相似性-STS
在评价中,余弦相似度用于比较两个句子向量的相似度。
1)无人监管的STS
这项评估使用了2012年至2016年的STS任务数据、STS基准数据(2017年建立)和疾病相关性数据。这些数据集都是标有label的句子对,label表示句子之间的关系,范围从0到5。例子如下:
无监督评价不使用这些数据集中的任何训练数据,而是直接使用上述训练好的模型计算句子间的相似度,然后用Spielman秩相关系数来衡量模型的好坏。结果如下:
结果表明,直接使用BERT 的输出结果相当差,甚至不如直接计算手套嵌入向量的平均值。本文使用的twin网络在NLI数据集上微调后模型效果要好得多,SBERT和SRoBERTa差别不大。
2)受监督的STS
监督STS数据集采用STS benchmark(简称STSb)数据集,如上所述是2017年提取并构建的。它是目前流行的有监督的STS数据集。主要来自三个方面:字幕、新闻、论坛。它包含8,628个句子对,5,749个训练集,1,500个验证集和1,379个测试集。将BERT对同时输入网络,最后取一个简单的回归模型作为输出。目前,在这个数据集上已经实现了SOTA效应。
以上实验结果分为三部分:
未针对STS进行训练:表示直接采用与上述无监督评价相同的模型,结果相同;
在STS基准上训练:表示不使用NLI数据集,回归模型微调;通过使用双网络结构直接建立在STSb训练数据集上;
在NLI数据STS基准上训练:是指在NLI数据集上用孪生网络训练分类模型学习句子向量表示,然后在STSb训练集上用回归模型再次学习句子嵌入,相当于用两个数据集微调两次。
评估时,使用STSb的测试集进行评估。可以看出最后一种训练方式表现最好,尤其是简单的BERT架构有很大的提升。
四、评估-SentEval
SentEval是一个流行的评估句子嵌入质量的工具。这里,句子嵌入可以作为逻辑回归模型的特征,从而构建分类器并计算其在测试集上的准确率。这里,SentEval工具用于在以下迁移任务上比较SBERT与其他生成句子嵌入的方法:
MR(影评):影评片段的情感预测,两类
CR(产品评论):对顾客产品评论的情感预测,分两类
SUBJ(主观状态):影评和剧情总结中对句子的主观预测,两类。
MPQA(观点极性):来自新闻联播的短语级观点极性分类,第二分类。
SST(斯坦福情感分析):斯坦福情感树数据库,两类
TREC(题型分类):来自trec的细粒度题型分类,多分类。
Mrpc:微软研究院释义语料库来自平行新闻源,释义检测。
实验结果表明,SBERT生成的句子向量似乎能够很好地捕捉情感信息,在MR、CR和SST上都有很大的提高;伯特的性能在以前的STS数据集上很差,但在SentEval上有很好的性能。这是因为句子向量在STS数据集上是用余弦相似度来衡量的,余弦相似度对于向量的每个维度都是一样的。但是SentEval是用logistic回归分类器评估的,所以有些维度会影响最终的分类结果。
因此,伯特的直接输出结果,无论是CLS位置还是平均嵌入,都不适合计算余弦相似度、曼哈顿距离和欧氏距离。虽然BERT在SentEval上表现稍好,但是基于NLI数据集的SBERT仍然达到了SOTA的效果。
五、消融研究
为了研究SBERT不同方面的消融并更好地理解它们的相对重要性,我们在SNLI和多NLI数据集上建立了分类模型,并在STSb数据集上建立了回归模型。在汇集策略中,比较了三种策略,均值、最大值和CLS。在分类目标函数中,比较不同的向量组合。结果如下:
在汇集策略中,均值的效果最好;在向量组合模式下,仅用于分类训练。结果表明,元素方面的|u-v|影响最大。









