HippoRAG:受海马体启发的长时记忆模型,提升大语言模型的知识整合能力

论文地址:https://arxiv.org/pdf/2405.14831

1. 背景与挑战

1.1 哺乳动物大脑与长时记忆
  • 进化优势: 哺乳动物的大脑进化出强大的长时记忆系统,能够存储大量关于世界的知识,并不断整合新信息,同时避免灾难性遗忘。
  • 知识整合能力: 这种记忆系统使人类能够积累持续更新的知识库,为推理和决策提供基础。
1.2 大语言模型 (LLM) 的局限性
  • 缺乏持续更新的长时记忆: 尽管 LLM 在近年来取得了巨大进步,但它们仍然缺乏类似哺乳动物大脑的持续更新长时记忆系统。
  • RAG 的局限性:
    • 现状: 检索增强生成 (RAG) 已成为 LLM 长时记忆的默认解决方案,允许用户向静态模型提供新知识。
    • 问题: 现有 RAG 方法无法有效整合跨段落边界的知识,因为每个新段落都是独立编码的。
    • 影响: 许多现实世界的任务,如科学文献综述、法律案例摘要和医学诊断,都需要跨段落或文档的知识整合。

2. HippoRAG:受海马体启发的 RAG 框架

2.1 灵感来源:海马体记忆索引理论
  • 理论核心:
    • 海马体: 负责存储海马体索引,即一组相互连接的索引,指向新皮层上的记忆单元,并存储它们之间的关联。
    • 新皮层: 处理和存储实际的记忆表征。
    • 模式分离: 确保不同感知体验的表征是唯一的。
    • 模式完成: 能够从部分刺激中检索完整的记忆。
  • 工作原理:
    • 海马体索引通过改变海马体索引而不是更新新皮层表征来整合新信息。
    • 当海马体接收到来自 PHR 管道的部分感知信号时,它会利用其上下文依赖的记忆系统来识别海马体索引中完整且相关的记忆,并将其路由回新皮层进行模拟。
2.2 HippoRAG 的设计理念

HippoRAG 旨在模拟上述人类记忆模型,为 LLM 提供长时记忆。其设计包含三个主要组件,分别对应于人类长时记忆的三个组成部分:

  1. 离线索引 (Offline Indexing):

    • 人工新皮层: 使用强大的指令微调 LLM 将语料库转换为无模式知识图谱 (KG),作为人工海马体索引。
      • 过程: 使用 OpenIE 从每个段落中提取显着信号作为离散名词短语,而不是密集向量表示。
      • 优势: 允许更细粒度的模式分离。
    • 人工海马体索引: 构建在检索语料库上的开放 KG。
    • 人工 PHR: 使用为检索微调的现成密集编码器 (检索编码器) 为 KG 中的相似但不相同的名词短语添加额外的同义关系边,以帮助下游的模式完成。
  2. 在线检索 (Online Retrieval):

    • 过程模拟: 模仿人脑的记忆检索过程。
      • 输入处理: LLM 提取查询中的显着命名实体 (查询命名实体)。
      • 实体链接: 使用检索编码器将查询命名实体链接到 KG 中的节点 (查询节点)。
      • 模式完成:
        • PPR 算法: 在 KG 上运行 PPR 算法,使用查询节点作为种子,模拟海马体从特定部分线索中提取关联信号的过程。
          • 优势: 能够在单个检索步骤中执行多跳推理。
        • 概率分布: PPR 输出更新后的节点概率分布。
        • 段落排序: 将 PPR 节点概率与之前定义的 P 矩阵相乘,得到每个段落的排序分数,用于检索。
  3. 节点特异性 (Node Specificity):

    • 概念: 一种更符合神经生物学原理的方法,用于进一步提高检索性能。
    • 实现: 将每个查询节点概率与节点特异性值相乘,然后再进行 PPR。
      • 节点特异性: 定义为节点提取的段落数量的倒数。
      • 优势: 仅需要局部信号,更符合神经生物学原理。

3. 实验结果与分析

3.1 数据集与基线
  • 数据集:
    • MuSiQue: 包含多跳问答 (QA) 问题,需要整合跨段落的信息。
    • 2WikiMultiHopQA: 以实体为中心的多跳 QA 数据集。
    • HotpotQA: 多跳 QA 数据集,但知识整合要求较低。
  • 基线方法:
    • 单步检索: BM25、Contriever、GTR、ColBERTv2、RAPTOR、Propositionizer。
    • 多步检索: IRCoT。
3.2 主要发现
  • 单步检索性能:
    • 优势: HippoRAG 在 MuSiQue 和 2WikiMultiHopQA 上均优于所有基线方法,在 HotpotQA 上也表现出竞争力【表 2】。
      • MuSiQue: R@2 和 R@5 分别提高了约 3%。
      • 2WikiMultiHopQA: R@2 和 R@5 分别提高了 11% 和 20%。
    • 原因分析:
      • 2WikiMultiHopQA 的实体中心设计特别适合 HippoRAG。
      • HotpotQA 的知识整合要求较低,且存在概念与上下文之间的权衡问题。
  • 多步检索性能:
    • 互补性: HippoRAG 与 IRCoT 互补,结合使用可带来显著的性能提升【表 3】。
      • MuSiQue: R@5 提高了约 4%。
      • 2WikiMultiHopQA: R@5 提高了 18%。
      • HotpotQA: R@5 提高了 1%。
  • 问答性能:
    • 单步检索: HippoRAG 的 F1 分数在 MuSiQue、2WikiMultiHopQA 和 HotpotQA 上分别提高了 3%、17% 和 1%【表 4】。
    • 多步检索: IRCoT + HippoRAG 的 F1 分数在 MuSiQue、2WikiMultiHopQA 和 HotpotQA 上分别提高了 3%、18% 和 1%。
    • 效率: 单步 HippoRAG 的在线检索成本仅为 IRCoT 的 1/10 到 1/30,速度却快了 6 到 13 倍【附录 G】。
3.3 深入分析
  • HippoRAG 的优势:
    • 单步多跳检索能力:
      • 原因: HippoRAG 能够通过 PPR 算法在单个检索步骤中执行多跳推理。
      • 证据: 在 MuSiQue 和 2WikiMultiHopQA 上,所有支持段落成功检索的查询百分比均有所提高【表 6】。
    • 路径查找多跳检索能力:
      • 案例: 在“哪个斯坦福大学教授从事阿尔茨海默病神经科学研究?”这个问题中,HippoRAG 能够利用 Thomas Sdhof 教授与阿尔茨海默病研究的关联,成功检索到相关段落,而 ColBERTv2 和 IRCoT 则无法做到【表 7】。
      • 原因: HippoRAG 利用其海马体索引中的关联网络和图搜索算法来确定相关实体并检索其段落。

4. 消融实验与误差分析

4.1 消融实验
  • OpenIE 替代方案:
    • REBEL: 性能大幅下降,表明 LLM 的灵活性至关重要【表 5】。
    • Llama-3.1: 8B 版本在除 2Wiki 之外的所有数据集上与 GPT-3.5 性能相当,70B 版本在两个数据集上优于 GPT-3.5。
    • 结论: Llama-3.1 提供了更经济的索引大型语料库的选择。
  • PPR 替代方案:
    • 仅使用查询节点: 性能下降,表明 PPR 在整合关联信息方面更有效。
    • 添加查询节点邻居: 性能进一步下降,表明 PPR 的重要性。
  • 消融分析:
    • 节点特异性: 在 MuSiQue 和 HotpotQA 上带来显著提升,但在 2WikiMultiHopQA 上几乎没有变化。
    • 同义关系边: 对 2WikiMultiHopQA 影响最大,表明在大多数相关概念是命名实体时,噪声实体标准化是有用的。
4.2 误差分析
  • 主要误差来源:
    • NER 限制: 48% 的误差是由于 NER 设计无法从查询中提取足够的信息进行检索。
    • OpenIE 错误: 28% 的误差是由于 OpenIE 错误,例如忽略了关键信息或未准确捕获时间属性。
    • PPR 误差: 24% 的误差是由于 PPR 算法无法识别相关子图,通常是由于混淆信号造成的。

5. 结论与未来工作

  • 优势:

    • 知识整合能力: 在路径跟踪多跳 QA 上表现出色,在路径查找多跳 QA 上也展现出潜力。
    • 效率提升: 显著提高了效率,并具有持续更新的特性。
    • 神经生物学原理: 提供了 LLM 长时记忆的神经生物学原理框架。
  • 局限性:

    • 组件微调: 所有组件都是现成的,没有进行额外训练,未来可以通过组件微调来提高方法的实用性。
    • OpenIE 一致性: 需要改进 OpenIE 在较长文档中的一致性。
    • 可扩展性: 未来需要进一步验证 HippoRAG 的可扩展性。
  • 未来方向:

    • 图遍历改进: 探索允许关系直接指导图遍历的方法。
    • OpenIE 改进: 改进 OpenIE 性能,特别是在处理长文档时。
    • PPR 优化: 研究更复杂的图搜索算法以提高检索效率。
    • 多模态整合: 将 HippoRAG 扩展到多模态领域,例如整合视觉信息。

6. 图表总结

图 1: 知识整合与 RAG

图 2: HippoRAG 方法详细流程

图 3: HippoRAG 流程示例 (问题与注释)

图 4: HippoRAG 流程示例 (索引)

图 5: HippoRAG 流程示例 (检索)

图 6: 候选段落 (干扰项和支持段落) 的相似度分数密度

表 1: 每个数据集的检索语料库和提取的 KG 统计数据
数据集# Passages §# Unique Nodes (N)# Unique Edges (E)# Unique Triples# Contriever Synonym Edges (E’)# ColBERTv2 Synonym Edges (E’)
MuSiQue11,65691,72921,714107,448145,990191,636
2Wiki6,11942,6947,86750,671146,02082,526
HotpotQA9,22182,15717,52398,709159,112171,856
表 2: 单步检索性能
模型RetrieverMuSiQue2WikiHotpotQAAverage
R@2R@5R@2R@5R@2R@5R@2R@5
BM25 [69]32.341.251.861.955.472.246.558.4
Contriever [35]34.846.646.657.557.275.546.259.9
GTR [53]37.449.160.267.959.473.352.363.4
ColBERTv2 [70]37.949.259.268.264.779.353.965.6
RAPTOR [71]35.745.346.353.858.171.246.756.8
RAPTOR (ColBERTv2)36.946.557.364.763.175.6
Proposition [10]37.649.356.463.158.771.150.961.2
Proposition (ColBERTv2)37.850.155.964.963.978.1
HippoRAG (Contriever)41.052.171.589.559.076.257.272.6
HippoRAG (ColBERTv2)40.951.970.789.160.577.757.472.9
表 3: 多步检索性能
模型RetrieverMuSiQue2WikiHotpotQAAverage
R@2R@5R@2R@5R@2R@5R@2R@5
IRCoT + BM25 (Default)34.244.761.275.665.679.053.766.4
IRCoT + Contriever39.152.251.663.865.981.652.265.9
IRCoT + ColBERTv241.753.764.174.467.982.057.970.0
IRCoT + HippoRAG (Contriever)43.956.675.393.465.882.361.777.4
IRCoT + HippoRAG (ColBERTv2)45.357.675.893.967.083.062.778.2
表 4: QA 性能
RetrieverMuSiQue2WikiHotpotQAAverage
EMF1EMF1EMF1EMF1
None12.524.131.039.630.442.824.635.5
ColBERTv215.526.433.443.343.457.730.842.5
HippoRAG (ColBERTv2)19.229.846.659.541.855.035.948.1
IRCoT (ColBERTv2)19.130.535.445.145.558.433.344.7
IRCoT + HippoRAG (ColBERTv2)21.933.347.762.745.759.238.451.7
表 5: HippoRAG 消融实验
模型MuSiQue2WikiHotpotQAAverage
R@2R@5R@2R@5R@2R@5R@2R@5
HippoRAG40.951.970.789.160.577.757.472.9
REBEL [34]31.739.663.176.543.959.246.258.4
Llama-3.1-8B-Instruct [1]40.851.962.577.559.975.154.467.8
Llama-3.1-70B-Instruct [1]41.853.768.885.360.878.657.172.5
PPR Alternatives: Rq Nodes Only37.141.059.161.455.966.250.756.2
PPR Alternatives: Rq Nodes & Neighbors25.438.553.474.747.864.542.259.2
Ablations: w/o Node Specificity37.650.270.188.856.373.754.770.9
Ablations: w/o Synonymy Edges40.250.269.285.659.175.756.270.5

7. 总结

HippoRAG 是一种受神经生物学原理启发的 RAG 框架,通过模拟人类长时记忆的机制,显著提升了 LLM 的知识整合能力。其在多跳 QA 上的出色表现和效率提升,使其成为 LLM 长时记忆的有力解决方案。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/960034.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Juc22_什么是中断、interrupt、isInterrupted、interrupted方法源码解析、如何使用中断标识停止线程

目录 ①. 什么是中断 ②. 源码解读(中断的相关API) ③. 如何使用中断标识停止线程 ①. 什么是中断 ①. 一个线程不应该由其他线程来强制中断或停止,而是应该由线程自己自行停止,所以,Thread.stop、Thread.suspend、Thread. resume都已经被废弃了 ②. 在Java中没有办法立即停止…

网络安全 | F5-Attack Signatures详解

关注:CodingTechWork 关于攻击签名 攻击签名是用于识别 Web 应用程序及其组件上攻击或攻击类型的规则或模式。安全策略将攻击签名中的模式与请求和响应的内容进行比较,以查找潜在的攻击。有些签名旨在保护特定的操作系统、Web 服务器、数据库、框架或应…

项目概述与规划 (I)

项目概述与规划 (I) JavaScript的学习已经接近尾声了,最后我们将通过一个项目来讲我们在JavaScript中学习到的所有都在这个项目中展现出来,这个项目的DEMO来自于Udemy中的课程,作者是Jonas Schmedtmann; 项目规划 项目步骤 用户…

RabbitMQ 架构分析

文章目录 前言一、RabbitMQ架构分析1、Broker2、Vhost3、Producer4、Messages5、Connections6、Channel7、Exchange7、Queue8、Consumer 二、消息路由机制1、Direct Exchange2、Topic Exchange3、Fanout Exchange4、Headers Exchange5、notice5.1、备用交换机(Alter…

基于java线程池和EasyExcel实现数据异步导入

基于java线程池和EasyExcel实现数据异步导入 2.代码实现 2.1 controller层 PostMapping("import")public void importExcel(MultipartFile file) throws IOException {importService.importExcelAsync(file);}2.2 service层 Resource private SalariesListener sa…

微信阅读网站小程序的设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

【吉林乡镇界】面图层shp格式arcgis数据乡镇名称和编码wgs84无偏移内容测评

标题中的“吉林省乡镇界面图层shp格式arcgis数据乡镇名称和编码wgs84无偏移”揭示了这是一个地理信息系统(GIS)相关的数据集,主要用于描绘吉林省的乡镇边界。这个数据集包含了一系列的文件,它们是ArcGIS软件能够识别和处理的Shape…

71.在 Vue 3 中使用 OpenLayers 实现按住 Shift 拖拽、旋转和缩放效果

前言 在前端开发中,地图功能是一个常见的需求。OpenLayers 是一个强大的开源地图库,支持多种地图源和交互操作。本文将介绍如何在 Vue 3 中集成 OpenLayers,并实现按住 Shift 键拖拽、旋转和缩放地图的效果。 实现效果 按住 Shift 键&#…

Python NumPy(3):创建数组(2)

1 NumPy 从已有的数组创建数组 1.1 numpy.asarray numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个。 numpy.asarray(a, dtype None, order None) 参数描述a任意形式的输入参数,可以是&#xff0c…

qml Dialog详解

1、概述 Dialog是QML(Qt Modeling Language)中用于显示对话框的组件,它提供了一个模态窗口,通常用于与用户进行重要交互,如确认操作、输入信息或显示警告等。Dialog组件具有灵活的布局和样式选项,可以轻松…

二维数组一

目录 输出数组的第k行数输出数组的第k列数输出数组的每一行的和输出数组的每列的平均值最高成绩各个科目成绩的平均分求最大梯形的面积入门靶心数奇偶统计 输出数组的第k行数 题目描述 输入一个二维数组,显示他的第k行的值。 输入 第一行 n,m两个整数&…

单片机内存管理剖析

一、概述 在单片机系统中,内存资源通常是有限的,因此高效的内存管理至关重要。合理地分配和使用内存可以提高系统的性能和稳定性,避免内存泄漏和碎片化问题。单片机的内存主要包括程序存储器(如 Flash)和数据存储器&a…

计算机网络 (61)移动IP

前言 移动IP(Mobile IP)是由Internet工程任务小组(Internet Engineering Task Force,IETF)提出的一个协议,旨在解决移动设备在不同网络间切换时的通信问题,确保移动设备可以在离开原有网络或子网…

线性回归、协同过滤、基于内容过滤、主成分分析(PCA)

线性回归 使用item特征用户打分标签线性回归训练,最小化成本函数,得到每个用户的参数 协同过滤 协同过滤基于一个核心假设:相似的用户会有相似的兴趣,因此可以通过分析相似用户历史行为,来预测当前用户可能感兴趣的i…

引领产品创新: 2025 年 PM 效能倍增法则

本文讲述 PM 如何利用 AI 做到效率倍增,非常有借鉴意义,故而翻译于此。 原文链接:https://www.news.aakashg.com/p/the-ai-pms-playbook 在产品圈有一个广为流传的说法: “每个产品经理都应该成为 AI 产品经理。” 这个观点有一…

vscode无法格式化go代码的问题

CTRLshiftp 点击Go:Install/Update Tools 点击全选,OK!

【外文原版书阅读】《机器学习前置知识》1.线性代数的重要性,初识向量以及向量加法

目录 ​编辑 ​编辑 1.Chapter 2 Why Linear Algebra? 2.Chapter 3 What Is a Vector? 个人主页:Icomi 大家好,我是Icomi,本专栏是我阅读外文原版书《Before Machine Learning》对于文章中我认为能够增进线性代数与机器学习之间的理解的…

对神经网络基础的理解

目录 一、《python神经网络编程》 二、一些粗浅的认识 1) 神经网络也是一种拟合 2)神经网络不是真的大脑 3)网络构建需要反复迭代 三、数字图像识别的实现思路 1)建立一个神经网络类 2)权重更新的具体实现 3&am…

SOME/IP--协议英文原文讲解1

前言 SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块: 1. SOME/IP协议讲解 2. SOME/IP-SD协议讲解 3. python/C举例调试讲解 一、SOM…

移动光猫怎么自己改桥接模式?

环境: 型号H3-8s 问题描述: 家里宽带用的是H3-8s 光猫,想改桥接模式。 解决方案: 1.默认管理员账号和密码: 账号:CMCCAdmin 密码:aDm8H%MdAWEB页面我试了登陆不了,显示错误 …