Word2Vec Skip-Gram 模型

📅 2026/6/19 5:34:20
Word2Vec Skip-Gram 模型
Word2Vec 是什么Word2Vec 是一种将单词映射为固定长度稠密向量词向量 的神经网络模型。它通过无监督学习从大规模语料中捕捉词的语义和句法信息使语义相近的词在向量空间中距离较近如 “king” 和 “queen”。核心思想是一个词的含义可以由其上下文来体现。Word2Vec 有两种主要架构CBOW (Continuous Bag-of-Words)用上下文词预测中心词。Skip-gram用中心词预测上下文词本文重点。Skip-gram 模型结构Skip-gram 是一个三层神经网络输入层中心词one-hot 编码隐藏层词嵌入低维稠密向量输出层softmax 多分类预测上下文词训练目标最大化给定中心词时实际上下文词出现的概率。具体例子图例设定词表大小 V5V5词汇[the, cat, dog, mouse, bird]嵌入维度 N3N3中心词 “cat”索引 1上下文词 “dog”索引 2输入层 → 隐藏层输入向量“cat” 的 one-hot 表示长度为 5位置 1 为 1其他为 0x[01000] x \begin{bmatrix} 0 \\ 1 \\ 0 \\ 0 \\ 0 \end{bmatrix}x​01000​​权重矩阵W 是 V×N 的矩阵随机初始化例如W[0.20.10.50.30.60.80.90.40.20.70.10.30.50.20.4] W \begin{bmatrix} 0.2 0.1 0.5 \\ 0.3 0.6 0.8 \\ 0.9 0.4 0.2 \\ 0.7 0.1 0.3 \\ 0.5 0.2 0.4 \end{bmatrix}W​0.20.30.90.70.5​0.10.60.40.10.2​0.50.80.20.30.4​​隐藏层h 计算hWT⋅xh W^T \cdot xhWT⋅x。由于 x 是 one-hot结果就是 W 的第 1 行索引从 0 开始$W^T \begin{bmatrix}0.2 0.3 0.9 0.7 0.5 \0.1 0.6 0.4 0.1 0.2 \0.5 0.8 0.2 0.3 0.4\end{bmatrix}$ , $h W^T \cdot x \begin{bmatrix}0.2 * 0 0.3 * 1 0.9 * 0 0.7 * 0 0.5 * 0 \0.1 * 0 0.6 * 1 0.4 * 0 0.1 * 0 0.2 * 0 \0.5 * 0 0.8 * 1 0.2 * 0 0.3 * 0 0.4 * 0\end{bmatrix}$然后得到 $h \begin{bmatrix}0.3 0.6 0.8\end{bmatrix}$, 这行的值就是“cat”的初始词向量。隐藏层 → 输出层输出权重矩阵W′WW′是 N×V 矩阵也随机初始化W′[0.10.20.30.40.50.60.70.80.91.00.20.30.40.50.6] W \begin{bmatrix} 0.1 0.2 0.3 0.4 0.5 \\ 0.6 0.7 0.8 0.9 1.0 \\ 0.2 0.3 0.4 0.5 0.6 \end{bmatrix}W′​0.10.60.2​0.20.70.3​0.30.80.4​0.40.90.5​0.51.00.6​​输出得分uh⋅W′u h \cdot Wuh⋅W′形状为 1×Vu[0.30.60.8]⋅[0.10.20.30.40.50.60.70.80.91.00.20.30.40.50.6][0.3∗0.10.6∗0.60.8∗0.20.3∗0.20.6∗0.70.8∗0.30.3∗0.30.6∗0.80.8∗0.40.3∗0.40.6∗0.90.8∗0.50.3∗0.50.6∗1.00.8∗0.6]T[0.550.720.891.061.23] u \begin{bmatrix} 0.3 0.6 0.8 \end{bmatrix} \cdot \begin{bmatrix} 0.1 0.2 0.3 0.4 0.5 \\ 0.6 0.7 0.8 0.9 1.0 \\ 0.2 0.3 0.4 0.5 0.6 \end{bmatrix} \begin{bmatrix} 0.3 * 0.1 0.6 * 0.6 0.8 * 0.2 \\ 0.3 * 0.2 0.6 * 0.7 0.8 * 0.3 \\ 0.3 * 0.3 0.6 * 0.8 0.8 * 0.4 \\ 0.3 * 0.4 0.6 * 0.9 0.8 * 0.5 \\ 0.3 * 0.5 0.6 * 1.0 0.8 * 0.6 \end{bmatrix}^T \begin{bmatrix} 0.55 0.72 0.89 1.06 1.23 \end{bmatrix}u[0.3​0.6​0.8​]⋅​0.10.60.2​0.20.70.3​0.30.80.4​0.40.90.5​0.51.00.6​​​0.3∗0.10.6∗0.60.8∗0.20.3∗0.20.6∗0.70.8∗0.30.3∗0.30.6∗0.80.8∗0.40.3∗0.40.6∗0.90.8∗0.50.3∗0.50.6∗1.00.8∗0.6​​T[0.55​0.72​0.89​1.06​1.23​]Softmax 归一化得到概率分布先计算指数e0.551.733,e0.722.054,e0.892.435,e1.062.886,e1.233.421 e^{0.55} 1.733, e^{0.72} 2.054, e^{0.89} 2.435, e^{1.06} 2.886, e^{1.23} 3.421e0.551.733,e0.722.054,e0.892.435,e1.062.886,e1.233.421总和 1.7332.0542.4352.8863.421 12.529概率p(the)1.733/12.5290.138p(cat)2.054/12.5290.164p(dog)2.435/12.5290.194p(mouse)2.886/12.5290.230p(bird)3.421/12.5290.273 \begin{aligned} p(\text{the}) 1.733 / 12.529 0.138 \\ p(\text{cat}) 2.054 / 12.529 0.164 \\ p(\text{dog}) 2.435 / 12.529 0.194 \\ p(\text{mouse}) 2.886 / 12.529 0.230 \\ p(\text{bird}) 3.421 / 12.529 0.273 \end{aligned}p(the)p(cat)p(dog)p(mouse)p(bird)​1.733/12.5290.1382.054/12.5290.1642.435/12.5290.1942.886/12.5290.2303.421/12.5290.273​实际上下文词是dog索引 (2我们希望其概率尽量大当前为 0.194。损失函数与反向传播使用交叉熵损失L−log⁡p(context)−log⁡(0.194)1.640 L -\log p(\text{context}) -\log(0.194) 1.640L−logp(context)−log(0.194)1.640通过反向传播计算损失对 W 和 W′ 的梯度然后更新权重例如学习率 0.1。更新后的权重会使dog的预测概率增大。反复迭代大量语料后W 矩阵被逐步调整其每一行最终成为一个高质量的稠密词向量。权重矩阵的来源与作用来源初始时随机赋值如上述示例。通过训练过程中的反向传播不断调整使模型能更准确地预测上下文。最终收敛后WW 和 W′W′ 都包含了词汇的语义信息实践中通常只用 WW 作为词向量。作用输入权重矩阵 W将 one-hot 向量映射为低维词向量。它的第 ii 行就是词 ii 的最终向量表示。输出权重矩阵 W′将词向量映射回词表大小的空间用于计算概率。它也是词向量的另一个版本常被忽略但有时也可作为词向量使用。矩阵大小的意义对于词表大小 VV 和嵌入维度 NN通常 100~300W 是 V×NW′ 是 N×V。整体参数量为 V×NN×V2NV对于大词表如 10 万词仍是巨大的因此实际训练中常用负采样等技术加速。