#NlP之word2vec 的前世今生
2013年,Google开源了一款用于词向量计算的工具——word2vec,引起了工业界和学术界的关注。首先,word2vec可以在百万数量级的词典和上亿的数据集上进行高效地训练;其次,该工具得到的训练结果——词向量(word embedding),可以很好地度量词与词之间的相似性。随着深度学习(Deep Learning)在自然语言处理中应用的普及,很多人误以为word2vec是一种深度学习算法。其实word2vec算法的背后是一个浅层神经网络。
#词向量的基础
##one-hot 表示
在很早之前就有用词向量表示词,但是词向量较为冗长,词向量的维度是整个词表大小,只有词对应的位置为一,其余都是0。词向量的维度过大,且构成的矩阵极其稀疏,并且one-hot表示会丢掉词于此之间的关系。
Dristributed representation可以解决One hot representation的问题,它的思路是通过训练,将每个词都映射到一个较短的词向量上来。所有的这些词向量就构成了向量空间,进而可以用普通的统计学的方法来研究词与词之间的关系。这个较短的词向量维度是多大呢?这个一般需要我们在训练时自己来指定。如下图所示,将“red mini van”这个单词映射到3维向量上,实际是对向量进行了降维处理。
因为使用disturbuted representation表示词向量,所以可以看出词于词之间的关系,有了向量就可以进行向量表示,
(KING)-(MAN)+(WOMAN)