AI 怎么把文字变成数字?从 one-hot 到语义空间
阅读时间约 8 分钟计算机只懂数字。对 GPU 来说,"猫"这个字毫无意义——它无法参与矩阵运算、梯度下降或任何数学操作。但如果我们把"猫"表示为 [0.23, -0.81, 0.45, ...] 这样的一组数字,一切就变得可以计算了。
这就是 Embedding(词向量)的核心任务:把离散的文字符号映射到连续的数字空间。有了数字表示,AI 才能计算词与词之间的距离、方向和关系。
输入任意词语,看它被转换为一个假想的 embedding 向量(每个词生成固定的向量):
就像给每个人一个 GPS 坐标——有了坐标,才能计算距离和方向。
最朴素的思路是 One-Hot 编码:假设词表有 N 个词,就用一个长度为 N 的向量来表示每个词,其中只有一个位置是 1,其余全是 0。
问题一:极度稀疏。现代模型的词表动辄 50,000 甚至 100,000 个 Token。一个 one-hot 向量中 99.99% 的元素都是 0,浪费大量内存和计算。
问题二:丢失语义。在 one-hot 空间里,"猫"和"狗"之间的距离等于"猫"和"石头"之间的距离——完全没有"更相似"的概念。
观察 5 个词的 one-hot 编码——点击任意一行高亮它:
One-hot 就像给学生编学号——1001 号和 1002 号之间没有"更相似"的概念。
2013 年,Word2Vec 提出了一个革命性的想法:出现在相似上下文中的词,应该有相似的向量表示。通过在海量文本上训练,模型自动学会了让语义相近的词在向量空间中"靠近"。
最著名的发现是向量算术:
这意味着模型学到了"性别"这个概念在向量空间中的方向!现代 Transformer 模型更进一步——embedding 作为模型的第一层被端到端训练,每个 Token 获得一个稠密向量(如 768 或 4096 维)。
2D 投影展示词向量的平行关系。点击词对查看向量算术:
Word2Vec 发现:意思相近的词,住在语义空间的"同一个小区"。
真实的 Embedding 向量生活在 768 到 4096 维的空间中——远超人类可以直接想象的范围。但核心原理不变:语义相似的词在空间中更近,语义不同的词更远。
每一维捕捉某种抽象特征——没有人类可读的标签,但组合起来就能编码丰富的语义信息。你可以把它想象成一种超级坐标系统,每个维度记录了词的某个语义属性。
2D 降维后的词向量散点图。悬停查看词的聚类和距离:
在真实模型中,这是 4096 维的空间,但聚类的原理完全一样——动物、交通工具和食物各自形成紧密的"小区"。
高维空间就像一个超级图书馆——每本书的位置编码了它的主题、语言、难度等数百个属性。
计算机无法直接理解文字,Embedding 将离散符号映射为连续的数字向量。
One-hot 编码浪费空间且丢失语义,所有词之间的距离都一样。
学习到的 embedding 让意思相近的词在向量空间中靠近。
每个 Token 通过 embedding 层获得稠密向量,是模型理解语言的第一步。
Embedding 是 AI 理解世界的第一步——把万物映射到数学空间,用距离衡量意义。