“噪声对比估计”杂谈:曲径通幽之妙

噪声对比估计(NCE)是一种解决指数族分布归一化因子计算难题的技巧,广泛应用于如Word2Vec的训练中。通过将问题转化为二分类问题,NCE有效地规避了配分函数的计算,降低了计算量。NCE与负采样相结合,尤其是在Word2Vec的Skip Gram模型中,能够更好地拟合词的互信息,进而提升模型性能。NCE不仅适用于无法直接计算归一化因子的情况,也是处理大规模数据时降低计算复杂性的有效方法。
摘要由CSDN通过智能技术生成

640


作者丨苏剑林

单位丨广州火焰信息科技有限公司

研究方向丨NLP,神经网络

个人主页丨kexue.fm


说到噪声对比估计,或者“负采样”,大家可能立马就想到了 Word2Vec。事实上,它的含义远不止于此,噪音对比估计(NCE, Noise Contrastive Estimation)是一个迂回但却异常精美的技巧,它使得我们在没法直接完成归一化因子(也叫配分函数)的计算时,就能够去估算出概率分布的参数。本文就让我们来欣赏一下 NCE 的曲径通幽般的美妙。 


注:由于出发点不同,本文所介绍的“噪声对比估计”实际上更偏向于所谓的“负采样”技巧,但两者本质上是一样的,在此不作区分。


问题起源


问题的根源是难分难舍的指数概率分布。


指数族分布


在很多问题中都会出现指数族分布,即对于某个变量 x 的概率 p(x),我们将其写成:


640


其中 G(x) 是 x 的某个“能量”函数,而640则是归一化常数,也叫配分函数。这种分布也称为“玻尔兹曼分布”。


在机器学习中,指数族分布的主要来源有两个。第一个来源是 softmax:我们做分类预测时,通常最后都会将全连接层的结果用 softmax 激活,这就是一个离散的、有限个点的玻尔兹曼分布了;第二个则是来源于最大熵原理:当我们引入某个特征并且已经能估算出特征的期望时,最大熵模型告诉我们其分布应该是特征的指数形式。


难算的配分函数


总的来说,指数族分布是非常实用的一类分布,不论是机器学习、数学还是物理领域,都能够碰见它。然而,它却有一个比较大的问题:不容易算,准确来说是配分函数不容易算。


具体来说,不好算的原因可能有两个。一个是计算量太大,比如语言模型(包括 Word2Vec)的场景,因为要通过上下文来预测当前词的分布情况,这就需要对几十万甚至几百万项(取决于词表大小)进行求和来算归一化因子,这种情况下不是不能算,而是计算量大到难以承受了。


另一种情况是根本算不出来,比如假设640那么就有:


640


这积分根本就没法简单地算出来呀,更不用说更加复杂的函数了。现在我们也许能从这个角度感受到为什么高斯分布那么常用了,因为,因为,因为,换个分布就没法算下去了……


在机器学习中,如果只是分类、预测,那么归一化因子算不算出来都无所谓,因为我们只要相对比较取出最大的那个。但是在预测之前,我们还面临着训练的问题,也就是参数估计,具体来说,G(x) 其实是含有一些位置参数 θ 的,准确来说要写成 G(x;θ),那么概率分布就是:


640


我们要从 x 的样本中推算出 θ 来,通常我们会用最大似然,但是不算出 Z(θ) 来我们就没法算似然函数,也就没法做下去了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值