什么是 Embedding 向量嵌入?

article
2026年7月21日阅读约 1 分钟157 字

更新于 2026年7月21日

什么是 Embedding 向量嵌入?

给文字发语义坐标,让机器学会算“意思像不像”

原题:什么是 Embedding(向量嵌入)?为什么把文字变成一串数字之后,就能计算两段话的语义相似度?

向量检索

30 秒回答

  1. Embedding(向量嵌入)是把文字转成一串固定长度数字(向量)的技术,让机器能“计算”语义
  2. 核心性质:意思越接近的文本,向量在空间中的位置越近——这是一切语义检索的基础
  3. 语义相似度最常用余弦相似度来算:看两个向量方向的夹角,值越接近 1 越相似
  4. 向量由专门训练的嵌入模型生成(如 BGE 系列),不是随便编码

回答与解析

答案要点

  • Embedding(向量嵌入)是把文字转成一串固定长度数字(向量)的技术,让机器能“计算”语义

  • 核心性质:意思越接近的文本,向量在空间中的位置越近——这是一切语义检索的基础

  • 语义相似度最常用余弦相似度来算:看两个向量方向的夹角,值越接近 1 越相似

  • 向量由专门训练的嵌入模型生成(如 BGE 系列),不是随便编码

  • 它是 RAG 检索、语义搜索、推荐系统共同的地基

核心概念

Embedding(向量嵌入)是指用模型把一段文字映射成一个固定长度的数字向量(比如 1024 个小数),使得语义相近的文字在向量空间中的位置也相近。可以把它想象成给每段话发一个“语义坐标”:谈论同一件事的句子,坐标就挨得近。

比如“我想退货”和“这个商品我不要了”,字面上几乎没有重复的字,关键词搜索会认为它们无关;但嵌入模型理解语义,会把两句话映射到相近位置——这正是语义搜索超越关键词搜索的原因。

语义相似度怎么算

  1. 同一个嵌入模型,分别把两段文本转成向量 A 和 B

  2. 计算余弦相似度:cos(A, B) = A·B / (|A| × |B|),本质是看两个向量方向的夹角有多小

  3. 结果越接近 1,说明方向越一致、语义越像;接近 0 则基本无关

也可以用点积、欧氏距离等度量,原理相通:把“语义像不像”的模糊问题,变成“数字算一算”的精确问题。注意:两段文本必须用同一个模型编码,不同模型的向量空间互不兼容。

在 RAG 里的角色

阶段 Embedding 做什么
离线建库 把知识库里每个文本块转成向量,存入向量数据库
在线检索 把用户问题也转成向量,找出距离最近的 Top-K 个块

没有 Embedding 就没有“按意思找资料”这件事,RAG 检索质量的上限很大程度取决于嵌入模型的好坏。

入门之后,可以往嵌入模型的选型与评测(MTEB / C-MTEB 榜单)、向量数据库与 ANN 近似最近邻索引(如 HNSW)两个方向继续深入。

口语版讲法(约2分钟)

  • 一句话定位:Embedding 解决的是从文字到语义可计算的问题
  • 核心原理:向量空间里距离近就是意思近,这是语义搜索能跑通的前提
  • 业务例子:客服退款场景,关键词搜不到但语义能匹配
  • 落地前提:模型要选对、向量库要配好,否则效果会崩

这道题其实是在问,机器怎么理解文字的意思,并且把这种理解变成可以运算的东西。Embedding 说白了就是给每段话发一个坐标,意思越像的,坐标越靠在一起。这么一来,原来模糊的“语义像不像”就变成了精确的“距离远不远”,这是 RAG 和语义搜索能跑通的地基。

具体怎么算相似度呢?最常用的是余弦相似度,看两个向量方向的夹角。夹角越小,值越接近 1,意思就越像。比如“我想退货”和“这个商品我不要了”,字面上几乎没有重复的字,关键词搜索肯定匹配不上,但 Embedding 会把它们映射到相近的位置,因为语义是相同的。这就是为什么语义搜索能超越关键词搜索。

举个例子,客服退款场景。用户说“退款什么时候到账”,如果只靠关键词,可能只匹配到“退款”两个字,把一堆无关的退款政策都翻出来。但用 Embedding 检索,它会优先找到和“到账时间”语义相近的文档片段,比如“退款处理时效是1-3个工作日”。这样生成回答时,模型就有事实依据,而不是凭空编。

不过这里有个前提,Embedding 的质量完全取决于嵌入模型。不同模型向量空间不兼容,必须用同一个模型编码查询和文档。而且向量库的索引方式也很关键,比如用 HNSW 这种 ANN 索引,才能在百万级数据里快速找到最近邻。如果模型选错了,或者索引参数没调好,召回质量会明显下降,RAG 的上限就卡在检索这一步。

所以我会把 Embedding 看成语义检索的基石,但不会认为它万能。真正落地时,我倾向把 Embedding 和关键词检索结合起来做混合检索,这样既能抓到语义,又能保证精确匹配,比如订单号、错误码这些场景。

如果面试官追问,我会说:Embedding 的另一个难点是处理同义词和多义词。比如“苹果”既可以是水果也可以是品牌,单纯靠 Embedding 可能会混淆。这时候就需要结合上下文做消歧,或者用 Rerank 模型做二次筛选。

关键一句:Embedding 对同义词和多义词的处理仍有局限,需要结合上下文消歧或二次排序。

面试官还可能这样问

  1. 问法 1 · 概念辨析Embedding 向量和给每个词编一个号(比如字典序号)有什么本质区别?为什么编号没法算语义相似度,向量就可以?
  2. 问法 2 · 场景切入用户在商城搜“不想要了怎么办”,关键词搜索匹配不到“退货政策”这篇文档。用 Embedding 怎么解决这个问题?大概流程是什么样的?