中文标准叫法:独热编码

一、一句话通俗定义

先建立词汇表,给每个词语分配唯一编号(index索引); 把词语转换成一串数字向量:只有自己索引位置写1,剩下全部填0

直观小例子

词汇表:【汽车配件,零部件,缺货,物流】一共4个词

  • 汽车配件(索引0) → [1, 0, 0, 0]
  • 零部件(索引1) → [0, 1, 0, 0]
  • 缺货(索引2) → [0, 0, 1, 0]
  • 物流(索引3) → [0, 0, 0, 1]

名字由来:唯一一个位置是“热(1)”,其余全部冷(0)

二、业务类比

相当于公司工位表: 一共有4个工位,一个员工只站在自己编号工位上,其余工位空着。 每个词语互相独立,互不干扰。

三、两大致命短板(重点,解释为什么大模型不用它,改用Embedding词向量)

  1. 维度爆炸 词汇表如果有5万个词,向量长度就要5万;99.99%数字都是0,极度浪费内存、计算很慢。

  2. 完全无法表达语义相似性 「汽车配件」[1,0,0,0] 「零部件」[0,1,0,0] 两者点积=0,模型会认为两者毫无关系。 现实业务我们知道两个词高度近似,但one-hot识别不出近义词。

重点结论: One-Hot只能区分“词不一样”,看不懂词语含义、看不出近义词

四、串联你学习的模型流程(关键知识点)

  1. 文字 → token → 获取索引index
  2. 理论上可以把index转成One-Hot向量
  3. Transformer不会直接使用one-hot! One-Hot × 嵌入权重矩阵 → 得到稠密词向量(Embedding) 👉 通俗理解:独热编码只是一个中间跳板,用来查表获取真正能用的词向量。

五、区分:One-Hot vs Embedding(词向量)

类型形态语义能力规模
One-Hot独热只有1个1,大量0(稀疏)无,近义词相似度=0维度=词表总量(几万维)
Embedding词向量一串小数,没有大量0(稠密)可以体现词语远近关系固定几百维(例如512、768)

六、配套你前面学习的推理链路联动

模型最后输出logits → softmax概率分布 → argmax取出最大概率index → 用index反向匹配词汇表。 这个index,就是构建one-hot编码所依靠的编号。

30秒汇报精简话术

独热编码是最简单的文字数字化方式,给每个词汇分配唯一位置,向量仅对应位置为1、其余为0。 缺点是维度巨大,无法识别近义词。在Transformer中它只作为过渡手段,用来查询权重矩阵,生成具备语义信息的低维词向量。

One-Hot → Embedding 完整数字演算示例(极简,配合Transformer输入逻辑)

设定条件

词汇表 vocab = [“汽车配件”, “零部件”, “缺货”, “物流”] 总词数:4 索引: 0:汽车配件 1:零部件 2:缺货 3:物流

嵌入维度:2(简化演示,真实模型一般512/768维) Embedding权重矩阵(查表矩阵 W) $$ W= \begin{bmatrix} 0.8 & 0.2 \ 0.75 & 0.25 \ 0.1 & 0.9 \ 0.05 & 0.03 \end{bmatrix} $$ 每行 = 对应词语最终的词向量

第一步:生成One-Hot向量

词语:零部件 index=1 one-hot向量:$[0,\ 1,\ 0,\ 0]$

第二步:One-Hot 矩阵相乘得到Embedding

$[0,\ 1,\ 0,\ 0] \times W$ = $0\times[0.8,0.2] + 1\times[0.75,0.25]+0\times[0.1,0.9]+0\times[0.05,0.03]$ = $\boldsymbol{[0.75,\ 0.25]}$

✅ 结果:零部件的词向量 = [0.75, 0.25]

同理演示【汽车配件 index=0】 one-hot:$[1,0,0,0]$ 相乘结果:$\boldsymbol{[0.8,\ 0.2]}$

业务关键观察

  1. 「汽车配件」[0.8,0.2] 与「零部件」[0.75,0.25] 向量非常接近,模型能够识别二者语义相似。 👉 One-hot做不到这一点,两个one-hot点积=0,完全看不出关联!

  2. 工程实操重点 代码不会真的构造巨大one-hot向量做乘法! 直接根据索引取出矩阵对应的一行,效果完全一致,节省算力。

token index → 直接查表取一行 = Embedding向量(底层数学等价one-hot相乘)

再复习核心痛点(方便汇报)

  1. One-hot:只有0和1,维度=词汇总量。词表5万则向量5万维,无法落地;
  2. One-hot任意两个不同词语正交,相似度永远为0,不存在近义词概念
  3. Embedding:低维稠密小数向量,语义相近词汇向量靠近,是Transformer真正的输入。

串联整条入门链路(你学习主线)

原始文字 → Token分词 → index索引 →(数学理论)One-hot × Embedding矩阵 → 词向量Embedding → 加上位置编码 → 送入Encoder多头自注意力(QKV计算……)

附加思考题自测

Q:模型推理末端,argmax拿到index,能不能理解为反向one-hot? A:可以辅助理解。 Logits经过Softmax得到概率分布,近似“软的one-hot”;argmax选出单一index,相当于硬选出激活位置。

如果你想要,我可以把: one-hot、embedding、QKV、点积、softmax、argmax、logits 全部串成一份从头到尾连贯学习笔记。