前言在面试中如果你在简历上写了“RAG”、“向量检索”面试官几乎一定会追问一句“你用了 Embedding那你说说它的原理是什么为什么两个词的向量相似就代表它们语义相近”这个问题看似简单但真正能答清楚的人并不多。很多人只能说出“Embedding 就是把文字变成向量”却说不清这背后的原理。而一旦你能把“国王 - 男人 女人 ≈ 女王”这个经典例子讲明白面试官就会知道这个人是真的理解了不是只会调 API。本文的目标就是用最直观的方式帮你彻底弄懂 Embedding 的底层原理。本文核心问题大模型不认识文字那它是怎么处理自然语言的Embedding 到底是什么为什么能用数字代表文字的含义“国王 - 男人 女人 ≈ 女王” 是怎么做到的余弦相似度为什么能衡量语义相近它比欧氏距离好在哪不同 Embedding 模型之间有什么差异维度越高越好吗Embedding 在 RAG 和向量检索中扮演什么角色如何直观理解高维向量空间读完本文你将对 Embedding 拥有从“会调用”到“懂原理”的完整理解。一、大模型不认识文字只认识数字疑问大模型不是能写文章、能聊天吗怎么说它不认识文字回答大模型能处理文字恰恰是因为它把文字转换成了数字。计算机和人工神经网络本质上是数学计算引擎它们只能处理数字更准确地说是张量 —— 多维数组。当我们输入一段文字给大模型时第一步就是把它变成一串数字 ——向量。这个转换过程就叫做Embedding嵌入。猫 --Embedding-- [0.23, -0.15, 0.78, 0.01, ..., -0.42] ↑ 一个由浮点数组成的向量通常几百到几千维核心直觉Embedding 就像一个翻译官把人类的文字翻译成了大模型能理解的数字语言。而且这个翻译不是随机的——语义相近的文字翻译出来的向量在空间中距离也更近。二、一个经典的例子“国王 - 男人 女人 ≈ 女王”疑问这个公式到底是什么意思为什么加减法能表达语义回答这是理解 Embedding 最经典的例子。在 2013 年Google 的研究员训练了一个叫 Word2Vec 的模型发现训练好的词向量具有惊人的语义运算能力。2.1 几何直觉想象一个三维空间实际是几百维但低维更直观女王(Queen) / / ← 女性方向 / 国王(King) ──→ 男人(Man) \ \ ← 女性方向 \ ???“国王-男人女人”的操作国王 - 男人从国王向量中减去男性相关的特征留下“皇室、权力”等语义 女人加上女性相关的特征结果最接近的向量就是女王2.2 向量空间中的位置每个词在向量空间中被分配了一个位置。这些位置不是随机的——语义相近的词会被放在空间中的同一片区域。“猫”和“狗”的向量很近因为它们都是宠物、哺乳动物。“猫”和“汽车”的向量很远因为它们在语义上毫无关系。Embedding 模型的核心工作就是学习如何为每个词分配合适的空间位置使得语义关系被编码为几何关系。三、词向量是怎么“学”出来的——分布假说疑问机器是怎么知道“猫”和“狗”意思相近的它又没有词典。回答通过“分布假说”——一个词的含义由它周围的词决定。3.1 分布假说语言学家 Firth 在 1957 年说过一句经典的话“You shall know a word by the company it keeps.”你可以通过一个词的“同伴”来认识这个词。什么意思看下面两句话“我家的猫喜欢吃鱼”“邻居的狗喜欢吃骨头”“猫”和“狗”的上下文几乎一模一样——都是“XX 喜欢吃 XX”。即使你不知道“猫”和“狗”分别是什么你也能从它们的上下文推断出它们应该是同一类东西。3.2 Word2Vec 的训练思想Word2Vec 就是利用了这个思想。它有两种训练方式方式做法通俗理解CBOW连续词袋用上下文预测中心词“我家的 ___ 喜欢吃鱼” → 预测 “猫”Skip-gram用中心词预测上下文“猫” → 预测 “我家的”、“喜欢吃鱼”训练过程中模型不断调整每个词的向量使得经常出现在相似上下文中的词拥有相似的向量。四、为什么用余弦相似度而不是欧氏距离疑问判断两个向量是否相近算一下距离不就行了吗为什么用余弦相似度回答在高维空间中角度比距离更能反映语义关系。长度往往被“无关因素”影响而方向更纯粹地代表语义。4.1 余弦相似度的定义余弦相似度 cos(θ) (A · B) / (|A| × |B|) 值域[-1, 1] - 1方向完全相同语义最相近 - 0方向正交无关 - -1方向完全相反4.2 为什么不用欧氏距离举个例子“猫”向量的模是 1.5“小猫”向量的模是 0.8它们的方向几乎相同余弦相似度 ≈ 0.95但欧氏距离不小原因在高维 Embedding 中向量的模长往往受词频影响。高频词的模长通常比低频词大这和语义无关。如果使用欧氏距离“猫”和“小猫”虽然都指同一类动物距离却可能不如预期的近。而余弦相似度看的是方向——语义藏在方向中而非长度中。4.3 一个类比帮你彻底记住余弦相似度 ≈ 看两个指针指向的方向是否一致 欧氏距离 ≈ 看两个点在空间中的直线距离 两个人都指向北极星方向相同→ 余弦相似度高 其中一个人离北极星更近距离不同→ 但方向是对的所以向量检索时用余弦相似度不是因为欧氏距离“不对”而是因为方向更能代表语义。五、句子 Embedding 和词 Embedding 的区别疑问你简历里的 RAG 是对文档做向量化那句话和词的 Embedding 一样吗回答不一样但原理相通。词 Embedding 把一个词变成一个向量句子/文档 Embedding 把一整句话或一段文字变成一个向量。5.1 怎么做句子 Embedding最简单的方法是把句子中所有词的向量取平均——但这种方法效果一般。现代 Embedding 模型如 OpenAI 的text-embedding-ada-002、国内的 M3E 系列使用的是Transformer 架构。它的核心能力是上下文感知苹果很好吃 中的苹果 → Embedding 靠近水果 苹果发布了新手机 中的苹果 → Embedding 靠近科技公司 同一个词根据上下文产生不同的向量。5.2 句子 Embedding 怎么得到的Transformer 模型处理整个句子后最后一层输出的向量通常是[CLS]token 对应的向量或所有 token 向量的池化结果作为整个句子的 Embedding。它不再是单个词的简单组合而是融合了整个句子的上下文信息。六、不同 Embedding 模型之间的差异疑问为什么有的 Embedding 模型 768 维有的 1536 维维度越高越好吗回答维度影响的是“表达精度”和“计算成本”之间的权衡。不同模型对比模型维度优势劣势OpenAI ada-0021536语义表达丰富中英文都好需联网有成本M3E-base768中文优化本地免费英文效果不如 OpenAIBGE-large1024中文检索场景 SOTA模型较大推理慢维度越高越好吗不一定——存在边际效应。从 256 维扩到 768 维效果提升明显从 768 扩到 1536提升变小继续往上收益递减但计算和存储成本线性增长。实际选型Demo 阶段用 M3E-base本地免费、够用生产环境且需要多语言时用 OpenAI ada-002。核心原则——先跑通再优化。七、如何直观理解高维向量空间疑问768 维空间谁能想象出来怎么直观理解回答不需要想象 768 维空间本身只需要理解“距离”和“方向”这两个概念。7.1 用三维来类比把 768 维空间压缩成三维来想象每个文档是空间中的一个点相似的文档聚在一起形成一簇不同的文档散落在不同区域768 维空间只是把这种“簇”结构放到了更高维——维度越高表达能力越强但“相似则近、无关则远”的直觉不变。7.2 RAG 检索的本质就是在这个 768 维空间中做最近邻搜索“给定一个问题向量找到离它最近的 K 个文档向量。”用户问题 → Embedding → 空间中的一个点 Q ↓ 找到离 Q 最近的 5 个文档点 ↓ 这 5 个文档就是检索结果余弦相似度就是这把“尺子”在 768 维空间中量出谁离问题最近。总结大模型只认数字不认文字。Embedding 是文字到数字的翻译官它把语义编码为向量“国王-男人女人≈女王”说明 Embedding 将语义关系编码成了空间中的几何关系Embedding 能工作的理论根基是分布假说一个词的含义由它周围的词决定衡量向量相似度用余弦相似度而不是欧氏距离因为语义藏在方向里不在长度里句子 Embedding 不等同于词 Embedding。它是通过 Transformer 对整个句子上下文感知后产生的综合表示Embedding 维度需在精度和成本之间权衡768 维在大多数场景是性能够用、成本可接受的选择RAG 检索的本质就是在向量空间中找最近的文档邻居。余弦相似度是那把丈量的尺子下一篇预告AI理论学习二——Transformer 的核心思想Attention 机制直观理解。读完后你将会对 Transformer 的结构有一个具体的了解能用直觉解释清楚 Q、K、V 分别在做什么。