对比学习损失,最出名的两个,一个是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两次为负样本样本优化样本增强。
【双塔 有监督】原论文把相似当作正例,矛盾和中立当作负例。
温度系数越小,越重视困难样本。
训练目标等价于 增加正样本之间的相似度。
(a)是单塔【无监督】,(b) 是双塔【有监督】