【论文阅读-对比学习】SimCSE Simple Contrastive Learning of Sentence Embeddings

今天分享下Danqi大佬的SimCSE。文章首发于https://zhuanlan.zhihu.com/p/477334784

Title: SimCSE: Simple Contrastive Learning of Sentence Embeddings

From: EMNLP 2021

Link: https://arxiv.org/abs/2104.08821

【论文阅读-对比学习】SimCSE Simple Contrastive Learning of Sentence Embeddings_第1张图片

论文提出了基于对比学习框架的SimCSE,来是提升句向量的嵌入表示。在有监督和无监督的语义相似度任务上取得了SOTA效果。

背景知识

先介绍一下背景知识。

1. 对比学习

对比学习的思想很简单,就是拉近语意相似的样本,把不相似的样本拉远。假设有一个数据集 D = { ( x i , x i + ) } i = 1 m D=\{(x_i,x_i^+)\}_{i=1}^m D={(xi,xi+)}i=1m ,其中, x i x_i xi x i + x_i^+ xi+是语意相关的。 h i h_i hi h i + h_i^+ hi+分别是 x i x_i xi x i + x_i^+ xi+的向量表示。优化目标是在大小为 N N N的mini batch 中:

image-20220307224543687

s i m ( h 1 , h 2 ) sim(h_1,h_2) sim(h1,h2)是余弦相似度, τ \tau τ是温度超参数。

2. 构建正例

在图像领域,一张图片进行随机变换,比如裁剪、翻转、扭曲、旋转,就可以得到这张图片的正例了,但是在NLP领域,就比较难做了。之前的工作有利用删除部分词、单词的重排序、同义词替换等方式来做,但都是在离散层面上去做数据增强。这篇文章的方法是用dropout来表征层来生成对应的正样本。

3. 对齐和均匀(Alignment and uniformity)

Alignment和Uniformity是来衡量对比学习获得的表征质量的两个关键指标。

Alignment是计算 x i x_i xi x i + x_i^+ xi+在空间中的距离。

image-20220307230810911

Uniformity是计算向量整体分布的均匀程度。

image-20220307230959297

Unsupervised SimCSE

在无监督任务上,正例就直接就是dropout,负例在batch中随机选一个其他的句子。

【论文阅读-对比学习】SimCSE Simple Contrastive Learning of Sentence Embeddings_第2张图片

Supervised SimCSE

对于监督学习任务,文章以NLI任务来构建构建正负例。对于原标签中的“蕴含”关系,则他们互为正例,他们的句向量在空间中的距离应该是比较近的;对于原标签中的“矛盾”关系,则明显是互为反例,彼此的句向量在空间中的距离也比较远。所以直接用了NLI中的蕴含句和矛盾句来生成正负例。

【论文阅读-对比学习】SimCSE Simple Contrastive Learning of Sentence Embeddings_第3张图片

小结

这篇论文很精彩,一是用dropout来生成文本的正例,这在NLP领域生成相似样本是一个大的跨越。方法非常简单,但是又很work,不得不说奇思妙想。二是在做监督学习的正负例时,直接用已有标签做了一个转换,这种思路我也没想到,读完有种“还能这么干”的感觉。三是实验部分很扎实,分析也很充分,不仅告诉你这个work ,还告诉你为什么work。真的是高水平论文。虽然这是第二遍读了,但是有些地方还是没有细细读透。第一遍读还是在去年,但是不总结一下,好多地方都记不清了,另外对各向异性的研究需要再总结下,今天就先到这里吧。

你可能感兴趣的:(论文阅读,对比学习,深度学习,自然语言处理,人工智能)