Word2Vec Tutorial - The Skip-Gram Model
翻译自:http://mccormickml.com/2016/04/19/word2vec-tutorial-the-skip-gram-model/
1 模型
skip-gram神经网络模型事实上很简单,仅训练一个有一层隐含层的简单网络来完成任务。但我们不使用这个网络,而是要隐含层的权重,这个就是我们要的词向量。
可以在自动编码器看到这种做法,在隐含层压缩输入向量,然后在输出层解压缩获得原始向量,训练完成后,隐含层的权重就是我们要的,这是训练无标记数据获得特征的好办法。
2 例子
给定句子中的一个词,查看这个词附近的词语,这个网络就是要获得这些附近词语的概率。
附近的意思是窗口大小,也就是这个词的前后几个词,窗口5表示这个词的前5个词和后5个词。
输出的概率表示其他词与这个词相关性大小,比如训练词语“soviet”,那么词语“union” 和“Russian”的输出概率会比较大。
我们用训练文档中的词对来训练这个网络,比如句子“The quick brown fox jumps over the lazy dog.”,窗口大小为2.
蓝色表示输入的词,如图:
1. 把训练文档建立一个词汇表,假设有10000个不同的词
2. 把每个输入用one-hot的向量表示,每个向量有10000维,在词出现的地方为1,不出现的词为0
3. 输出也是10000的向量。隐含层没有**函数,输出层用softmax regression classifier。
4. 输出层的向量是一系列的小数,不再是0和1了。
3 隐藏层
是10000×300的权重矩阵,300个特征也是Google用的,
权重矩阵的每一行就是我们要的,举个例子: