【对比学习论文】SimCSE:句子嵌入的简单对比学习

摘要

  • 本文介绍了SimCSE,一个简单的对比学习框架,极大地推进了最先进的句子嵌入。我们首先描述了一种无监督方法,该方法采用一个输入句子,并在一个对比目标中预测自己,仅使用标准dropout作为噪声。这个简单的方法出乎意料地有效,表现与之前有监督的方法相当。我们发现,dropout作为最小的数据增强,删除它会导致表示崩溃。然后,我们提出了一种监督方法,通过使用“蕴涵”对作为积极的,“矛盾”对作为硬否定的,将来自自然语言推断数据集的注释对合并到我们的对比学习框架中。我们在标准语义文本相似性(STS)任务上评估SimCSE,使用BERTbase的无监督和有监督模型分别实现了平均76.3%和81.6%的斯皮尔曼相关性,与之前的最佳结果相比提高了4.2%和2.2%。我们还从理论上和经验上表明,对比学习目标将预训练的嵌入的各向异性空间正则化,使其更加均匀,并且当有监督信号可用时,它可以更好地对齐正对

引言

  • 学习通用句子嵌入是自然语言处理中的一个基本问题,在文献中得到了广泛的研究(Kiros et al, 2015;希尔等人,2016;Conneau等人,2017;Logeswaran和Lee, 2018;Cer等人,2018;Reimers和Gurevych, 2019)。在这项工作中,我们提出了最先进的句子嵌入方法,并证明当与BERT (Devlin等人,2019)或RoBERTa (Liu等人,2019)等预训练的语言模型结合使用时,对比目标可以非常有效。我们提出了SimCSE,一个简单的对比句子嵌入框架,它可以从未标记或标记的数据中产生更好的句子嵌入。
  • 我们的无监督SimCSE只是预测输入句子本身,只使用dropout (Srivastava et al, 2014)作为噪声(图1(a))。换句话说,我们将相同的句子传递给预训练的编码器两次:通过两次应用标准dropout,我们可以获得两个不同的嵌入作为“正对”。然后我们将同一小批量中的其他句子作为“否定”,模型将在否定中预测积极的句子。虽然它看起来非常简单,但这种方法在预测下一个句子(Logeswaran和Lee, 2018)和离散数据增强(例如,单词删除和替换)等训练目标方面表现出色,甚至与以前的监督方法相匹配。通过仔细分析,我们发现dropout作为隐藏表示的最小“数据增强”,而删除它会导致表示崩溃。我们还将其与其他标记的句子对数据集进行比较并发现NLI数据集对于学习句子嵌入特别有效。
  • 为了更好地理解SimCSE的强大性能,我们借用了Wang和Isola(2020)的分析工具,该工具采用语义相关的正对对之间的对齐和整个表示空间的均匀性来衡量学习嵌入的质量。通过实证分析,我们发现我们的无监督SimCSE本质上提高了均匀性,同时避免了通过dropout噪声退化对齐,从而提高了表示的表现力。同样的分析表明,NLI训练信号可以进一步改善正对之间的对齐,并产生更好的句子嵌入。我们还将其与最近的研究结果联系起来,即预训练词嵌入受到各向异性的影响(Ethayarajh, 2019;Li et al, 2020),并通过频谱视角证明了对比学习目标“扁平化”了句子嵌入空间的奇异值分布,从而提高了一致性。
  • 我们在七个标准语义文本相似性(STS)任务上对SimCSE进行了综合评估(Agirre et al, 2012, 2013, 2014, 2015, 2016;Cer等人,2017;Marelli等人,2014)和七个转移任务(Conneau和Kiela, 2018)。在STS任务中,我们的无监督和有监督模型使用BERTbase分别实现了76.3%和81.6%的平均斯皮尔曼相关性,与之前的最佳结果相比提高了4.2%和2.2%。我们在转让任务上也取得了有竞争力的表现。最后,我们在文献中发现了一个不连贯的评价问题,并巩固了不同设置的结果,以供将来评价句子嵌入的工作。

背景:对比学习

  • 对比学习的目的是通过将语义上接近的邻居拉到一起并将非邻居分开来学习有效的表示(Hadsell et al, 2006)。它假设有一组配对的例子 D = { ( x i , x i + ) } i = 1 m D = \{(x_i, x_i^+)\}^m_{i=1} D={(xi,xi+)}i=1m,其中 x i x_i xi x i + x^+_i xi+在语义上是相关的。我们遵循Chen等人(2020)的对比框架,并采用批内阴性的交叉熵目标(Chen等人,2017;Henderson et al, 2017):设 h i h_i hi h i + h^+_i hi+表示 x i x_i xi x i + x^+_i xi+的表示, ( x i , x i + ) (x_i, x^+_i) (xi,xi+)的训练目标为:在这里插入图片描述
  • 其中 τ τ τ为温度超参数, s i m ( h 1 , h 2 ) sim(h_1, h_2) sim(h1,h2)为余弦相似度。在这项工作中,我们使用预先训练好的语言模型(如BERT (Devlin et al, 2019)或RoBERTa (Liu et al, 2019): h = f θ ( x ) h = f_θ(x) h=fθ(x)对输入句子进行编码,然后使用对比学习目标(Eq. 1)对所有参数进行微调。
  • 积极的实例。在视觉表示中,有效的解决方案是对同一图像进行两次随机变换(例如,裁剪、翻转、扭曲和旋转)作为xi和x+i (Dosovitskiy et al, 2014)。最近在语言表示中也采用了类似的方法(Wu等人,2020;孟等人,2021),通过应用增强技术,如单词删除、重新排序和替换。然而,由于NLP的离散性,数据扩充在本质上是困难的。正如我们将在§3中看到的,简单地在中间表示上使用标准dropout比这些离散运算符要好。
  • 在NLP中,类似的对比学习目标已经在不同的背景下进行了探索(Henderson等人,2017;Gillick等人,2019年;Karpukhin等人,2020)。在这些情况下,(xi, x+i)是从有监督的数据集中收集的,例如问题通道对。由于xi和x+i的性质不同,这些方法总是使用双编码器框架,即对xi和x+i使用两个独立的编码器fθ1和fθ2。
  • 对齐和均匀性。最近,Wang和Isola(2020)确定了与对比学习相关的两个关键属性-对齐和均匀性-并建议使用它们来衡量表征的质量。给定正对 p p o s p_{pos} ppos的分布,对齐计算成对实例嵌入之间的期望距离(假设表示已经标准化):
    在这里插入图片描述
  • 另一方面,均匀性衡量嵌入均匀分布的程度:
    在这里插入图片描述
  • 其中 p d a t a p_{data} pdata表示数据分布。这两个指标与对比学习的目标很好地一致:积极实例应该保持接近,随机实例的嵌入应该分散在超球面上。在下面的小节中,我们还将使用这两个度量来证明我们的方法的内部工作原理。

Unsupervised SimCSE

  • 无监督SimCSE的思想非常简单:我们取一组句子 { x i } i = 1 m \{x_i\}^m_{i=1} {xi}i=1m,并使用 x i + = x i x^+_i = x_i xi+=xi。要使这一方法适用于相同的阳性对,关键因素是对 x i x_i xi x i + x^+_i xi+使用独立采样的dropout掩模。在transformer的标准训练中(V aswani et al, 2017),在全连接层上放置了dropout mask以及注意概率(默认 p = 0.1 p = 0.1 p=0.1)。我们表示 h i z = f θ ( x i , z ) h^z_i = f_θ(x_i, z) hiz=fθ(xi,z),其中 z z z是dropout的随机掩码。我们简单地将相同的输入输入到编码器两次,然后得到两个不同dropout mask的嵌入 z z z, z ′ z' z, SimCSE的训练目标为:
    在这里插入图片描述
  • 一个mini-batch N个句子。请注意, z z z只是Transformer中的标准dropout mask,我们没有添加任何额外的dropout。
  • Dropout noise作为数据增强。我们将其视为数据增强的一种最小形式:正对采用完全相同的语句,它们的嵌入仅在dropout mask中有所不同。我们将这种方法与STS-B开发集上的其他培训目标进行比较(Cer等人,2017)。表1将我们的方法与常见的数据增强技术(如裁剪、单词删除和替换)进行了比较,可以将其视为 h = f θ ( g ( x ) , z ) h = f_θ(g(x), z) h=fθ(g(x)z), g是x上的一个(随机)离散算子。我们注意到,即使删除一个词也会影响性能,而且没有一个离散增强的性能优于掉线噪声。
    在这里插入图片描述
  • 表1:STS-B开发集数据增强的比较(Spearman相关)。裁剪k%:保持长度的100-k%;单词删除k%:删除k%单词;同义词替换:使用nlpaug (Ma, 2019)随机替换一个单词与其同义词;MLM k%:使用BERTbase替换k%的字数。
  • 我们还将这种自我预测训练目标与Logeswaran和Lee(2018)中使用的下一句目标进行比较,采用一个编码器或两个独立编码器。如表2所示,我们发现SimCSE的性能比下句目标要好得多(在STSB上是82.5 vs 67.4),使用一个编码器而不是两个编码器在我们的方法中有显著差异。
    在这里插入图片描述
  • 表2:不同无监督目标的比较(STS-B开发集,Spearman相关)。两列表示我们是使用一个编码器还是两个独立的编码器。Next 3 sentences:从接下来的三句话中随机抽取一句。 Delete one word:随机删除一个词(见表1)。
  • 为什么它能起作用? 为了进一步理解dropout噪声在无监督SimCSE中的作用,我们在表3中尝试了不同的dropout率,并观察到所有变量的性能都低于transformer的默认dropout概率p = 0.1。我们发现了两个特别有趣的极端情况:“无dropout”(p = 0)和“fixed 0.1”(使用默认dropout p = 0.1,但对其使用相同的dropout掩码)。在这两种情况下,结果的嵌入是完全相同的,这将导致显著的性能下降。在训练过程中,我们每10步对这些模型进行一次检查点,并在图2中可视化对齐和一致性度量3,以及一个简单的数据增强模型“删除一个单词”。如图所示,从预训练的检查点开始,所有模型都大大提高了一致性。然而,这两个特殊变体的对齐也急剧下降,而我们的无监督SimCSE由于使用了dropout噪声而保持了稳定的对齐。它还证明了从预先训练好的检查点开始是至关重要的,因为它提供了良好的初始对齐。最后,“删除一个词”改善了对齐,但在均匀度指标上获得了较小的增益,最终性能低于无监督SimCSE。
    在这里插入图片描述-
  • 表3:不同退出概率 p p p对STS-B发展集的影响(Spearman’s correlation,BERTbase)。Fixed 0.1:默认0.1的退出率,但在xi和x+ i上应用相同的dropout掩码。

有监督SimCSE

  • 我们已经证明,添加dropout噪声能够保持正对 ( x , x + ) (x, x^+) (x,x+) ~ p p o s p_{pos} ppos的良好对齐。在本节中,我们研究是否可以利用监督数据集来提供更好的训练信号,以改善我们的方法的对齐。之前的工作(Conneau et al, 2017;Reimers和Gurevych, 2019)已经证明了监督自然语言推理(NLI)数据集(Bowman等人,2015;Williams et al, 2018)通过预测两个句子之间的关系是蕴涵、中性还是矛盾,可以有效地学习句子嵌入。
  • 标签数据的选择。 我们首先探索哪些监督数据集特别适合构建正对(xi, x+i)。我们用大量带有句子对示例的数据集进行了实验,包括1)QQP: Quora问题对;ParaNMT由机器翻译系统自动构造。严格地说,我们不应该称之为“有监督的”。但是它的性能不如我们的无监督SimCSE。2) Flickr30k (Y oung et al, 2014):每张图像都有5个人工编写的标题,我们认为同一图像的任意两个标题为正对;3) ParaNMT (Wieting and Gimpel, 2018):大规模反译释义数据集5;最后4)NLI数据集:SNLI (Bowman等人,2015)和MNLI (Williams等人,2018)。
  • 我们用不同的数据集训练对比学习模型(Eq. 1),并在表4中比较结果。为了进行公平的比较,我们还使用相同数量的训练组进行实验。在所有选项中,使用来自NLI (SNLI + MNLI)数据集的蕴涵对性能最好。我们认为这是合理的,因为NLI数据集由高质量和众包对组成。此外,人工注释人员应该根据前提手动编写假设,两个句子的词汇重叠较少。例如,我们发现隐含对(SNLI + MNLI)的词汇重叠(F1在两袋单词之间测量)为39%,而QQP和ParaNMT的词汇重叠分别为60%和55%。
  • 矛盾是坚决的否定。最后,我们进一步利用NLI数据集的优势,将其矛盾对作为硬否定6。在NLI数据集中,给定一个前提,==注释者需要手动编写一个绝对为真(蕴涵)的句子,一个可能为真(中性)的句子,以及一个绝对为假(矛盾)的句子。==因此,对于每个前提及其蕴涵假设,都有一个伴随的矛盾假设7(参见图1的例子)。
    在这里插入图片描述- 形式上,我们将 ( x i , x i + ) (xi, x^+_i) (xi,xi+)扩展到 ( x i , x i + , x i − ) (x_i, x^+_i, x^−_i) (xi,xi+,xi),其中 x i x_i xi是前提, x i + x^+_i xi+ x i − x^−_i xi是蕴涵假设和矛盾假设。训练目标 l i l_i li定义为(N为mini-batch size):
    在这里插入图片描述
  • 如表4所示,添加硬否定可以进一步提高性能(84.9→86.2),这是我们最终的监督SimCSE。我们还尝试添加ANLI数据集(Nie et al, 2020)或将其与我们的无监督SimCSE方法相结合,但没有发现有意义的改进。我们还考虑了有监督的SimCSE中的双编码器框架,它会影响性能(86.2→84.2)。

与各向异性的连接

  • 最近的工作确定了语言表示中的各向异性问题(Ethayarajh, 2019;Li等人,2020),即学习嵌入在向量空间中占据一个狭窄的锥,这严重限制了它们的表达能力。Gao等(2019)证明了使用绑定输入/输出嵌入训练的语言模型会导致各向异性的词嵌入,Ethayarajh(2019)在预训练的上下文表示中进一步观察到了这一点。Wang等人(2020)表明,语言模型中词嵌入矩阵的奇异值急剧衰减:除了少数占主导地位的奇异值外,其他所有奇异值都接近于零。
  • 缓解这一问题的一个简单方法是后处理,要么消除主导的主成分(Arora等人,2017;Mu和Viswanath, 2018),或将嵌入映射到各向同性分布(Li等人,2020;Su等人,2021)。另一个常见的解决方案是在训练期间添加正则化(Gao等人,2019;Wang et al, 2020)。在这项工作中,我们从理论上和经验上表明,对比目标也可以缓解各向异性问题。
  • 各向异性问题自然与均匀性有关(Wang and Isola, 2020),两者都强调嵌入应该在空间中均匀分布。直观地说,优化对比学习目标可以改善均匀性(或缓解各向异性问题),因为目标会将负面实例分开。在这里,我们采用单光谱视角——这是在分析词嵌入一种常见的做法(Mu和Viswanath, 2018;Gao等,2019;Wang et al, 2020),并表明对比目标可以“压平”句子嵌入的奇异值分布,使表示更加各向同性。
  • 根据Wang和Isola(2020)的研究,当负实例数接近无穷大时(假设f(x)是归一化的),对比学习目标(Eq. 1)的渐近性可以用下式表示:
    在这里插入图片描述
  • 第一项保持正实例相似,第二项将负实例分开。当 p d a t a p_{data} pdata在有限样本 { x i } i = 1 m \{x_i\}^m_{i=1} {xi}i=1m上是一致的,且 h i = f ( x i ) h_i = f(x_i) hi=f(xi)时,我们可以用Jensen不等式从第二项推导出如下公式:
  • 在这里插入图片描述
  • 设W为{xi}mi=1对应的句子嵌入矩阵,即W的第i行为hi。优化Eq. 6中的第二项本质上是最小化WW>中所有元素总和的上界,即Sum(WW>) =Pm i=1 Pm j=1 h>i hj。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值