word2vec中CBOW和Skip-Gram训练模型的原理

转载于CBOW模型和Skip-Gram模型

前言

word2vec如何将corpus(语料库)的one-hot向量(模型的输入)转换成低维词向量(模型的中间产物,更具体来说是输入权重矩阵),真真切切感受到向量的变化,暂不涉及加速算法。

CBOW模型根据中心词W(t)周围的词来预测中心词:

word2vec中CBOW和Skip-Gram训练模型的原理_第1张图片

Skip-gram模型则根据中心词W(t)来预测周围词:

word2vec中CBOW和Skip-Gram训练模型的原理_第2张图片

CBOW模型的理解

假设我们现在的Corpus是这一个简单的只有四个单词的document:

{I drink coffee everyday}

我们选coffee作为中心词,window size设为2

也就是说,我们要根据单词"I","drink"和"everyday"来预测一个单词,并且我们希望这个单词是coffee。

输入层:上下文单词的onehot1*4维*3个词

输出层:1*4维的向量(概率表示

word2vec中CBOW和Skip-Gram训练模型的原理_第3张图片

word2vec中CBOW和Skip-Gram训练模型的原理_第4张图片



word2vec中CBOW和Skip-Gram训练模型的原理_第5张图片

word2vec中CBOW和Skip-Gram训练模型的原理_第6张图片

word2vec中CBOW和Skip-Gram训练模型的原理_第7张图片

任何一个单词的one-hot表示乘以这个矩阵都将得到自己的word embedding。

SKip-Gram模型

首先,我们建立一个10000个词的词典,输入的单词就是一个的10000维one-hot向量,而网络的输出也是一样 10,000维的向量,代表每个词预测的概率

word2vec中CBOW和Skip-Gram训练模型的原理_第8张图片

word2vec中CBOW和Skip-Gram训练模型的原理_第9张图片

模型小trick

Negative Sampling


你可能感兴趣的:(word2vec中CBOW和Skip-Gram训练模型的原理)