← 返回算法与AI总览 算法与AI · 知识点深化 · 词嵌入与 Word2Vec
知识点深化 · 词嵌入

词嵌入与 Word2Vec:把词义变成一串数字

机器不认识「猫」「狗」,只认数字。怎么让机器知道「猫」和「狗」意思相近、和「汽车」差很远?这就是词嵌入:把每个词映射成一个低维稠密向量,意思近的词在空间里挨得近。这一页从 one-hot 的痛点讲起,搞懂 CBOW、Skip-gram、负采样和余弦相似度。

① 小白第一课怎么学(4 步走,约 55 分钟)

词嵌入就是让机器把「词义」变成一串数字向量:

1看直观(10 分钟)
读第②③部分:想象把每个词放到一张「词义地图」上,意思近的词挨得近。
2记概念(15 分钟)
背第④部分:one-hot、分布式表示、CBOW/Skip-gram、负采样。
3算例题(15 分钟)
精读第⑤部分,算一次余弦相似度。
4刷题纠错(15 分钟)
做第⑦⑩部分,错题回到第⑥部分。
本课小目标学完你要能:① 说清 one-hot 为什么不好;② 区分 CBOW 和 Skip-gram;③ 会用余弦相似度判断两个词向量的相似度。

② 一图看懂:词嵌入在干嘛

词嵌入 Word2Vec one-hot 维度灾难、词间无关 稠密向量 Embedding 低维、意思近挨得近 CBOW 用上下文猜中心词 Skip-gram 用中心词猜上下文 负采样 加速训练 余弦相似度 量向量夹角算相近
读法:one-hot 太差 → 学稠密向量;学的方式有 CBOW(上下文猜中心)和 Skip-gram(中心猜上下文);负采样加速;用余弦相似度比较。

③ 先认识它:把词放到一张「词义地图」上

机器不认识「猫」「狗」,只认数字。最笨的办法 one-hot:词典有 V 个词,就编一个 V 维向量,只有该词那一位是 1,其余是 0。

问题来了:

· 词典有 1 万个词,每个向量就 1 万维,太占地方(维度灾难)。

· 「猫」和「狗」的向量两两正交,点积为 0——机器以为它俩毫无关系。

词嵌入的思路:把每个词映射到一个低维稠密向量(比如 100 维),意思相近的词(猫/狗)在空间里挨得近,意思远的(猫/汽车)离得远。

猫 狗 兔子 汽车 飞机 宠物抱团,交通工具抱团
分布式表示的直觉「一个词的意思,由它常和谁一起出现决定」(分布假说)。猫常和狗、宠物、抓老鼠一起出现;汽车常和马路、驾驶一起出现。训练就是让共现的词向量靠近。

④ 完整体系与方法表

one-hot vs 词嵌入对照

one-hot词嵌入 Embedding
维度V(词典大小,上万)d(如 100~300)
稀疏/稠密稀疏(只有一个 1)稠密(每维都是小数)
词间关系两两正交、无关意思近的距离近

Word2Vec 两种训练方式

模型做什么直觉
CBOW用周围上下文预测中间中心词看到上下文,猜中间那个词
Skip-gram用中心词预测周围上下文看到一个词,猜它周围会出现啥

余弦相似度

用向量夹角衡量相似度(不关心长度) cos(a,b) = (a·b) / (|a|·|b|)  ∈ [−1, 1]
越接近 1,两个词意思越相近。
负采样直觉完整 Softmax 要对整个词典算概率,太慢。负采样只挑几个「负样本」(不相关的词)来对比训练,大幅加速。

⑤ 应用场景与典型例题

例1(one-hot 维度)词典有 5000 个词,one-hot 向量几维?
每词一位。
每个词对应一维,所以是 5000 维,且只有一个位置是 1。
例2(CBOW vs Skip-gram)「晴朗的___今天」里用「的/今天」猜中间空,是哪种?
用上下文猜中心词。
用周围词预测中间词,这是 CBOW。反过来用中间词猜周围就是 Skip-gram。
例3(余弦相似度)向量 a=(1,0),b=(1,1),cos(a,b)=?
套公式。
a·b=1×1+0×1=1;|a|=1;|b|=√2。cos=1/(1·√2)=≈0.707。夹角 45°,比较相近。
词向量好玩的地方训练好后能做向量算术:国王 − 女王 ≈ 男人 − 女人,即 国王−男人+女人≈女王。语义关系被编码进了几何方向。

⑥ 高频错误诊断(4 条)

错误 1:以为 one-hot 是好的词表示one-hot 高维稀疏、词间正交,表达不了相似性,这正是词嵌入要解决的问题。
错误 2:搞反 CBOW 和 Skip-gramCBOW=上下文猜中心(快);Skip-gram=中心猜上下文(对低频词更好)。别记反。
错误 3:把词向量当人工写的词嵌入是从大量语料中学出来的,不是人工标注,靠共现统计。
错误 4:用欧氏距离替代余弦比较词相似度常用余弦(看方向不看长度);但余弦对向量长度归一化不敏感,按任务选。

⑦ 考点与真题演练(4 题)

考点分布

考法出题形式应对
one-hot 缺点问为什么不用它高维稀疏、词间无关
CBOW/Skip-gram判断谁猜谁上下文猜中心=CBOW
相似度算余弦点积除模长乘积

真题1. one-hot 表示的主要问题是?

真题2. Skip-gram 的训练目标是?

真题3. 比较两个词向量语义相似度,最常用?

真题4. 词嵌入相比 one-hot 的核心优势是?

⑧ 必背公式卡

one-hot:V 维稀疏,词间正交 维度灾难
词嵌入:低维稠密向量,意思近挨得近 分布式表示
CBOW:上下文 → 中心词 快
Skip-gram:中心词 → 上下文 低频词好
负采样:只对比少量负样本,加速训练 代替全 Softmax
余弦:cos=(a·b)/(|a||b|),越近 1 越相似 看夹角
语义算术:国王−男人+女人≈女王 关系编码成方向

⑨ 应用输出:用词嵌入思维建模

建模场景:电商搜索「苹果手机」想召回相似商品
· 把「苹果」「手机」「水果」「笔记本」都训成词向量。
· 「苹果」在不同语境会和「手机/电脑」靠近,也会和「水果」有另一层关系。
· 用户搜「苹果手机」,用「苹果+手机」的向量,余弦找出相邻词,召回相关商品。
· 比关键词精确匹配强:搜「iphone」也能召回「苹果手机」,因为俩向量很近。
口述训练说三句:「one-hot 高维稀疏、词间无关;词嵌入是低维稠密向量、意思近挨得近;CBOW 上下文猜中心、Skip-gram 中心猜上下文,相似度用余弦。」

⑩ 分层练习 18 题(基础 6 + 中档 6 + 拔高 6)

▍基础 6 题

基础1one-hot 向量维数等于什么?
词典大小 V。
基础2词嵌入一般是稀疏还是稠密?
稠密,每维都是小数。
基础3CBOW 用什么猜什么?
用上下文猜中心词。
基础4Skip-gram 用什么猜什么?
用中心词猜上下文。
基础5余弦相似度范围?
[−1, 1],越接近 1 越相似。
基础6负采样用来干嘛?
加速训练,只对比少量负样本。

▍中档 6 题

中档7为什么 one-hot 算「维度灾难」?
词典上万维,且几乎全 0,存储和计算都浪费。
中档8「猫」和「狗」的 one-hot 点积是多少?
两位不同,点积=0,完全无关。
中档9词向量 a=(3,4),模长?
√(9+16)=√25=5。
中档10训练词嵌入需要什么?
大量无标注文本语料,靠共现自监督学习。
中档11分布式表示的假说?
一个词的意义由它常和哪些词一起出现决定。
中档12词嵌入维度一般取多少?
常见 50~300 维,远小于词典大小。

▍拔高 6 题

拔高13为什么余弦相似度适合比较词向量?
它只看方向不看长度,归一化后比较语义方向更合理。
拔高14word2vec 和 GloVe 区别?
word2vec 用局部窗口预测;GloVe 用全局共现矩阵做分解。
拔高15静态词向量(word2vec)的缺点?
一词一向量,解决不了多义词(「苹果」水果/手机)。BERT 类上下文向量解决它。
拔高16为什么 CBOW 比 Skip-gram 快?
CBOW 把多个上下文平均后只预测一次中心词;Skip-gram 要对每个上下文都预测。
拔高17负采样为什么比层次 Softmax 简单?
随机抽几个负样本算二分类,不用建整棵哈夫曼树。
拔高18词嵌入后续怎么用?
作为下游 NLP 任务的输入特征,可固定或微调。

⑪ 记忆口诀 + 7 天复习计划

三句口诀 ① one-hot 高维稀疏词间无关,词嵌入低维稠密意思近。
② CBOW 上下文猜中心,Skip-gram 中心猜上下文。
③ 相似度用余弦 cos=(a·b)/(|a||b|),越近 1 越像。
天任务自检
第 1 天读②③④,画词义地图说清 one-hot 缺点
第 2 天背 CBOW/Skip-gram + 基础 1-6两者不混
第 3 天做中档 7-12会算余弦
第 4 天做拔高 13-18懂多义词问题
第 5 天做⑦真题 4 题限时每题 2 分钟
第 6-7 天合上书口述三句口诀不看资料全说对

← 返回算法与AI总览