SimCSE详解,Simple Contrastive Learning of Sentence Embeddings

简介
contrastive(对比)学校框架,提升句子embedding效果
无监督,句子本身和句子自己带有dropout
使用NLI数据集,entailment(蕴含)对作为正例,contradiction(矛盾)对作为负例
在STS任务上,效果好

介绍
无监督simcse预测句子本身,仅使用dropout作为噪声
换句话说,我们把相同的输入句子放到预训练encoder两次,包括两个embedding作为正例对,这两个encoder单独dropout(互不影响,不同的dropout形成不同的embedding)
效果较好
我们分析,dropout实际上是小型的数据增强(多了一些类似表示),去掉这些增强可能导致表示崩塌
有监督的simcse,使用NLI数据集,利用蕴含对和对抗对分别作为正负例,蕴含基本上可以算作正例。增加相关对抗提高效果。对比数据集,NLI效果较好。
SimCSE详解,Simple Contrastive Learning of Sentence Embeddings_第1张图片

背景
对比学习,拉近邻居,拉远非邻居
SimCSE详解,Simple Contrastive Learning of Sentence Embeddings_第2张图片
训练目标,当前相似度大,所有相似度小
sim使用cosine相似度,预训练使用bert或者robert,然后用对比学习

无监督simcse
使用不同dropout作为正例,标准的dropout mask而非添加的dropout
对比发现即使删一个词,效果也会下降,没有一个离散性干扰表现得比droput好

监督simcse
x,x+,x-
如果做两个encoder,没有看到两个encoder啊,没有z

训练细节
增加了MLP层在CLS上作为embedding

你可能感兴趣的:(#,nlp:论文)