negative sampling负采样和nce loss

negative sampling负采样和nce loss

一、Noise contrastive estimation(NCE)

语言模型中,在最后一层往往需要:根据上下文c,在整个语料库V中预测某个单词w的概率,一般采用softmax形式

在这里插入图片描述


其中partition function Z(c)的目的是normalize,使得p为一个概率分布。一般根据最大似然法估计上述参数,但是这个公式的计算量是巨大的,因为要遍历V中的所有单词。

此时NCE就闪亮登场了,为了避免巨大的计算量,NCE的思路是将softmax的参数估计问题 转化成 二分类。二分类两类样本分别是真实样本和噪声样本:正样本是由经验分布

在这里插入图片描述
生成的(即真实分布)标签D=0,负样本则是噪声由q(w)生成 对应标签D=1。假设c代表上下文context,从噪声分布中提取k个噪声样本,在总样本(真实样本+噪声样本)中w代表预测的目标词。
那么(d,w)的联合概率分布如下:

在这里插入图片描述
由上面公式不难得出:在总样本中 P(w/c) = p(d=0,w/c) + p(d=1,w/c)

Tips:P指的是正负样本的整体分布,这与之前的正样本的经验分布在这里插入图片描述不同

继续根据条件联合概率公式 可以得出:p(d=0/w,c) = p(d=0,w/c) / p(w/c)

p(d=1/w,c)类似

即下面公式:

在这里插入图片描述
其实这个公式直接根据条件概率理解。

NCE利用模型分布在这里插入图片描述
来代替经验分布 在这里插入图片描述,到此就与最开始讲的softmax联系起来了,通过最大化likelihood来得到最优的参数theta。但是此处还是没有解决问题,因为在这里插入图片描述和最开始的公式一样,需要遍历所有V计算partition function Z©。

  1. NCE接下来提出了两个假设:
  2. partition function Z(c)不需要遍历V得到,而是通过参数Zc来进行估计
  3. 由于神经网络具有很多参数,因此可以将Zc设定为一个固定值Zc=1,这种设定对于所有的c都是有效的([Mnih and Teh2012])

根据上述假设,公式可以进一步写成:

在这里插入图片描述
之后根据最大化log-likelihood来训练参数,其中选定k个负样本,那么loss函数为:

在这里插入图片描述
其中第二项依旧很难计算,因为涉及到k期望expectation(E),因此此处采用蒙特卡洛估计Monte Carlo approximation,根据采样k个样本来代替k期望:

在这里插入图片描述

二、Negative Sampling

负采样Negative Sampling是NCE的一个变种,概率的定义有所区别:

在这里插入图片描述
对于NCE的概率公式:如果k=|V|并且q是均匀分布uniform,那么k*q=1,此时两个概率公式就是一致的。

但是,除了上述情况以外

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值