word2vec:基于层级 softmax 和负采样的 Skip-Gram

Skip-Gram

前一篇,我们学习了什么是 CBOW,今天来看 Skip-Gram,它是 word2vec 的另一种训练思路。

Skip-Gram 和 CBOW 的思路是相反的,CBOW 是由上下文得到中心词,而 Skip-Gram 是由中心词预测上下文

word2vec:基于层级 softmax 和负采样的 Skip-Gram_第1张图片

所以 Skip-Gram 的模型输入是一个中心词的词向量,输出是中心词的上下文向量。不过它并不是对 CBOW 模型的简单的颠倒,而是用一个中心词来预测窗口内除它以外的每个词,虽然从上面两个的对比图看来,Skip-Gram 的输入是一个词,输出是多个词,但其实在代码中构造训练数据时,输出也是一个词:

word2vec:基于层级 softmax 和负采样的 Skip-Gram_第2张图片

它的学习过程就像我们在讲 CBOW 的前向传播时输入是一个单词的那个流程一样,接下来我们看看 Skip-Gram 的前向计算和反向传播是怎样的,大家在看这部分推导时可以对比 CBOW 的内容。

前向计算

word2vec:基于层级 softmax 和负采样的 Skip-Gram_第3张图片

和 CBOW 中一样,模型两个核心矩阵 W 和 W‘,维度如下:

W 是 embedding 矩阵,维度是:

vocab_size * embe

你可能感兴趣的:(自然语言处理面试基础)