噪音对比估计(NCE)是一种新的统计模型估计方法,能够用来解决神经网络的复杂计算问题,因此在图像处理和自然语言处理中得到广泛应用。
噪音对比估计(NCE, Noise Contrastive Estimation)是一种新的统计模型估计方法,由 Gutmann 和 Hyv¨arinen 提出来,能够用来解决神经网络的复杂计算问题,因此在图像处理和自然语言处理中得到广泛应用。
介绍
噪音对比估计(NCE, Noise Contrastive Estimation)是一个迂回但却异常精美的技巧,它使得我们在没法直接完成归一化因子(也叫配分函数)的计算时,就能够去估算出概率分布的参数。
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 的《词向量和语言模型》。
基于同样的为了降低计算量的需求,后来 Google 的 Word2Vec 也用上了负采样技巧,在很多任务下,它还比基于 Huffman Softmax 的效果要好,尤其是那个“词类比(word analogy)”实验。这里边的奥妙,我们马上就来分析。