0

Words as Vectors

这篇博客是iksnic的博客Words as Vectors的翻译,部分翻译有做改动,如有翻译不当的地方,请在评论区提出。下面是译文。

向量空间模型是信息检索中非常有名的模型,该模型中每个文档被当做是一个向量。向量中的元素表示对应的单词在文档中的权重或重要程度,利用余弦相似度可以计算两个文档之间的相似度。

虽然使用向量来表示单词的方法已经出现了一段时间,但是把单词映射到向量的词嵌套技术已经兴起。其中Tomáš Mikolov的 Word2vec算法影响很大,该算法使用大量文本来产生低(原文是high,但是我举得词嵌套的矩阵的维度相对词典的维度来说是低维度)维度(50-300)来表示单词以及在获得没有借助外部标注下获得单词与单词之间的关系。这种表示方法也获取了语言的规律,比如它通过向量操作vec(‘Paris’) – vec(‘France’) + vec(‘Italy’)产生一个向量来近似表示vec(‘Rome’)

如下图所示,word2vec算法使用单隐藏层的全连接神经网络,如下图所示。隐藏层的神经元是线性神经元,而输入层的神经元的数量和训练数据的单词的数量一致。隐藏层的大小与最后词向量的维度一致,输出层的维度和输入层维度一致。因此,假设需要学习的词向量包含$V$个单词以及每个词向量有$N$维,从输入层到隐藏层之间的权重可以用$V \times N$的权重矩阵$WI$表示,其中每一行表示一个单词,同样从隐藏层到输出层的权重矩阵是一个$N \times V$的矩阵$WO$,其中每一列表示词典中的一个单词。网络的输入使用one-hot encoding表示,也即在输入向量中只有对应的单词是$1$其他的都是$0$。

word2vec的网络结构

Continue Reading