当前位置: 首页 > news >正文

知识图谱 Graph Rag 方法横向对比

参考博文

基于图的 RAG 方法总结(GraphRAG、 GraphReader、LightRAG、HippoRAG和KAG)

HippoRAG

2024 nips HippoRAG (目前还在霸榜, 真的厉害)

2025 iclr HippoRAG2

论文地址:https://arxiv.org/abs/2405.14831

项目地址:https://github.com/OSU-NLP-Group/HippoRAG

HippoRAG 是一种受神经生物学启发的检索增强生成模型

文本 → 抽实体/关系 → 建知识图谱
query

→ 找 query 里的实体/概念作为 seed
→ 在图上做 PPR / 图扩散
→ 一步召回多跳相关证据

→ 给 LLM 生成答案

实现细节

HippoRAG 的核心创新是将人类海马体记忆机制引入 RAG。它利用 LLM 和 OpenIE 将文档转化为无模式知识图谱,并通过语义相似边连接不同文档中的相关实体,从而形成能够跨文档整合知识的长期记忆结构。

在检索阶段,HippoRAG 从问题中提取关键实体作为种子节点,并使用个性化PageRank (PPR)在知识图谱中传播相关性,一次检索即可发现多跳关联信息。相比依赖 LLM 反复检索和推理的方法,它能够以更低成本、更高效率完成多跳检索。

总体而言,HippoRAG 的主要贡献是将LLM 知识抽取、知识图谱和 PPR 图检索结合起来,实现具有联想能力的单步多跳检索。

无模式知识图谱

这里的“模式”指的是预先定义好的schema / ontology,也就是提前规定:

  • 有哪些实体类型
  • 有哪些关系类型
  • 哪些实体之间可以建立哪些关系

例如,有模式知识图谱可能会规定:

Person
Company
University

Person --founded--> Company
Person --studiedAt--> University

无模式知识图谱(schema-free knowledge graph)**不会提前严格规定实体和关系类型。系统直接通过 OpenIE 从文本中抽取自然语言关系:

Steve Jobs --founded--> Apple
Steve Jobs --attended--> Reed College
Apple --released--> iPhone

* seed种子节点

用户 query 来了之后,它要先找 query 对应到图里的哪些 entity / phrase / passage。这个地方会用 embedding similarity 或实体链接。

问题 query
→ LLM 抽 named entities
→ 用embedding找 KG 里最像的 node,这些 node 就是 PPR 的 seed

比如:

Which Stanford professor works on Alzheimer’s?

它会先抽:

Stanford Alzheimer’s

然后映射到 KG 里的:

Stanford 节点 Alzheimer’s 节点

*图检索阶段:PageRank

retrieval core 是graph algorithm,不是 LLM decision-making

seed nodes → Personalized PageRank / graph diffusion → rank relevant nodes/passages

PageRank 最早用于网页搜索,核心思想是:

一个节点如果被许多重要节点连接,那么它本身也比较重要。

假设有网页 A、B、C:

A → B
C → B
B → D

因为 A 和 C 都指向 B,所以 B 的 PageRank 分数会比较高。

普通 PageRank 关注的是整个图中节点的全局重要性,与具体查询无关。

GraphRAG

因为确实有点繁琐,工程上不太想用, 所以这里主要留个流程

chunk → 抽实体/关系 → 建图 → community detection →每个 community 生成 report → query 时检索/读取 community reports→ 回答

红色的额外琐碎啊!

LightRAG

2025 emnlp

目前主播用的baseline 是这个, 主要是全套代码比较成熟

Light RAG 可以说是 GraphRAG 的工程优化版

LightRAG 的创新是把 GraphRAG 从“社区报告驱动的重型图检索”,改成“实体/关系 key-value 驱动的轻量图检索”,再加上 low-level / high-level 双层 retrieval 和增量更新。

→ LLM 抽两类关键词
local keywords:具体实体/细节
global keywords:主题/抽象概念
→ local keywords 去匹配 entity
→ global keywords 去匹配 relation
→ 找到相关 entities / relations
→ 再扩展一跳邻居

→ 拿 entity/relation 的 description + 原文 chunks 给 LLM

亮点如下 ↓

1. Graph-based text indexing:把文本 chunk 变成实体-关系图

它不是只把 chunk embedding 存进向量库,而是先让 LLM 从 chunk 里抽取:

实体
关系
描述
key-value:用于后续检索的关键词和对应内容

后处理: profiling / deduplication

2. Dual-level retrieval:低层 + 高层双层检索 (核心设计)

低层 retrieval:查具体实体和关系。比如问 “Who wrote Pride and Prejudice?”,它需要精确找到 Jane Austen 这个实体。

高层 retrieval:查主题、概念、全局关系。比如问 “AI 如何影响现代教育?” 它需要跨多个实体和关系综合。

所以它会先让 LLM 从 query 里抽两类关键词:

local / low-level keywords:具体实体、细节
global / high-level keywords:主题、抽象概念

然后用向量库去匹配实体和关系,再扩展一跳邻居节点,形成回答上下文。论文明确说它把 local keywords 匹配到实体,把 global keywords 匹配到 relation/global keys,并结合一跳邻居增强上下文。

3. 为什么叫 Light:主要是相比 GraphRAG 更省 token、更少 API call

GraphRAG 的重在于:它会把图划分成很多 communities,然后为每个 community 生成长 report。查询时还要处理很多 community report。

LightRAG 直接在实体和关系的 key 上检索,不需要遍历大量 community reports。

论文在 Legal dataset 上给的对比很直观:

GraphRAG retrieval 阶段用了 610 个 level-2 communities,每个 community report 平均 1000 tokens,所以大约是610,000 tokens
LightRAG 用少于100 tokens做关键词生成和检索,而且只需要1 次 API call

所以它的 “light” 主要体现在:

GraphRAG:query → 扫大量 community reports → token 多、调用多
LightRAG:query → 抽关键词 → 向量匹配实体/关系 → token 少、调用少

4. Incremental update:新增数据时不用重建整个图

GraphRAG 如果来了新数据,可能要重新构建 community structure 和 community reports。LightRAG 的思路是:新文档来了以后,只抽新文档里的实体和关系,然后和已有图做 union / merge,不用推倒重来。论文说这可以避免重建整个 index graph,降低计算成本并加快适应新数据。

KGGEN

论文: KGGen: Extracting Knowledge Graphs from Plain Text with Language Models

2025nips

细节参考我之前的笔记(好吧之前笔记是arxiv版本的)

KGGEN: 用语言模型从纯文本中提取知识图-CSDN博客

这个其实主要是在构建KG 上面进行创新的,并不是完整rag 系统, focus on 怎么从文本抽一个更 dense 的 KG。

它指出一个很实际的问题:自动 KG 抽取后节点/边太碎,导致图稀疏、embedding 不好学、RAG 也不好用。

旧版

草了,五个阶段都用LLM,谁用得起我请问了 ↓

Plain text
→ LLM 抽 entities
→ LLM 基于 entities + 原文抽 subject-predicate-object triples
→ 聚合多个 source 的小图
→ normalize lowercase
→ LLM 迭代聚类 entities
→ LLM 迭代聚类 predicates / edges
→ LLM-as-judge 验证 cluster
→ 输出更 dense / coherent 的 KG

先抽实体,再抽关系,形成 initial KGs,aggregate 成大图,然后反复用 LLM 做 node / edge clustering,最后得到 final KG。

新版

对所有 entity/edge 做 S-BERT embedding
→ k-means 分成每组 128 个 item
→ 每个 item 在小 cluster 内用 BM25 + embedding 找 top-16 相似候选
→ LLM 只判断这些候选里哪些是 exact duplicates
→ 选择 canonical representative / alias
→ 删除已处理项,继续

先用 S-BERT 和 k-means 聚成 128 item 的小簇,再用 BM25 + semantic embedding 召回 top-k=16,最后让 LLM 判断 exact duplicates 并选择 canonical representative。

所以这版其实就是在回应你刚才说的 expensive 问题:不要让 LLM 从全量列表里找 cluster,而是先用便宜的 embedding / BM25 缩小候选,再让 LLM 做 verifier。

GraphFlow

论文 Can Knowledge-Graph-based Retrieval Augmented Generation Really Retrieve What You Need?

nips2026

这个主要focus 在召回阶段

假设你已经有 text-rich KG,重点研究query 时怎么在 KG 上走,才能 retrieve 到又准确又多样的节点/文档

Text-rich KG + query
→ 找 initial node
→ 把 KG retrieval 建模成多步决策过程
→ 每一步从当前节点的邻居中选下一个节点
→ 收集沿途节点对应的文本 documents
→ 直到找到支持 query 的目标节点/文档
→ 用 outcome reward 训练 retrieval policy

这里的 state 是当前 query 加上已经访问过的 documents;action 是从当前节点走到一个邻居节点;reward 是最终 trajectory 能不能到达支持 query 的目标文档。论文明确把 KG retrieval 形式化为 state / action / transition / reward 的多步决策过程。

不赖, 把召回这块按强化学习建模

1. 把 KG-RAG retrieval 从“找最相关路径”改成“采样高奖励、多样路径”

传统 KG-RAG 往往是最大化最相关结果,容易只找到一个强相关节点,导致结果不够 diverse。GraphFlow 的目标是:

P(trajectory) ∝ R(trajectory)

也就是:支持 query 越好的路径,被采样概率越高;但不是只取唯一最优路径,所以它天然鼓励多样 retrieval

2. 用 GFlowNet 思路做 retrieval policy

它借了 GFlowNet 的思想:学习一个 policy,让生成出来的 trajectory 概率和 reward 成比例。这样不是简单训练“下一步应该走哪里”,而是训练一个能够探索多个高质量 retrieval targets 的策略。

这对复杂 query 有意义,比如:

“找 University A 发表的、和 topic B 相关的论文”

答案不是一个节点,而是一组 paper。普通 top-1 / 单路径检索容易漏掉很多正确结果。GraphFlow 的核心就是为这种multi-target retrieval服务。

3. 用 flow estimator 做 reward factorization,避免 process-level supervision

PRM 需要每一步都有过程奖励,比如“这一步走得好不好”。但在 KG 上标每一步 reward 很贵。GraphFlow 只需要最终结果的 outcome reward,然后用 flow estimator 把最终 reward 分解到中间状态,相当于给 retrieval policy 提供“免费的过程监督”。论文说它联合训练 retrieval policy 和 flow estimator,用 detailed balance objective 来优化,并通过 local exploration 减少访问低价值区域。

Limitation:

第一,它不轻。它用 LLaMA3-8B-Instruct 做 backbone,加 LoRA、policy head、flow head;实验资源是 8/16 张 NVIDIA A800 80GB GPU,加 56 核 Xeon CPU。

第二,它依赖已有 text-rich KG 和 ground-truth retrieval targets。
训练时需要知道哪些 target document / entity 支持 query。实际开放域场景里,这种监督不一定容易拿到。

http://www.gsyq.cn/news/1499470.html

相关文章:

  • Web分布式网站架构之-Squid缓存【20260608】005篇-【传统代理】
  • 【UE5】雷达覆盖区域效果
  • 2026年 黑龙江铝塑铝门窗/哈尔滨保暖铝塑铝门窗推荐榜:高密封、抗老化、高性价比家装与老旧小区改造优选 - 品牌发掘
  • 闲置多年奢侈品腕表,2026无锡手表回收如何养护价值更高 - 奢侈品回收评测
  • SQL/NoSQL数据库为何成为TVA的记忆系统(7)
  • 2026年苏州定制家具厂家推荐榜:酒店餐饮、适老化、医养机构与养老院圆角防撞星级配套家具精选 - 品牌发掘
  • 数据分析进阶——经营分析指标字典
  • Web分布式网站架构之-Squid缓存【20260609】squid配置文件详解002篇
  • 伺服电机仿真(4):PMSM在d-q旋转坐标系下的状态方程与等效电路
  • 2026年 重庆广告门/电梯广告门/广告道闸推荐榜:小区与写字楼高性价比之选 - 品牌发掘
  • 【Prometheus Operator 监控 K8S集群的Calico 与 Ingress-Nginx 组件】
  • 2026LV 名牌包包回收,无锡权威门店老花经典款回收实测 - 奢侈品回收评测
  • 2026拼多多AI客服深度测评:性价比与效率兼得的品牌推荐 - 品研笔录
  • 宁波各区石材装修预算参考:鄞州/海曙/江北/北仑(2026版) - 宁波融诚石业
  • 【人工智能学习260609】可以直接复制用的✅ 测试用例生成 Prompt 模板 ✅ Bug分析模板 ✅ 日志分析模板模板
  • AI Agent Harness Engineering 作为科研伙伴的新角色
  • C++(贪心算法一)
  • 2026固化剂地坪选购全攻略:贵州厂家实力排行与避坑要点 - 品研笔录
  • 别再搞混了!Windbg网络调试、远程调试与真机双机调试的实战区别与选择
  • 别再乱接电阻了!手把手教你用总线耦合器搭建一个标准的1553B双冗余测试系统
  • Hermes Agent桌面版发布!Windows用户终于不用敲命令了
  • 洛阳商标代办哪家靠谱?选叮咚知多多,专业合规更省心 - 中媒介
  • MySQL 8.0实战:一条SQL搞定用户签到统计(INSERT ... ON DUPLICATE KEY UPDATE详解)
  • 别再手动整理代码了!用IDEA的Save Actions插件实现保存即格式化(附避坑配置)
  • # 高并发核心系统中分布式事务一致性架构演进实践
  • UVM验证进阶:如何像搭积木一样,用start_item和finish_item组合出灵活的激励流?
  • 维特比译码在5G和Wi-Fi 6里到底怎么用的?从仿真到硬件实现的跨越
  • 别再只用VAE了!CTGAN vs TVAE:手把手教你为表格数据选对生成模型
  • 告别混乱!用SAP PS用户状态与字段选择,搭建清晰的项目管理流程(附SU22/SU24配置技巧)
  • FastAPI学习笔记:二、ORM