论文标题:Dual-View Distilled BERT for Sentence Embedding
论文链接:https://arxiv.org/pdf/2104.08675v1.pdf
来源:SIGIR2021
摘要
近年来,BERT通过单词级交叉句子注意实现句子匹配取得了重大进展。然而,当使用孪生BERT网络推导两个句子嵌入时,性能显著下降,由于两个句子之间没有单词级注意,因此无法捕获全局语义。在本文中,提出了一种双视图提取BERT(DvBERT)。我们的方法处理来自两个不同视图的句子对,即siamese视图和interaction视图。siamese视图是生成句子嵌入的主干。interaction视图将交叉句子交互整合为多名教师,以提高句子嵌入的表示能力。在6个STS任务上的实验表明,该方法显著优于最先进的句子嵌入方法。
本文的主要思想是结合双塔模型和交互式模型的优点,对文本相似度的计算进行改进。
1.介绍
最近的句子表示模型如BERT(Devlin等人,2019年)在句子对回归/分类任务上取得了最先进的结果,如问题回答、自然语言推理(NLI)(Bowman等人,2015;Wilmmas等人,2018年)和语义文本相似性(STS)(Agirre等人,2012、2013、2016、2014、2015年)。然而,当候选句子对没有提前给出时,它的计算效率较低,导致了巨大的计算开销。例如,要寻找一个集合中最相关的句子对,就需要对所有的句子进行配对。O(n^2)计算复杂度是阻碍许多远程检索应用程序采用该技术的一个障碍.
一种减少计算的标准方法是将每个句子分别编码成一个向量表示,然后通过相似性距离比较其中的任何两个。然而,与标准的BERT模型相比,句子匹配的性能受到了限制。
例如,SBERT(2019)使用孪生bert网络,在STS基准上(2017)将性能降低了3-4个点,这意味着存在改进的空间。我们认为孪生网络网络仅限于捕获全局语义匹配的全部复杂性,忽略了两个句子的单词级交互特征。但该特征已被证明对预测匹配度至关重要(Lan和Xu,2018;Xuetal.,2020)。
基于这些观察结果,我们提出了一种双视图蒸馏BERT(DvBERT),通过将单词级交互特征纳入句子嵌入,同时保持与暹罗BERT网络相同的效率。我们从多视图学习中获得灵感(Xu等人,2013;Clark等人,2018),并从两个观点训练句子匹配模型:
- (1)孪生视图,我们从孪生bert网络作为主干,推导句子嵌入,能够通过计算两个固定大小向量上的距离来有效地捕获语义相似性。
- (2)交互视图,利用具有跨句子交互的标准预训练模型,作为多个教师,对提供给孪生网络学习的训练集产生预测。这两种观点之间的关联作为一个正则化术语,从多个教师的输出分布中训练软目标,使过程类似于知识蒸馏(Hintonetal. 2015)。
- 与BERT的其他蒸馏版本相比(Sanh等人,2019;Sun等人,2019),本文方法旨在优化句子嵌入表示,以及多任务知识蒸馏(Liu等人,2019),两者都没有将大型模型提炼成小模型(查特吉,2019;Huang等人,2019),或born-again网络(Furlanello等人,2018;Clark等人,2019)。
- 此外,还比较了蒸馏过程中的损失加权和教师退火策略(Clarketal.,2019),表明蒸馏过程中效率更高。实验表明,DvBERT在6个STS数据集上具有比孪生bert网络更好的性能。
2.双视图蒸馏BERT
首先介绍了DvBERT,并描述了如何将这些视图与多任务知识蒸馏相结合
基于上面的cross sentence模型,结合Siamese BERT模型进行训练,最后共同优化预测得到的值Y。最后如果要用句向量的话就直接用Siamese结构的输出
2.1 Siamese BERT-networks
对于给定的数据集D_l,孪生网络网络旨在通过利用句子嵌入之间的相似性度量来预测标签y∈Y,其中自然语言推理中的Y={隐含、矛盾、中性}。对于任何句子对,孪生BERT将这两个句子分别转换为连续向量,然后将这两个向量池化为两个句子嵌入u和v。SBERT(Reimers和Gurevych,2019)比较了来自多个数据集的不同池化策略,结果是MEAN策略
明显优于MAX
和[CLS]标记策略
。下面,MEAN池是本文的默认配置。对于分类任务,如NLI
,我们将u
、v
和|u−v|
连接,然后连接一个全连接层,将隐藏大小投影到概率分布中。
其中θ表示来自BERT的所有可学习参数,为u,v共享。而W∈R^(3d×n)是全连接层的参数。d是句子嵌入的维数。我们优化了标准的交叉熵损失。
Siamese BERT是普通的双塔结构,通常会把两句话分别输入到两个模型中。两个模型可以选择共享参数,也可以不共享。通过MEAN的方式的得到每个句子的向量之后,过一层SoftMax,得到每个类别的概率。
2.2 Cross Sentence Interaction
使用来自不同预先训练模型的多个教师来引入跨单词的交互矩阵,以丰富单词级的交互特征。
每个模型首先用标记的数据进行预训练,然后重新标记数据,并将其添加到一个新的训练集中。
具体来说,如图1(top)所示,将句子对Q={Qi}i=1,...,m
和T={Ti}i=1,...,N
连接到一个文本序列[[CLS]Q[SEP]T[SEP]]
中。[CLS]
标记被认为是输入句子对的一个聚合语义间隙,因为它被用来预测在预训练过程中一个句子对是否连贯。
先训练两个cross sentence交互式文本分类模型,作为Teacher。
假设zck是第k个预训练模型的[CLS]
标记,它后面跟着一个全连接层,最终以一个softmax层作为分类器
其中φk和O∈Rd×n为模型参数。孪生BERT从硬目标学习,从老师的软目标学习。假设φk和O是通过交叉熵损失进行了优化,DvBERT通过最小化来训练孪生BERT
在训练学生时固定老师预测器q(y|zck;φ)。
2.3 Teacher Annealing
我们利用教师退火策略(Clarketal.,2019),该策略将教师的预测与黄金标签(真实标签)混合在一起。随着训练的进行,教师的退火逐渐减少了软目标的重量,使学生从教师学习到硬目标。该方法确保学生在训练早期得到丰富的训练信号,而不仅仅限于模拟老师。具体来说,总结孪生BERT和其他与K BERT相关的具有交叉句子注意的预训练模型,目标可以写成:
其中λ从0到1呈线性增加。一开始,λ=0,这意味着该模型完全基于教师的软目标进行训练。随着模型的逐渐收敛,模型从硬目标中学习。
3. 实验
在本节中,将介绍对NLI和STS数据集的处理方法。.
3.1 数据集
NLI数据集由SNLI(Bowman等人,2015)和MultiNLI(Williams等人,2018)组成,标注了标签矛盾、隐含和中性。STS(Agirreetal.,2012)评估了两个句子在语义上彼此等价的匹配程度,并为人类注释了从1到5的等价水平。我循之前的工作(Conneau等人,2017;Cer等人,2018),将两个NLI数据中的训练和测试数据集合并为940k句子对的训练前数据集。STS2012-2016数据集没有训练数据,只有26k个测试数据,因此这些数据集用于评估NLI上预训练的DvBERT。STS-B是一个包含8.6k个句子对的集合,包含来自异构来源的训练、开发和测试集。
3.2 训练和评估设置
在NLI数据集上使用一个3-way softmax对DvBERT进行了一次预训练。 batch size 设置为16,所有模块的dropout rate 设置为0.1。使用Adam optimizer 训练。将初始学习率设置为2e-5,衰减比为1.0,是一个超过10%的线性学习率预热。对于fune-tuning STS-B,将之前公式中的(u,v,|u−v|)
替换为余弦(u,v)
,并将距离度量
设置为均方误差损失
,用于回归训练。epoch被设置为4,其他超参数与NLI任务设置保持相同。基本上保持超参数与SBERT保持一致。两位默认教师分别是标准的BERT和RoBERTa。此外,还通过将 孪生BERT替换为RoBERTa来评估DvRoBERTa的性能。
3.3 无监督STS
使用STS2012-2016和STS-B的测试数据,在没有任何特定任务的训练数据的情况下评估性能。使用句子嵌入的余弦相似性和黄金标签之间的斯皮尔曼相关性。结果报告见表1。前两行显示,没有在NLI上进行训练的BERT被MEAN或[CLS]标记汇集的性能相当差。特别是对于[CLS]标记,由于它主要是用来区分段对,是否具有连贯性,因此单句表示存在差异。在6个STS数据集上评估了我们的方法与SBERT(SRoBERTa)的比较。可以观察到,在NLI上进行预训练的模型比那些没有提高了很大的边际。双视图方法显著影响了两个预训练模型的性能,获得了0.56%-1.9%
的平均改进
3.4 Fine-tuning STS-B
由于STS-B是一项回归任务,本文采用余弦相似度
后跟均方差损失
来取代NLI分类任务中的全连通层和交叉熵损失。这个实验被分为三个部分
- 标准BERT/RoBERTa在NLI上进行训练,然后在STS-B上进行微调
- DvBERT只在STSb上训练
- DvBERT首先为所有教师和学生在NLI上训练,然后在STS-B上进行训练
表2给出了十次运行后的平均斯皮尔曼相关性及其标准误差
前两行是标准的BERT和RoBERTa模型,它们被用作本文的教师模型,以捕捉单词级的注意,并显著获得最好的结果。可以观察到,NLI的预训练持续提高了所示模型的性能,因为NLI提高了模型的语言理解。结果表明,DvBERT可以提高泛化能力
3.5 双面蒸馏的效果
为了观察双视图方法是如何从NLI训练集推广到STS集,本文绘制了SRoBERTa 与 DvRoBERTa
的斯皮尔曼相关性,每1000步计算一次。基本模型配置为12层、12个自注意头,隐藏层大小为768,而大模型设置为24层、16个自注意头,隐藏层大小为1024。
在图2中,可以看到,基础模型和大型模型都提高了泛化的能力。我们发现,由于教师模型较大,具有双视图的大模型比基础模型有更多的好处。值得注意的是,DvRoBERTa在早期阶段的表现相对较差,因为学生主要从教师那里学习,而教师对软目标的loss给予了更高的权重。
3.6 教师退火的影响
为了验证教师退火策略对DvBERT的效果,我们展示了教师退火与损失加权策略的对比图。损失加权策略通过加权总和结合了硬目标和软目标的损失。超参数α从0到1,它对软目标的损失进行优化。
如图3所示,左侧11个误差条显示了DvRoBERTa-base
与不同α的余弦斯皮尔曼相关性。使用没有教师退火的纯硬目标(即α=0)的性能并不比加权蒸馏好。它进一步说明了来自句子对的双视图可以提高孪生BERT的单一视图。另一方面,教师退火策略(右条)比损失加权策略显示出更好的相关性。
4.结论
本文提出了一种增强句子嵌入的双视图方法来进行匹配,它采用两种异构网络来适应两种视图。具体来说,它允许孪生bert网络有效地利用跨句子交互模型,同时保持在检索任务中使用句子嵌入的效率。在6个STS数据集上的实验表明,本文提出的模型取得了一致的增益,并优于孪生bert网络的性能。