我读到了这两个来源的NCE(一种候选抽样形式):

TensorFlow写入

原始纸

有人可以帮助我以下内容:

  1. 简单地解释了NCE的工作原理(我发现上述很难解析和了解,因此直观的东西会导致呈现的数学会很棒)
  2. 在上面的第1点之后,对这与负抽样有何不同的自然直观描述。我可以看到该公式有略有变化,但无法理解数学。我确实对负面抽样的直觉理解 word2vec - 我们从词汇中随机选择一些样本 V 仅更新这些,因为 |V| 很大,这提供了加速。如果错了,请更正。
  3. 什么时候使用哪一个,这是如何决定的?如果您可以包括示例(可能易于理解的应用程序),那将是很棒的
  4. NCE比阴性采样好吗?以什么方式更好?

谢谢你。

有帮助吗?

解决方案

从这篇文章中获取:https://stats.stackexchange.com/a/245452/154812

问题

使用“标准”神经网络学习矢量一词存在一些问题。通过这种方式,在网络学会预测一个单词窗口(网络的输入)时,学会了矢量。

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

“标准”神经网络通常经过跨凝结成本函数训练,该函数需要输出神经元的值以表示概率 - 这意味着每个类别为每个类计算的输出“得分”必须归一化,将其转换为每个班级的实际概率。通过SoftMax函数来实现此归一化步骤。当应用于巨大的输出层时,SoftMax非常昂贵。

(a)解决方案

为了处理此问题,即SoftMax的昂贵计算,Word2Vec使用了一种称为噪声对抗性估计的技术。该技术是由[a](由[b]重新重构)引入的,然后在[c],[d],[e]中用于从未标记的自然语言文本中学习单词嵌入。

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

对于每个培训样本,增强的(优化)分类器被喂食一个真对(中心单词和另一个出现在上下文中的单词)和许多KK随机损坏的对(由中心单词组成,并从该词中随机选择了一个单词词汇)。通过学习将真实对与损坏的对区分开,分类器最终将学习矢量一词。

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

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

参考

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

b](2010) - 噪声对抗性估计:不当统计模型的新估计原理

C](2008) - 自然语言处理的统一体系结构:具有多任务学习的深神经网络

D](2012) - 一种用于培训神经概率语言模型的快速而简单的算法。

E](2013) - 有效地学习单词嵌入,并具有噪声对抗性估计。

其他提示

老实说,没有直观的方式来理解为什么NCE损失将在不深刻理解其数学的情况下起作用。要了解数学,您应该阅读原始论文。

NCE损失会起作用的原因是,当噪声与真实数据之比时,NCE近似于最大似然估计(MLE) $ k $ 增加。

TensorFlow实现在实践中起作用。基本上,对于每个数据 $(x,y)$, $ y $ 是从数据中标记的类,TensorFlow NCE丢失样本 $ k $ 噪声分布的类。我们计算每个类的数字的特殊版本(来自Data +的1个 $ k $ 从噪声分布)使用等式

$$ delta s _ { theta^0}(w,h)= s _ { theta^0}(w,h) - log log kp_n(w)$$

在哪里 $ p_n(w)$ 是噪声分布。通过计算每个类的数字,TensorFlow使用这些数字来计算每个类别的二进制分类(logistic回归中的对数损失)的软磁损失,并将这些损失添加在一起作为最终的NCE损失。

但是,其实现在概念上是错误的,因为噪声与真实数据之比 $ k $ 与类的数量不同 $ n $ 从噪声分布中取样。 TensorFlow NCE不能为噪声与数据比提供变量,并隐式假设 $ n = k $ 我认为这在概念上是不正确的。

原始的NCE论文经常跳过了证明的推导,因此很难理解。为了更轻松地了解有关NCE的数学,我有一篇博客文章,介绍了NCE论文的数学注释:

https://leimao.github.io/article/noise-contrastive-estimation/.

大学大二或以上应该能够理解它。

基本上,这是从真实分布中选择一个由真实类和其他一些嘈杂类标签组成的样本。然后将SoftMax越过它。

这是基于真实分布和噪声分布的采样单词。

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

在这里,我已经解释了NCE损失及其与NCE损失有何不同。

噪声对比估计:昂贵的软马克斯的解决方案。

许可以下: CC-BY-SA归因
scroll top