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自动标注,标注噪声会直接削弱效果。第四,评测主要落在检索阶段,生成端的表现没有充分展开。