检索前加一道语义筛选,GuidedRAG检索相关性提升15%、开销降数量级

GuidedRAG: Semantic Steering of Retrieval-Augmented Generation

Matthijs Jansen op de Haar, Tobias Stähle, Lorenzo Gatti

cs.IR, cs.AI

2026-07-10

检索前用语义把知识库切成子集再检索,GuidedRAG让相关性提升约15%、意图对齐提升三成多,搜索空间缩到原来的百分之一以下。

这篇在解决什么

RAG这两年越做越重。为了召回更准,大家在检索前面叠了知识图、实体抽取、多跳扩展,知识结构和构建流程越来越复杂,索引一个语料库的成本随之飙升。GuidedRAG的出发点是反过来的:与其在更大的搜索空间里用更复杂的检索去捞针,不如在检索之前先用语义把搜索空间切小。

方法

它在标准RAG的检索、增强、生成之前加了两个阶段。Configuration阶段定义知识库和可用的语义(实体、关系、类别、日期);Selection阶段在检索发生前,用这些语义把知识库切成子集。子集之间还能做集合运算,并集、交集、对称差。

效果是双重的。第一,检索不再在整个语料库上跑,而是在一个语义对齐过的子集上跑,搜索空间直接缩到原来的零点几个百分点,单个实体选取平均只留下4.57个chunk,两个实体取交集只剩1.50个。第二,当问题里提到的语义在库里根本不存在时,selection会返回空集,系统能直接判定「这个问题答不了」,而不是像传统RAG那样硬凑一段似是而非的假阳性。

需要说清楚的一点是,这套语义从哪来。论文里这些语义是LLM自动标注产生的,作者也承认标注质量直接影响效果。

结果

在ARLtR这个专门测语义引导的benchmark上(也是目前唯一一个):

指标提升
检索相关性+14.015.8%
意图对齐+31.836.8%
检索精度损失(被缓解)19.727.4%
检索开销降数个数量级

作者还把15个已有RAG方法(Lewis的原始RAG、GraphRAG、Self-RAG、HippoRAG、DPR等)逐一映射进这个五阶段框架,声称全部能覆盖。相关chunk也更早出现在排序结果里。

为什么重要

对做企业知识库检索的人,「先圈范围再检索」是一个工程上很直觉、却长期没被显式建模的步骤。把它做成一个独立阶段,好处是检索器可以动态切换、能判空、能缩搜索空间。比起堆图结构和复杂检索,这条路更省构建成本。

局限与存疑

诚实讲,这篇的几个claim要打折看。第一,它只在ARLtR一个benchmark上测,而ARLtR正是作者自己为语义引导造的benchmark,在它上面效果好有一定循环论证的嫌疑,作者也承认没有别的benchmark能横向比。第二,「覆盖15个RAG变体」是框架映射,不是性能对比,把别人的方法塞进自己的五阶段分类,不等于证明了方法更强。第三,语义依赖LLM自动标注,标注噪声会直接削弱效果。第四,评测主要落在检索阶段,生成端的表现没有充分展开。

术语

原文与代码

社区讨论

相关论文

全部论文解读