噪声对比估计(NCE)损失的直观解释?


32

我从以下两个来源了解到NCE(一种候选抽样形式):

Tensorflow写

原始纸

有人可以为我提供以下帮助:

  1. NCE的工作原理的简单说明(我发现上面的内容很难解析和理解,因此直观的方法可以很好地介绍此处的数学知识)
  2. 在上面的第1点之后,自然而然地描述了它与负采样有何不同。我可以看到公式略有变化,但无法理解数学。在以下情况下,我确实对否定采样有一个直观的了解word2vec-我们从词汇表中随机选择一些样本,V并仅对那些样本进行更新,因为它们|V|很大,因此可以加快速度。如果有误,请更正。
  3. 何时使用哪一个,如何决定?如果您可以包括示例(可能易于理解的应用程序),那就太好了。
  4. NCE比负采样好吗?哪种方式更好?

谢谢。


可能对我的帖子有帮助。nanjiang.quora.com/Noise-contrastive-Estimation和theano的后续实验可以在我的github.com/jiangnanHugo/language_modeling中找到。我希望我的理解是正确的。
江南雨果

Answers:


27

摘自这篇文章:https : //stats.stackexchange.com/a/245452/154812

问题

使用“标准”神经网络学习单词向量存在一些问题。以此方式,在网络学习在给定单词窗口(网络的输入)的情况下预测下一单词的同时学习单词向量。

预测下一个单词就像预测班级。也就是说,这样的网络仅仅是“标准”多项式(多类)分类器。并且该网络必须具有与类一样多的输出神经元。当类是实际的单词时,神经元的数量是巨大的。

通常使用交叉熵代价函数训练“标准”神经网络,该函数需要输出神经元的值来表示概率-这意味着必须对网络为每个类别计算的输出“分数”进行归一化,转换为每个类别的实际概率。该标准化步骤是通过softmax函数实现的。当将Softmax应用于巨大的输出层时,其成本非常高。

(一)解决方案

为了解决此问题,即softmax的昂贵计算,Word2Vec使用了一种称为噪声对比估计的技术。此技术由[A]引入(由[B]进行了重组),然后在[C],[D],[E]中用于从未标记的自然语言文本中学习单词嵌入。

基本思想是将多项式分类问题(因为这是预测下一个单词的问题)转换为二进制分类问题。也就是说,不是使用softmax来估计输出单词的真实概率分布,而是使用二进制逻辑回归(二进制分类)。

对于每个训练样本,增强型(优化的)分类器被提供一个真对(一个中心词和另一个出现在其上下文中的词)和多个kk随机破坏对(由中心词和一个随机选择的词组成)。词汇)。通过学习区分真对和损坏的对,分类器将最终学习单词向量。

这很重要:优化的分类器不会预测下一个单词(“标准”训练技术),而只是预测一对单词是好是坏。

Word2Vec稍微自定义了该过程,并将其称为否定采样。在Word2Vec中,否定样本的单词(用于损坏的对)是从专门设计的分布中抽取的,这有利于将频率较低的单词更频繁地绘制出来。

参考文献

[A] (2005)-对比估计:针对未标记的数据训练对数线性模型

[B] (2010)-噪声对比估算:非标准化统计模型的新估算原理

[C] (2008)-用于自然语言处理的统一架构:具有多任务学习的深度神经网络

[D] (2012)-一种训练神经概率语言模型的快速简单算法

[E] (2013)-通过噪声对比估计有效地学习单词嵌入


3

老实说,如果不深入理解数学运算,就没有直观的方法来理解为什么NCE丢失会起作用。要理解数学,您应该阅读原始论文。

NCE丢失将起作用的原因是,当噪声与实际数据的比率增加时,NCE近似最大似然估计(MLE)。ķ

TensorFlow实现在实践中可行。基本上,对于每个数据,Xÿÿķķ

Δsθ0wH=sθ0wH-日志ķPñw

Pñw

ķññ=ķ

NCE的原始论文大大跳过了证明的推论,因此很难理解NCE。为了更轻松地了解有关NCE的数学知识,我在此发表了一篇博客文章,以对NCE论文中的数学进行注释:

https://leimao.github.io/article/Noise-Contrastive-Estimation/

大学二年级以上的学生应该能够理解它。


1

基本上,这是从包含真实类别和一些其他嘈杂类别标签的真实分布中选择一个样本。然后接管softmax。

这基于来自真实分布和噪声分布的采样词。

这里的基本思想是训练逻辑回归分类器,该分类器可以分离从真实分布获得的样本和从噪声分布获得的样本。记住,当我们谈论从真实分布中获得的样本时,我们仅谈论的是一个从模型分布中获得的真实类的样本。

在这里,我已经解释了NCE损失及其与NCE损失的区别。

噪声对比估计:昂贵的Softmax解决方案。


1
尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。
tuomastik '17

0

简而言之,NCE只是一个多标签分类损失函数,只有1个阳性标签和k个阴性标签。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.