GraphRAG 与传统 RAG 的 7 大区别及融合方案
GraphRAG(基于知识图谱的检索增强生成)是一种新兴的 RAG 应用架构,不同于传统基于向量检索的 RAG,它允许进行更深层、更细致且具备上下文感知的检索,从而帮助获得更高质量的输出。本文将深入探讨两者的核心差异、适用场景及融合策略。
1. 适合的场景
选择传统 RAG 还是 GraphRAG 从根本上取决于数据特征与查询问题两个方面。
更适合使用 GraphRAG 的数据特征:
- 关联实体多且关系复杂:如社交网络用户关系、家族图谱、企业供应链结构。
- 结构化程度较高:如医学知识中的疾病 - 症状 - 治疗关系,法律条款间的引用关系。
- 产品推荐系统:涉及产品、用户、浏览内容之间的多维关联。
更适合使用 GraphRAG 的查询类型:
- 多跳关系查询:例如'在张三的同学的朋友中,谁在阿里巴巴工作?'
- 语义关联查询:例如'哪些公司提供 LLM 产品且已取得国家认证许可?'
- 知识推理查询:根据患者症状推断可能疾病及治疗方案。
- 聚合统计与时序查询:例如'过去两年大模型增加了多少?哪些公司占主导?'
相比之下,传统 RAG 更适合回答基于数据内容的事实性问题,如'某产品是哪一年发布的?'。
2. 知识表示
两者采用了截然不同的知识表示形式。
GraphRAG:将产品、品牌、类别和用户兴趣表示为相互关联的实体(图结构)。例如,'小米 15 Pro'作为节点,与'小米'、'智能手机'、'高端手机'等标签节点相连。这种结构化表示便于后续的产品推荐和属性筛选。
传统 RAG:通常将数据存储为非结构化的文本块(Chunk)。当用户搜索'高性能摄像头手机'时,系统仅能根据关键词的语义相似性匹配到包含这些词的文本块。若文本块未显式提及特定组合,则难以精准匹配。
3. 知识检索
尽管两者均可自定义检索机制,但底层知识表示决定了检索能力的上限。
GraphRAG 检索逻辑: 以查询'有哪些适合拍摄高质量视频的智能手机,并且具有良好的用户口碑?'为例。系统可以从'智能手机'节点出发,遍历关联的手机产品节点,再检索这些产品关联的'特性'节点(如'高质量视频'),同时筛选与'优秀口碑'节点相连的产品。通过多维度关联筛选,可找到高度匹配的产品。模拟 Cypher 语句可实现精确的路径查找。
传统 RAG 检索逻辑: 系统尝试通过关键词检索近似文本块。如果存储的文本块中没有同时提到所有关键词,系统可能返回部分匹配的内容,导致推荐不精准(例如只满足视频功能但口碑一般的产品)。GraphRAG 能有效连接分散在不同节点的特性,而传统 RAG 依赖文本块的完整匹配,跨块检索能力较弱。
4. 综合性查询
传统 RAG 在面对统计性、总结性、概要性的 QFS(Query-Focused Summarization)问题时往往无能为力。
GraphRAG 优势: 利用社区检测算法识别知识图谱中的多个社区,并利用 LLM 对社区进行总结。例如回答'近几年高端智能手机的整体发展趋势',Microsoft GraphRAG 会通过 Map-Reduce 算法从不同年份的社区搜集信息,最后汇总生成全局性答案。
传统 RAG 局限: 检索到的文本块往往是片段化的,难以串联成连贯的趋势叙事。虽然可使用 RAPTOR 范式或 Tree-Summarize 模式缓解,但复杂度较高。
5. 隐藏关系理解
GraphRAG 更容易通过图谱中的隐形关系来理解上下文。
示例: 'iPhone 15 Pro'和'小米 15 Pro'可能在任何文本块中未被直接比较,但在 GraphRAG 中,它们都属于'高端智能手机'类别且在'手机摄影'上表现突出。系统可基于这些隐性关联提供更全面的对比推荐。
传统 RAG 局限: 只能根据文本块中明确提到的内容进行理解。若两个实体未在同一个文本块中出现,传统 RAG 很难建立联系。


