论文浅尝 | G-Retriever:用于文本图理解和提问的检索增强生成

e9ce42195b473ed88cc69d692520c06c.png

笔记整理:陈少凯,浙江大学硕士,研究方向为知识图谱、RAG

链接:https://arxiv.org/abs/2402.07630

1. 动机

尽管现有研究在多种场景下融合了大型语言模型(LLM)与图神经网络(GNN),聚焦于诸如节点、边及图分类等传统图谱任务,或是解答小规模乃至合成图上的查询问题,但我们的创新成果开辟了一条新路径。我们精心设计了一款弹性十足的问答系统,专为应对复杂且源自现实世界的大规模图数据而生。这一框架赋予用户通过一体化对话界面与图数据直接“对话”的能力,标志着图形数据分析领域一次革命性的进步。

近期学术界的努力尝试将图形结构转化为自然语言表述,比如将节点与边转换为文本序列,以便借助LLM处理各类图相关任务。然而,这种方法遭遇了显著的扩展性瓶颈。当图形包含成千上万个节点与边时,转化成文本序列将导致标记数量激增,超出了多数LLM的输入容量限制。若为适配LLM而裁剪图形文本序列,又会不可避免地牺牲信息完整性和回复质量。为解决这一挑战,G-Retriever 应运而生,其内置的RAG(Retrieval-Augmented Generation)机制能精准定位并提取图形中的关键片段,从而高效处理大规模图形数据,确保信息无损传递的同时,大幅提升了系统的响应效率和准确性。

综上所述,我们的解决方案不仅解决了图形到文本转换的可扩展性难题,更在保持信息完整度的前提下,实现了对大型图数据的有效管理和深度理解。

2. 贡献

(1)提出了一个GraphQA的benchmark(集成了三个任务的数据集:常识推理,场景图理解,知识图谱推理),用于测试模型在回答图问题的相关能力,填补了研究空白。

(2)作者提出了G-retriever方法,结合了GNN、LLM、RAG,通过软提示进行高效微调以增强图理解能力。

(2)作者提出了一种基于PCST的图检索方法,并在多个领域证明了G- retriever的效率和有效性,以及缓解了图大语言模型的幻觉问题。

3. 方法

模型的整体架构如下:

a7b78b39a36e6d15d93b767be2f08832.png

主要分为四个阶段,具体如下:

(1)索引阶段:使用预训练的语言模型生成节点和图的嵌入来初始化RAG,然后将这些嵌入存储在最近邻的数据结构中,然后输入到语言模型得到Zn,对于边也是一样的策略。

(2)检索阶段:对于检索,对查询采取与索引阶段相关的编码策略,来确保对文本信息的一致性处理。然后,识别与当前查询最相关的节点和边(即基于查询与每个节点或边的相似性,产生一组“相关的节点/边”)

(3)子图构建阶段:利用PCST算法构建一个尽可能包含多的相关节点和边的子图,同时保证图的大小是可管理的。核心目标是过滤掉与查询无关的节点和边,且保证图的大小转换成自然语言后是可以被输入到LLM中进行处理。

(4)生成阶段:对于检索到的子图,一方面利用GAT进行图编码,另一方面将检索到的子图转换为文本格式,和查询一起输出到LLM进行字编码;最后结合两边的输出,一起输入到LLM中,生成答案。

4. 实验

GraphQA Benchmark:

该Benchmark主要由三种任务的数据集(ExplaGraph数据集:常识推理任务、SceneGraphs数据集:场景图问答任务、WebQSP数据集:知识问答任务)一起标准化和处理成统一的数据格式。

863187eea187c6e274c1a19d313cae01.png

不同设置在ExplaGraphs、SceneGraphs和WebQSP数据集上的性能比较:

6cde7d1cd764d0baf5258cf81da267e7.png

执行检索前后平均的token数和节点数:

f7403433862c4a92517183d9dc2d35cc.png

在SceneGraphs数据集上对幻觉进行定量比较:

ac34d65935aadd42aeabb09fa9bcfb21.png

消融实验(架构层面和检索模块层面):

3dc50dcd4f13a9293bb4c61c0a3ea7c2.png

5. 总结

本文构建了一个新的GraphQA基准,用于现实世界的图问答,并提出了G-Retriever,一个擅长复杂和创造性查询的架构。实验结果表明,G-Retriever在多个领域的文本图任务中超过了基线,可以有效地扩展更大的图尺寸,并表现出对幻觉的抵抗力。此外,本文中的G-Retriever采用的是静态检索组件,未来研究发展中可以研究更加复杂的RAG系统,比如采用训练的检索组件。


OpenKG

OpenKG(中文开放知识图谱)旨在推动以中文为核心的知识图谱数据的开放、互联及众包,并促进知识图谱算法、工具及平台的开源开放。

8068d661a2bbe6a55d8bf579f83a9956.png

点击阅读原文,进入 OpenKG 网站。

### G-Retriever 的使用说明技术概述 G-Retriever 是一种专为问答设计的新架构,融合了神经网络 (GNN)、大型语言模型 (LLM) 检索增强生成 (RAG) 的优势[^1]。以下是关于其技术使用的详细介绍: #### 1. 架构特点 G-Retriever 将子检索形式化为部分约束树形结构优化问题 (PCST),从而能够高效地从大规模数据中提取相关子。这种机制不仅提升了检索效率,还增强了系统的可解释性。 #### 2. 安装依赖项 要使用 G-Retriever 技术,通常需要安装以下核心库: - 处理框架(如 PyTorch Geometric) - 大型语言模型支持库(如 Hugging Face Transformers) 示例代码如下: ```bash pip install torch geometric transformers dgl ``` #### 3. 初始化 G-Retriever 工具 可以通过定义一个基于子检索的工具来实现 G-Retriever 功能。以下是一个简单的初始化示例: ```python from langchain.tools.retriever import create_retriever_tool retriever = ... # 配置您的子检索器实例 retriever_tool = create_retriever_tool( retriever, "graph_substructure_search", "Retrieve relevant subgraphs based on the query." ) ``` 上述代码片段展示了如何配置一个用于检索的功能模块[^3]。 #### 4. 子检索流程 为了利用 PCST 优化算法进行子检索,可以遵循以下逻辑: - 输入查询向量或自然语言描述; - 转换输入至适合嵌入的空间; - 应用 PCST 算法找到最优子集合; - 返回匹配度最高的子及其关联节点/边信息。 具体实现可能涉及自定义损失函数以及调整超参数以适应特定应用场景的需求。 #### 5. 结果可视化与调试 由于 G-Retriever 提供了较强的可解释性特性,因此建议开发人员关注以下几个方面: - **结果验证**:确认所选子是否真正满足查询需求。 - **性能评估**:测量不同规模下系统响应时间及准确性指标。 - **错误分析**:记录并改进误检率较高情况下的表现。 如果遇到假设文档质量问题,则可通过优化提示词或升级基础 LLM 来改善效果[^2]。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值