一、简介
- 学习通用句嵌入向量是一个NLP的基础问题。本文通过对比学习的方式实现了SOTA句嵌入向量。具体来说,论文提出了称为的对比学习框架,可以用于学习通用句嵌入向量。其中可以分为“无监督”和"有监督"。
- 在无监督中,仅使用dropout进行数据增强操作。具体来说,将同一个样本输入预训练编码器两次(BERT),由于每次的dropout是不同的,那么就会生成两个经过dropout后的句向量表示,将这两个样本作为“正样本对”。
- 通过实验发现,使用dropout进行数据增强好于其他常见的数据增强方法,例如:单词删除和替换。可以将dropout看作是最小的数据增强。
- 在有监督中,我们基于数据集来构造对比样本,从而实现有监督的对比学习。具体来说,论文将entailment样本作为“正样本对”,并将contradiction样本作为hard“负样本对”。实验表明,数据集对于学习句子表示特别有效。
- 论文进一步分析了两个指标,分别是:正样本对的alignment和表示空间的uniformity。证明了能够学习到更好的句子嵌入向量。
- 论文从理论上证明改善了uniformity,并将对比学习与近期发现的预训练词向量各向异性联系起来。
二、背景知识
1. 对比学习
【自然语言处理】【对比学习】搞nlp还不懂对比学习,不会吧?快来了解下SimCLR
2. Alignment和Uniformity
Wang等人确定了对比学习的两个关键特性:alignment和uniformity,并提出了衡量这两个特性的评估指标。
2.1 Alignment
给定一个正样本对分布,alignment的目标就是计算正样本对嵌入向量的期望距离
其中,将样本转换为嵌入向量的编码器。直观来看,alignment越小越好。
2.2 Uniformity
uniformity用于衡量嵌入向量是否有良好的统一分布
其中,表示数据分布。越小,则两个随机样本的距离也就越大,整个样本的嵌入向量就会越分散。因此,越小越好。
三、无监督SimCSE
1. 方法
给定一个句子集合,并且令。使用独立的dropout作为掩码来进一步获得增强的正样本对。由于在标准的Transformer训练过程中,会有多个dropout掩码。因此,样本的嵌入向量生成表示为,其中是随机的dropout掩码。
通过将相同的样本输入的编码器,并应用不同的dropout掩码,从而获得相同样本的不同增强样本。最终的对比损失函数为
其中,是随机采样batch的大小。
2. 不同数据增强方式的对比
dropout可以看做是数据增强的最小形式。
我们在数据集上比较了的dropout数据增强与常见数据增强技术。在这些实验中,语料是从中抽取的,且令且。在表2中可以看到,对比了常见的数据增强技术,例如:crop、word deletion和replacement等。这些数据增强技术的应用可以看着是,其中是一个在上的离散数据增强操作。
我们的实验发现,即使仅删除一个单词,也是对方法性能有显著影响的。没有任何一种离散数据增强方式由于dropout噪音。
3. dropout进一步实验
这部分的实验如表4所示。
- 为了进一步研究dropout,论文尝试了不同dropout的比例,并发现默认的dropout比率是效果最好的。
- 在两个极端情况下:(没有进行dropout增强)和(两个样本使用相同的dropout),性能会显著下降且结果相似。
图2中,分别比较了和两种极端情况,及删除一个单词方式的数据增强与在alignment和uniformity上的表现。
- 可以发现所有的方法都能改善uniformity;
- 但是和情况下的alignment会急剧下降,但是标准的的alignment会非常的平稳;
- “删除一个单词”的方式能够改善alignment,但是在uniformity上的效果没有好;
4. 其他实验设置的比较
论文比较了损失函数和对比损失函数,并比较了单个编码器和2个独立编码器的效果。实验结果如表3所示。
实验表明,对比损失函数显著优于,且单个编码器显著优于2个独立的编码器
四、有监督SimCSE
有监督主要的目标是利用有监督数据集来改善句嵌入向量表示。由于之前的研究已经证明了有监督自然语言推断(NLI)数据集对于学习句子嵌入向量非常有效。因此,在有监督中我们同样使用数据集来构造对比样本。
- 数据集中包含三种句子度关系,分别为:包含(entailment)、中立(neutral)、矛盾(contradiction)。
1. 探索有监督数据集
论文在各种句子对数据集上进行了实验,实验结果有:
- 所有的有监督句子对数据集都好于无监督的方法,也就是有监督是有效的;
- 在所有数据集中,使用数据集中的entailment构造正样本对效果最好;
- 初步分析认为效果好的原因主要是,entailment样本对的词覆盖显著低于其他数据集;
2. 将contradiction样本对作为“难”负样本对
为了进一步利用数据集,论文将contradiction样本对作为更加难的负样本对。
在数据集中,通常会先给定一个前提(premise),然后标注者需要写出三个句子,分别是:一个正确的句子(entailment)、一个可能正确的句子(neutral)和一个绝对错误的句子(contradiction)。因此,对于每个前提(premise),都对应一个entailment句子和一个contradiction句子。
因此,在有监督中,将扩展至。其中,是前提(premise),和是entailment和contradiction。最终的训练目标定义为
实验结果表明,添加这样的“难”负样本对能够进一步改善模型效果,这也是我们最终的有监督。
五、与Anisotropy的关系
1. 各向异性问题(anisotropy)
最近的研究表明语言模型的表示具有各向异性(anisotropy)的问题,例如:学习到的嵌入向量出现在向量空间中的一个狭窄圆锥中,这极大的限制了表达能力。Gao等人称这个问题为“表示退化”问题。此外,Wang等人的研究显示词嵌入矩阵的奇异值会急剧衰减。简单来说,除了少数奇异值外,其他奇异值都接近0。
2. 不同的解决方案
- 一种解决方案是:后处理,通过消除主成分、或者将表示空间映射至各向同性(isotropic)分别中。
- 另一种方案是,在训练过程中添加正则约束。
3. 证明对比学习能够解决各向异性问题
对比学习损失函数可以被近似为
其中,公式的第一项用于保证正样本对的相似,而第二项则是将负样本对的距离拉开。
当在有限样本集上均匀分布且,我们可以利用Jensen不等式来推断公式中的第二项
若令表示样本集的句嵌入矩阵(的第i行是)。那么最小化公式的第二项,本质上等于由于中所有元素之和的上界,因为
其中,是标准化的向量,因此的所有对角线元素均为1。
由于Gao等人发现在绝大多数情况下,所有的元素都是整数。那么根据Merikoski的结论可以得知是最大特征值的上界。
因此,可以推导出
- 最小化公式的第二项等价于最小化的上界;
- 等价于最小化的上界;
- 等价于最小化的最大特征值上界;
- 也就是减小的最大特征值;
因此,对比损失函数本质上拉平了嵌入空间的奇异值,改善了uniformity。
六、实验
- 有/无监督能够极大的改善句嵌入的效果(句向量相似度代码句语义相似性);
- 虽然改善了句嵌入,但是句嵌入并不能改善下游的迁移任务;
- 使用来表示句向量的效果最好;
- 将作为辅助训练目标函数,可以改善模型在下游迁移任务上的效果;