SimCSE: Simple Contrastive Learning of Sentence Embeddings


SimCSE: Simple Contrastive Learning of Sentence Embeddings

1. Background(要解决的问题)

得到更好的Sentence Embedding

2. Contributions(创新点)

论文的出发点是设计一个模型,它能够学习到更好的句子表征(Sentence Embedding)。为了达到这一目标,论文采用对比学习的框架训练模型。

在构建对比学习任务时,为了构造对比学习任务的数据集(即正样本对和负样本对),论文采用了两种方式:

  1. 通过无监督方式构造数据集。论文认为在无标签数据集中,将同一个sentence进行dropout操作两次,相当于是对这个sentence进行了数据增强,两次dropout的结果可以作为一个正样本对,而负样本对则是其他的句子;

    • 这种方式效果很好,能够与前人的有监督方式的效果持平;
    • 如果移除Dropout操作将会导致representation collapse;
  2. 通过有监督方式构造数据集。论文认为NLI数据集中,premise和entailed hypothesis可以作为正样本,而premise和contradiction hypothesis可以作为难负(hard negative)样本,其他的句子作为一般的负样本;

具体的构造方式如下图所示:

通过上面的对比学习策略,论文的实验结果刷新了Semantic Textual Similarity的SoTA。

3. Method

Unsupervised SimCSE

由于Unsupervised SimCSE采用的数据集是无监督数据集,为了构造$(x_i,x_i^{+})$对,需要使用数据增强。在这里,论文巧妙地将同一个句子$x_i$输入到$BERT$两次,由于$BERT$里面有Dropout操作,导致了两次$x_i$的输出结果是不同的$h_i$,而这两个不同的$h_i$则代表了一个positive pair。而Dropout操作则承担了数据增强的作用。因此,Unsupervised SimCSE的损失函数定义如下:

  • 其中$z_i$代表一种dropout mask,$z_{i}^{\prime}$代表另外一种dropout mask。
  • 需要理解的是,虽然dropout rate=0.1,但是每次执行dropout时,Transformer选择的dropout mask都是随机的,是不一样的~

Dropout noise as data augmentation

论文将Dropout操作看作是最小形式的数据增强方式,并且与一些常见的数据增强方法和一些其他的训练目标在STS-B development set上进行了性能对比:

传统的数据增强的方法有:

  1. Crop:裁剪。就是将句子裁剪出一段连续的部分;
  2. Word deletion:随机地删除句子中的某些单词;
  3. MLM:用[mask]来代替句子中的某些单词;
  4. w/o dropout:在BERT中不使用Dropout操作(等价于将Dropout Rate设置成0?)

通过上面的结果可以发现,没有一种数据增强方法的性能能够超越论文提出的Dropout操作,并且仅仅只是Delete one word都会极大地降低模型性能。

同时,论文也对比了不同的训练目标带来的结果差异,对比的双方是本文提出的self-prediction training objective和ICLR一篇论文提出的next sentence objective:

可以通过上表发现,Unsupervised SimCSE的结果是优于Next-Sentence Objective的,并且使用dual encoder不如使用single encoder。

Why does it work?

为了进一步探讨dropout noise带来的影响,论文对不同的dropout rate进行了对比,发现原Transformer的0.1才是最好的。比较能够说明问题的是:当$p=0$或者$Fixed \ 0.1$时,得到的$x_i$和$x_i^{+}$的Embedding是相同的,而这两种情况是表中最差的结果。再计算它们在训练过程中的alignment和uniformity,可以得到下面的图:

  • 对比$No \ dropout$,$Fixed \ 0.1$,Unsup. SimCSE能够在提升uniformity的同时,保持alignment。
  • 对比Delete one word,SimCSE能够达到alignment和uniformity上的overall best;

Supervised SimCSE

Exploiting supervised data

为了找到合适的supervised dataset,论文对比了以下4种数据集:

  1. QQP
  2. Flickr30k
  3. ParaNMT
  4. SNLI+MNLI

它们的结果如下图所示:

如上图所示,SNLI+MNLI的结果是最好的。因此,论文最终也是选用该数据训练Sentence Encoder。

Contraction as hard negatives

论文在传统的$(x_i,x_{i}^{+})$基础上,又将NLI数据集中的contradiction hypotheses引入作为hard negative(未使用neural hypotheses作为难负样本),得到$(x_i,x_{i}^{+},x_i^{-})$。此时,损失函数被定义为:

4. Experiments

衡量对比学习表征能力有两个重要的评价指标:

  1. alignment between semantically-related positive pairs;
  2. uniformity of the whole representation space;

关于这两个指标的意义可以参考论文——Understanding contrastive representation learning through alignment and uniformity on the hypersphere.

Evaluation Setup

在实验方面,采用了7个standard semantic textual similarity(STS) tasks和7个transfer learning tasks作为评测任务。

Semantic textual similarity tasks

7个STS tasks分别是:STS 2012-2016,STS Benchmark和SICK-Relatedness,需要计算sentence embedding之间的cosine similarity。

Transfer tasks

同时也在7个transfer learning tasks上进行了实验:

  1. MR
  2. CR
  3. SUBJ
  4. MPQA
  5. SST-2
  6. TREC
  7. MRPC

Main Results

Semantic textual similarity

由上图可见,在STS任务上,无论是无监督还是有监督,SimCSE都达到了SoTA的水平。

Transfer tasks

从上面的结果可以发现,supervised SimCSE的结果与之前方法的结果相同或者更优,而unsupervised SimCSE的结果就并不是那么好,但是引入了MLM任务之后,性能明显提升了许多。原因在于:无论是训练unsupervised还是supervised SimCSE,它们的目标都是similarity,并没有体现transfer任务的特性,所以在进行transfer任务的评估时,会不尽人意。

Ablation Study

论文对different batch sizes,pooling methods和MLM auxiliary objectives进行消融实验,验证它们对模型的影响。

Batch Size

可以发现:当Batch Size(也就是前面公式5中的$N$)增加到512之后,增大batch size会损害模型性能。

Pooling methods

可以发现,Pooling Methods对SimCSE没有影响。

MLM auxiliary task

通过表9可以发现,MLM对STS-B任务是有损害作用的,但是对Transfer Task是有益的。

5. Analysis

Uniformity and alignment

通过上图可以发现,Uniformity和Alignment表现好的模型,在average STS上也表现得不错。此外,我们还可以发现:

  1. 尽管BERT能够取得不错的alignment,但是它的uniformity并不好;
  2. post-processing methods(比如BERT-flow和BERT-whitening)虽然能够取得不错的uniformity,但是不能有很好地alignment;
  3. Unsupervised SimCSE 能够同时保持良好的alignment和uniformity;
  4. 引入监督信息之后,SimCSE能够得到更好的alignment

Cosine-similarity distribution

我们发现SimCSE的分布通常比BERT或SBERT更分散,但与白化分布相比,在语义相似的句子对上保持了较低的方差。这一观察结果进一步验证了SimCSE可以达到更好的alignment和uniformity。

Qualitative comparison

对$SBERT_{base}$和$Supervised \ SimSCE-BERT_{base}$进行召回实验,发现后者召回的结果要优于前者,这更加说明了后者的Sentence Embedding的强大之处。

6. Thinking

这篇论文是上半年非常火的一篇论文,之前由于觉得跟自己研究的事件抽取课题不怎么相关,所以一直没有了解。但是,对比学习的确是一个比较大的趋势,在今年ACL上,刘知远老师组就利用对比学习框架,提出了实体关系抽取和事件抽取两个任务的预训练语言模型:

  1. ERICA: Improving Entity and Relation Understanding for Pre-trained Language Models via Contrastive Learning
  2. CLEVE: Contrastive Pre-training for Event Extraction

对比学习能够利用无监督数据训练得到一个更强大的task specific特征提取器,这对于小样本学习也是很有意义的。

除此之外,这篇论文的写作也是十分优雅,逻辑严密,而且实验做得非常完备,实验参数细节都有详细写出。

有价值的参考文献

  1. Sentence-BERT: Sentence embeddings using Siamese BERTnetworks.
  2. On the sentence embeddings from pre-trained language models.
  3. Whitening sentence representations for better semantics and faster retrieval.

文章作者: CarlYoung
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 CarlYoung !
  目录