Appearance
14.1.4 相似度高不等于答案就一定对,为什么?
先给结论:相似度只说明“语义接近”,不说明“证据足够”。答案正确与否,取决于证据是否完整、是否匹配当前边界、是否真的支持结论。
很多人会把相似度分数当成一种“可靠性信号”。
这种想法有一定道理,因为相似度高至少说明:模型或向量检索系统认为这段内容和问题比较像。
但“像”,和“对”,中间还差得很远。
相似度解决的是“像不像”,不是“能不能证明”
一个回答要成立,至少需要几个条件:
- 证据对象是对的
- 证据版本是对的
- 证据时间范围是对的
- 证据条件是完整的
而向量相似度主要回答的是:
“这段文字在语义空间里,离你的问题近不近。”
它并不会替你判断:
- 这是不是旧版本文档
- 这是不是另一个产品线的说明
- 这段话是不是缺少关键限制条件
- 这段话是不是和别的证据冲突
哪些场景里“高相似度但答案错误”最常见
1. 主题相同,但边界不同
问题在问“企业版是否支持某功能”,结果你命中了“产品支持该功能”的通用介绍页。
主题很像,但产品版本边界不对。
2. 内容接近,但时间不同
问题在问当前策略,结果命中了旧文档。
语义上很像,业务上却已经失效。
3. 命中了片段答案,但缺关键条件
问题需要“在什么前提下可以做什么”,结果只命中了“可以做什么”的那半句。
主结论看着没错,但其实并不能直接回答。
4. 命中了相邻概念
例如问题在问“如何关闭某功能”,检索却命中了“如何开启某功能”的相邻文档。
因为两者使用了大量相同词汇,相似度仍可能很高。
为什么只看相似度会误导你
因为相似度分数很容易制造一种假象:
“既然都这么高了,检索应该已经没问题。”
但真实情况往往是:
- 检索层只是把“像的内容”找出来了
- 真正的证据判断还没做
- 最终答案质量,取决于后续是否做了过滤、重排、证据组织和评估
所以高相似度最多是一个候选信号,而不是正确性证明。
怎么减少这种误判
更可靠的做法通常是把“相似度”降级成第一层筛选,而不是最终判断依据。
常见策略包括:
- 先用向量检索给出候选
- 用 metadata 过滤掉明显不符合边界的内容
- 用重排模型判断“这段内容是否真正支持当前问题”
- 要求最终答案显式基于证据片段生成
也就是说,相似度解决的是“先找一批可能有关的东西”,不是“直接确定正确答案”。
怎么排查是不是相似度误导了你
如果你怀疑系统陷入了“高相似度但低正确率”,可以检查下面几件事:
- 高相似度结果里,是否经常混入旧版本或泛化说明页
- 最终答案引用的内容,是否真的覆盖了关键限制条件
- 错误案例里,是否总是命中某类“看起来像但实际上边界不对”的文档
如果这种模式稳定存在,问题通常不在 embedding 分数本身,而在数据组织、metadata 和过滤逻辑。
一句话总结
相似度高,只能说明“看起来像”;答案正确,要求的是“证据真的能证明”。两者不能混为一谈。