2017-02-16 85 views
2

据我所知,Word2Vec基于训练语料库建立单词词典(或词汇),并为词典中的每个单词输出K-dim向量。我的问题是,这些K-Dim矢量的来源究竟是什么?我假设每个向量是输入层和隐藏层之间的权重矩阵之一或隐藏层和输出层中的行或列。然而,我还没有找到任何资源来支持这一点,而且我在编程语言方面还没有足够的知识来检查源代码并自己弄清楚。任何关于此主题的澄清评论将不胜感激!Word2Vec输出矢量

回答

1

究竟是那些K-dim向量的来源是什么?我假设每个向量是输入层和隐藏层之间的权重矩阵之一或隐藏层和输出层中的行或列。

在word2vec模型(CBOW,Skip-gram)中,它输出一个单词的特征矩阵。这个矩阵是输入层和投影层之间的第一个权重矩阵(在word2vec模型中没有隐藏层,其中没有激活函数)。因为当我们在上下文中训练单词(在CBOW模型中)时,我们更新了这个权重矩阵(第二个 - 在投影和输出层之间 - 矩阵也更新了,但我们没有使用它)。意思是词汇的单词和列的意思是单词的特征(K-Dimension)。

,如果你想了解更多信息,探索其

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

0

word2vec使用机器学习来获得字表示。它使用其上下文(CBOW)预测一个单词,反之亦然(skip-gram)。

在机器学习中,您有一个损失函数来表示您的模型所产生的错误。这个错误取决于模型的参数。 训练模型意味着最小化模型参数的误差。

在word2vec中,这些嵌入矩阵是在训练期间正在更新的模型参数。我希望它能帮助你理解它们来自哪里。事实上,他们是首先随机初始化的,并在训练过程中进行更改。

可以看看这个图象从this papersimple word2vec

W¯¯矩阵映射的输入一热字表示,以该K维向量和W”矩阵映射输出的k维表示既是我们在训练期间优化的模型参数。