导语
本文介绍了一种使用两次dropout作为对比学习正样例的句子向量的方法,这种方法简单有效。
- 会议:EMNLP 2021
- 链接:aclanthology.org/2021.emnlp-…
1 简介
本文介绍了一种简单的对比学习方法,称为SimCSE,用于生成句子嵌入。该方法使用预训练语言模型,如BERT或RoBERTa,可以从无标签或有标签的数据中生成出色的句子嵌入。作者首先介绍了学习通用句子嵌入的重要性,然后提出了SimCSE框架的两个版本,分别是无监督的和有监督的。无监督版本的SimCSE仅通过预测输入句子本身来生成嵌入,而有监督版本则使用自然语言推理数据集中的注释句子对来进行对比学习。实验结果表明,SimCSE的性能优于以前的训练目标,并且在各种任务上都取得了显著的性能提升。
2 背景:对比学习
对比学习旨在通过将语义上接近的邻居聚在一起并将非邻居推开来学习有效的表示。它假设存在一组配对示例D = {(xi, xi+)},其中xi和xi+语义相关。
在构建(xi,xi+)对方面,正例的选择非常重要。在视觉表示中,一个有效的解决方案是将同一图像的两个随机变换(例如裁剪、翻转、畸变和旋转)作为xi和xi+。最近,类似的方法已被应用于语言表示中,通过应用单词删除、重排和替换等增强技术。但是,由于NLP的数据增强是离散的,所以它的本质上是困难的。作者发现,在NLP中,简单地使用标准的dropout方法对中间表示进行数据增强的效果优于使用离散操作符。
最近,Wang和Isola(2020)确定了对比学习相关的两个关键属性Alignment 和 uniformity,并提出使用它们来衡量表示的质量。Alignment度量正例实例的嵌入之间的期望距离(假设表示已经归一化),而uniformity度量嵌入的均匀分布程度。这两个指标与对比学习的目标是一致的:正实例应该保持接近,随机实例的嵌入应分散在超球面上。
3 无监督的SimCSE
本章介绍了无监督的SimCSE方法,它的核心思想是采用相同的句子作为正样本对,通过使用独立采样的dropout masks来实现对相同正样本的处理。在标准的Transformer训练中,有dropout masks放置在全连接层和注意力概率上(默认p = 0.1)。使用随机的dropout masks z,作者将相同的输入两次馈送到编码器中,得到具有不同dropout masks z和z’的两个嵌入,并使用公式(4)进行训练。
该方法将dropout noise视为数据增强的一种最小形式,正样本对完全采用相同的句子,仅在dropout masks方面存在差异。与其他训练目标进行比较,发现即使只删除一个单词,其他离散的增强技术也无法超过dropout noise。同时,将这种自我预测的训练目标与下一句预测目标进行比较,发现SimCSE比后者表现更好,而且使用一个编码器而不是两个编码器对我们的方法有显著的影响。
为进一步理解dropout noise在无监督SimCSE中的作用,表3中尝试了不同的dropout率,并发现所有变体都不如Transformer默认的dropout概率p = 0.1表现好。作者发现两种极端情况尤其有趣:“没有dropout”(p = 0)和“固定0.1”(使用默认的dropout p = 0.1,但是对于正样本对使用相同的dropout masks)。在这两种情况下,正样本对的嵌入结果完全相同,导致性能严重降低。通过在训练过程中每隔10步采集模型的检查点,在图2中可视化了对齐和均匀性指标,同时还有一个简单的数据增强模型“删除一个单词”。
可以清楚地看到,从预训练检查点开始,所有模型都极大地提高了均匀性。然而,两种特殊变体的对齐度也大幅下降,而我们的无监督SimCSE则由于使用dropout noise而保持稳定的对齐度。这也证明了从预训练检查点开始是至关重要的,因为它提供了良好的初始对齐。最后,“删除一个单词”提高了对齐度,但在均匀性指标方面获得了较小的增益,并最终不如无监督SimCSE表现好。
4 有监督SimCSE
之前的工作表明,监督的自然语言推理数据集是学习句子嵌入的有效数据,因此作者利用这些数据集中的正样本构建 (xi, xi+) 对,并使用这些对来优化对比学习框架中的公式。作者尝试了几个不同的数据集,最终选择了来自 SNLI 和 MNLI 数据集的蕴含对作为正样本对。
此外,作者还将这些数据集中的矛盾对用作难样本,并通过添加难样本来进一步提高模型性能。最终实验结果表明,添加难样本可以提高模型的性能,而使用双编码器框架则会降低性能。
5 各向异性问题
以前的研究发现,由于词向量占用了向量空间中的一个狭窄区域,从而极大地限制了其表现能力。一些解决该问题的方法包括在训练过程中加入正则化项或后处理技术来使词向量具有更均匀的分布。本文作者通过理论分析和实验研究发现,对比学习方法也能够缓解各向异性问题,优化对比学习目标能够使语言表示更加各向同性和均匀。具体地,作者利用奇异值分解的角度,证明对比学习可以“平扁”句子表示的奇异值分布,从而使表示更加各向同性。与只强调鼓励各向同性的后处理方法不同,对比学习方法还通过优化对比学习目标,对齐正例对,从而提高了模型的性能。
6 实验
作者主要在7个STS数据集上进行实验,实验结果如下:
同时作者进行了消融实验:
7 分析
作者使用了一些实验来更好地理解SimCSE的性能表现。首先,作者分析了不同的句子嵌入模型的一致性和对齐性,并发现具有更好的对齐性和一致性的模型表现更好。作者进一步观察到,预训练的嵌入具有良好的对齐性,但一致性很差(即嵌入高度各向异性);后处理方法(如BERT-flow和BERT-whitening)可以显著提高一致性,但也会降低对齐性;而无监督的SimCSE可以有效地提高预训练嵌入的一致性,并保持良好的对齐性;在SimCSE中加入有监督数据可以进一步改善对齐性。
此外,作者还进行了一个小规模的检索实验,比较了SBERT和SimCSE-BERT在Flickr30k数据集上的表现。实验结果表明,SimCSE检索出的句子质量更高。
8 相关工作
略
9 总结
本文提出了一个简单的对比学习框架SimCSE,它极大地提高了语义文本相似任务中最先进的句子嵌入。作者提出了一种无监督的方法来预测输入句子本身的dropout噪声和一种利用NLI数据集的监督方法。通过分析SimCSE与其他基线模型的一致性,作者进一步证明了该方法的内部工作原理。作者相信,对比目标,特别是无监督目标,可能在NLP中有更广泛的应用。它为文本输入的数据增强提供了一个新的视角,可以扩展到其他连续表示,并集成到语言模型预训练中。