封面来自Home - colah's blog
.
基于深度学习的自然语言处理这本书里语言模型章节提到了词向量是语言模型的副产物.
神经网络语言模型(NNLM)把前几个词作为输入,生成一个上下文向量h,之后这个h与矩阵W相乘,输出softmax之后得到每个词的概率.
因为h是与W的每一列相乘经过softmax对应每个词的概率,所以W的每一列可以是每个词的词向量表示.
相似的论证可以得出NNLM中onehot输入的时候的矩阵E也可以作为词向量.因为矩阵E离onehot更近,所以更多作为词向量.
因为NNLM是语言模型,所以词向量是副产物。
后来的发展:
下面这篇文章写的非常好,ruder的博客,非常好的一系列文章,到glove为止
On word embeddings - Part 1,中文地址 漫谈词向量_网络_CSDN 人工智能-CSDN博客
csdn的 KK4SBB早年翻译的,感谢
一、NNML
简单来说,ruder认为Benigo的 NNML有三个模块:
1. Embedding Layer: 模型的这一层将索引向量与embedding矩阵相乘,生成词向量;
2. Intermediate Layer(s):一层或多层,生成输入层的中间表示,比如,用一个全连接层对前n个词