Skip to content

14.1.4 相似度高不等于答案就一定对,为什么? ​

先给结论:相似度只说明“语义接近”,不说明“证据足够”。答案正确与否,取决于证据是否完整、是否匹配当前边界、是否真的支持结论。

很多人会把相似度分数当成一种“可靠性信号”。
这种想法有一定道理,因为相似度高至少说明:模型或向量检索系统认为这段内容和问题比较像。
但“像”,和“对”,中间还差得很远。

相似度解决的是“像不像”,不是“能不能证明” ​

一个回答要成立,至少需要几个条件:

  • 证据对象是对的
  • 证据版本是对的
  • 证据时间范围是对的
  • 证据条件是完整的

而向量相似度主要回答的是:
“这段文字在语义空间里,离你的问题近不近。”

它并不会替你判断:

  • 这是不是旧版本文档
  • 这是不是另一个产品线的说明
  • 这段话是不是缺少关键限制条件
  • 这段话是不是和别的证据冲突

哪些场景里“高相似度但答案错误”最常见 ​

1. 主题相同,但边界不同 ​

问题在问“企业版是否支持某功能”,结果你命中了“产品支持该功能”的通用介绍页。
主题很像,但产品版本边界不对。

2. 内容接近,但时间不同 ​

问题在问当前策略,结果命中了旧文档。
语义上很像,业务上却已经失效。

3. 命中了片段答案,但缺关键条件 ​

问题需要“在什么前提下可以做什么”,结果只命中了“可以做什么”的那半句。
主结论看着没错,但其实并不能直接回答。

4. 命中了相邻概念 ​

例如问题在问“如何关闭某功能”,检索却命中了“如何开启某功能”的相邻文档。
因为两者使用了大量相同词汇,相似度仍可能很高。

为什么只看相似度会误导你 ​

因为相似度分数很容易制造一种假象:
“既然都这么高了,检索应该已经没问题。”

但真实情况往往是:

  • 检索层只是把“像的内容”找出来了
  • 真正的证据判断还没做
  • 最终答案质量,取决于后续是否做了过滤、重排、证据组织和评估

所以高相似度最多是一个候选信号,而不是正确性证明。

怎么减少这种误判 ​

更可靠的做法通常是把“相似度”降级成第一层筛选,而不是最终判断依据。

常见策略包括:

  1. 先用向量检索给出候选
  2. 用 metadata 过滤掉明显不符合边界的内容
  3. 用重排模型判断“这段内容是否真正支持当前问题”
  4. 要求最终答案显式基于证据片段生成

也就是说,相似度解决的是“先找一批可能有关的东西”,不是“直接确定正确答案”。

怎么排查是不是相似度误导了你 ​

如果你怀疑系统陷入了“高相似度但低正确率”,可以检查下面几件事:

  1. 高相似度结果里,是否经常混入旧版本或泛化说明页
  2. 最终答案引用的内容,是否真的覆盖了关键限制条件
  3. 错误案例里,是否总是命中某类“看起来像但实际上边界不对”的文档

如果这种模式稳定存在,问题通常不在 embedding 分数本身,而在数据组织、metadata 和过滤逻辑。

一句话总结 ​

相似度高,只能说明“看起来像”;答案正确,要求的是“证据真的能证明”。两者不能混为一谈。