Word2Vec输出向量

3
据我所知,Word2Vec基于训练语料库构建一个单词字典(或词汇表),并为字典中的每个单词输出一个K维向量。那么,这些K维向量的确切来源是什么呢?我猜测每个向量都是输入和隐藏层之间或隐藏层和输出层之间的权重矩阵中的一行或一列。然而,我没有找到任何支持这一观点的来源,并且我在编程语言方面的知识不够丰富,无法自己查看源代码并弄清楚。如果有关此主题的任何澄清性说明,将不胜感激!
2个回答

1
“这些K-Dim向量的来源是什么?” 我认为每个向量都是输入层和隐藏层之间或隐藏层和输出层之间的权重矩阵中的一行或一列。在word2vec模型(CBOW,Skip-gram)中,它输出一个单词的特征矩阵。这个矩阵首先是输入层和投影层之间的权重矩阵(在word2vec模型中没有隐藏层,在其中没有激活函数)。因为当我们在上下文中训练单词(在CBOW模型中),我们会更新这个权重矩阵(第二个——在投影和输出层之间的矩阵也会被更新,但我们不使用它)。在第一个矩阵中,行表示词汇单词,列表示单词的特征(K维)。如果您想要更多信息,请自行探索。

http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/


1
word2vec使用机器学习来获取单词表示。它通过上下文(CBOW)预测一个单词或者反过来(skip-gram)。
在机器学习中,你有一个损失函数来表示模型的误差。这个误差取决于模型的参数。训练模型意味着最小化与模型参数相关的误差。
在word2vec中,这些嵌入矩阵是模型的参数,在训练期间被更新。我希望这能帮助你理解它们从哪里来。实际上,它们首先是随机初始化的,然后在训练过程中改变。
你可以看一下this paper中的这张图片: simple word2vec 将输入的one-hot单词表示映射到k维向量的W矩阵和将k维表示映射到输出的W'矩阵都是我们在训练过程中优化的模型参数。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接