GraphRAG 最新研究:本体增强 OG-RAG 与 HYBGRAG 实现策略
GraphRAG 结合了知识图谱与检索增强生成技术。OG-RAG 通过将领域本体形式化为超图,利用基于优化的超图检索提取与查询精确对齐的事实簇,提升上下文响应的准确性。HyBGRAG 针对混合问答问题,设计了包含文本检索和图检索模块的路由器,并通过自我反思的批评模块(验证器与评论器)优化问题路由,缓解检索错误。两者均通过结构化知识提升了传统 RAG 在处理复杂查询时的表现。

GraphRAG 结合了知识图谱与检索增强生成技术。OG-RAG 通过将领域本体形式化为超图,利用基于优化的超图检索提取与查询精确对齐的事实簇,提升上下文响应的准确性。HyBGRAG 针对混合问答问题,设计了包含文本检索和图检索模块的路由器,并通过自我反思的批评模块(验证器与评论器)优化问题路由,缓解检索错误。两者均通过结构化知识提升了传统 RAG 在处理复杂查询时的表现。

关于 RAG 和 Graph 的结合工作,已有许多研究。例如,GraphRAG 在语义聚类方面表现出色,通过组织实体和关系,使得处理复杂查询更加高效。RAPTOR 采用分层结构进行多层次抽象,提高对大型文档的上下文理解。
而将知识图谱本体与 RAG 相结合的工作,可以参考《OG-RAG: ONTOLOGY-GROUNDED RETRIEVAL-AUGMENTED GENERATION FOR LARGE LANGUAGE MODELS》。该工作提出了 OG-RAG(本体引导的检索增强生成),通过将领域特定的本体集成到 LLM 检索过程中,如下图所示。
![本体引导的检索增强生成架构示意图]
其核心包括两个部分:将数据映射的本体形式化为超图,然后使用基于优化的超图检索提取与领域特定查询精确对齐的事实簇,从而生成更准确的上下文响应。
细分步骤如下:
![OG-RAG 具体实施步骤示意图]
首先将领域特定的文档映射到给定的本体,并将可用信息转换为可检索的格式。本体是领域内关键实体及其关系的正式表示。
例如,在农业领域,定义了作物、土壤和天气条件等实体,以及'作物在某个地区种植'或'土壤有湿度水平'等关系。通过定义这些实体和关系,本体为组织领域知识提供了一个一致且清晰的框架。不同于分类学或分类,本体允许实体之间存在更丰富的关系,这些关系不必是层次式的。
本体的定义比较重要,可以让大模型来做,如使用以下 Prompt:
![本体定义 Prompt 示例]
具像化一下,看几个例子:
比如,新闻的本体:
![新闻本体示例]
又如,农业的一个本体:
![农业本体示例]
由于事实块的嵌套结构,直接处理这些信息并不太友好,所以更好的方式是通过将每个事实块【fact block】转换为一组扁平化的事实块,将信息简化为更容易处理的形式。
这里有一个新概念,定义每个扁平化的事实块为一个超边,超边连接多个超节点。
![超图转换示意图]
需要明确的是:其中,一个超图 H:=(N,E) 由超节点 N 和超边 E 组成,使得每条超边 e∈E 是具有任意长度的节点集。
从本体映射文档 I 中提取的所有扁平化事实块集合可以被视为一个超图,可将其简称为 H(I)。根据这个定义,一个超节点本质上是一个键值对,一条超边是扎根于特定领域数据的真实事实。
而这个事实是两个实体(主体和客体)之间通过一个功能属性进行逻辑断言,该断言可以通过证据验证为真或假。形式上可以被表达为一个逻辑断言,能够验证其值为 True 或 False。
例如,考虑断言:hasCropYield(农场 A)=500 吨,其中 hasCropYield 是一个功能属性,它将一个农场(主体)映射到一个作物产量(值),并且可以通过证据验证为真或假。
因此,在 OG-RAG 中,超边可以被看作是复杂事实的表示。不失一般性,考虑两个超节点,n1(s1⊕a1,v1)=(作物有名称,大豆) 和 n2(p2∈⨁P(S×A),v2)=(作物有生长区,生长区名称为西北方),形成一条超边 e=((作物有名称,大豆(作物具有名为西北的生长区 CropGrowingZone)可以表示为一个简化的事实:具有生长区的大豆(作物名称)=西北,这个事实可以被验证为真或假。
利用构建的超图,根据用户查询检索相关上下文。通过贪心算法选择覆盖最多未覆盖节点的超边,形成紧凑的上下文。
![基于超图的检索流程]
在具体实现上:
首先,识别与给定查询相关的超节点集合。一个超节点 n∈N 可以表示为来自集合 S,A,V 的键值对。如果满足以下条件之一,则可以将超节点视为与查询相关:(1) 查询涉及项 s 的属性 a;(2) 查询关注具有特定值 v 的对象。
换句话说,如果键(代表连接的实体和属性)与查询 Q 的相似度高,或者值 v 与查询 Q 的相似度高,则超节点是相关的。
OG-RAG 找出两组与查询相关的超节点:NS(Q) 和 NV(Q),分别代表这两组节点。NS(Q) 表示在向量空间 Z 中,其属性术语,即 s⊕a 与查询 Q 之间相似度最高的 k 个超节点;NV(Q) 表示在向量空间 Z 中,其值 v 与查询 Q 之间相似度最高的 k 个超节点。因此,对于每个查询,提取 2⋅k 个相关超节点。
其次,相关超边作为上下文。将相关上下文构建为最小覆盖相关超节点集合 N(Q)=NS(Q)∪NV(Q) 的超边集合 CH(Q)⊂E。这里是一个优化问题,并以贪婪方式解决。具体来说,维护一个字典,将每个超节点 n∈N 映射到它所属的超边集合,即 E(n),其中 e∈E(n)⟹n∈e。在每次迭代中,将覆盖最多未覆盖节点的超边添加到上下文中,并从进一步考虑中移除这些节点。这个过程重复进行,直到有 L 条超边或所有相关节点都被覆盖。
通过这种方式,上下文被构建为一系列最多 L 条代表与给定查询相关的超边的集合。通过将信息组织成超边,OG-RAG 能够将相关事实分组在一起,确保检索到的上下文既紧凑又全面,捕获所有必要的事实以支持准确的 LLM(大型语言模型)回应,同时优化效率。
最后,给定用户查询和相关上下文,提示 LLM 使用这些上下文生成答案。
RAG 通过将查询相关文档块嵌入到向量空间中,然后基于最大块 - 查询相似度找到上下文。RAPTOR 将文档块聚类成层次结构,并使用大型语言模型(LLM)总结这些簇作为额外上下文。GraphRAG 从使用大型语言模型构建的知识图中检索信息,通过提取实体和关系并将它们聚类成语义社区。对比结果看,效果都更好。
![效果对比图表]
接下来第二篇,现有的 RAG 方法通常只关注文本或关系信息的检索,无法有效结合两种信息;在混合问题中,不同类型信息的检索边界可能不明显,导致检索错误。
(a) RAG 忽略了文档之间的相互联系,无法满足关系方面所指定的要求。 (b) GRAG 仅依赖关系方面,并将文本方面错误地识别为关系方面的一部分。
![RAG 与 GRAG 局限性示意图]
因此可以看看这个工作,《HYBGRAG: Hybrid Retrieval-Augmented Generation on Textual and Relational Knowledge Bases》,提出 HyBGRAG 用于解决混合问答问题,通过自我反思优化问题路由,从而缓解这个问题。
可以看看具体思路:
![HyBGRAG 整体架构]
为了解决混合问题,HyBGRAG 设计了一个检索器,包括多个检索模块和一个路由器。每个检索模块可以是文本检索模块或混合检索模块,分别用于从文本文档和知识库中检索信息。
文本检索模块使用向量相似性搜索(VSS)从文本文档中检索信息,而混合检索模块则利用图检索器从知识库中提取实体和关系。路由器根据问题的类型选择合适的检索模块。
具体来说,路由器首先识别问题中的关系实体和有用关系,然后决定使用文本检索模块还是混合检索模块。
这块首先会启动第一次检索,对应 Prompt 如下:
![第一次检索 Prompt]
提供反馈以帮助路由器更好地进行问题路由,分 LLM 验证器(Cval)和 LLM 评论器(Ccom)两个部分,验证器检查检索结果的准确性,评论器提供纠正性反馈以改进问题路由。
LLM 验证器负责检查检索结果的准确性,判断检索到的文档是否满足问题的要求。
![LLM 验证器机制]
如果检索结果不正确,LLM 评论器会提供纠正性反馈,帮助路由器改进问题路由。
![LLM 评论器机制]
也就是,LLM 评论器会指出检索结果中的错误或遗漏,并给出具体的修改建议,如替换错误的实体或关系、补充缺失的实体等。
HyBGRAG 通过自我反思迭代改进其问题路由。每次迭代中,路由器根据评论者的反馈调整其选择和使用的检索模块,从而逐步提高检索结果的准确性。但这个明显会很慢。
下面是一个具体的例子,每个 Action 都有一个 selection,用来表示问题路由所选择的检索模块:
![Action Selection 示例]
最后看下对比的效果,顺便再回顾下有哪些经典方案。
![最终效果对比]
本文主要介绍了关于 RAG 的两个进展,都是知识图谱跟 RAG 之间的结合思路。第二个工作其实本质也是引入了一个 Refine 反思模块,对检索到的内容进行修正,但这对于修正模块的要求很高。

微信公众号「极客日志」,在微信中扫描左侧二维码关注。展示文案:极客日志 zeeklog
使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online
生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online
基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online
将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online