SimCSE: Simple Contrastive Learning of Sentence Embeddings(EMNLP 2021)

SimCSE: Simple Contrastive Learning of Sentence Embeddings(EMNLP 2021)

Motivation

无监督的SimCSE将句子过两次预训练模型得到两个不同的embedding作为正例对,将同一batch中的其他句子作为负例,模型在所有负例中预测出唯一的正例。有监督的SimCSE使用NLI数据,将蕴含关系对作为正例,矛盾关系及batch内其他的句子作为负例。

SimCSE: Simple Contrastive Learning of Sentence Embeddings(EMNLP 2021)

Contrastive Learning

句对集合为 D = { ( x i , x i + ) } i = 1 m \mathcal{D} = \left\{(x_i, x_i^+)\right\}_{i=1}^m D={(xi​,xi+​)}i=1m​,其中 x i x_i xi​和 x i + x_i^+ xi+​是语义上相关的。优化目标如下:
ℓ i = − log ⁡ e s i m ( h i , h i + ) / τ ∑ j = 1 N e s i m ( h i , h j + ) / τ \ell_i = -\log \frac{e^{sim(h_i, h_i^+)/\tau}}{\sum_{j=1}^N e^{sim(h_i, h_j^+)/\tau}} ℓi​=−log∑j=1N​esim(hi​,hj+​)/τesim(hi​,hi+​)/τ​
Positive instances

如何构建正例对是一个关键问题。本文发现对中间层表示简单使用标准的dropout已经能超过其他的离散表换(删除、替换词语)等操作。

Alignment and uniformity

Alignment用来计算句对间embedding的预期距离,uniformity用来衡量embedding一致分布的好坏。这两个指标与对比学习的目标保持一致,正例对的距离应相对较近,并且随机实例的embedding应该分散在超球体上。

Unsupervised SimCSE

正例对中, x i + = x i x_i^+ = x_i xi+​=xi​,关键因素是独立对 x i x_i xi​和 x i + x_i^+ xi+​使用dropout。本文将dropout看作一种最小化形式的数据增强,并将其与其他数据增强方法进行了对比,结果如下图:
SimCSE: Simple Contrastive Learning of Sentence Embeddings(EMNLP 2021)

SimCSE: Simple Contrastive Learning of Sentence Embeddings(EMNLP 2021)

为了进一步探究dropout噪声的作用,作者还尝试了不同的dropout率。如下图:

SimCSE: Simple Contrastive Learning of Sentence Embeddings(EMNLP 2021)

Supervised SimCSE

将NLI数据集中的蕴含句子作为正例,矛盾句子作为难负例。便将目标函数更新为如下形式:
ℓ i = − log ⁡ e s i m ( h i , h i + ) / τ ∑ j = 1 N ( e s i m ( h i , h j + ) / τ + e s i m ( h i , h j − ) / τ ) \ell_i = -\log \frac{e^{sim(h_i, h_i^+)/\tau}}{\sum_{j=1}^N (e^{sim(h_i, h_j^+)/\tau}+e^{sim(h_i, h_j^-)/\tau})} ℓi​=−log∑j=1N​(esim(hi​,hj+​)/τ+esim(hi​,hj−​)/τ)esim(hi​,hi+​)/τ​

Connection to Anisotropy

很多工作证明了表示中的各向异性问题,例如,学习到的embedding在向量空间中仅仅占据一个窄圆锥的大小,这会大大损害embedding的表达能力。各向异性问题与uniformity相关,都强调embeddings应该在向量空间中均匀分布。对比学习的目标是要让负例对间的距离相对较远,因此能提升uniformity(消除各向异性)。

Experiment

SimCSE: Simple Contrastive Learning of Sentence Embeddings(EMNLP 2021)

Ablation Studies

SimCSE: Simple Contrastive Learning of Sentence Embeddings(EMNLP 2021)

上一篇:1148 Werewolf - Simple Version (20 分)


下一篇:Zookeeper入门