目录
前言
最近读了word2vec Parameter Learning Explained,觉得它是一篇很好的讲解word2vec的论文。
Continuous Bag-of-Word Model
-
One-word context
连续词袋模型的思想是用上下文预测中心词,先推导只有一个中心词的情况,然后可以很容易的推广到多个中心词的情况以及Skip-Gram
大致逻辑是:第一层神经元代表的是上下文对应的onehot向量,经过矩阵W的线性变换得到隐层表示h,然后经过W’ 的线性变换,再经过softmax得到输出y,即一个条件概率分布。然后计算y与真实标签的损失L,通过梯度下降更新参数。输入x是一个Vx1的onehot向量,W 是一个VxN 的矩阵,它的每个行向量代表输入词的词向量,W’ 是一个NxV 的矩阵,它的每个列向量可以看作输出词的词向量。
x = [ 0 ⋮ 1 ⋮ 0 ] , W = [ w 1 T ⋮ w N T ] , W ′ = [ ∣ ⋯ ∣ w 1 ′ ⋯ w N ′ ∣ ⋯ ∣ ] x = \left[ \begin{matrix} 0 \\ \vdots \\ 1 \\ \vdots \\ 0 \end{matrix} \right], W = \left[ \begin{matrix} w_{1}^T \\ \vdots \\ w_{N}^T \end{matrix} \right], W^\prime = \left[ \begin{matrix} | & \cdots & | \\ w^\prime_{1} & \cdots & w^\prime_{N}\\ | & \cdots & | \end{matrix} \right] x=⎣⎢⎢⎢⎢⎢⎢⎡0⋮1⋮0