Embedding与向量语义——大模型是怎样“理解”文字的?

前言

在面试中,如果你在简历上写了"RAG"、"向量检索",面试官几乎一定会追问一句:

"你用了 Embedding,那你说说它的原理是什么?为什么两个词的向量相似,就代表它们语义相近?"

这个问题看似简单,但真正能答清楚的人并不多。很多人只能说出"Embedding 就是把文字变成向量",却说不清这背后的原理。而一旦你能把 "国王 - 男人 + 女人 ≈ 女王" 这个经典例子讲明白,面试官就会知道:这个人是真的理解了,不是只会调 API。

本文的目标,就是用最直观的方式,帮你彻底弄懂 Embedding 的底层原理。

本文核心问题:

  1. 大模型不认识文字,那它是怎么处理自然语言的?
  2. Embedding 到底是什么?为什么能用数字代表文字的含义?
  3. "国王 - 男人 + 女人 ≈ 女王" 是怎么做到的?
  4. 余弦相似度为什么能衡量语义相近?它比欧氏距离好在哪?
  5. 不同 Embedding 模型之间有什么差异?维度越高越好吗?
  6. Embedding 在 RAG 和向量检索中扮演什么角色?
  7. 如何直观理解高维向量空间?

读完本文,你将对 Embedding 拥有从"会调用"到"懂原理"的完整理解。


一、大模型不认识文字,只认识数字

疑问:大模型不是能写文章、能聊天吗,怎么说它不认识文字?

回答:大模型能处理文字,恰恰是因为它把文字转换成了数字。 计算机和人工神经网络本质上是数学计算引擎,它们只能处理数字(更准确地说,是张量 ------ 多维数组)。当我们输入一段文字给大模型时,第一步就是把它变成一串数字 ------ 向量 。这个转换过程,就叫做 Embedding(嵌入)

复制代码
"猫"  --Embedding-->  [0.23, -0.15, 0.78, 0.01, ..., -0.42]
                         ↑
                    一个由浮点数组成的向量(通常几百到几千维)

核心直觉:Embedding 就像一个翻译官,把人类的文字翻译成了大模型能理解的数字语言。而且这个翻译不是随机的------语义相近的文字,翻译出来的向量在空间中距离也更近。


二、一个经典的例子:"国王 - 男人 + 女人 ≈ 女王"

疑问:这个公式到底是什么意思?为什么加减法能表达语义?

回答:这是理解 Embedding 最经典的例子。 在 2013 年,Google 的研究员训练了一个叫 Word2Vec 的模型,发现训练好的词向量具有惊人的语义运算能力。

2.1 几何直觉

想象一个三维空间(实际是几百维,但低维更直观):

复制代码
        女王(Queen)
        /
       /   ← 女性方向
      /
国王(King) ──→ 男人(Man)
      \
       \   ← 女性方向
        \
         ???

"国王-男人+女人"的操作

  1. 国王 - 男人:从国王向量中减去男性相关的特征,留下"皇室、权力"等语义
  2. + 女人:加上女性相关的特征
  3. 结果 :最接近的向量就是 女王

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-002 1536 语义表达丰富,中英文都好 需联网,有成本
M3E-base 768 中文优化,本地免费 英文效果不如 OpenAI
BGE-large 1024 中文检索场景 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 分别在做什么。

相关推荐
我是发哥哈1 小时前
深度评测:五款主流AI培训平台的课程交付能力对比
大数据·人工智能·学习·机器学习·ai·chatgpt
eastyuxiao1 小时前
流程图 + 配置清单 落地应用于团队 / 公司日常文档处理场景
人工智能·流程图
Datakeji2 小时前
2026年AI大模型接口加速站榜单新鲜出炉!五大平台硬核数据全面揭秘
大数据·人工智能
qq_160144872 小时前
从月薪8K到15K,主管说我胜在“多懂了一层” 我的职场能力补齐日记
人工智能
图解AI系列2 小时前
我打算用 12 天搭一套 AI 客服系统(企业级实战,附源码)
大数据·人工智能
网络工程小王2 小时前
【LCEL 链式调用详解】调用篇-2
java·服务器·前端·数据库·人工智能
BU摆烂会噶2 小时前
【LangGraph】运行时上下文(Runtime Context)
人工智能·python·langchain
一个处女座的程序猿O(∩_∩)O2 小时前
大模型决战2026:从百模大战到空间智能,AI Agent与推理架构的深度实战
人工智能·架构