查询变换:改写、HyDE 与多查询

02-嵌入与向量检索 进阶 约 20 分钟 #查询变换#HyDE#查询分解#多查询 更新 2026-10-02
当前状态:未学
本文基于模型知识整理(生成时未联网核对),关键结论建议对照经典文献复核。

一句话定义

查询变换在检索之前用 LLM 加工用户问题——改写成文档语言、假设文档生成(HyDE)、拆解多跳问题、生成多个变体检索——弥合"用户的问法"与"文档的写法"之间的语义鸿沟,是低投入高收益的检索增强手段。

为什么重要

用户的问题常常是"答案的影子":口语化、指代不全("那个怎么办")、多跳复合("A 公司的 CEO 的母校排名")或与文档语言风格迥异。直接拿原始查询去检索,召回失败不是索引的错而是查询的错。查询变换把这条鸿沟在检索前填平,比换嵌入模型便宜得多。

前置知识

kp-010(混合检索)、kp-003(指代与上下文缺失)。

核心概念

  • 查询改写(rewrite):结合对话历史补全指代、规范化口语("这个咋弄"→"年假申请流程");多轮 RAG 的必需品。
  • HyDE(Hypothetical Document Embeddings):让 LLM 先"假装回答"生成一篇假设文档,用假设文档的嵌入去检索——因为"答案与答案相似"比"问题与答案相似"在嵌入空间里更成立。
  • 多查询(multi-query):从不同角度生成 3–5 个查询变体并行检索,结果合并去重(常用 RRF),提升召回覆盖。
  • 查询分解(decomposition):把多跳复合问题拆成子问题链,逐个检索、中间答案回填——"X 的 CEO 的母校"拆成两步。
  • Step-back prompting:先抽象出上位问题("爱因斯坦哪年生的"→"爱因斯坦的生平")检索背景,再答具体问题。

原理与机制

HyDE 为什么有效:嵌入模型的对比训练让"语义相似的文档"向量相邻,而问题与答案属于不同文本类型,向量距离天然偏远。HyDE 用一次廉价生成把问题"翻译"到文档分布里再检索,相当于人工制造了一个"伪正例"。代价:多一次 LLM 调用(延迟+成本),且假设文档可能带偏方向(幻觉内容会污染查询向量)——实践中常与原始查询并行检索后融合,而非替代。

分解与多跳的必然性:单跳问题一次检索即可命中答案块;多跳问题所需的证据分散在多个块里,任何单次查询都无法同时贴近两个证据——必须分解为"检索→取中间实体→再检索"的链。这条链的自动化与图方法(kp-025 的多跳遍历)殊途同归:图是显式结构化的多跳,分解是隐式的语言级多跳。

收益成本账:查询变换每加一次 LLM 调用 ≈ 增加数百毫秒延迟与对应 token 成本;只有当检索失败率是主要矛盾(评测显示 recall 低)时才值得加——先评测再增强(kp-017)。

图示

原查询: "他们家的退货期限"
改写:   "XX 商城的退货期限是多少天"          ← 补指代
HyDE:   生成"根据商城政策,商品自签收之日起7天内…"(伪文档) → 用它检索
分解:   "A公司CEO是谁" → [检索→"张三"] → "张三的母校是" → [检索→答案]
多查询: 变体1/2/3 并行检索 → RRF 合并

实例或案例

  • 客服多轮对话:第 3 轮"那退货呢"不带改写会检索出无关内容;结合历史改写后命中"退货政策"块。
  • 学术文献助手:HyDE 对"方法很新、问题很冷"的查询提升显著,因为文献写法与用户问法差异最大。
  • 多跳评测集(如 HotpotQA 类)上,分解 + 迭代检索是向量单跳方案的标配补救。

常见误区

  • 误区一:"查询变换无脑全开"。每次变换都是延迟与成本的乘法;评测显示检索没问题时应保持直通,只对失败模式对症下药。
  • 误区二:"HyDE 替代原始查询"。假设文档的幻觉会带偏检索;与原始查询双路融合更稳。
  • 误区三:"分解越多跳越好"。跳数增加误差累积与延迟;能一步检索命中的问题不要拆。

与其他知识点的关系

  • kp-010:多查询结果用 RRF 融合回主干。
  • kp-014:改写依赖对话历史,历史管理在上下文工程层。
  • kp-025:多跳分解与图遍历的等价性。
  • kp-027:Agentic RAG 把查询变换升级为规划决策。

自测题

  1. HyDE 的核心洞察是什么?有何代价?

答:在嵌入空间"答案更像答案",用 LLM 生成假设文档把查询平移到文档分布再检索;代价是额外一次生成(延迟成本)与假设内容幻觉带偏的风险。

  1. 什么样的查询必须分解?

答:多跳复合问题——答案依赖"先查 A 得实体 X,再查 X 的属性",单次检索无法同时贴近两段证据。

  1. 何时应关闭查询变换?

答:评测显示检索召回已达标、瓶颈在生成或排序时;变换只增加延迟成本不带来收益。

延伸阅读

  • Gao 等, "Precise Zero-Shot Dense Retrieval without Relevance Labels"(ACL 2023,HyDE)。
  • LangChain 文档:query transformation / multi-query retriever。
  • Press 等, "Measuring and Narrowing the Compositionality Gap"(step-back 与分解的评测)。