Skip to content

12.1.3 为什么复杂问题常常不适合只走一条召回链路? ​

先给结论:复杂问题往往同时包含多种检索信号:语义、关键词、结构化条件、版本和时效边界。单一路径很难覆盖全部信号,所以复杂问题天然更适合多路召回或路由检索。

很多系统在复杂问题上表现不稳,常见原因是:

  • 检索路径只覆盖了其中一种信号

复杂问题并不是“问得长一点”,而是“问题里包含多个约束维度”。

复杂问题常见的多信号特征 ​

复杂问题通常同时包含以下特征中的几个:

  • 语义改写
    用户表达不一定和文档用词一致

  • 精确术语
    包含编号、字段名、产品名、规则名称

  • 时间或版本边界
    要求“当前有效版本”或“某个时间段”

  • 条件组合
    多个条件必须同时满足

这些特征决定了:

  • 单一检索信号往往只能覆盖部分需求

为什么单一路径容易失效 ​

向量检索的盲区 ​

向量检索擅长语义,但容易漏掉:

  • 精确术语
  • 编号和字段名

关键词检索的盲区 ​

关键词检索擅长精确命中,但容易漏掉:

  • 改写表达
  • 口语化问题

复杂问题同时需要这两类信号时,任何单一路径都容易漏召回。

复杂问题常常需要“分阶段检索” ​

复杂问题不只是检索强度的问题,而是检索结构的问题。例如:

  • 先定位文档范围
  • 再在文档内找具体条件
  • 再结合时间或版本过滤

单一路径很难同时完成这些步骤。

复杂问题更依赖“路径匹配” ​

不同复杂问题可能需要不同路径:

  • 术语 + 条件问题
    更适合关键词 + 结构化过滤

  • 语义改写 + 多文档综合问题
    更适合向量 + 多路召回 + 重排

如果所有问题都走同一条路径,复杂问题就会长期不稳。

一个最小失败信号 ​

你可以用下面这些现象判断是否是“单一路径失效”:

  • 同类复杂问题波动很大
  • 换一种问法就召不回
  • 召回结果只覆盖了问题的一部分条件
  • 召回结果里缺少关键版本或时效信息

这些信号都很像:

  • 单一路径覆盖不了问题的多信号要求

更稳的解决路径 ​

更稳的做法通常是:

  • 多路召回并行补盲
  • 路由检索按问题类型分流
  • 结构化过滤与语义检索结合

这样可以让复杂问题的不同信号都被覆盖到。

一句话总结 ​

复杂问题不适合只走一条召回链路,因为它们同时包含多种检索信号。单一路径天然有盲区,多路召回或路由检索才更稳。