1. Query 多样性
在检索增强生成(RAG)系统中,查询(Query)的多样性直接影响召回内容的覆盖范围。传统的搜索 Query 扩展技术包括基于用户日志挖掘、文档关联及统计机器翻译(SMT)的方案。进入大模型时代,LLM 极大地降低了 Query 改写的难度并拓展了可能性。
1.1 相似语义改写
早期研究如雅虎 2016 年的 Learning to Rewrite Queries 已探索过基于 Seq2Seq LSTM 的改写方案。近期清华提出的 webcpm 也利用大模型进行 Query 改写以提升长文问答的内容召回。LangChain 等框架也已集成类似功能。核心逻辑是将用户 Query 改写成多个语义相近的变体,并行进行召回,从而增加命中相关文档的概率。
1.2 双向改写
微软的 Query2doc 提出了一种独特的改写思路:将 Query 改写为 Document。通过 4-shot prompt 让 LLM 基于 Query 生成伪文档(pseudo-document),再利用生成的文本进行召回。该方案优势明显:
- 缓解短文本 Query 向量化效果差的问题。
- 缩小 Document 长文本与 Query 短文本在向量空间的差异。
- 提升 BM25 等离散索引的关键词抽取效果。
然而,缺点同样显著:伪文档可能产生语义漂移或幻觉,引入错误关键词降低准确率,且解码耗时较长。
反向思路 Doc2Query 则为每篇文档生成 N 个关联 Query(pseudo-query),使用这些关联 Query 的 Embedding 表征文档。谷歌的研究对比了 Query2Doc、Query2Keyword 及 Query2COT 等多种方案,发现当模型规模足够大时,Query2COT(思维链)展现出更优效果,其多步拆解过程能生成更有效的关键词,且无需依赖外部文档即可释放模型知识。
1.3 强化学习改写
上述无监督改写虽能提升效果,但无法保证改写后的 Query 搜索效果一定更好。引入目标函数进行定向优化是更优解。谷歌 2018 年曾尝试使用强化学习,将搜索系统视为环境,Seq2Seq 模型生成改写候选作为动作,以排序模块 TopK 内容中改写 Query 的召回率作为奖励信号更新模型。
在大模型时代,微软提出的 rewrite-retrieve-read 框架使用 PPO 微调改写模型,Reward 目标设定为推理内容与真实答案的 Exact Match 和 F1。针对开放式问答场景,可类比传统方案,使用大模型推理时的引用率作为 Reward 目标,这与精排原理相似。
2. 索引扩展
当前多数 RAG 系统的召回索引仍以单一 Embedding 向量模型为主,存在以下局限:
- 无法区分语义、语法结构、实体关键词等不同类型的相似性。
- 难以兼顾精准匹配与模糊匹配的不同粒度需求。
- 垂直领域向量模型适配度较低。
- 长短文本向量可能不在同一空间。
2.1 离散索引扩展
传统搜索中的离散索引在垂直领域常与向量召回形成互补。常见的 Query 理解生成离散索引方案包括:
- 抽取:分词、新词 ngram 识别、实体抽取、关键词抽取等。
- 分类:意图分类、话题分类、概念分类等。
- 多跳:实体链接、同义词扩展、KG 查询等。
大模型在关键词扩展方面表现优异。例如 ChatLaw 法律大模型利用 LLM 生成法律条文联想关键词,结合 Ensemble Embedding 或直接关键词召回,在法律领域取得了显著效果。尽管部分研究显示 Query2Keyword 效果略逊于 Query2Doc,但其低耗时特性使其在特定场景下极具价值。
2.2 连续索引扩展
向量索引的扩展可通过多种路径实现:
- 朴素模式:同时使用多种 Embedding 模型(如 OpenAI Ada, BGE, Text2vec)进行多路召回或加权融合。
- 简单模式:利用抽取的关键词构建词向量加权召回。词向量召回率高但准确率可能偏低,适合召回阶段的广撒网策略。
- Hard 模式:训练领域专用 Embedding 模型。成本最高,但在特定场景下提升有限。
微软近期提出了一种轻量级方案,类似 LoRA 微调思路,不动基座模型,仅微调 Adapter 来优化 Query 与 Document 的匹配效果。该方法采用向量加法,在原始 D 维 embedding 基础上增加 Residual,Residual 计算通过 Key-Value lookup 函数实现。微调损失函数使用对比学习的 GlobalNegative Loss,目标是最大化 Query 与正样本相似度,最小化与负样本相似度。


