The Skip-Gram Model
The Skip-Gram Model
在许多自然语言处理任务,单词一般被表示成它们的TF-IDF值。TF-IDF虽然可以用来
衡量单词对文本的重要程度,但是并没有包含任何的语义信息。Word2Vec代表的是
一类将词转化为向量的神经网络模型, 词向量较好得保存了词的语义信息。实体识别、
文档分类、情感分析等自然语言处理任务,大多都用词向量作为特征,并取得了很
好的效果。下面我们介绍一下典型的Word2Vec模型, The Skip-Gram Model
模型的输入输出
输入是中心词的独热编码, 输出是中心词与附近词的相似度。
V是词表大小,N是嵌入向量长度,就是我们所需要的所有词的嵌入表示
上面的解释可以你看得一片雾水。下面结合实际讲一讲。
God helps those who help themselves.
假设helps是中心词, windowsize为2(分别从左边、右边选两个词作为附近词),
num_skips为4(从窗口中选取多少个附近词作为输出)则我们可以得到
[helps, God], [helps, those], [helpss, who]这三组sample
前向传播
skip-gram神经网络如下
]
helps独热编码为[0,1,0,0,0,0], 经过前向传播,先与W相乘得到一个N为的向量(其实就是helps的嵌入表示)
再与W’相乘得到一个V维的向量(其实V与词表中各个词的相似度,或者称为共现概率)。假设输入是[helps,God]
我们找到helps与God的共现概率作为输出(其实相乘的时候只需要和W’中God对应的向量相乘即可,不需要与W’全部相乘)。
反向传播
反向传播的关键是定义损失函数,我们目的是要极大化helps与God的共现概率,所以我们定义损失函数为
输出的相反数,即共现概率的相反数,如果训练的时候是批量处理的话,共现概率相加。
参考
理解Word2Vec 之 Skip-Gram 模型 https://zhuanlan.zhihu.com/p/27234078
Word2Vec介绍:直观理解skip-gram模型 https://zhuanlan.zhihu.com/p/29305464
github实现