6个Graph RAG架构: 知识图谱在RAG的发展方向

整理今年6篇图RAG相关的论文研究, 从微软上半年提出GraphRAG以来, 针对知识图谱在RAG的应用越来越多, 这里从我最近接触到的5篇论文, 总结一下知识图谱RAG在生成构建和问答应用这2个流程和推理问答的具体实现。

其中推理问答跟RAG优化有相似之处, 翻来覆去还是问题筛选,重写,相关问题问答; 新增专业化小型的模型用作评估筛选 ; rerank ; 向量和关键词的混合检索;自适应检索;迭代检索等, 毕竟图RAG的底层还是RAG, 只是对象从之前的普通非结构化文本到需要考虑图知识图谱的数据特性。

目前我看到的知识图谱架构的推理优化, 基本都有rerank和对单一问题根据知识图谱等上下文信息生成多个问题并尝试回答。

而知识图谱的整个流程, 可以有不同的大方向。总的来说一个是知识图谱的三元组关系构建, 一个是基于知识图谱的LLM查询。就这2个流程上, 不同的研究者提出的方向都各不相同。而这个流程需要考虑知识图谱的特性, 包括但不限于。

  • 数据的结构化程度,动态性:实体和关系的清晰表示,可解释, 支持更新和扩展。
  • 数据的质量:噪声控制和长尾实体优化。
  • 图谱与LLM的兼容性:支持提示构造、子图提取和推理辅助。
  • 计算的高效性:优化构建和查询效率。

一、知识图谱的搭建和检索

知识图谱两阶段比较有特色的是HippoRAG和GraphRAG, 而DALK是最普通最常见的知识图谱搭建和检索

这3个项目从非结构化文本段落构建知识图谱三元组都是用的LLM

1、HippoRAG

HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models

HippoRAG, 新皮层对应的处理长期记忆的机制是可以随时更新的。还有个HippoRAG的特色"HippoRAG不仅能够索引知识图谱中的实体及其关系,还可以将这些实体与原始的段落(Passage)建立关联,从而实现对实体关系和段落内容的双重检索能力"

HippoRAG就分为两个步骤。

第一个Offline indexing,

目标是从一组段落(passages)P中提取结构化知识(如实体和关系),并构建一个知识图谱(KG),包括:节点(N):名词短语(noun phrases)。边(E):关系边,包括显式关系和通过相似性计算推断的同义关系。最终的结果是一个知识图谱,以及一个矩阵 P-----矩阵行表示知识图谱中的名词短语(N),列表示原始段落(P),值表示某个名词短语在段落中出现的次数。该矩阵便于后续检索和查询的高效执行

这个矩阵能不仅索引节点, 还能索引原文段落, 这是个特点

第二步, online retrieval, 从知识图谱中找到与查询问题q最相关的节点和段落, 这个过程分为实体抽取和匹配、运行 Personalized PageRank (PPR)和计算段落排名4部分

(1) 实体提取和编码

从查询中提取命名实体:使用 LLM 结合 1-shot prompt,从查询q中提取一组命名实体Cq = {c1, c2, ..., cn}。示例:如查询中提到“Stanford”和“Alzheimer’s”,它们被提取为Cq的实体。

实体表示编码:用检索编码器M将这些命名实体Cq编码为向量表示。示例:M(ci)生成实体ci的嵌入向量。

(2) 查询节点的匹配

计算与知识图谱节点的相似性:在知识图谱的节点集合N中找到与Cq最相关的节点。通过计算检索编码器生成的余弦相似度,找到每个查询实体的最近邻节点ri 。示例:Stanford可能映射到知识图谱中代表斯坦福大学的节点(标志为斯坦福的Logo),而Alzheimer's可能映射到与阿尔茨海默病相关的节点(紫色丝带符号)。

确定查询节点集合:匹配完成后,得到查询节点集合Rq = {r1, r2, ..., rn}

(3) 在知识图谱上运行 PPR 算法

定义初始分布:在知识图谱中(|N|个节点,|E| + |E′|条边,包括三元组边和同义关系边),定义一个个性化概率分布n:查询节点Rq的概率均等分布;其他节点的初始概率为 0。

运行 Personalized PageRank (PPR):在知识图谱上执行随机游走(Random Walk):初始概率集中在查询节点上。通过知识图谱的边将概率质量分布到与查询节点邻近的节点上。示例:查询节点StanfordAlzheimer's可能将概率传播到Professor Thomas节点(知识图谱中与两者关系密切的节点)。

获取更新后的分布:PPR 计算后,得到更新的节点分布n',表示每个节点与查询的相关性概率。

(4) 计算段落得分

结合索引矩阵计算段落排名:使用知识图谱节点分布n'与之前离线计算的索引矩阵P相乘,计算每个段落的排名分数p: 矩阵P记录了名词短语节点在各个段落中的出现频率。

生成排序结果:根据分数p对段落进行排序。段落分数越高,表示该段落越可能包含回答查询的问题所需的信息。

2、GraphRAG

From Local to Global: A Graph RAG Approach to Query-Focused Summarization

GraphRAG也是需要用LLM把自然语言段落提取成知识图谱的实体组, 但不再生成矩阵, 而是进行不同层次的分类, 形成社区, 包括以下几层:

顶层社区:代表最广泛的类别或主题root communities at level 0

中层社区:更具体的子类别或子主题sub-communities at level 1

底层社区:最细化的分类,通常直接包含具体实体

示例:如果文档内容涉及 “医学”,知识图谱可能生成:

顶层社区:疾病、药物、治疗方法。

中层社区:阿尔茨海默病(AD)、抗生素、心理治疗。

底层社区:具体药物名称、研究人员

形成社区后GraphRAG会对社区进行分级总结:

社区级总结:对每个社区中关系密切的实体用 LLM 进行总结。例如:在 “阿尔茨海默病” 社区中总结出关键点:“阿尔茨海默病是一种神经退行性疾病,主要影响老年人,相关药物包括 XX 和 XX。”

全局总结:从所有社区的总结中提炼出核心信息

在检索问答阶段, 根据问题中的关键词先定位领域domain-tailored summarization获得社区的预总结, 再根据问题细分到社区细化信息的总结query-focused summarization,再在该细化社区知识图谱中直接检索相关实体和关系,用这些内容结合原始文档进行回答。

所以GraphRAG检索的内容, 除了实体关系和源文档, 还有LLM生成的每个社区总结, 靠第一阶段提取的社区分层总结开始寻找答案。而HippoRAG是PPR 算法动态分配注意力,直接寻找最相关的知识,并结合矩阵索引返回相关段落和实体

由于检索机制不同, 两者适合的任务也不同: GraphRAG更适合需要总结概括的任务,比如"GraphRAG主要讲了什么" ,而HippoRAG适合更复杂更精准的关系判断,比如"GraphRAG的3层社区关系分别是? "

另外知识图谱上, GraphRAG是用户上传的txt文本, 而HippoRAG是Offline index预定义生成的知识图谱

功能GraphRAGHippoRAG
知识图谱来源从用户文档动态生成知识图谱,适合短时任务或新内容。使用预定义或离线生成的知识图谱,适合长期知识存储和大规模知识库。
检索方式基于社区检测的语义分层检索,适合概括性问题和整体信息提取。基于 PPR 算法的动态检索,适合精确问题和复杂推理场景。
回答生成依赖预生成的社区总结,回答更偏向全局性总结和概括性描述。结合知识图谱和矩阵索引实时生成答案,更注重答案的精准度和语义相关性。
主要特点更强调从文档中生成知识图谱的能力,提供知识的层次结构。模拟人脑记忆机制,动态平衡长期知识(新皮层)和快速检索(海马体)。

3、DALK

DALK: Dynamic Co-Augmentation of LLMs and KG to answer Alzheimer’s Disease Questions with Scientific Literature

DALK也包括两个过程, LLM for KG抽取实体生成知识图谱evolving KG的过程; KG for LLM, 应用已有的知识图谱, 根据图谱最相关的子图, 进行rerank,选择最相关的知识形成Selected Knowledge

DALK的实体识别和关系抽取: 使用PubTator工具进行实体识别;

关系抽取(Relation Extraction)

分为a) 配对关系抽取(Pair-wised Relation Extraction):通过特定问题形式抽取两个实体间的关系, 例如:"What is the relationship between AD and cardiovascular disease?

b) 生成式关系抽取(Generative Relation Extraction):提供所有生物医学相关实体, 要求模型抽取实体间的有效关系

检索特别组件:

检索过程用到了"Self-Aware Knowledge Retrieval", LLM能自行判断是否需要检索,在回答内容不确定时才检索。

"Coarse-to-Fine Sampling"方法可以用于快速识别和筛选出与查询相关的知识片段。首先,系统可能会使用一些简单的特征(如关键词匹配)来快速缩小搜索范围,然后通过更复杂的语义分析或机器阅读理解技术来进一步精细化选择,以确保最终选择的知识片段与查询高度相关。

二、基于知识图谱的多个潜在问答

从这开始介绍的就没有像上面两个论文项目有详细的生成和检索知识图谱的流程, 而是侧重流程中具体的细节工具组件,侧重工程框架

知识图谱上的推理问答的2篇论文, 除了在知识图谱检索, 还有(根据知识图谱)的相关问题和潜在答案,有点像MemoRAG和HyDE

1、GRAPH-CONSTRAINED REASONING

GRAPH-CONSTRAINED REASONING: FAITHFUL REASONING ON KNOWLEDGE GRAPHS WITH LARGE LANGUAGE MODELS

有两个特色: KG Trie组件, 让LLM的检索素材控制在知识图谱上, 而不是其他内容,增加忠实性; 2个LLM, KG-specialized LLM(t=1),专门负责解码(decoding)知识图谱信息,基于图谱结构生成推理路径和假设答案, 另一个做整体归纳的LLM(t=2)。

将多个生成的推理路径和假设答案输入到一个强大的通用LLM中,利用其归纳推理能力来产生最终答案。这种方法结合了专门针对KG的LLM的图推理优势和通用LLM的归纳推理优势

从案例来看, GRAPH-CONSTRAINED REASONING适合严格根据知识图谱问答的可能有多个答案的具体关系问题

局限性,明显来说, 缺少原有文档的支撑, 只有知识图谱这一个信息源, 而下面的KGR就在解决这个问题。只靠嵌入的KG容易导致以下两个问题:

知识图谱检索容易受到虚假关系模式的影响(specious relation patterns)

知识图谱中的三元组是由(头实体, 关系, 尾实体)组成的。例如,(猫, 是, 哺乳动物)。如果嵌入方法过度依赖这些三元组,很可能对某些不合理或错误的关系模式(例如,(鱼, 是, 哺乳动物))过度拟合,从而导致模型的预测不准确。

对长尾实体支持较差(long-tail entities)

知识图谱中的许多实体可能出现得很少(长尾分布现象)。例如,“某偏远地区的一种罕见动物”在数据中可能只有一个或两个三元组。如果仅依赖这些稀疏数据,模型很难学习到这些长尾实体的语义和关系。

2、KGR

Retrieval, Reasoning, Re-ranking: A Context-Enriched Framework for Knowledge Graph Completion

KGR对上面Graph-constrained reasoning只检索3元组有了补充, 每个三元组实体关系有自己的Label, description描述等信息—Textual Context Extraction(让我想起Anthropic的StandardRAG, 它是每个chunk有自己的描述信息)

KGR也构建了专门的KGC模型来挑选跟问题相关的实体和背景信息, 并且能打分scoring排序initial ranking, 排除不相关的信息

第二步也是根据上下文信息(不是第一步的信息, 两个步骤的信息是分开找的)进行相关多个问答推理, 这里的特色有:In-context Demonstration使用[MASK]这样的掩码标记, 并提供示例, 让LLM学习推理格式和框架

第三步最上面是通过retrieval和reasoning收集到的素材信息,其次是通过跟问题相关的案例微调了一个小模型 ,让模型识别最合适的答案: 学习判断实体与问题的相关性; 理解不同足球俱乐部的属性和特征 ; 权衡多个候选答案的适合度

Inference阶段就是应用这个微调好的模型, 对候选答案进行评分和排序, 输出最终答案(如图中选择"Anderlecht")

整体这个框架我觉得只能了解了解, 很生硬,给我一种故意用花里胡哨的方式去解题,结果还是错的感觉。每个问题还要微调一个模型, 太麻烦了。而且还把上下文信息分成知识图谱和非结构化文本两部分, 强行分开来看的, 其实就可以像HippoRAG和GraphRAG, 既有实体关系也有原来的上下文段落。而且还有in context demonstration , 这么生硬的教模型推理路径的例子。

3、Debate on Graph

Debate on Graph:a Flexible and Reliable Reasoning Framework for Large Language Models

Date on Graph的特色在于,在根据知识图谱生成潜在可能问题和答案时, 有critic, expert ,linguist等虚拟agent 专家进行迭代讨论(知识图谱也随问题深入迭代)。重点在推理问答这一细化点做研究

三、epilogue

知识图谱RAG的优化方向跟RAG优化方向一样, 越研究得多, 会发现可以优化的方式也越多。知识图谱的加入, 给RAG增加了新的探索可能性。本文HippoRAG和GraphRAG的流程思想我觉得最具特色, 其他的算是最通用最常见的架构, 用作基础了解


四、最后分享

AI大模型作为人工智能领域的重要技术突破,正成为推动各行各业创新和转型的关键力量。抓住AI大模型的风口,掌握AI大模型的知识和技能将变得越来越重要。

学习AI大模型是一个系统的过程,需要从基础开始,逐步深入到更高级的技术。

这里给大家精心整理了一份全面的AI大模型学习资源,包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。
在这里插入图片描述

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

在这里插入图片描述

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

在这里插入图片描述

4. 2024行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

在这里插入图片描述

5. 大模型项目实战

学以致用 ,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

在这里插入图片描述

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

在这里插入图片描述

全套的AI大模型学习资源已经整理打包,有需要的小伙伴可以微信扫描下方CSDN官方认证二维码,免费领取【保证100%免费

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值