为什么所有 NLP 文献都使用噪声对比估计损失进行负采样而不是采样的 softmax 损失?

数据挖掘 机器学习 nlp word2vec 词嵌入
2021-10-10 13:05:26

采样的 softmax 函数类似于常规的 softmax,但随机选择给定数量的“负”样本。

这与 NCE Loss 不同,后者根本不使用 softmax,它对上下文/标签使用逻辑二元分类器。在 NLP 中,“负采样”基本上是指基于 NCE 的方法。

更多细节在这里

我已经测试了两者,它们都给出了几乎相同的结果。但在词嵌入文献中,他们总是使用 NCE 损失,从不采样 softmax。

有什么理由吗?采样的 softmax 似乎是防止将 softmax 应用于所有类的更明显的解决方案,所以我想 NCE 损失一定有一些充分的理由。

1个回答

负采样(源自 NCE)和采样 SoftMax 都使用少量样本来绕过完整 SoftMax 的计算。

主要问题来自链接pdf中的此评论:

采样 Softmax

(一种更快的训练 softmax 分类器的方法)

它仅用于采样的 SoftMax,尽管负采样的速度与使用少量样本的原因相同。如果他们的表现处于同一水平,这可能是研究人员不相信切换到采样 SoftMax 的原因。在学术界,出于可信度的考虑,老的方法几乎总是比新的但同样有效的方法更受青睐。

负抽样是 NCE 减去逻辑分类器。粗略地说,它只是借用了术语“F(target) + sum of F(negative sample)s”。负采样在 2013 年的 Word2Vec 论文中最为突出(截至目前有 11K 引用),并得到了数学严谨的NCE 论文 (2012)的支持。另一方面,本文(2015 年)引入了采样 SoftMax,用于特定任务(机器翻译)和有偏近似:

在本文中,我们提出了一种基于(有偏)重要性采样的近似训练算法,该算法允许我们训练具有更大目标词汇量的 NMT 模型

注意到负采样还允许我们“使用更大的目标词汇”进行训练。