SubgraphRAG
基于知识图谱子图检索与LLM推理的两阶段RAG系统,在多跳问答任务上Simple is Effect
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
基于知识图谱子图检索与LLM推理的两阶段RAG系统,在多跳问答任务上Simple is Effect
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:SubgraphRAG 整体框架——子图检索与 LLM 推理两阶段协同工作
想象这样一个问题:"谁写了某本书,而这本书改编成了某部电影?" 要回答这个问题,AI 系统必须同时理解两个关联关系——"作者"和"改编"——并在知识图谱中从起点实体出发,沿着两条不同路径找到最终答案。这就是多跳知识图谱问答(Multi-hop KGQA),也是当前 RAG 系统最难啃的硬骨头之一。
大多数传统 RAG 系统从非结构化文本中检索碎片,天然缺乏对实体关系的精确建模;而传统知识图谱问答系统又高度依赖手工设计的规则和特征工程。2025 年 ICLR 论文 SubgraphRAG 提出了一个令人耳目一新的答案:Simple is Effective——用简单直接的方法,在知识图谱上进行子图检索与 LLM 推理结合,居然击败了众多复杂方案。
SubgraphRAG 由佐治亚理工学院(Georgia Tech)Graph-COM 实验室发布,领衔作者是 Mufei Li(李慕飞),他同时也是 PyTorch Geometric 的核心贡献者之一,在图机器学习领域有深厚积累。另一位作者 Siqi Miao 和 Pan Li 共同完成了这项研究。该工作发表在 ICLR 2025(International Conference on Learning Representations),是图学习和表示学习领域的顶级会议。
项目 GitHub 仓库目前已获得约 185 颗星、31 个 Fork,涵盖了知识图谱(Knowledge Graph)、RAG、大语言模型(LLM)等多个前沿技术方向,是近期图 RAG 领域最受关注的工作之一。
如果把知识图谱比作一张城市地铁线路图——每个站点是一个实体,每条线路是一种关系——那么 SubgraphRAG 的工作方式就像一位经验丰富的老司机:
Retrieve 阶段(检索):这位司机首先用电子眼(文本编码器 GTE-large)扫描整张线路图,快速定位到与乘客出发地(Topic Entity)相关的关键站点,然后沿多条线路展开搜索,找出所有与目的地(Answer Entity)相连的路径——这些路径就是检索到的「子图三元组」。
Reason 阶段(推理):拿到这些线路段之后,司机(LLM)结合自己的知识地图,最终判断哪条路线是正确的,或者给出所有可能的到达方式(多答案支持)。
整个流程干净利落,没有多余的中间层,每一步都直接作用于图结构。
检索阶段又分为三个子模块:
1)文本编码(Embedding Pre-computation)
使用阿里巴巴开源的 GTE-large-en-v1.5 文本编码器,将问题、实体名称和关系文本分别编码为 1024 维向量。GTE(General Text Embedding)是一种高性能的双语/多语文本表示模型,在 MTEB 等评测基准上表现优异。预计算所有嵌入向量并缓存,可大幅加速后续训练和推理。
2)Retriever 模型(图神经网络打分器)
这是整个系统的核心创新之一。作者设计了一个基于 PyTorch Geometric 的轻量级图神经网络,核心组件包括:
DDE(Double Direction Embedding,双向路径编码):对从 Topic Entity 到 Answer Entity 的所有最短路径做双向图卷积。模型会沿正向和反向各做若干轮 Message Passing,捕捉不同跳数下的路径结构信息。
三元组评分器:将问题嵌入、头尾实体嵌入、关系嵌入以及 DDE 路径编码拼接,通过两层 MLP 输出每条候选三元组的得分。
训练信号来自弱监督:利用 NetworkX 提取问题主题实体到答案实体的最短路径,将其作为正样本,其余路径作为负样本。
3)Top-K 检索
根据打分结果,取 Top-K(代码支持 K=50/100/200/400)得分最高的三元组,作为下一阶段的输入。评测指标包括 Ans Recall@K(答案实体召回率)、Shortest Path Triple Recall@K 和 GPT Triple Recall@K。
推理阶段使用大语言模型,基于检索到的子图三元组回答多跳问题。支持两种主流推理引擎:
推理支持多种 Prompt 策略:
CoT(Chain-of-Thought):先生成推理过程,再输出答案
ICL(In-Context Learning):在 Prompt 中加入少量示例,引导模型模仿
GPT Label 模式:用 GPT 标注高质量推理轨迹,用于特定场景
推理结果评测指标非常全面:Hit@1、F1(宏平均/微平均)、Exact Match、Hal Score 等。
论文在两个标准多跳知识图谱问答数据集上进行了评测:
WebQSP:Google Freebase 上的单跳/多跳问答数据集
CWQ(Complex Web Questions):比 WebQSP 更复杂的组合问题数据集
作者将 SubgraphRAG 与 RoG、Kaqa、FiD 等多个强基线方法进行了对比,实验结果表明:在不同的 Top-K 设置下,SubgraphRAG 均能取得领先的答案召回率和 F1 分数,验证了「简单方法的有效性」。
适用场景:
企业内部知识库的复杂多跳问答(如"哪些供应商同时提供了某类原材料,且通过了 XX 认证?")
医疗/法律领域需要精确关系推理的知识服务
学术文献知识图谱的智能问答系统
局限:
目前仅支持英文知识图谱(Freebase),未覆盖中文知识图谱(如 CN-DBpedia、OwnThink)
Retriever 训练依赖预标注的问题-答案实体对,冷启动场景需要额外数据支持
无 Web UI,项目以纯研究代码形式发布,需要 ML 研究背景才能复现
SubgraphRAG 的核心贡献不在于刷榜,而在于它用两条简洁的设计原则(精准的子图检索 + 直接的 LLM 推理),重新思考了知识图谱与 RAG 的结合方式。在当前 RAG 系统普遍追求「复杂架构」和「多阶段管道」的背景下,这种「大道至简」的思路为社区提供了一剂清醒剂。
作者代码结构清晰、文档完整(两个 Stage 独立运行,提供预训练模型下载),复现门槛相对可控,预计将对该领域后续研究产生持续影响。