对比学习损失,最出名的两个,一个是triplet_loss(hinge_loss),一个是 InfoNCEloss。
InfoNCEloss:用温度系数T平滑softmax,得到期望的logit分布,再使用交叉熵计算损失。
具体来说,就是在softmax时,引入温度系数T。T趋近于无穷,则趋近于均匀分布,T趋近于0,则趋近于one-hot分布。可以设置为0.05。
SimCSE(文本):
【单塔 无监督】利用同一输入每次过dropout后生成不同embedding的特性,完美规避了传统文本增强方法伴随的语义漂移问题,同一文本dropout两次得到正样本(的embedding),batch中其他文本dropout两次为负样本样本优化样本增强。
【双塔 有监督】原论文把相似当作正例,矛盾和中立当作负例。
温度系数越小,越重视困难样本。
训练目标等价于 增加正样本之间的相似度。
SimCSE利用dropout生成不同embedding作为正负样本进行对比学习,无监督情况下防止语义漂移,有监督时结合NLI数据集。通过调整温度系数T优化样本,目标是增加正样本间的相似度。损失函数基于InfoNCE Loss,但使用余弦相似度代替点乘。双塔结构用于有监督学习,单塔结构则为无监督学习。
订阅专栏 解锁全文
270

被折叠的 条评论
为什么被折叠?



