RAG 查询优化技术详解:扩展、分解、消歧与抽象
引言
检索增强生成(Retrieval-Augmented Generation, RAG)系统的有效性高度依赖于查询优化(Query Optimization, QO)技术。在实际应用中,用户的原始查询往往存在语义模糊、信息缺失或结构复杂等问题,直接用于检索通常无法获得高质量的相关文档。
虽然 Query 改写是常见的优化手段,但它只是整个查询优化体系中的一环。为了构建更精准的大模型应用,需要采用更全面的技术策略。本文将详细解析腾讯最新 QO 技术研究综述中提出的四大类 Query 优化技术:扩展、分解、消歧和抽象,并探讨其应用场景与代表性方案。
一、查询优化(QO)的核心价值
查询优化旨在改进用户的原始查询,以解决以下挑战:
- 模糊的语义:用户输入可能缺乏关键限定词。
- 复杂的要求:问题涉及多跳推理或跨文档整合。
- 相关性差异:查询词汇与目标文档中的术语不匹配。
通过有效的 QO,可以显著提升检索召回率(Recall)和精确率(Precision),进而提高大模型生成答案的质量。
二、Query 优化详细分类
1. Query Expansion(查询扩展)
查询扩展技术对于提高检索增强生成的性能至关重要,尤其是当与大型语言模型(LLMs)集成时。它通过增加查询的词汇量或概念覆盖范围来提升检索效果。根据知识来源的不同,可分为内部扩展和外部扩展。
Internal Expansion(内部扩展)
- 场景:主要针对信息时效性较低的查询,这些信息通常包含在 LLMs 的预训练阶段内嵌入的知识中。
- 原理:利用 LLM 已有的参数化知识来补充查询上下文。
- 案例:原始查询'2020 年夏季奥运会将在何处举行?'可以通过 LLM 生成的相关额外信息进行优化,例如补充'东京'、'日本'等隐含实体。
External Expansion(外部扩展)
- 场景:主要针对通常需要从知识库或网络中搜索事实的高度时效性查询。
- 原理:通过从外部数据源(如搜索引擎、向量数据库)检索相关信息来扩展查询。
- 案例:原始查询'2024 年夏季奥运会将在何处举行?'可以通过从知识库检索的相关信息(如官方公告、新闻)进行优化,确保信息的实时性和准确性。
2. Question Decomposition(问题分解)
对于复杂查询,简单地使用原始查询进行搜索通常无法检索到足够的信息。因此,LLMs 需要先将这些查询分解成更简单、可回答的子查询,然后搜索与这些子组件相关的信息。通过整合这些子查询的响应,LLMs 能够构建对原始查询的全面响应。
- 场景:顺序分解主要针对需要检索多个事实以形成全面答案的查询。
- 案例 A:原始查询'在 2024 年夏季奥运会上,中国在乒乓球或羽毛球上赢得的奖牌更多?'可以优化为两个子查询:
- '中国在 2024 年奥运会乒乓球上赢得了多少奖牌?'
- '中国在 2024 年奥运会羽毛球上赢得了多少奖牌?'
- 案例 B:原始查询'2024 年奥运会男子单打乒乓球金牌得主的出生日期是什么时候?'可以优化为两个子查询:
- '2024 年夏季奥运会男子单打乒乓球冠军是谁?'
- '该冠军的出生日期是什么时候?'
3. Query Disambiguation(查询消歧)
查询消歧旨在识别和消除复杂查询中的歧义,确保查询是明确的。这涉及到确定查询中可能被多种方式解释的元素,并细化查询以确保单一、精确的解释。
- 场景:主要针对模糊查询或有多种潜在解释的查询。它专注于澄清和细化用户查询,以确保准确理解并检索相关信息。
- :例如,原始查询'2024 年夏季奥运会乒乓球单打冠军是谁?'可能指代男子或女子单打冠军。通过消歧,可以将其分解为两个子查询:


