word2vec 中的特征矩阵是什么?

数据挖掘 机器学习 神经网络 word2vec
2021-10-13 05:16:09

我是神经网络的初学者,目前我正在探索 word2vec 模型。但是,我很难理解特征矩阵到底是什么。

在此处输入图像描述

我可以理解第一个矩阵是给定单词的单热编码向量,但是第二个矩阵意味着什么?更具体地说,这些值(即 17、24、1 等)中的每一个是什么意思?

2个回答

word2vec 背后的想法是用维度为d的实数向量来表示单词因此,第二个矩阵是这些词的表示。

该矩阵的第i行是第i个单词的向量表示。

假设在您的示例中,您有 5 个单词:[“Lion”、“Cat”、“Dog”、“Horse”、“Mouse”],那么第一个向量 [0,0,0,1,0] 表示您'正在考虑“Horse”这个词,所以“Horse”的表示是[10,12,19]。类似地,[17, 24, 1] 是“Lion”这个词的表示。

据我所知,这些表示中的每个数字都没有专门的“人类意义”。一个数字不代表这个词是否是动词,是否是形容词......这只是你改变的权重来解决你的优化问题来学习你的词的表示。

本教程可能会有所帮助: http: //mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/尽管我认为您放置的图像来自此链接。

您也可以查看此内容,这可能有助于您开始使用 TensorFlow 使用词向量:https ://www.tensorflow.org/tutorials/word2vec

TL;博士

第一个矩阵以一种热格式表示输入向量

第二个矩阵表示从输入层神经元到隐藏层神经元的突触权重

更长的版本

“特征矩阵到底是什么”

看来您没有正确理解表示。该矩阵不是特征矩阵,而是神经网络的权重矩阵。考虑下面给出的图像。特别注意输入层矩阵与权重矩阵相乘的左上角。 在此处输入图像描述

现在看右上角。这个矩阵乘法 InputLayer 点积与权重转置只是一种方便的方式来表示右上角的神经网络。

因此,为了回答您的问题,您发布的方程式只是 Word2Vec 算法中使用的神经网络的数学表示。

第一部分,[0 0 0 1 0 ... 0] 将输入单词表示为一个热向量,另一个矩阵表示每个输入层神经元与隐藏层神经元的连接的权重。

在 Word2Vec 训练时,它会反向传播到这些权重中并对其进行更改,以更好地将单词表示为向量。

训练完成后,您仅使用此权重矩阵,将 [0 0 1 0 0 ... 0] 表示为“狗”,并将其与改进的权重矩阵相乘,以获得“狗”在维度上的向量表示 =没有隐藏层神经元。

在您提供的图表中,隐藏层神经元的数量为 3

所以右手边基本上是词向量。

图片来源:http ://www.datasciencecentral.com/profiles/blogs/matrix-multiplication-in-neural-networks