今天分享下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,来是提升句向量的嵌入表示。在有监督和无监督的语义相似度任务上取得了SOTA效果。
; 背景知识
先介绍一下背景知识。
1. 对比学习
对比学习的思想很简单,就是拉近语意相似的样本,把不相似的样本拉远。假设有一个数据集D = { ( x i , x i + ) } i = 1 m D={(x_i,x_i^+)}_{i=1}^m D ={(x i ,x i +)}i =1 m ,其中,x i x_i x i 和x i + x_i^+x i +是语意相关的。h i h_i h i 和h i + h_i^+h i +分别是x i x_i x i 和x i + x_i^+x i +的向量表示。优化目标是在大小为N N N的mini batch 中:
s i m ( h 1 , h 2 ) sim(h_1,h_2)s i m (h 1 ,h 2 )是余弦相似度,τ \tau τ是温度超参数。
; 2. 构建正例
在图像领域,一张图片进行随机变换,比如裁剪、翻转、扭曲、旋转,就可以得到这张图片的正例了,但是在NLP领域,就比较难做了。之前的工作有利用删除部分词、单词的重排序、同义词替换等方式来做,但都是在离散层面上去做数据增强。这篇文章的方法是用dropout来表征层来生成对应的正样本。
3. 对齐和均匀(Alignment and uniformity)
Alignment和Uniformity是来衡量对比学习获得的表征质量的两个关键指标。
Alignment是计算x i x_i x i 和x i + x_i^+x i +在空间中的距离。
Uniformity是计算向量整体分布的均匀程度。
; Unsupervised SimCSE
在无监督任务上,正例就直接就是dropout,负例在batch中随机选一个其他的句子。
Supervised SimCSE
对于监督学习任务,文章以NLI任务来构建构建正负例。对于原标签中的”蕴含”关系,则他们互为正例,他们的句向量在空间中的距离应该是比较近的;对于原标签中的”矛盾”关系,则明显是互为反例,彼此的句向量在空间中的距离也比较远。所以直接用了NLI中的蕴含句和矛盾句来生成正负例。
; 小结
这篇论文很精彩,一是用dropout来生成文本的正例,这在NLP领域生成相似样本是一个大的跨越。方法非常简单,但是又很work,不得不说奇思妙想。二是在做监督学习的正负例时,直接用已有标签做了一个转换,这种思路我也没想到,读完有种”还能这么干”的感觉。三是实验部分很扎实,分析也很充分,不仅告诉你这个work ,还告诉你为什么work。真的是高水平论文。虽然这是第二遍读了,但是有些地方还是没有细细读透。第一遍读还是在去年,但是不总结一下,好多地方都记不清了,另外对各向异性的研究需要再总结下,今天就先到这里吧。
Original: https://blog.csdn.net/weixin_42294274/article/details/123394002
Author: 春天
Title: 【论文阅读-对比学习】SimCSE Simple Contrastive Learning of Sentence Embeddings
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/547963/
转载文章受原作者版权保护。转载请注明原作者出处!