Appearance
6.2 Query Rewrite 与 Query Expansion
这一节要讨论的是查询理解里最常见、也最容易被混在一起的两类动作:
Query RewriteQuery Expansion
它们看起来都像“把查询改一改”,但真正解决的问题并不完全一样。
可以先粗略理解成:
Rewrite更像把问题改得更清晰、更适合检索Expansion更像给查询补更多可能有用的召回信号
如果这两层不分清,后面很容易出现两种常见问题:
- 改写太多,把用户真实意图改偏了
- 扩写太猛,把噪声和错误候选一起带进来了
学这一节时,最值得先建立的判断
- Query Rewrite 的重点是“重述意图”,不是简单换个说法
- Query Expansion 的重点是“补充召回信号”,不是无限扩词
- 多轮对话里,重写往往是先把问题补完整
- 对话历史如果处理不好,不是帮助检索,而是直接污染检索
这一节会回答什么问题
- 什么是 Query Rewrite?什么时候要改写用户问题?
- 什么是 Query Expansion?什么时候要扩写查询?
- 多轮对话场景下,RAG 为什么要先做问题重写?
- 为什么对话历史如果处理不好,会直接污染检索?
读完这一节后,你最好能更稳地判断:
- 哪些问题更需要重写,哪些问题更需要扩写
- 多轮对话里什么时候必须先恢复完整查询
- 为什么历史信息不是加得越多越好,而是要有选择地进入检索