word2vec是如何得到向量的(CBOW模型)

学习笔记

只是自己的学习笔记,只把自己要记忆的知识写下来。
简单理解的链接: word2vec是如何得到向量的

word2vec的准备操作:中文需要将每句话用工具分词(jieba等)

word2vec的作用:是将语料库中的词训练出各自的词向量,供NLP其他后续具体任务的使用。

word2vec的处理方法:两种训练方法CBOW模型和Skip-gram模型。]

word2vec的算法加速方法Negative SampleHierarchical Softmax

1.CBOW模型根据中心词W(t)周围的词来预测中心词
2.Skip-gram模型则根据中心词W(t)来预测周围词

word2vec是如何得到向量的(CBOW模型)

上图中两个矩阵是CBOW模型要不断学习迭代的:WvnW_{v*n}WnvW_{n*v}^{'}

输入层是被预测那个词的上下文词的one-hot向量(该向量是针对语料库中所有分词的)

第一个权重矩阵WvnW_{v*n}为输入权重矩阵,(V*N矩阵,V为自己设定的数,一般为50-300,好像是,N为one-hot向量的维数,初始化权重矩阵W)。这里的V与N具体指代的内容存疑。

接下来的步骤:将上下文单词的one-hot向量分别与输入权重矩阵相乘,得到第一次迭代的词向量(后面需要不断的迭代词向量,通过学习输入权重矩阵);将所有上下文“词向量”相加取平均值即可得到神经网络中间层。

第二个权重矩阵WnvW_{n*v}^{'}为输出权重矩阵,这个矩阵中N为one-hot向量的维度,v为自己取得数字。

接下来的步骤:运用softmax将预测结果规整到一定范围内。这里就可以用到前面提到的两个加速算法了,因为仅仅依靠softmax太慢。

加速算法Negative SampleHierarchical Softmax

如下图
word2vec是如何得到向量的(CBOW模型)

最最重要的:任何一个单词的one-hot表示乘以这个矩阵都将得到自己的word embedding。(word2vec的目的)