噪音对比估计(NCE, Noise Contrastive Estimation)是一种新的统计模型估计方法,由Gutmann和Hyv¨arinen提出来,能够用来解决神经网络的复杂计算问题,因此在图像处理和自然语言处理中得到广泛应用。
介绍噪音对比估计(NCE, Noise Contrastive Estimation)是一个迂回但却异常精美的技巧,它使得我们在没法直接完成归一化因子(也叫配分函数)的计算时,就能够去估算出概率分布的参数。本文就让我们来欣赏一下 NCE 的曲径通幽般的美妙。
注:由于出发点不同,本文所介绍的“噪声对比估计”实际上更偏向于所谓的“负采样”技巧,但两者本质上是一样的,在此不作区分。
NCE与负采样简述NCE 的系统提出是在 2010 年的论文 Noise-contrastive estimation: A new estimation principle for unnormalized statistical models 中,后面训练大规模的神经语言模型基本上都采用 NCE 或者类似的 loss 了。
论文的标题其实就表明了 NCE 的要点:它是“非归一化模型”的一个“参数估计原理”,专门应对归一化因子难算的场景。
但事实上,“负采样”的思想其实早就被使用了,比如就在 2008 年的 ICML 上,Ronan Collobert 和 Jason Weston 在发表的 A Unified Architecture for Natural Language Processing: Deep Neural Networks with Multitask Learning 中已经用到了负采样的方法来训练词向量。
要知道,那时候距离 Word2Vec 发布还有四五年。关于词向量和语言模型的故事,请参考 licstar 的《词向量和语言模型》1。
基于同样的为了降低计算量的需求,后来Google的Word2Vec也用上了负采样技巧,在很多任务下,它还比基于Huffman Softmax的效果要好,尤其是那个“词类比(word analogy)”实验。这里边的奥妙,我们马上就来分析。
本词条内容贡献者为:
王慧维 - 副研究员 - 西南大学