什么是查询改写?让检索先听懂用户真正要问什么
查询改写是什么?AI 如何把省略、指代和口语问题改成适合检索的问法,它和阅读理解如何配合,以及改写偏了为什么要能退回原问题。
编辑部 ·
查询改写(Query Rewriting)是在检索之前,把用户的原话改成更适合搜索的问法。用户常说得很短、带着上文,或用了和文档不一样的词。直接拿原话去搜,正确资料可能根本进不了上下文。
例如上一轮在问改签,这一轮只说「那免费吗」。改写后可以变成「机票在出发前改签是否免费」,检索才知道要找哪条规则。
它主要补哪几类缺口?
- 省略和指代:把「它」「那个」补回具体对象;
- 同义说法:用户说「退钱」,文档写「退款」;
- 一次问了多件事:拆成几个可以分别检索的问题;
- 问得太宽:补上用户已经说过的产品、时间和限制。
改写不是让模型自由发挥。补进去的内容应来自对话上文或用户已经给出的条件,不能凭空加上文档里没有的限定。判断两句话是否还是同一个意思,可以借助语义相似度,但相似度高不等于改写没有偏题。
怎样少改错?
保留原问题,和改写后的问题一起检索,避免改写偏了就完全搜不到。改写结果要能被人看懂,出了错可以回退到原话。对价格、资格、时间这类问题,核对答案时仍以检索到的原文为准,而不是以改写后的句子为准。
它和机器阅读理解是前后两步:改写帮助把对的材料找出来,阅读理解负责对着材料作答。检索评测里如果答案跑题,也应先看改写有没有把问题带偏,这一点在RAG 评测里同样重要。
小结
查询改写让检索先听懂用户真正要问什么。它能提高召回,但不能代替原文,改写偏了就要能退回原问题。