词嵌入:把文字变成数字身份证
文 / 老陈
上一篇我们讲了注意力机制——让 AI 知道该「看重点」。但这里藏着一个前提问题:AI 是台机器,它只认数字,不认文字。你打进去的「猫」这个字,在机器眼里只是一堆像素点,它根本不知道这代表一只毛茸茸的小动物。那 AI 是怎么「懂」中文的?靠的就是今天的主角——词嵌入(Word Embedding)。
简单说,词嵌入就是给每个词发一串「数字身份证号」——不是一个号码,而是一串几十上百个数字组成的向量。比如「猫」可以是 [0.21, -0.45, 0.88, ...],「狗」是 [0.19, -0.41, 0.82, ...]。你会看到猫和狗的数字很接近——这就对了!因为意思相近的词,它们的数字也相近。
词嵌入全景图:猫和鱼变成数字向量,猫狗语义相近、坐标上挨得近,房子语义无关离得远
先理解「向量」这个超能力
一串数字叫「向量」。你可以把它想象成二维地图上的一个点——比如 [1, 2] 是横坐标 1、纵坐标 2 的那个位置。如果「猫」是 [1, 2],「狗」是 [1.1, 1.9],那它们在地图上就挨在一起;「房子」是 [8, 9],就离得远远的。当然,真实模型里不是 2 个数字,而是几百个,所以是几百维空间。但道理一样:意思相近的词,坐标也相近。
这就是词嵌入最神奇的地方:它把「文字的意义」变成了「几何位置」。「相似度」可以用数学算出来——两个向量的夹角越小、距离越近,就代表意思越接近。于是机器不用背词典,就能"感觉"到「猫」和「狗」是一类,「电脑」和「手机」是一类。
它是怎么「学」出来的?
词嵌入不是人手工编的,是机器自己从海量文本里学出来的。核心思路叫「共现」:意思是,经常一起出现的词,多半有关联。
想象 AI 读了成千上万篇文章,发现「猫」总是和「狗」「鱼」「宠物」一起出现,很少和「股市」「报表」一起出现。于是它自动调整每个词的数字,让「常一起出现的词」的数字靠近。读得越多,这套「身份证号」就越精准。
三个词:Word2Vec、GloVe、输入层
| 概念 | 是什么 | 通俗理解 |
|---|---|---|
| Word2Vec | Google 出的经典词嵌入算法 | 早点的一种「给词排身份证」的机器学习方法 |
| GloVe | 基于词共现统计的另一种算法 | 换个角度(看全局统计)来排身份证 |
| 嵌入层(Embedding Layer) | Transformer 模型里的第一层 | 大模型进门的第一道工序:把词转成向量 |
现在的大模型(GPT、Llama、通义千问)早就超越了 Word2Vec,用的是更高级的「上下文相关」嵌入——同一个词「银行」,在「去银行取钱」和「银行的河岸」里,会得到两串不同的数字。因为一个词的意思要结合上下文才知道,这才是真正聪明的做法。
下一篇预告
现在每个词都变成了一串数字向量。但还有个问题:顺序。「猫咬狗」和「狗咬猫」用的词一样,意思却完全相反。机器读了这串数字,怎么知道谁先谁后?下一篇《位置编码:让 AI 记住词语先后》讲的就是这个。
老陈打码