嵌入:意义即几何。
嵌入是那个默默驱动语义搜索、推荐、检索增强生成以及每个 LLM 内部的思想。这个概念只需一句话:把事物变成空间中的点,让"相似"变成"接近"。本篇会具体地建立这一直觉,展示那个著名的词向量算术例子,并准确说明嵌入解决哪些问题、不解决哪些问题。
核心动作:意义化为坐标。
计算机无法比较"狗"和"小狗"的意义——它们只是不同的字符串,与"狗"和"木琴"之间的关联并无二致。嵌入修正了这一点:把每个事物映射为一串数字——一个向量——并经过挑选,使意义相似的事物落在邻近的点,无关的事物落得很远。这个向量是一个高维空间(常是数百或数千维)中的点;"意义"变成一个位置,"相似"变成几何距离。
这串数字不是手工设计的。一个神经网络在"必须做出有用预测"的压力下从数据中学出它,副产品就是一个几何反映意义的空间。一张二维草图能让这个想法显形,尽管真实嵌入的维度多得多:
cat · · kitten
· dog
· puppy
· car
· truck · van
near = similar meaning · far = unrelated · clusters = topics
关于宠物的词聚在一起;关于车辆的词在很远处形成另一个簇。没有人摆放它们——是训练塑造了这片几何。
为什么"接近"如此有用:相似变成算术。
意义一旦成为几何,难题就变成简单的距离计算。"找出关于这个问题的文档"不再是关键词匹配(当文档说"汽车"而查询说"轿车"时它会失败),而变成"找出与查询向量最接近的已存向量"。相似度用一个简单快速的公式计算(常是余弦相似度,即两个向量之间的夹角),这就是它能扩展到数百万条目的原因。
这一个基本操作支撑着出人意料多的现代 AI:
- 语义搜索——按意义而非确切词匹配,使"我怎么重置密码"能找到一篇标题为"账户恢复步骤"的文档。
- 推荐——靠近你喜欢过的事物的条目,很可能是你会喜欢的。
- 聚类与去重——自动把近乎相同或相关的内容归组。
- 检索增强生成(RAG)——此处最重要的用途:把知识库嵌入,把用户问题嵌入,检索最接近的片段,粘贴进提示词,让 LLM 依据真实、当前的来源作答,而非依据记忆。
同一思想在文本之外也成立:图像、音频、代码,乃至用户和商品都能被嵌入,这就是"找相似图片"或跨模态"用文字查询搜图"的工作原理——不同事物共享一个空间。
那个著名的例子:方向承载意义。
让许多人豁然开朗的那个结果:在一个训练良好的词嵌入空间里,方向能编码关系。经典示例:
vector("king") - vector("man") + vector("woman") ≈ vector("queen")
读作:"从 king 出发,移除'男性'方向,加上'女性'方向,你就到达 queen 附近。"一个一致的几何偏移对应着一个现实世界的关系(这里是性别),而类似的偏移也出现在"国家—首都"或"单数—复数"上。这是从纯文本训练中涌现的,没有任何关系词典——有力地表明这片几何确实捕捉了结构,而不仅仅是粗略的话题邻近。
把它当作直觉,而非保证。真实的嵌入空间比这个干净的类比要凌乱,算术并不总是精确落点,学出来的向量还会继承训练文本中存在的偏见。嵌入反映其数据——包括其中的偏见——当它们驱动搜索或推荐时,这一点很重要。
把它接回 LLM——以及局限。
嵌入不是螺接在 LLM 上的一个独立小部件;它就是语言模型的原生输入。回忆一下:文本先被切成令牌,再变成整数。模型最最开始的那一层是一个嵌入层,它把每个令牌 ID 变成一个学出来的向量。模型之后所做的一切,都是在这些向量上的几何与算术。"意义即空间中的位置"并不是 LLM 工作方式的类比——它字面上就是 LLM 做的第一件事。
两个局限让期望保持校准。第一,相似不等于真实:嵌入可能把一个问题放在一段话题相关却对它而言事实错误的文字附近;检索找到的是相关文本,而非正确答案,这就是为什么 RAG 仍需 LLM 去阅读和推理,最好还有一个验证步骤。第二,嵌入会压缩:把丰富的意义塌缩成几百个数字必然损失细微差别,所以两个确实不同的句子可能落得近得可疑。
持久的收获是:嵌入把"意义相似"这个模糊的人类概念,转换成"空间中接近"这个精确的机器概念,而正是这一个转换让搜索、推荐和检索增强生成得以大规模实现。今后当你看到某个系统"找出相关上下文"时,想象空间中的点和被拉出来的最近邻——这就是全部机制。