什么是查询改写?让检索先听懂用户真正要问什么

查询改写是什么?AI 如何把省略、指代和口语问题改成适合检索的问法,它和阅读理解如何配合,以及改写偏了为什么要能退回原问题。

什么是查询改写?让检索先听懂用户真正要问什么
编辑部 ·

查询改写(Query Rewriting)是在检索之前,把用户的原话改成更适合搜索的问法。用户常说得很短、带着上文,或用了和文档不一样的词。直接拿原话去搜,正确资料可能根本进不了上下文。

例如上一轮在问改签,这一轮只说「那免费吗」。改写后可以变成「机票在出发前改签是否免费」,检索才知道要找哪条规则。

它主要补哪几类缺口?

  • 省略和指代:把「它」「那个」补回具体对象;
  • 同义说法:用户说「退钱」,文档写「退款」;
  • 一次问了多件事:拆成几个可以分别检索的问题;
  • 问得太宽:补上用户已经说过的产品、时间和限制。

改写不是让模型自由发挥。补进去的内容应来自对话上文或用户已经给出的条件,不能凭空加上文档里没有的限定。判断两句话是否还是同一个意思,可以借助语义相似度,但相似度高不等于改写没有偏题。

怎样少改错?

保留原问题,和改写后的问题一起检索,避免改写偏了就完全搜不到。改写结果要能被人看懂,出了错可以回退到原话。对价格、资格、时间这类问题,核对答案时仍以检索到的原文为准,而不是以改写后的句子为准。

它和机器阅读理解是前后两步:改写帮助把对的材料找出来,阅读理解负责对着材料作答。检索评测里如果答案跑题,也应先看改写有没有把问题带偏,这一点在RAG 评测里同样重要。

小结

查询改写让检索先听懂用户真正要问什么。它能提高召回,但不能代替原文,改写偏了就要能退回原问题。