← 返回题目列表

RAG 查询扩展有什么作用?

中等 第 18 / 29 题 更新于 2026/09/18
RAG查询扩展Multi-Query检索召回

简化版

查询扩展通过补同义词、缩写、实体别名或生成多个检索视角,提高用户措辞与文档措辞不一致时的召回。它的风险是语义漂移和候选爆炸,因此原始查询必须保留,扩展数量与权重受控,结果用 RRF/去重合并,并由 reranker 按原始意图重新排序。

详细版

扩展可分词典/实体规则、伪相关反馈、LLM Multi-Query 和 HyDE。精确编号、否定、时间与权限过滤不应被改写;宽泛问句可拆成子问题或生成不同表达。每个扩展查询独立召回 Top-k,合并后按文档去重,再以原问题 rerank,避免扩展文本取代用户真实意图。

上线前在“原查询无命中但扩展可命中”的困难集上测 Recall@k,同时看 precision、错误主题引入、查询次数、P95 与成本。只有高歧义或低召回预测的请求才动态扩展;实体明确的导航型查询通常无需付出额外成本。

原查询 -> 意图/实体保护 -> 生成2~4个扩展 -> 并行召回 -> RRF去重 -> 原查询rerank

完整版教学

一、扩展解决词汇鸿沟

用户说“账号进不去”,文档标题可能是“身份认证失败”;用户写缩写 SSO,知识库使用“单点登录”。纯关键词会漏召回,向量检索也可能对内部缩写不熟。扩展把一个意图表达成多种可检索形式,提高至少一条命中文档措辞的概率。

它不是给答案补知识,而是生成更多查询。扩展内容不应作为事实证据直接交给生成器,否则模型生成的假设会被误当成文档事实。

二、有哪些扩展方法

词典规则稳定可控,适合产品别名、缩写和拼写;伪相关反馈从首轮高分文档提取关键词,但首轮错误会放大;Multi-Query 用 LLM 生成多种改写;HyDE 先生成假想答案再嵌入,适合短查询到长文档的表示差异。

方法优点风险
同义词/别名词典可审计、便宜覆盖维护成本
查询拆解支持多跳子问题依赖遗漏
Multi-Query表达多样成本与语义漂移
伪相关反馈利用语料词汇错误首轮被放大
HyDE缩短 query-doc 形态差假想细节偏离

组合时先用确定性实体规范化,再对剩余语义做生成扩展。

记忆钩子:扩展的目标是“多开几扇检索入口”,最后裁判仍然是原始问题,不能让改写夺走意图所有权。

三、哪些信息必须保护

产品号、姓名、日期、否定词、地域和权限 filter 是硬约束。将“不是 Windows 的安装问题”改写成“Windows 安装问题”会召回相反证据。生成扩展前抽取 protected spans,并要求原样保留或以结构化过滤传给检索器。

{
  "semantic_query": "登录失败如何处理",
  "must_terms": ["ZX-1049"],
  "must_not": ["Windows"],
  "filters": {"product": "mobile", "valid_at": "2026-09-18"}
}

扩展只改 semantic_query,其他字段由程序锁定。这样兼顾召回与约束准确性。

四、多查询结果怎样融合

不同检索器分数不可直接相加。RRF 使用排名而非原始分数:

RRF(d) = Σ_q 1 / (k0 + rank_q(d))

k0=60,某文档在两个查询分别排 1、3,得分约 1/61+1/63,比只在一个改写中偶然排第一更稳。合并后按 canonical document/chunk 去重,再由 cross-encoder 使用原始 query 排序。

每个扩展的候选配额要限制。4 个查询各取 20 得 80 个候选,rerank 成本可能远高于原本 Top-20;可先 RRF 截到 30。

五、语义漂移怎么发现和控制

LLM 可能把“苹果账户”扩成水果种植,或在 HyDE 中编造版本号。可计算扩展与原查询的相似度、实体一致和意图分类,过远则丢弃;提示生成“互补但等价”的表达,并限制 2~4 条。最终 reranker只看原始问题。

保留原始查询结果作为一条独立通道,设置最低配额,防所有扩展都错。对高风险精确查询可完全禁用生成扩展,只用别名词典和拼写纠正。

六、动态路由为何更经济

不是每个查询都需要扩展。包含唯一订单号、明确标题或首轮检索高置信时,扩展增加延迟却无收益。短、歧义、零结果、Top-k 分数低或结果多样性差时更值得触发。

假设普通检索 100ms,生成 3 个扩展加并行检索使 P95 达 450ms。若只对 20% 困难请求启用,平均增量约 70ms,可能比全量启用划算。路由阈值要用召回收益—延迟曲线校准。

七、怎样评测扩展质量

建立词汇鸿沟、缩写、错别字、多跳、否定和精确实体切片。比较原始检索、规则扩展、Multi-Query 与组合,在相同最终候选数下报告 Recall@k、MRR、precision、扩展失败率和成本。还要测端到端答案,避免召回增加但噪声伤生成。

对每个新增命中的真证据记录由哪条扩展带来;对错误主题同样归因。若 1000 查询只新增 5 个正确命中,却引入 200 个错误候选,策略不值得。离线扩展可缓存,实时用户查询则关注延迟。

八、常见误区与追问

  • 误区:扩展查询越多召回越好。 候选噪声和成本会增长,且语义漂移概率上升。
  • 误区:LLM 生成的假想答案可以当证据。 它只用于检索表示,事实必须来自真实文档。
  • 误区:改写后可以丢掉原始查询。 原查询是意图锚点,应保留召回和最终重排。
  • 追问:Multi-Query 与 HyDE 区别? 前者生成多个问题表达,后者生成假想文档/答案表示。
  • 追问:如何保护否定和编号? 抽取为 locked spans/filters,由程序传递,不允许生成器自由改写。
  • 追问:何时不扩展? 唯一实体明确、首轮高置信或延迟预算严格时。

九、加强记忆

查询扩展可记成“保原意、开多路、并召回、用原问重排”。先锁实体、否定和过滤条件,再用词典、Multi-Query 或 HyDE 补表达;RRF 去重融合,最终按原始问题裁决。动态只服务低召回请求,并同时测新增真证据与引入噪声,才不会把召回优化成语义漂移。