相似句子计算工业级方法:对比学习SimCSE原理透析

SimCSE是一种新的SentenceEmbedding方法,由丹琦大神在2022年4月提出。它通过对比学习来增强句子嵌入,不仅考虑相似样本的相似性(Alignment),还关注不同样本间的距离(Uniformity)。对比学习中,同一句子的不同版本(通过dropout产生)被视为正例,其他句子作为负例。论文表明,dropout的p值选择对模型性能至关重要,如0.1在某些任务上表现最佳。此外,内部dropout比源头增强更能直接优化模型。该方法的评价指标包括相似样本的接近度和不相似样本的疏远度。SimCSE为无监督学习的句子表示提供了一种有效的新视角。

最近看了一篇最新的Sentence Embedding论文,今年4月份的,丹琦大神发表的《Simple Contrastive Learning of Sentence Embeddings》, 简称就是SimCSE,直译过来就是 基于简单对比学习句子嵌入。和没有对比学习的Bert相比,个人认为最大的区别就是:

  • 考虑到了拉大当前样本和不相关样本的距离,uniformity。 而原始的Bert仅仅考虑了相似样本越相似越好,也就是Alignment。

整篇文章的关键词有两个,simple 和 Contrastive Learning。接下里,我们分别来看下,如何简单,又如何对比学习。

Contrastive Leaning

释义

对比学习,顾名思义,就是两个事物之间作比对,山羊和绵羊之间相似度高。 山羊和飞机之间相似度低。而其思想就是,让相似度更加拉近,不相似的之间距离更加远。有点类似于聚类的思想,类的内部距离越小越好,类的外部距离越大越好。

 先看一下左边的无监督模型,一个句子通过encoder得到sentence embedding,而其他句子得到的sentence embedding是作为负例,而正例就很巧妙了,是同一个句子输入两遍,通过不同的drop mask机制得到的sentence embedding,dropout层在训练时是会随机drop一些输入的,因为具有一定的随机性,所以同一个句子输入两遍得到的sentence embedding是有一点区别的,但是总体上还是表达了同一个意思。

训练目标为:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

会发paper的学渣

您的鼓励和将是我前进的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值