SimCSE: Simple Contrastive Learning of Sentence Embeddings

18 篇文章 1 订阅
4 篇文章 0 订阅

论文链接:SimCSE: Simple Contrastive Learning of Sentence Embeddings

摘要

这篇文章提出了SimCSE,一个简单的对比学习网络架构,可以取得超过SOTA的句子级别表征性能。我们首先阐述了非监督方法,将一个句子作为输入,并以标准的dropout作为噪声的对比学习的方式预测这个句子本身。这种简单的方法效果出奇地好,基本可以达到之前监督学习的水准。我们发现,dropout是作为最小数据增强的功能,将其移除掉会导致表达能力的急剧降低。然后,我们又提出监督学习的方式,结合NLP任务中的标记样本对,将”蕴含“句子对作为正样本,将”矛盾“句子对作为负样本。在标准的STS任务上进行评估,我们的基于bert-base的监督学习模型和非监督学习模型,分别取得76.3%和81.6%的结果,较之前最好的结果,分别提升4.2%和2.2%。我们还从理论和实践上发现,对比学习函数可以对预训练的embedding正则到更均匀的分布,在结合监督数据学习时,可以更好地对齐正样本对。

导言

无监督SimCSE:对输入文本应用两次dropout,可以得到两个不同的embeddings,这个作为正样本对;将同一个mini-batch中的其他句子的embedding和输入文本的embedding作为负样本对,然后,构建模型预测正负样本。尽管这种方法看起来出奇地简单,但将其作为目标函数,可以取得之前利用监督样本所达到的性能。通过细致分析,dropout是作为隐向量的较小的数据增强方式,移除掉,可能会导致表达能力骤降。

有监督SimCSE:构建在NLI标记样本基础上,用”蕴含“类样本作为正样本对,用”矛盾“类别样本作为负样本对时可以进一步提升性能。对比了之前用这份数据集的其他模型以及用其他标记的数据集,发现NLI效果是最好的。

为了进一步理解SimCSE的性能。我们借鉴了其他的分析工具,它度量了语义相关样本的对齐度和整个表征空间的均匀度,这是为了衡量embeddings的好坏。通过实证分析,我们发现无监SImCSE在通过dropout设计不降低对齐度的情况下,可以显著提升均匀度,因此可以提升表征的表达力。相似的分析表明,NLI数据可以进一步增加正样本之间的对齐度,进而生成更好的句子embeddings。我们还联想到最近关于预训练word embeddings的各向异性的研究结论,证实了,通过空间视角,对比学习目标可以打平句子embeddings的奇异值分布,因此可以提高均匀度。

在7个STS任务上,我们对SimCSE做了全面的评估。我们的基于bert-base的监督学习模型和非监督学习模型,分别取得76.3%和81.6%的结果,较之前最好的结果,分别提升4.2%和2.2%。

背景:对比学习

假设句子对集合\mathcal{D} = {(x_i, x_i^+)}_{i=1}^m,

x_i, x_i^+语义相关。h_i, h_i^+分别表示对应的表征,目标函数:

 \tau是温度超参数。

正实例。一个关键问题是构建正实例(x_i, x_i^+),CV中常用的方法,对图片进行裁剪、翻转、扭曲、旋转等。NLP中相似的方法有:单词删除、重排、替换等。然而由于其离散型,对NLP的数据增强本身是比较难的。NLP领域的对比学习目标函数之前也有许多研究了,大多是通过标注的数据集构造正负样本对,如问答对。由于(x_i, x_i^+)的不同属性,这些工作通常会采用一个对偶编码结构,,也就是两个独立的编码器f_{\theta_1},f_{\theta_2}

对齐度和均匀度。用这两个指标来衡量表征的优劣。对齐度表示两个表征之间的距离,均匀度衡量表征均匀分布的程度。这两个指标和对比学习的目标非常吻合。正样本之间的距离应该很近,随机的样本应该均匀分布在超球面上。

无监SimCSE

实现这一目标的关键因素是,使用相同的正例,通过独立采样的dropout掩码。在标准的Transformer结构中,有两处dropout:全连接层和Attention层。我们将同一个输入,用不同的dropout maskz,{z}',给到编码器,可以得到两个embeddings,对比学习的目标函数变成如下:

dropout作为数据增强的方式。我们研究了dropout作为数据增强的最小方式。正例来自于完全相同的句子,它们的embeddings区别仅在于不同的dropout masks。我们对比了基于STS-B数据集上其他的目标函数,h=f_{\theta}(g(x), z),g表示在x上的随机离散操作,如下:

可以看出来,即便删掉一个单词也会降低模型的性能。没有离散数据增强方法胜过dropout的性能。

我们还对比了NSP的目标函数,用一个编码器或两个独立的编码器。发现,SimCSE比NSP任务要好(82.5vs67.4 on STS-B),且用一个编码器比两个有显著的提升,结果如下:

为什么能work?  我们设计了不同的dropout比例和机制,发现默认的0.1是效果最好的。还对比了两种计算情况,nodropout(p=0)和fixed 0.1(用默认的0.1,但是采用完全相同的dropout masks)。这两种情况,得到的句子对的embeddings完全一样,从结果上看,会导致性能的急剧下降。

 每十轮,我们获取模型的checkpoints,并可视化对齐度均匀度这两个指标,如下图:

可以看出来,随着训练的进行,每个模型均匀度都有显著的提升,但我们的SimCSE的对齐度基本平稳,这主要归因于dropout noise的机制。

有监SimCSE

利用标记的数据集训练公式一的目标函数,取代之前的dropout,我们从打标的数据集中直接构造正样本对(x_i, x_i^+),分别对比不同的数据集,结果如下:

可以看到在SNLI+MNLI的数据集上效果是最好的,我们认为这是合理的,因为该数据集由高质量的人工打标的句子对构成,打标员基于前提手动编写假设,因此两个句子的词法重叠较少。例如,我们发现蕴含对(SNLI + MNLI)的词汇重叠(F1在两个单词袋之间测量)为39%,而QQP和ParaNMT分别为60%和55%。

 矛盾实例作为负样本对。为了充分利用NLI数据集,我们将”entailment“类作为正样本对,”contradiction“作为负样本对,然后将(x_i, x_i^+)扩展到(x_i, x_i^+,x_i^-)x_i是前提,x_i^+,x_i^-分别表示对应的entailment、contradiction假设。目标函数如下:

和Anisotropy的关联

最近的研究表明语言表征的各向异性的问题限制了表达能力,可以参考论文:On the Sentence Embeddings from Pre-trained Language Models

还有研究发现,word embeddings矩阵的奇异值衰减很快,除了几个占主导地位的奇异值,其他的接近于0

缓解这种问题的简单方法是后处理,包括:降低主成分,将embedding分布从Anisotropy映射到isotropy。还有一些常用方法是训练过程中加入正则项。我们的这项工作表明,不管是理论上还是实证上,对比学习的方法可以缓解Anisotropy问题。

Anisotropy自然地和均匀度关联在一起,embeddings应该均匀地分布在向量空间中。直观来看,优化对比学习目标函数可以提高均与度(缓解anisotropy问题),因为目标函数会将负样本分开。这里我们从奇异值视角观察,结果表明,目标函数可以打平句子embedding奇异值的分布,使表征更isotropic。

当负实例数量趋近于无穷大时,对比学习目标函数的渐进线可以用公式(6)表示,第一项让正实例相似,第二项让负实例分开。当p_{data}是从有限样本集\{x_i\}_{i=1}^m上均匀采样得到,h_i=f(x_i),可以用Jensen不等式从第二项推导出公式(7)

实验

结论

在这些工作中,我们提出了SimCSE,一个简单的对比学习网络结构,在STS任务上,可以极大提升SOTA句子表征性能。我们分别提出基于dropout噪声预测输入句子自身的非监督方法和利用NLI数据集的监督方法。又进一步结合其他基准模型,通过分析对齐度和均匀度,评判了我们这些工作。我们认为,对比学习方法,尤其是非监督那个,在NLP领域会有广泛的应用。它提供了一个关于对输入文本数据增强的新的视角,且可以扩展到其他连续表示领域,可以将预训练语言模型统一起来。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NLP_wendi

谢谢您的支持。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值