图表示学习的负采样

数据挖掘 word2vec 图表 采样
2022-03-02 22:20:27

我正在观看关于图形表示学习的讲座(从这里开始),并且对他们如何定义负采样过程感到有些困惑。

演示文稿中, J. Leskovec 用下面的幻灯片简要描述了这个著名的技巧在此处输入图像描述

他参考了 Y. Goldberg 的文章来了解这个公式是如何推导出来的。问题是公式有点不同(在 sigmoid 中有额外的减号):

在此处输入图像描述

此外,在他们的著名文章中, Mikolov 等人以同样的方式定义了负采样。

我找不到 Leskovec 或任何人对这种差异的任何解释。有人会这么好心地向我解释一下吗?

1个回答

我相信幻灯片中的近似值在以下两个方面不太正确:

  • Golberg/Levy & Mikolov 论文的损失函数是正确的:在标准二元分类中,“-”符号位于 sigmoid (σ) 函数,你不能把它拉出来放在求和之前(当你考虑梯度时会发生这种情况,但那是另一回事)。

  • 当有很多类时,使用负采样(方程的第 2 行)来避免计算 softmax(第 1 行),因为它变得昂贵。但是,它们在数学上并不等价,即嵌入 (z's) 学习不同的东西。这就是为什么在 word2vec(以及类似的图嵌入模型)中,当使用每个单词/节点的边际概率作为噪声分布时,嵌入最终会分解逐点互信息(“PMI”,参见 Goldberg/Levy 论文) PV.

(注意:负采样的灵感来自于噪声对比估计(NCE)。它们不是一回事,但经常混淆,例如https://datascience.stackexchange.com/a/93326/116384。