引言
HippoRAG: Neurobiologically Inspired Long-Term Memory for Large Language Models,受生物学启发用于大语言模型的长期记忆。
为了简单,下文中以翻译的口吻记录,比如替换"作者"为"我们"。
本篇工作受人类长期记忆的海马体索引理论启发,提出了HippoRAG框架。协同整合了大模型、知识图谱和个性化PageRank算法,模拟人类记忆中新皮层和海马体的不同作用。
1. 总体介绍
目前的RAG方法无法帮助LLM执行需要跨段落整合新知识的任务,因为每个段落是独立编码的。目前的RAG系统采用迭代地使用多个检索和LLM生成步骤来连接不同的段落。
图 1:知识整合与 RAG。需要知识整合的任务对当前的 RAG 系统来说尤其具有挑战性。在上面的例子中,我们想要从描述可能数千名斯坦福教授和阿尔茨海默病研究人员的一组段落中找到一位从事阿尔茨海默病研究的斯坦福教授。由于当前的方法是孤立地对段落进行编码,因此它们将难以识别教授托马斯,除非某个段落同时提到了这两个特征。相比之下,大多数熟悉这位教授的人会很快记住他,因为我们的大脑具有联想记忆能力,这种能力被认为是由上面 C 形海马体(蓝色)中所示的索引结构驱动的。受这种机制的启发,HippoRAG 允许 LLM 建立并利用类似的关联图来解决知识整合任务。
而我们的大脑能轻松地解决这些具有挑战性的知识整合任务。我们强大的基于上下文的、不断更新的记忆依赖于新皮层与C形海马体之间的相互作用,新皮层处理和存储实际的记忆表征,而海马体则保存海马体索引,这是一组相互关联的索引,指向新皮层的记忆单元并存储它们之间的关联。
本篇工作中,我们提出了HippoRAG,首先使用大语言模型将语料库转换为无模式知识图(KG)来模拟新皮层处理感知输入的能力,作为人工海马体索引。给定一个新的查询,HippoRAG识别查询中的关键概念,并在KG上运行个性化PageRank(PPR)算法,使用查询概念作为种子,以整合跨段落的检索信息。PPR使HippoRAG能够探索KG路径并识别相关子图,本质上是在单次检索步骤中执行多跳推理。
2. HippoRAG
2.1 海马体记忆索引理论
人类长期记忆由三个相互协作的组成部分构成,实现两个主要目标: 模式分离,确保不同感知体验的表征是独一无二的;模式补全,使从部分刺激中检索完整记忆成为可能。
模式分离主要是在记忆编码过程中完成的,该过程始于新皮层接收和处理感知刺激,将其转换为更容易操作的、可能更高级的特征,然后通过海马旁回区域(PHR)传递到海马体进行索引,它们会被纳入海马体索引并相互关联。
记忆编码完成后,模式补全驱动记忆检索过程,只要海马体从PHR管道接收部分感知信号。然后,海马体利用其依赖于上下文的记忆系统来识别海马体索引中的完整且相关的记忆。该复杂的过程允许通过仅改变海马索引而不是更新新皮层表征来整合新信息。
2.2 概述
图 2:HippoRAG 方法详解。我们模拟人类长期记忆的三个组成部分,以模仿其模式分离和完成功能。对于离线索引(中间),我们使用 LLM 将段落处理成开放式 KG 三元组,然后将其添加到我们的人工海马体索引中,而我们的合成海马旁区域 (PHR) 检测同义词。在上面的例子中,涉及 Thomas 教授的三元组被提取并集成到 KG 中。对于在线检索(底部),我们的 LLM 新皮层从查询中提取命名实体,而我们的海马旁检索编码器将它们链接到我们的海马体索引。然后,我们利用个性化 PageRank 算法来实现基于上下文的检索并提取 Thomas 教授。
HippoRAG借鉴了上述古城,如图2所示,HippoRAG每个组件对应人类长期记忆的三个组件之一。
离线索引 类似于记忆编码,首先利用一个强大的指令微调LLM,即人工新皮层,来提取知识图谱(KG)三元组。从检索语料中的段落提取显著信号作为离散名词短语,而不是密集向量表好似,允许更细粒度的模式分离。为了像海马旁回区域那样连接这两个组件,使用微调好的稠密编码器用于检索。这些检索编码器在该KG中提供类似但不完全相同的名词短语之间的额外变,帮助下游模式完成。
在线检索 这三个组件随后被用来模仿人脑的记忆检索过程,从而实现在线检索。基于LLM的新皮层从查询中提取出一组显著的命名实体,称为查询命名实体。随后根据检索编码器确定的相似性与KG中的节点链接,这些选定节点称为查询节点。在海马体中,海马体索引元素之间的神经通路使相关邻域能够被激活并向上游找回。利用个性化PageRANK算法(PPR)模仿这种高效的图搜索过程。
最后,就像海马其信号被发送到上游一样,我们对先前索引的段落上的输出PPR节点概率进行聚合,并对它们进行排名以进行检索。
2.3 详细方法
离线索引 如图2所示,索引过程涉及使用指令微调的LLM L L L和检索编码器 M M M处理一组段落 P P P。首先使用 L L L通过OpenIE从 P P P中的每个段落中提取一组名词短语节点 N N N和关系边 E E E。
具体来说,首先从每个段落中提取出一组命名实体,然后将命名实体添加到OpenIE提示中,以提取最终的三元组,其中还包含超出命名实体的概念(名词短语)。最后当 N N N个实体表示之间的余弦相似度高于阈值 τ \tau τ时,使用 M M M添加上面讨论的额外同义词关系集 E ′ E^\prime E′。这位我们的海马体索引引入了更多边,此索引过程定义了一个 ∣ N ∣ × ∣ P ∣ |N| \times |P| ∣N∣×∣P∣矩阵 P P P,包含KG中每个名词短语在每个原始段落中出现的次数。
在线索引 在检索过程中,使用一次性提示来提示 L L L,从查询 q q q中提取一组命名实体,先前定义的查询命名实体 C q = { c 1 , ⋯ , c n } C_q=\{c_1,\cdots,c_n\} Cq={c1,⋯,cn}。查询中的这些命名实体 C q C_q Cq然后由相同的检索编码器 M M M编码。然后,先前定义的查询节点被选为 N N N中与查询命名实体 C q C_q Cq余弦相似度最高的节点集。查询节点定义为 R q = { r 1 , ⋯ , r n } R_q=\{r_1,\cdots,r_n\} Rq={r1,⋯,rn},使得 r i = e k r_i=e_k ri=ek,其中 k = arg max j cosine_similarity ( M ( c i ) , M ( e j ) ) k=\arg \max_j \text{cosine\_similarity}(M(c_i),M(e_j)) k=argmaxjcosine_similarity(M(ci),M(ej))。
找到查询节点 R q R_q Rq后,海马体索引上云霄PPR算法,使用定义在 N N N上的个性化概率分布 n ⃗ \vec n n,其中每个查询节点具有相同的概率,而所有其他节点的概率为零。这使得概率可以分布到主要位于查询节点领域的节点,有助于最终检索。在运行PPR算法后,我们获得了更新的概率分布 n ′ ⃗ \vec{n^\prime} n′,然后将它乘先前定义的 P P P矩阵,得到 p ⃗ \vec p p,这是一个对每个段落的排名得分,我们用它来检索。
节点特异性 为了进一步提高检索效果,引入节点特异性来替代 I D F IDF IDF信号,它只需要局部信号。将节点 i i i的节点特异性定义为 s i = ∣ P i ∣ − 1 s_i=|P_i|^{-1} si=∣Pi∣−1,其中 P i P_i Pi是从节点 i i i被提取的 P P P中的段落集。通过在PPR之前将每个查询节点概率 n ⃗ \vec n n乘 s i s_i si,使得我们能调节每个邻域的概率以及它们自身的概率。如图2中通过相对符号大小来展示节点特异性:斯坦福大学的标志比阿尔茨海默病的标志更大,因为它出现在更少的文档中。
总结
⭐ 作者提出了HippoRAG,首先使用大语言模型将语料库转换为无模式知识图(KG)来模拟新皮层处理感知输入的能力,作为人工海马体索引。给定一个新的查询,HippoRAG识别查询中的关键概念,并在KG上运行个性化PageRank(PPR)算法,使用查询概念作为种子,以整合跨段落的检索信息。