DiffCSE: 将Equivariant Contrastive Learning应用于句子特征学习

2022-09-02 12:44:13 浏览数 (1)

知乎:李加贝 方向:跨模态检索 来自:深度学习自然语言处理公众号

虽然不同的数据增强(随机裁剪、颜色抖动、旋转等)被发现对预训练视觉模型至关重要,但这种增强在应用于句子嵌入的对比学习时通常不成功

之前的工作发现,通过简单的基于dropout的增强来构建正对,比基于同义词或掩码语言模型的单词删除或替换等更复杂的增强效果要好得多。虽然对比学习的训练目标鼓励特征对增强变换是不变的,但对输入的直接增强(如删除、替换)经常会改变句子的意义。也就是说,理想的句子嵌入不应该对这种转换保持不变。

以前的工作只是简单地将有害的转换从预训练中忽略掉,但作者认为,仍然应该利用这些转换通过学习对这些转换敏感(但不一定不变)的特征。

受cv中Equivariant Contrastive Learning(ICLR'22)的启发,作者通过使用基于dropout的增强作为不敏感转换(如SimCSE)和基于掩码建模的单词替换作为敏感转换,对句子进行了Equivariant Contrastive Learning

Method

DiffCSE

方法非常的简单,就是将SimCSEELECTRA进行结合

SimCSE:

基于dropout的对比学习

对于ELECTRA,作者这里进行了改善,提出了一个conditional version给定一个长度为T的句子 x=[],对其进行随机掩码得到 ,然后通过生成器G进行恢复得到一个句子 ,然后使用判别器执行替换token检测任务,就是预测句子中的哪个token是原始的,哪个token是替换的

替换token检测任务

将所有token的损失相加

作者解释和ELECTRA的区别是,判别器D是有条件的,应该是说图1中是有将编码器的输出特征h输入到了判别器中,因此该损失也会通过h进行反向传播对编码器的参数进行优化,其中ELECTRA的优化损失为:

最终的损失为:

Experiments

Semantic Textual Similarity (STS)

Transfer Tasks

Ablation Studies

Next Sentence vs. Same Sentence

由于无监督学习中,一些工作使用预测下一句话作为训练目标,然后作者提出了一个DiffCSE变体,将ELECTRA loss中的替换为下一句话,STS-B的分数降低了,而迁移任务的分数并没有太大改变,当同一句话和下一句话一起使用时,性能并没有得到显著提升。

如果增强是加入或者删除的话,任务将变成预测token是否是增加的或者删除的,在STS-B中,性能均下降,但对于迁移任务,并没有太大影响,此外作者,还尝试了使用三种增强策略,性能并没有提升

由表7可知,不同掩码率之间的差异很小(在15%-40%之间),30%左右的掩码率可以获得最好的性能。

因为对比学习目标是一个相对容易的任务,所以对比损失的规模比ELECTRA loss小100到1000。当λ趋于零时,模型就变成了SimCSE模型。使用λ = 0.005可以得到最好的性能。


0 人点赞