NLP 入门 · 接续独热编码

「苹果」和「香蕉」
为什么该靠得近

独热编码能区分词,却看不出谁和谁像。
词嵌入,就是给每个词一张能比较远近的「语义地图坐标」。

向下滑动
第一步 · 分类牌的极限

独热编码:能区分,却不懂相似

1 先复习:独热是「分类牌」

词表很小,比如只有 4 个词:我、爱、苹果、香蕉。

苹果
0
0
1苹果
0香蕉
香蕉
0
0
0苹果
1香蕉

两个向量几乎正交——内积是 0。机器会以为它们毫无关系,尽管都是水果。

独热编码

分类牌 / 门牌号
能说「是谁」,不能说「像谁」

词嵌入

语义地图上的坐标
相近的词会聚在一起

衔接阅读:独热如何从「类别」升维而来,见 《神经网络输入升维》
第二步 · 核心门槛

独热 × 嵌入矩阵 = 其实是查字典

1 一个让人卡住的比喻

嵌入矩阵想成一本《词 → 密码》字典:每个词占一行,每行是一串小数(比如 4 个,真实常是 300 个)。

独热编码不是内容,只是地址:告诉电脑「翻到第几页」。翻出来的那一行小数,才是词嵌入。

独热地址

苹果 = [0,0,1,0]
只负责定位

×点乘

嵌入矩阵

可训练的密码本
词数 × 维度

=取出一行

词向量

[0.2, −0.1, 0.5, …]
稠密语义坐标

2 用最小例子算一遍

词表:我、爱、苹果。嵌入维度先用 4(方便手算):

维1(示意) 维2 维3 维4
0.10.4−0.20.3
0.2−0.50.10.8
苹果0.60.10.7−0.1

「爱」的独热是 [0, 1, 0]。点乘矩阵时:

0·第1行 + 1·第2行 + 0·第3行 = 第2行
结果:[0.2, −0.5, 0.1, 0.8] ——「爱」的词嵌入

为什么要写成「乘法」而不是直接取行?

直接「取第 i 行」不好求导;写成矩阵乘法,梯度能流回整本密码本,训练才能改数字。框架里的 nn.Embedding 底层其实是高效查表,但数学上等价于独热点乘。

第三步 · 怎么练成语义

靠上下文自学:一个词的含义,看它的邻居

1 分布假说(一句话原理)

语言学家说:You shall know a word by the company it keeps——看一个词常和谁一起出现,就知道它大概是什么意思。

「苹果」常挨着「吃、甜、水果」;「手机」常挨着「屏幕、充电」。词嵌入就是用数学把这种共现规律压进向量里。

随机开局

密码本一开始全是乱数

完形填空

根据上下文猜中间词(或反过来)

相似词抱团

面临同类填空题的词,向量被拉近

2 为什么苹果会靠近香蕉?

训练时,它们经常出现在相似的「填空题」里(「__熟了」「吃__」)。猜错会改密码本里对应那一行;改来改去,两行数字就越来越像——空间距离就近了。

国王 − 男人 + 女人 ≈ 女王
同一套坐标轴上,语义关系可以变成向量加减(示意)
第四步 · 嵌入维度

维度 = 语义的「分辨率」

1 用多少个数字描述一个词?

嵌入维度,就是每个词向量有多长。太短装不下细节,太长又贵又容易记噪声。

维度太低

像只用「高矮胖瘦」形容人
苹果和香蕉可能挤成一团

常用 100~300

业界常见平衡点
Word2Vec 经典是 300 维

维度太高

参数暴增、易过拟合
算力和内存都更贵

一句话

维度是语义的放大镜:太低模糊,太高费钱。大众记住「几十到几百维的稠密小数」就够用了。

第五步 · 最容易问到的灵魂问题

每一列的意义一样吗?会不会「串」?

1 列是统一标尺,行是各自得分

把嵌入矩阵想成一张全班同一套问卷

示意列:性别
国王 +0.9
女王 −0.9
苹果 ≈ 0

同一坐标轴,不同得分

示意列:食物感
苹果 +0.8
香蕉 +0.7
国王 ≈ 0

水果在这列都偏高

重要坑:训练不会贴标签说「第 5 列叫性别」。这些维度是网络自己摸索出来的隐式特征,有的人类能猜,有的完全说不清——但不影响它们「全局可比」。

2 反向传播时,列为什么不会「串」成一样?

你的直觉很对:若处理不好,多列可能学成同一个特征。正常训练靠三件事拉开分工:

1. 随机初始化

起点不同,打破对称;全零初始化才会必然「串」

2. 梯度自组织

不同词对同一列的正负压力互相拉扯,列变成通用标尺

3. 任务够复杂

语义角度很多时,各列会分工;维度过大反而可能冗余

列 = 统一标尺 · 行 = 独有刻度
统一才可比较,独有才有个性;随机起点 + 海量上下文,让各列尽量各司其职
第六步 · 动手试

互动:查表、比远近、看地图

你可以试试:点选一个词,看独热如何「取出」嵌入行;再选两个词比相似度;最后在二维地图上看谁和谁抱团。

1 点词 → 独热查表

下面的维度名(食物 / 科技…)只是教学示意;真实训练不会自动贴这种标签。

点乘嵌入矩阵后,取出的稠密向量:

2 两词相似度

轮流点选:一次定蓝色词 A,一次定橙色词 B(余弦相似度越接近 1 越像)。

下一步:点选词 A(蓝色)

请选择两个词

3 语义地图(示意投影)

把 4 维向量压到平面上看:水果、科技、王室会自然分堆。

总结

记住四句话就够出门了

独热是地址

能区分「是谁」,不能表达「像谁」;又高又稀。

嵌入是坐标

低维稠密小数;相近的词在空间里抱团。

乘法≈查字典

独热点乘嵌入矩阵,本质取出对应那一行。

列尺行分

列是全局标尺,行是词的独有得分;靠上下文练出来。

词嵌入 = 查表得到的语义坐标
独热负责指路,矩阵负责存密码,训练负责把密码磨成「懂邻居」的向量。
相关阅读: 《输入升维:独热编码》 · 《梯度下降》(密码本数字如何被改)
返回首页