Word2Vec 揭秘:如何让计算机“理解“词语?

一、核心思想:从"上下文"猜词义

语言学家有个发现:"看一个词的朋友,就知道它的意思"

语境 推断
"猫坐在垫子上" "垫子"≈ 某种平面物体
"咖啡洒在垫子上" "垫子"≈ 可吸水的东西

Word2Vec 把这个直觉变成数学:让模型通过"猜词游戏"学习词语的向量表示


二、两种玩法:CBOW vs Skip-gram

就像做填空题和造句题,Word2Vec 提供两种训练模式:

模式 A:CBOW(完形填空)

任务:用周围的词,猜中间的词

复制代码
上下文:[the, cat, on, the]  →  预测中心词:sits

模式 B:Skip-gram(一词造多句)

任务:用中间的词,猜周围的词(更常用,效果更好)

复制代码
中心词:sits  →  预测上下文:the, cat, on, the

三、神经网络长什么样?

结构出奇地简单------只有三层

复制代码
输入层(One-hot)    隐藏层(投影)      输出层(Softmax)
   50000 维  ──→     300 维      ──→    50000 维
  (词表大小)      (嵌入维度)       (预测概率分布)
         ↑___________________________|
                  这两个权重矩阵
                  就是我们要的词向量

关键设计 :隐藏层没有激活函数 ,纯线性变换。输入→隐藏的权重矩阵 WWW 的第 iii 行,就是第 iii 个词的向量。


四、训练技巧:如何让大词表跑得动?

原始 Softmax 要遍历整个词表(比如 5 万个词),计算量爆炸。Word2Vec 用两招解决:

1. 负采样(Negative Sampling)⭐

思路:把多分类变成二分类

  • 正样本:真实的上下文词对(sits, cat)→ 标签 1
  • 负样本:随机采样几个词组成假样本(sits, apple)→ 标签 0

效果:每次只更新 1 个正样本 + 5-20 个负样本,速度提升 1000 倍。

2. 高频词降采样

"the"、"a" 这类词出现太频繁,信息量少还干扰训练。按概率丢弃:

P(wi)=1−tf(wi)P(w_i) = 1 - \sqrt{\frac{t}{f(w_i)}}P(wi)=1−f(wi)t

频率越高,被丢弃概率越大。


五、训练完成后,发生了什么?

神奇现象:向量空间里的"语义几何"

python 复制代码
# 经典例子
vector("国王") - vector("男人") + vector("女人") ≈ vector("女王")

# 其他例子
巴黎 - 法国 + 意大利 ≈ 罗马
跑步 - 跑 + 跳 ≈ 跳跃

原理 :Word2Vec 把语义关系编码成了向量的方向。"性别"对应某个固定方向的偏移,"首都-国家"对应另一个方向。

相似度计算

余弦相似度找近义词:

复制代码
cos(向量A, 向量B) = 1  →  语义完全相同
cos(向量A, 向量B) = 0  →  完全无关
cos(向量A, 向量B) = -1 →  语义相反

六、Word2Vec 的局限与进化

问题 原因 后继方案
一词一义 "bank"(银行/河岸)共享同一个向量 ELMo:上下文相关向量
局部窗口 只能看到附近 5-10 个词 BERT:Transformer 全局注意力
无句法结构 不懂"猫追狗"和"狗追猫"的区别 GPT/BERT:深层语义理解

七、一句话总结

Word2Vec 用浅层神经网络 玩"猜词游戏",把词语共现统计 压缩成低维向量 ,让语义关系变成可计算的空间几何------这是现代 NLP 的奠基之作。


相关推荐
Kel1 天前
Claude Code 架构深度剖析:从终端输入到大模型响应的完整过程
人工智能·设计模式·架构
taWSw5OjU1 天前
从模型评估、梯度难题到科学初始化:一步步解析深度学习的训练问题
人工智能·深度学习
刘佬GEO1 天前
【无标题】
网络·人工智能·搜索引擎·ai·语言模型
用户2018792831671 天前
/export之一个程序员与AI的“破案笔记”
人工智能
Ricardo-Yang1 天前
SCNP语义分割边缘logits策略
数据结构·人工智能·python·深度学习·算法
新缸中之脑1 天前
微调BERT进行命名实体识别
人工智能·深度学习·bert
用户2018792831671 天前
故事:小白的“无限循环”噩梦与大师的 /loop 魔法
人工智能
段小二1 天前
Token 费用失控、VIP 用户体验一样烂:Context Engineering 才是关键
人工智能·后端
用户2018792831671 天前
/branch 你点了一份代码,Cli 帮你分成了两碗
人工智能
kishu_iOS&AI1 天前
机器学习 —— 线性回归
人工智能·机器学习·线性回归