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.

蓝色表示输入的词,如图:

Word2Vec Tutorial - The Skip-Gram Model

1. 把训练文档建立一个词汇表,假设有10000个不同的词

2. 把每个输入用one-hot的向量表示,每个向量有10000维,在词出现的地方为1,不出现的词为0

3. 输出也是10000的向量。隐含层没有**函数,输出层用softmax regression classifier。

4. 输出层的向量是一系列的小数,不再是0和1了。

Word2Vec Tutorial - The Skip-Gram Model

3 隐藏层

是10000×300的权重矩阵,300个特征也是Google用的,

Word2Vec Tutorial - The Skip-Gram Model

权重矩阵的每一行就是我们要的,举个例子:

Word2Vec Tutorial - The Skip-Gram Model

显然,one-hot的向量可以挑选我们要的那个权重,

3 输出层

Word2Vec Tutorial - The Skip-Gram Model