噪声对比估计的神经语言模型

噪声对比估计的神经语言模型

 

GAN、skip-gram都提到或用到了NCE(Noise Contrastive Estimation),在NLP领域首次应用NCE就是这篇文章了

A fast and simple algorithm for training neural probabilistic language models

简介

以极大似然估计为目标的神经语言模型,往往受到训练时间长的困扰,Bengio为了提高速度提出对负样本进行重要度负采样又非常不稳定,这篇文章借鉴了首先应用于图像领域的NCE方法,在不损失效果的同时,极大地节省了训练时间,且结果相当稳定。

用极大似然估计需要计算目标概率对非目标概率的比值,后者需要遍历所有数据,不需要反复迭代的统计模型尚可,而对如神经网络这样需要反复迭代去拟合目标函数的模型,开销是巨大的,而NCE告诉人们,不需要遍历,直接从某个分布生成一些负例就好。

模型

语言模型

语言模型的任务就是给定上文(w1,...,wt-1),预测当前词(wt)的概率是多少,最原始的模型就是ngram,可以直接统计得到,在神经网络中,条件概率可以表示为当前词的得分,与其他词得分总和的比值,归一化的形式如下:

缺图 

h表示上文,w为当前词

极大似然学习过程

直接对语言模型参数求导

缺图 

右侧需要遍历所有词,开销巨大

重要度采样

修改上式右侧,以对某个分布的采样的结果为负例,得到

缺图 

需要注意的是,v(xj)=exp(s(xj,h))/Q(xj),数据从分布Q采样,v相当于一个权重,计为采样在上文的得分与分布概率之比,既然是概率之比,取值区间就是0到无穷,因此这个模型极不稳定,文章的作者基本上没有取得收敛结果

噪声对比估计

其实文章提出的模型只在上面的基础上做了一点小小的改动,把概率的比改成目标概率比上总和,这样重要度的取值就在0到1之间

缺图 

 

缺图 

与极大似然相比,由于参数减少了,训练速度提升10倍以上

其他细节

负样本越多,效果越好,下面是困惑度的结果,ML表示极大似然(Maximum Mikelihood)

缺图 

负采样的分布影响效果,下面是unigram采样和均匀分布采样的对比结果

缺图 

用语言模型来做完形填空效果也不错,甚至超过了之前的最佳结果

缺图 

用语言模型得到句子的打分,取打分最高的,这样可以同时考虑到空白处左右两侧的概率

讨论

虽然是对性能的一点小小改进,但影响巨大,改动是简单的,知道怎么改是困难的,到底好不好,用了才知道。思想已经很普遍,当只有正样本时,我们往往随机抽取样本作为负例,但将之总结成模型甚至理论,则是另一重境界。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值