语义理解和向量相似度
语义理解是向量相似度能生效的前提,而向量相似度是语义理解在检索场景里的量化落地。
🎯 一句话说清关系
语义理解是“能力”,相似度是“度量”。 模型先理解了文本的含义,才能把含义编码成向量;而向量之间的相似度,就是对“语义理解得有多接近”的数学表达。
🔗 逐层拆解
1. 语义理解是什么
语义理解指的是模型能读懂文字背后的意思,而不只是字面。比如它能知道:
- “苹果手机”和“iPhone”说的是同一个东西
- “怎么退款”和“如何退货”表达的是同一个意图
- “电池续航差”和“充电一次用不了多久”是同一个抱怨
这是大模型和 Embedding 模型的核心能力。
2. 语义理解如何变成向量相似度
模型理解了语义之后,会把它编码成一个向量(一串数字)。这个过程叫 Embedding。
关键点在于:语义越接近的文本,编码出来的向量在空间里就越靠近。 所以:
- 语义理解 → 决定了向量怎么分布
- 向量相似度 → 只是去测量这些向量的距离
换句话说,向量相似度本身不懂语义,它只是忠实地测量“两个向量有多近”。真正懂语义的,是生成向量的那个模型。
3. 三者的对应关系
| 层面 | 对应概念 | 作用 |
|---|---|---|
| 能力层 | 语义理解 | 模型读懂文字含义 |
| 表示层 | Embedding 向量 | 把含义编码成数字 |
| 度量层 | 向量相似度 | 测量两个向量有多近 |
所以:语义理解 → Embedding → 向量相似度,是一条从“懂”到“量化”的链路。
📖 用例子说明
用户问:“iPhone 电池能用多久?”
知识库里有三句话:
| 文本 | 语义理解的结果 | 编码后的向量 | 与问题的向量相似度 |
|---|---|---|---|
| “苹果手机电池续航实测” | 语义高度相关 | 靠近问题向量 | 高 |
| “如何退款” | 语义不相关 | 远离问题向量 | 低 |
| “苹果公司发布财报” | 语义不相关(虽然都有“苹果”) | 远离问题向量 | 低 |
注意第三句:它和问题字面有重合(都有“苹果”),但语义理解告诉模型,这里说的是公司财报,不是手机电池。所以编码出来的向量离问题很远,向量相似度自然就低。
这个例子正好说明:向量相似度之所以能避开字面陷阱,靠的正是语义理解的能力。 如果没有语义理解,向量就只是随机数字,相似度也就没有意义。
🆚 和关键词相似度的对比
关键词相似度不依赖语义理解,它只看字面词是否重合。所以:
- 关键词相似度:字面像不像 → 不需要语义理解
- 向量相似度:意思像不像 → 依赖语义理解
这也是为什么“如何退款”和“怎么退货”在关键词相似度下得分很低,但在向量相似度下得分很高——因为前者不认语义,后者认。
💡 一个容易混淆的点
向量相似度高 ≠ 语义一定正确相关。
向量相似度只是测量“向量距离”,而向量距离取决于 Embedding 模型的质量。如果模型本身语义理解能力差,或者训练数据不匹配你的领域,那么:
- 它可能把两个不相关的文本编码得很近(假阳性)
- 也可能把两个相关的文本编码得很远(假阴性)
所以向量相似度是语义理解的近似度量,不是完美度量。这也是为什么生产环境常用混合相似度 + Rerank 来兜底——用关键词相似度补精确性,用 Rerank 模型补语义判断的准确性。
🎯 总结
- 语义理解:模型读懂文字含义的能力,是基础。
- Embedding:把语义理解的结果编码成向量。
- 向量相似度:测量向量距离,是语义理解的量化表达。
- 关键词相似度:不依赖语义理解,只看字面。
- 混合相似度:把两者结合,取长补短。
一句话:语义理解决定了“能不能按意思找”,向量相似度决定了“按意思找得有多准”,而关键词相似度负责“按字面找得有多准”。

浙公网安备 33010602011771号