我在阅读2014年的论文《word2vec解释:推导Mikolov等人提出的负采样词嵌入方法》(注意:直接下载链接),其中提到了“负采样”的概念:
Mikolov等人提出负采样方法作为一种更有效的推导词嵌入的方式。虽然负采样基于skip-gram模型,但实际上它优化的是不同的目标。
我对负采样的概念有些困惑。
https://arxiv.org/pdf/1402.3722v1.pdf
有谁能用通俗的语言解释一下负采样是什么吗?
回答:
word2vec
的理念是最大化在文本中彼此接近(在上下文中)的词向量之间的相似性(点积),并最小化不相关的词的相似性。在您链接的论文的方程(3)中,暂时忽略指数运算。您有
v_c . v_w ------------------- sum_i(v_ci . v_w)
分子基本上是词c
(上下文)和词w
(目标词)之间的相似性。分母计算所有其他上下文ci
与目标词w
的相似性。最大化这个比率可以确保在文本中更接近的词具有比不相关的词更相似的向量。然而,计算这个过程可能非常慢,因为有许多上下文ci
。负采样是解决这个问题的几种方法之一——只随机选择几个上下文ci
。最终结果是,如果cat
出现在food
的上下文中,那么food
的向量与cat
的向量(通过它们的点积来衡量)的相似度会比与几个其他随机选择的词(例如democracy
、greed
、Freddy
)的向量更高,而不是与语言中的所有其他词相比。这使得word2vec
的训练速度大大加快。