nceloss/info nceloss

您所在的位置:网站首页 nlp理论 nceloss/info nceloss

nceloss/info nceloss

2024-07-10 16:42:43| 来源: 网络整理| 查看: 265

对比学习损失函数比较常用的有nceloss/infonecloss等

NCE Loss

求通俗易懂解释下nce loss?

Noise Contrastive Estimation Loss(NCE loss)是从nlp(自然语言处理)领域提出的,主要解决的分类问题中类别数过多导致的softmax交叉熵损失函数计算量过大的问题。参考如上的资料,给出nce loss的解释.

参看softmax公式:

1.x,y是正例,比如x是user,y是该用户点击过的item2.y^{\prime}是x的负例,理论上应该取自整个y的集合(公式中的I)。比如,在u2i召回中,应该取自整个物料集。3.F(x,y)代表x,y之间的匹配度,是我们的模型要建模的目标

问题在于分母问题就在于分母\sum_{y^\prime \in I} exp(F(x,y^{\prime})),理论上需要user和库中所有item都计算一遍,特别当库非常巨大时,这种计算大到不现实. 而NCE的思想就是将这种巨量softmax计算问题转换为多个二分类问题.

以u2i为例,描述如下

给定一个用户x_i他点击过的物料是正例,来自一个集合T_i再给x_i按照某个概率Q(y|x)采样一部分物料当负例,组成负例集合S_i。这些负例也就是NCE中的“N”所说的噪声noise那么一个用户x_i的所有候选集合,不再像理论softmax那样是整个物料库,而是一个有限集合C_i=T_i \bigcup S_i

NCE的二分类问题是,对于每个候选物料\forall y\in C_i

y属于T_i,算一个正样本,label=1y属于S_i,算一个负样本,label=0

那么y属于T_i的odds有多大?这里的odds可以理解成logit,就是未归一化的概率。应该等于y属于x的正例的概率P(y|x),与y属于x的负例(即,来自噪声)的概率Q(y|x),二个概率之差。即,y对应label=1的logit,G(y|x)=\log\frac{P(y|x)}{Q(y|x)}=\log P(y|x)-\log Q(y|x)。如果使以上公式更通用一些,不再用P(y|x)这样一个表示概率的小数,而是用F(y|x)表示我们模型建模的目标,比如双塔中,F(x,y)就是最后user embedding与item embedding的点积。那么给定一个样本(x,y),它属于label=1(即y\in T_i)的logit,G(x,y)=F(x,y) - \log Q(y|x)也就是要对模型的输出F(x,y)进行修正,修正量与负采样到相同y的概率Q(y|x)有关。至于第i个样本上loss,就是C_i中每个正负样本上的binary cross-entropy loss之和\begin{aligned} L_{NCE} &=-[\sum_{y_i \in T_i}\log\sigma(G(x_i,y_i)) + \sum_{y_i^{\prime}\in S_i}\log(1-\sigma(G(x_i,y_i^{\prime})))] \\ &=\sum_{y_i \in T_i}\log(1+exp(-G(x_i,y_i)))+\sum_{y_i^{\prime} \in S_i}\log(1+exp(G(x_i,y_i^{\prime}))) \end{aligned} \\其中\sigma是sigmoid函数。而G(x,y)=F(x,y) - \log Q(y|x),是修正后的x,y匹配度

说了这么多,感觉就一句话,用在集合的子集上的分类尽可能的逼近在原有集合上的效果NCE是有着很强的理论保证的,如果负采样足够多,那么nce loss的梯度与原始超大规模softmax的梯度趋于一致。info NCE Loss

有了如上nce loss的简答描述,info necloss是nce的一个简答变体,引入的主要思想是

如果你只把问题看作是一个二分类,只有数据样本和噪声样本的话,可能对模型学习不友好,因为很多噪声样本可能本就不是一个类,因此还是把它看成一个多分类问题比较合理(但这里的多分类k指代的是负采样之后负样本的数量),如下公式:

粗看,info nce loss和softmax交叉熵公式很像,如下为softmax公式:

交叉熵损失函数如下:

在有监督学习下,ground truth是一个one-hot向量,softmax的结果\hat y_+取-log,再与ground truth相乘之后,即得到如下交叉熵损失:

上式中的k在有监督学习里指的是这个数据集一共有多少类别,比如CV的ImageNet数据集有1000类,k就是1000。对于对比学习来说,理论上也是可以用上式去计算loss,但是实际上是行不通的。为什么呢?以CV领域的ImageNet数据集来举例,该数据集一共有128万张图片,我们使用数据增强手段(例如,随机裁剪、随机颜色失真、随机高斯模糊)来产生对比学习正样本对,每张图片就是单独一类,那k就是128万类,而不是1000类了,有多少张图就有多少类。但是softmax操作在如此多类别上进行计算是非常耗时的,再加上有指数运算的操作,当向量的维度是几百万的时候,计算复杂度是相当高的。

在infoness Loss的公式中, q\cdot k 是模型出来的logits,相当于上文softmax公式中的z,\tau是一个温度超参数,是个标量,假设我们忽略\tau,那么infoNCE loss其实就是cross entropy loss。唯一的区别是,在cross entropy loss里,k指代的是数据集里类别的数量,而在对比学习InfoNCE loss里,这个k指的是负样本的数量温度系数的作用

温度系数\tau虽然只是一个超参数,但它的设置是非常讲究的,直接影响了模型的效果。 上式Info NCE loss中的q\cdot k相当于是logits,温度系数可以用来控制logits的分布形状。对于既定的logits分布的形状,当\tau值变大,则1/\tau就变小,q\cdot k/\tau则会使得原来logits分布里的数值都变小,且经过指数运算之后,就变得更小了,导致原来的logits分布变得更平滑。相反,如果\tau取得值小,1/\tau就变大,原来的logits分布里的数值就相应的变大,经过指数运算之后,就变得更大,使得这个分布变得更集中,更peak. 如果温度系数设的越大,logits分布变得越平滑,那么对比损失会对所有的负样本一视同仁,导致模型学习没有轻重。如果温度系数设的过小,则模型会越关注特别困难的负样本,但其实那些负样本很可能是潜在的正样本,这样会导致模型很难收敛或者泛化能力差。



【本文地址】

公司简介

联系我们

今日新闻


点击排行

实验室常用的仪器、试剂和
说到实验室常用到的东西,主要就分为仪器、试剂和耗
不用再找了,全球10大实验
01、赛默飞世尔科技(热电)Thermo Fisher Scientif
三代水柜的量产巅峰T-72坦
作者:寞寒最近,西边闹腾挺大,本来小寞以为忙完这
通风柜跟实验室通风系统有
说到通风柜跟实验室通风,不少人都纠结二者到底是不
集消毒杀菌、烘干收纳为一
厨房是家里细菌较多的地方,潮湿的环境、没有完全密
实验室设备之全钢实验台如
全钢实验台是实验室家具中较为重要的家具之一,很多

推荐新闻


图片新闻

实验室药品柜的特性有哪些
实验室药品柜是实验室家具的重要组成部分之一,主要
小学科学实验中有哪些教学
计算机 计算器 一般 打孔器 打气筒 仪器车 显微镜
实验室各种仪器原理动图讲
1.紫外分光光谱UV分析原理:吸收紫外光能量,引起分
高中化学常见仪器及实验装
1、可加热仪器:2、计量仪器:(1)仪器A的名称:量
微生物操作主要设备和器具
今天盘点一下微生物操作主要设备和器具,别嫌我啰嗦
浅谈通风柜使用基本常识
 众所周知,通风柜功能中最主要的就是排气功能。在

专题文章

    CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭