0%

SimCSE: Simple Contrastive Learning of Sentence Embeddings

来自陈丹琦(https://github.com/danqi)组的文章,利用Dropout作为数据增强,进行对比学习得到句子向量表示,在无监督和有监督的语义表示上刷新SOTA。

image-20210706175923388

Overview

Background: Contrastive Learning

对比学习希望通过拉近语义相关的样本,拉远不相关的样本学习有效的向量表示。

对于样本对集合,假设为样本的向量表示,则训练的目标为:

其中,是一个温度超参数,为余弦相似度,本文选择的backbone是BERT或RoBERTa。

其实上述的训练目标就是交叉熵:

Positive instances

对比学习的关键问题是如何构造样本对,在CV中可以用裁剪、旋转等方法对图像进行数据增强,NLP中也有删词、替换、重排等方法。但对于NLP的离散结构来说,这些增强手段作用有限。本文采用了dropout作为数据增强手段,取得了更好的结果。

本文采用了两个度量align和uniform用于衡量表示的质量。

align描述了样本对之间的距离

uniform描述了样本是否分布均匀

从实验结果上看,采用dropout的SimCSE效果更好。

image-20210823111255916

Experiment

在语义相似度任务上大幅度刷新SOTA,无监督就可以超越之前的有监督方法。

image-20210823111528036

在迁移任务上表现一般,说明sentence embedding并不一定有益于下游训练。

image-20210823111700869