论文解读SimCSE: Simple Contrastive Learning of Sentence Embeddings

简介

这是一篇方法很简单效果却十分好的论文,直接将语义相似度sota提升了好几个百分点。

背景对比学习

Contrastive learning aims to learn effective representation by pulling semantically close neighbors together and pushing apart non-neighbors (Hadsell et al., 2006) 对比学习可以拉开不相似的item的距离,缩小相似的item的距离。

论文解读SimCSE: Simple Contrastive Learning of Sentence Embeddings_第1张图片

损失如上所示。
对比学习的一个重要点就是如何构建正样本,负样本一般是采用当前batch内的其他样本。

无监督simcse

其思想很简单,就是将同一个句子使用不同的dropout 得到了正样本,batch内其他句子作为负样本。通过transformer进行对比学习。

论文解读SimCSE: Simple Contrastive Learning of Sentence Embeddings_第2张图片

论文解读SimCSE: Simple Contrastive Learning of Sentence Embeddings_第3张图片

也对比了采用cls token 还是 第一层加最后一层的平均等等的效果。

监督simcse

有监督的simcse 使用自然语言推理的数据集做训练,以包含的句子作为正样本,相对的句子作为hard negatives。

什么是hard negatives呢,主要是在损失函数上

论文解读SimCSE: Simple Contrastive Learning of Sentence Embeddings_第4张图片

仔细对比这个损失与上面的损失,就会发现下面多了一项,hard negatives 作用就是体现在这。

论文解读SimCSE: Simple Contrastive Learning of Sentence Embeddings_第5张图片

注意的是训练时batch 为64 最好,过大过小效果都会下降。

你可能感兴趣的:(深度学习,人工智能,机器学习)