论文链接:https://arxiv.org/abs/2408.08921
一、背景
1. LLM局限性
(1)缺乏特定领域的知识、实时更新的信息和专有知识
这些都是LLMs预训练语料之外的。
(2)幻觉现象
产生不正确甚至编造信息。
2. RAG局限性
(1)忽视关系
传统的RAG无法捕获仅通过语义相似度无法表示的重要结构化关系知识。
(2)冗余信息
RAG在作为提示语进行串联时,往往以文本片段的形式对内容进行回述。这使得语境变得过于冗长,导致了"迷失在中间"的困境。
(3)缺少全局信息
RAG只能检索到文档的一个子集,不能全面地把握全局信息,从而与查询聚焦摘要( QFS )等任务相冲突。
3. GraphRAG作用
(1)Graph RAG考虑了文本之间的相互联系,能够更加准确、全面地检索关系信息。
(2)图数据,如知识图谱,提供了对文本数据的抽象和总结,从而显著地缩短了输入文本的长度,减轻了对冗长性的担忧
(3)通过检索子图或图社区,我们可以获得全面的信息,通过捕获图结构中更广泛的上下文和相互联系来有效地解决QFS挑战。
4. LLM、RAG、GraphRAG实例比较
(1)LLM
浅层回答,缺少特异性→回答的太笼统
(2)RAG
通过检索相关文本信息可以一定程度上解决上述问题,但是由于文本篇幅较长,难以强调例子中的”影响“关系→长文本信息的关系难以感知
(3)GraphRAG
利用图数据中明确的实体和关系表示,通过检索相关的结构化信息来实现精确的答案。
二、主要工作
1. 对现有Graph RAG方法进行全面综述,GraphRAG的形式化定义与通用工作流程(G-索引、G-检索、G-生成)。
2. 讨论了现有GrpahRAG系统的核心技术,包括G索引、G检索和G生成。对于每个组成部分,分析了目前正在探索的模型选择、方法设计和增强策略的频谱。对比了在这些模块中使用的不同训练方法。
3. 描述了与GraphRAG相关的下游任务、基准、应用领域、评价指标、当前挑战和未来研究方向。此外,还编制了现有工业界GraphRAG系统的清单,为将学术研究转化为现实世界的工业解决方案提供了见解。
三、相关技术
1. RAG
将外部知识与LLMs相结合以提高任务绩效,并整合特定领域的信息以确保真实性和可信性。
2. LLMs
主要被设计用于处理纯文本,并努力应用于包含复杂结构信息的非欧几里得数据(如图数据)。
3. KBQA
(1)基于IR的方法
从知识图谱( KG )中检索与查询相关的信息,并使用它来增强生成过程。
(2)基于SP的方法
为每个查询生成一个逻辑形式( LF ),并根据知识库执行该逻辑形式以获得答案。
四、GraphRAG概况
1. 目标
从数据库中检索出最相关知识,增强下游任务的回答。
2. GraphRAG的三个阶段
(1)G-Indexing
索引过程通常包括映射节点和边属性,在连接节点之间建立指针,组织数据以支持快速遍历和检索操作。
(2)G-Retrieval
(3)G-Generation
五、G-Indexing阶段
1. 图数据
(1)公开知识图谱
-
通用知识图谱
-
百科式:Wikidata、Freebase、DBpedia、YAGO
-
常识性:ConceptNet
-
-
领域知识图谱
-
生物医学:CMeKG、PubMed、CPubMed-KG(中文)
-
电影:Wiki-Movies
-
GR-Bench:包含五个领域,学术,电子商务,文学,医疗保健和法律
-
GraphQA:适用于GraphRAG
-
(2)自己构造的知识图谱
2. 索引
(1)图索引
-
对于给定节点,它的相邻节点和所有边
-
可以使用BFS、最短路径等算法来方便检索任务
(2)文本索引
- 将图数据转换为文本描述
(3)向量索引
- 将图数据转换为向量
-
可以使用位置敏感哈希算法( LSH )
-
例如:GRAG等
(4)混合索引
-
图索引便于方便地获取结构信息,文本索引简化了文本内容的检索,而向量索引可以实现快速有效的检索
-
例如:HybridRAG(图+向量)、EWEK-QA(文本+图)等
六、G-Retrieval阶段
1. 挑战
(1)爆炸候选子图
(2)相似性度量不足
2. 检索器
(1)非参数检索器
- 非参数检索器表现出良好的检索效率,但由于缺乏对下游任务的训练,可能会出现检索不准确的问题
(2)基于LM的检索器
- 例如:RoBERTa、KG-GPT、StructGPT等
(3)基于GNN的检索器
- 例如:GNN-RAG、EtD(多次迭代)等
- 虽然基于LM的检索器和基于GNN的检索器提供了更高的检索精度,但它们需要大量的计算开销
(4)多阶段检索器
- 例如:RoG、GenTKGQA等
3. 检索范式
(1)一次检索
在一次操作中汇总所有相关信息。
-
G-Retriever提出了一种扩展的PCST算法来检索最相关子图
-
KagNet提取所有长度不超过k的主题实体对之间的路径
(2)迭代检索
逐步缩小到最相关结果。
-
自适应
-
模型自主地确定最优时刻来完成检索活动
-
例如:ToG、RoBERTa等
-
-
非自适应
-
通常遵循固定的检索顺序,通过设置最大时间或阈值来确定检索的终止
-
例如:PullNet、KGP、一些agent方法等
-
(3)多阶段检索
在每个阶段可以使用不同类型的检索器,以获得更精确和多样化的检索结果。
-
检索粒度
-
节点
-
优点:适用于目标查询和特定信息提取
-
-
三元组
-
优点:有利于理解实体之间的关系和上下文相关性
-
局限性:可能缺乏上下文广度和深度,因此无法捕捉间接关系或推理链
-
-
路径
-
优点:有利于捕获图中复杂的关系和上下文依赖关系
-
局限性:随着图大小的增加,可能的路径呈指数增长,这增加了计算的复杂性(例如,HyKGE、ToG、GNN-RAG等)
-
-
子图
-
检索方法
-
直接检索:基于规则的方法、基于编码的方法
-
先检索相关路径再构建子图(例如,RoBERTa等)
-
-
优点:在图中捕捉全面的相关文本
-
-
混合粒度
-
检索方法:基于LLM agent的方法
-
优点:增强了系统捕获详细关系和更广泛的上下文理解的能力,从而减少了噪声,同时提高了检索数据的相关性
-
-
4. 检索增强
(1)查询增强
-
查询扩展:通过使用额外的相关术语或概念补充或精炼原始查询来改进搜索结果。(例如,HyKGE、Golden-Retriever等)
-
查询分解:将原始用户查询分解为更小、更具体的子查询,减轻了语言查询的复杂性和模糊性。
(2)知识增强
确保检索结果的最终集合不仅全面,而且与用户的信息需求高度相关。
-
知识合并:有助于通过整合来自多个源的相关细节获得更全面的视图(KnowledgeNavigator等)
-
知识修剪:过滤掉不太相关或冗余的检索信息以改进结果。
-
基于重排序的方法
-
基于LLM的方法
-
七、G-Generation阶段
1. 生成器
需要根据下游任务进行选择。
(1)GNN
-
适用于判别式任务
-
主要利用经典的GNN模型(例如,GCN、GAT、GraphSAGE和Graph Transformers),要么保持原始形式,要么进行修改,以更好地与下游任务保持一致。
(2)LLM
-
需要将检索到的图数据转换成特定的格式
-
只有编码器的模型(例如BERT、RoBERTa)主要应用与判别式任务
-
编码器-解码器模型和只有解码器的模型(例如T5,GPT-4,LLaMA)同时适用于判别式任务和生成式任务
(3)混合模型
-
级联范式:GNN首先处理图数据,将其结构和关系信息封装成LM可以理解的形式。随后,将转换后的数据输入到LM中,LM然后生成最终的基于文本的响应。
-
平行范式:两个模型同时接收初始输入,并协同工作以处理同一数据的不同方面。然后,通常通过另一个模型或一组规则合并输出,以产生统一的响应,该响应集成了来自图形结构和文本内容的见解。
-
一种典型的方法包括使用gnn和lm分别编码输入,然后集成这两种表示,或者直接集成它们的输出响应。(例如,加权汇总、利用注意力机制汇总等)
-
另一种方法涉及设计集成gnn和LMs的专用模块,使结果表示能够封装结构和文本信息。(例如,GreaseLM Layer、G-Ladders等)
-
2. 图格式
(1)图语言
-
邻接表/边表:边表存储了以点为起点的边的信息,邻接表存储了以点为出发点的点的信息。
-
自然语言:将图数据翻译成描述性的、易于理解的语言。
-
代码形式:考虑到自然语言描述和其他一维序列本身不足以直接表示图数据的二维结构,并且考虑到LMs具有强大的代码理解能力,许多研究人员探索使用类代码格式来表示图结构。(例如,图形建模语言GML和图形标记语言GraphML)
-
语法树:具有层级结构,作为脱坡图,也保持着拓扑顺序。(例如,GraphText等)
-
节点序列:通常使用预定义规则生成;与自然语言描述相比,这些节点序列更加简洁,并且包含了先验知识,特别是规则所强调的结构信息。(例如,LLAGA、GNN-RAG等)
要求:应该完整、简洁、易于理解
局限性:难以保存像特定实体名称这种精确的信息;泛化性差
(2)图嵌入
-
生成增强
-
生成前增强:侧重于在将输入数据或表示输入到生成器之前提高它们的质量。常用的预生成增强方法主要涉及对检索到的图数据进行语义丰富,以实现图数据与文本查询之间更紧密的集成。(例如:DALK、MVP-Tuning)
-
中期增强:通常根据中间结果或上下文线索调整生成策略。(例如:TIARA、MindMap)
-
生成后增强
-
对多个生成的响应进行积分以获得最终响应
-
组合或选择由不同模型生成的响应(例如,EmbedKGQA)
-
-
要求:将图表示嵌入到开源LLM可行的,像GPT-4这种闭源LLM不太可行
局限性:可能导致过于冗长的上下文,产生高计算成本;可能超出llm的处理限制;LM目前即使使用图语言也难以完全理解图结构
八、训练
1. 检索器训练策略
(1)免训练方法
-
非参数检索器:依赖于预定义的规则或传统的图搜索算法,而不是特定的模型。
-
基于预训练语言模型:利用预训练的嵌入模型对查询进行编码,并根据查询与图元素之间的相似性直接执行检索;将候选图元素作为llm的提示输入的一部分,然后llm利用语义关联根据提供的提示选择合适的图元素。
(2)基于训练的方法
通常采用自回归方法,将之前的关系路径连接到查询的末尾。然后,模型根据这个连接的输入预测下一个关系
-
在大多数数据集中,检索内容缺乏真实性→构建基于远程监督的推理路径来指导检索器的训练。(例如,KnowGPT、NSM等)
-
远程监督信号或隐式中间监督信号可能包含相当大的噪声,使训练有效的检索器具有挑战性→
采用自我监督的方法进行预训练。(例如,SKP等)
2. 生成器训练策略
(1)免训练方法
-
主要迎合闭源LLM或避免高培训成本是必不可少的场景
-
检索到的图数据与查询一起被输送到LLM中
(2)基于训练的方法
-
训练生成器可以直接接收来自下游任务的监督信号
-
对于生成式LLM:使用监督微调(SFT)来实现微调,其中输入任务描述、查询和图形数据,并将输出与下游任务的基本事实进行比较。
-
对于作为生成器的GNN或判别式模型:使用针对下游任务的专门损失函数来有效地训练模型
(3)联合训练
-
联合训练检索器和生成器
利用了统一体系结构的内聚能力,使模型能够在单个框架内无缝地检索相关信息并生成一致的响应。
-
分别训练检索器和生成器,然后联合训练技术对这两个组件进行微调。
九、应用与评价
1. 下游任务
(1)问答
-
KBQA:知识库问答
-
CSQA:常识问答,采用选择题形式
(2)信息检索
-
实体链接:识别文本片段中提及的实体,并将其链接到知识图谱中与其对应的实体。
-
关系抽取:识别和分类文本中实体之间的语义关系。
(3)其他
-
事实验证:使用知识图谱评估事实陈述的真实性。
-
链接预测:预测图中实体之间缺失的关系或潜在的联系。
-
对话系统
-
推荐
2. 应用领域
(1)电商
(2)生物
(3)学术
(4)文学
(5)法律
(6)其他
3. 数据集
(1)下游任务对应的数据集
(2)专门为GraphRAG系统设计的基准测试
-
STARK
-
GraphQA
-
GRBENCH
-
CRAG
4. 评价指标
(1)下游任务评价(生成质量)
-
KBQA
-
精确匹配(EM)
-
F1
-
BERT4Score
-
GPT4Score
-
-
CSQA
-
准确性
-
-
问答系统
-
BLEU
-
ROUGE-L
-
METEOR
-
(2)检索质量评价
-
答案覆盖率与检索子图大小之间的比率:评价检索系统的性能
-
查询相关性:评价检索内容与查询之间的相似性
-
多样性:评价检索内容的多样性
-
可信性:评价检索信息的可信性
5. 工业中的GraphRAG系统
(1)GraphRAG(由微软开发)
该系统使用LLM构建基于实体的知识图,并预先生成相关实体组的社区摘要,从而能够捕获文档集合内的本地和全局关系,从而增强以查询为中心的摘要(QFS)任务。项目还可以利用开源的RAG工具包进行快速实现,如LlamaIndex、LangChain等。
(2)GraphRAG(由NebulaGraph开发)
该项目是第一个工业GraphRAG系统,由NebulaGraph公司开发。该项目将LLM整合到NebulaGraph数据库中,旨在提供更智能、更精确的搜索结果。
(3)GraphRAG(由Antgroup开发)
该框架是在DB-GPT、知识图谱引擎OpenSPG、图形数据库TuGraph等多个人工智能工程框架的基础上开发的。具体来说,系统首先使用llm从文档中提取三元组,然后将其存储在图数据库中。在检索阶段,它从查询中识别关键字,在图数据库中定位相应的节点,并使用BFS或DFS遍历子图。在生成阶段,检索到的子图数据被格式化为文本,并与上下文和查询一起提交给llm进行处理。
(4)NallM (Neo4j和大型语言模型)
该框架将Neo4j图形数据库技术与LLM集成在一起。它旨在探索和展示Neo4j和法学硕士之间的协同作用,重点关注三个主要用例:知识图的自然语言接口,从非结构化数据创建知识图,以及使用静态数据和LLM数据生成报告。
(5)LLM Graph Builder (由Neo4j开发)
它是Neo4j开发的一个项目,用于自动构建知识图,适用于GraphRAG的图数据库构建和索引阶段。该项目主要利用llm从非结构化数据中提取节点、关系及其属性,并利用LangChain框架创建结构化知识图谱。