对word2vec不了解的可以先看看这篇Word2vec入门
网上很多word2vec的前向传播和反向传播给出的推导都不是很好理解,而且对于不太同种的实现方式也没有具体说明,所以一直想把这部分的坑填上,对于skip的模型解释的也很模糊,本文以一个单词输入为引子,主要推导这部分的正向传播和反向传播,然后介绍skip-model和CBOW。
ONE-WORD-MODEL
在说word2vec模型之前,先谈一谈ONE-WORD-MODEL,这个模型使用率其实很低,先说这个是为了更好的理解word2vec的推导过程。这个模型是输入一个单词,然后输出词库中和它最接近的单词。
为了方便解释,我们约定V代表着单词库中单词的数量,N代表隐藏层数量也就是一个单词embedding_size,代表用几个离散值来表示这个单词。简化为V=4,N=5,见下图:

这个模型一共有三个层,输入层,隐藏层,输出层,两个权重分别W1,W2,在这里W2其实就是W1的转置,输入为一个one-hot形式,比如(1,0,0,0)输出也是一个one-hot形式,表示和输入最接近的词。
在开始介绍模型计算之前,先要想明白一件事情,这是一个监督学习网络,也就是我们有正确label的真实值记为Y_true,我们的输出预测值Y,在计算lost(Y,Y_true)以后去更新参数W1,W2,一开始W2是W1的转置,但是经过几次训练以后他的参数值更新以后很有可能就不是W1的转置了,当然这里也可以选用不同的权重。
隐藏层:H = W1转置 * X 得到一个(N,1)的向量
输出层: W2转置 *H 得到一个(V,1)的向量,然后经过softmax函数得到向量中每项概率加和为1的向量记为Y_pre,最后转

本文深入探讨Word2Vec的数学原理,包括ONE-WORD-MODEL的介绍,以及Skip-gram模型的正向传播、反向传播的详细推导。文章解释了如何通过滑动窗口和softmax函数构建预测上下文的模型,并讨论了CBOW模型的基础概念。

380

被折叠的 条评论
为什么被折叠?



