Appearance
12.1.3 为什么复杂问题常常不适合只走一条召回链路?
先给结论:复杂问题往往同时包含多种检索信号:语义、关键词、结构化条件、版本和时效边界。单一路径很难覆盖全部信号,所以复杂问题天然更适合多路召回或路由检索。
很多系统在复杂问题上表现不稳,常见原因是:
- 检索路径只覆盖了其中一种信号
复杂问题并不是“问得长一点”,而是“问题里包含多个约束维度”。
复杂问题常见的多信号特征
复杂问题通常同时包含以下特征中的几个:
语义改写
用户表达不一定和文档用词一致精确术语
包含编号、字段名、产品名、规则名称时间或版本边界
要求“当前有效版本”或“某个时间段”条件组合
多个条件必须同时满足
这些特征决定了:
- 单一检索信号往往只能覆盖部分需求
为什么单一路径容易失效
向量检索的盲区
向量检索擅长语义,但容易漏掉:
- 精确术语
- 编号和字段名
关键词检索的盲区
关键词检索擅长精确命中,但容易漏掉:
- 改写表达
- 口语化问题
复杂问题同时需要这两类信号时,任何单一路径都容易漏召回。
复杂问题常常需要“分阶段检索”
复杂问题不只是检索强度的问题,而是检索结构的问题。例如:
- 先定位文档范围
- 再在文档内找具体条件
- 再结合时间或版本过滤
单一路径很难同时完成这些步骤。
复杂问题更依赖“路径匹配”
不同复杂问题可能需要不同路径:
术语 + 条件问题
更适合关键词 + 结构化过滤语义改写 + 多文档综合问题
更适合向量 + 多路召回 + 重排
如果所有问题都走同一条路径,复杂问题就会长期不稳。
一个最小失败信号
你可以用下面这些现象判断是否是“单一路径失效”:
- 同类复杂问题波动很大
- 换一种问法就召不回
- 召回结果只覆盖了问题的一部分条件
- 召回结果里缺少关键版本或时效信息
这些信号都很像:
- 单一路径覆盖不了问题的多信号要求
更稳的解决路径
更稳的做法通常是:
- 多路召回并行补盲
- 路由检索按问题类型分流
- 结构化过滤与语义检索结合
这样可以让复杂问题的不同信号都被覆盖到。
一句话总结
复杂问题不适合只走一条召回链路,因为它们同时包含多种检索信号。单一路径天然有盲区,多路召回或路由检索才更稳。