1. 查询改写的核心方法
用户查询往往过于简短、口语化或使用知识库中不存在的实体名称,直接用于检索效果不佳。查询改写的主要方法包括:
- 查询扩展:添加同义词、上下位词和相关实体,扩大召回范围
- 查询重写:将自然语言查询改写为更适合向量检索或关键词检索的形式
- HyDE(假设性文档嵌入):先由模型生成一个假设性答案,用该答案的嵌入向量进行检索,绕过查询与文档之间的措辞差异
- 实体消歧:识别查询中的歧义实体并明确指向
2. 查询分解的策略
对于包含多个信息需求的复合查询,智能体将其分解为多个原子子查询:
- 并行分解:将独立的信息需求拆分为可并行执行的子查询
- 串行分解:将存在依赖关系的子问题按顺序排列,前一步结果指导后续查询
- 条件分解:根据中间结果动态决定后续子查询的内容
3. 效果提升数据
查询改写与分解对检索效果的提升有实证支撑:
- 在多跳问答基准上,查询改写可带来数个百分点到数十个百分点的召回率提升
- 查询分解使复杂问题的回答完整度显著提高,因为每个子问题都能获得针对性的检索
- 代价是每轮改写和分解需要额外的 LLM 调用,增加延迟和 Token 消耗