news 2026/6/19 5:34:12

Word2Vec Skip-Gram 模型

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Word2Vec Skip-Gram 模型

Word2Vec 是什么?

Word2Vec 是一种将单词映射为固定长度稠密向量(词向量) 的神经网络模型。

它通过无监督学习从大规模语料中捕捉词的语义和句法信息,使语义相近的词在向量空间中距离较近(如 “king” 和 “queen”)。

核心思想是:一个词的含义可以由其上下文来体现。

Word2Vec 有两种主要架构:

  • CBOW (Continuous Bag-of-Words):用上下文词预测中心词。
  • Skip-gram:用中心词预测上下文词(本文重点)。

Skip-gram 模型结构

Skip-gram 是一个三层神经网络:

  • 输入层:中心词(one-hot 编码)
  • 隐藏层:词嵌入(低维稠密向量)
  • 输出层:softmax 多分类,预测上下文词训练目标:最大化给定中心词时,实际上下文词出现的概率。

具体例子

图例

设定

  • 词表大小 V=5V=5(词汇:[the, cat, dog, mouse, bird])
  • 嵌入维度 N=3N=3
  • 中心词 = “cat”(索引 1)
  • 上下文词 = “dog”(索引 2)

输入层 → 隐藏层

输入向量:“cat” 的 one-hot 表示(长度为 5,位置 1 为 1,其他为 0):
x=[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.50.10.60.40.10.20.50.80.20.30.4

隐藏层h 计算:h=WT⋅xh = W^T \cdot xh=WTx。由于 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′W'W是 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.20.20.70.30.30.80.40.40.90.50.51.00.6

输出得分u=h⋅W′u = h \cdot W'u=hW(形状为 1×V):
u=[0.30.60.8]⋅[0.10.20.30.40.50.60.70.80.91.00.20.30.40.50.6]=[0.3∗0.1+0.6∗0.6+0.8∗0.20.3∗0.2+0.6∗0.7+0.8∗0.30.3∗0.3+0.6∗0.8+0.8∗0.40.3∗0.4+0.6∗0.9+0.8∗0.50.3∗0.5+0.6∗1.0+0.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.30.60.8]0.10.60.20.20.70.30.30.80.40.40.90.50.51.00.6=0.30.1+0.60.6+0.80.20.30.2+0.60.7+0.80.30.30.3+0.60.8+0.80.40.30.4+0.60.9+0.80.50.30.5+0.61.0+0.80.6T=[0.550.720.891.061.23]

Softmax 归一化得到概率分布:先计算指数:
e0.55=1.733,e0.72=2.054,e0.89=2.435,e1.06=2.886,e1.23=3.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.55=1.733,e0.72=2.054,e0.89=2.435,e1.06=2.886,e1.23=3.421

总和 = 1.733+2.054+2.435+2.886+3.421 = 12.529

概率:
p(the)=1.733/12.529=0.138p(cat)=2.054/12.529=0.164p(dog)=2.435/12.529=0.194p(mouse)=2.886/12.529=0.230p(bird)=3.421/12.529=0.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.529=0.138=2.054/12.529=0.164=2.435/12.529=0.194=2.886/12.529=0.230=3.421/12.529=0.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~300),W 是 V×N,W′ 是 N×V。
  • 整体参数量为 V×N+N×V=2NV,对于大词表(如 10 万词)仍是巨大的,因此实际训练中常用负采样等技术加速。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/19 5:18:02

Rnote:开源矢量手写笔记应用的终极指南

Rnote:开源矢量手写笔记应用的终极指南 【免费下载链接】rnote Sketch and take handwritten notes. 项目地址: https://gitcode.com/GitHub_Trending/rn/rnote 在数字笔记工具泛滥的今天,你是否还在寻找一款真正专注于手写体验的笔记软件&#x…

作者头像 李华
网站建设 2026/6/19 5:17:23

影刀RPA初学者必读:5个最常见误区与正确做法

影刀RPA初学者必读:5个最常见误区与正确做法 作者:林焱 很多人学影刀RPA,上来就开始拖指令、拼流程,结果做出来的东西一运行就报错,改来改去越改越乱。这篇文章专门聊聊新手最容易踩的5个坑,以及每个坑对应…

作者头像 李华
网站建设 2026/6/19 5:17:03

170. 解决扩散模型6大工程难题:DDPM训练调优、采样加速、图像伪影根治方案

摘要 扩散模型(Diffusion Models)是当前生成式AI领域最前沿的技术之一,在图像生成、音频合成、分子设计等领域展现出超越GAN和VAE的卓越性能。本文从数学原理出发,系统阐述扩散模型的前向扩散过程与反向去噪过程,提供完整的PyTorch代码实现(基于DDPM架构),并深入剖析训…

作者头像 李华
网站建设 2026/6/19 5:10:52

阿里ATH事业群与Token计费:重构AI商业化底层逻辑

1. 阿里这盘棋,不是秀技术,是在重写AI的生意规则你有没有发现,最近打开技术社区,阿里千问的消息总在刷屏?不是那种“又发了个新模型”的例行通告,而是带着一种近乎挑衅的节奏感:3月30日&#xf…

作者头像 李华
网站建设 2026/6/19 5:10:03

MCP1525与MCP1541电压基准芯片:选型、电路设计与高频问题排查指南

1. 项目概述:为什么电压基准芯片是精密电路的“定盘星”?在模拟电路设计里,尤其是涉及数据采集、电源管理或者精密测量的场合,我们常常会听到一个词——“基准”。这个基准,很多时候指的就是一个稳定、精确的电压参考点…

作者头像 李华