想象一下,如果有一个真正了解你的 AI 助手。不是那种只知道你名字的助手,而是记得你老板下周要飞往阿姆斯特丹、记得你偏好靠过道座位,并且当航班时间变更时会自动更新你日历的助手。

当前的大型语言模型 (LLM) 虽然是令人难以置信的通才,但它们往往难以成为优秀的“个人助理”。它们深受所谓的“金鱼记忆”问题困扰——上下文限制有限,具体的个人细节往往淹没在噪声中或产生幻觉。

今天,我们将深入探讨一篇引人入胜的论文,题为 “Crafting Personalized Agents through Retrieval-Augmented Generation on Editability Memory Graphs” (通过可编辑记忆图上的检索增强生成来构建个性化智能体) 。研究人员提出了一种名为 EMG-RAG 的新颖架构。这不仅仅是另一个聊天机器人外壳;它是一个复杂的系统,结合了图论、强化学习和 LLM,创造了一个具有可编辑、结构化且足够智能以知道该记住什么的记忆的智能体。

如果你是 NLP 或 AI 架构的学生,这篇论文为你提供了一堂关于解决三个具体问题的大师课: 收集分散的数据、动态编辑记忆以及选择正确的事实组合来回答复杂问题。

核心问题: 为什么个性化很难?

在审视解决方案之前,我们需要了解其难度所在。作者指出了构建个性化智能体的三个主要障碍:

  1. 数据收集 (Data Collection) : 个人数据是杂乱无章的。它存在于截屏、随意的聊天记录、电子邮件和日历邀请中。从这些噪声中提取“记忆”十分困难。
  2. 可编辑性 (Editability) : 生活是变化的。航班延误;酒店预订取消。如果 AI 将信息存储在静态数据库中,或仅仅将所有内容输入到一个长上下文窗口中,那么在不破坏其他信息的情况下更新特定事实就是一场噩梦。
  3. 可选择性 (Selectability) : 这是一个最微妙但至关重要的挑战。要回答像*“我老板的航班是什么时候?”*这样的问题,AI 需要组合几个离散的记忆: (a) 谁是老板?(b) 他们要去哪里?(c) 我预订了哪个航班号?(d) 那个航班号的起飞时间是什么?

标准的检索增强生成 (RAG) 通常依赖于“Top-K”检索——即寻找与查询相似的前 5 或 10 个文本块。但对于上述复杂问题,简单的相似度搜索可能会错过“老板”和“航班 EK349”之间的联系。

解决方案: EMG-RAG

研究人员引入了 EMG-RAG , 这是一个将记忆结构化为图表并使用强化学习 (RL) 智能体进行导航的解决方案。让我们将该方法分解为三个不同的阶段。

第一阶段: 从混乱到记忆 (数据收集)

第一步是将原始的用户交互——比如聊天记录或航班确认的截屏——转化为结构化数据。

作者利用了来自真实智能手机 AI 助手的“业务数据集”。他们采用了利用 GPT-4 的巧妙流程。首先,GPT-4 处理原始文本 (以及来自截屏的 OCR 识别内容) 以提取原子级的“记忆”。接下来,为了训练他们的系统,他们需要练习题。他们再次使用 GPT-4 审视一系列记忆并生成问答 (QA) 对。

表 1: 数据收集示例。步骤-2: GPT-4 从原始数据生成记忆。步骤-3: GPT-4 使用数个记忆形成 QA 对,并生成所需的记忆,这些记忆用于训练 EMG-RAG。

如上表所示,系统不仅存储文本,还将文本分解为离散的事实 (\(M_1\) 到 \(M_6\)) 。例如,\(M_2\) 是“我预订了 EK349 航班”,而 \(M_4\) 是该航班的具体时间。这种细粒度的分离对于下一阶段至关重要。

第二阶段: 可编辑记忆图 (EMG)

这是该架构的亮点所在。作者构建了一个三层图 , 而不是使用向量数据库 (标准的嵌入列表) 。

  1. 记忆类型层 (Memory Type Layer) : 高级类别,如*关系 (Relationship) *、*偏好 (Preference) *、*事件 (Event) 属性 (Attribute) *。
  2. 记忆子类层 (Memory Subclass Layer) : 更具体的桶 (例如,旅行家庭) 。
  3. 记忆图层 (Memory Graph Layer) : 实际的实体-关系图。

为什么要用图?因为记忆是关系型的。“阿姆斯特丹”与“老板”相关,而“老板”又与“旅行”相关。

图 2: 所提出的 EMG-RAG 架构,结合数据收集中的运行示例进行演示 (第 4.1 节) 。基于 EMG 结构 (第 4.2 节) ,它支持三种可编辑操作: 插入 (例如,\\(M_7\\)) 、删除 (例如,\\(M_8\\)) 和替换 (例如,\\(M_9\\)) 。随后,经过编辑的 EMG 进行 RAG,通过 MDP 为给定的问题 \\(Q\\) 选择相关记忆 (例如,\\(M_1, M_2, M_9\\)) (第 4.3 节) 。由冻结的 LLM 生成的答案 \\(A\\) 进一步促进了三个下游应用 (第 4.4 节) 。

仔细观察上面的图 2(a) 。 这种结构实现了可编辑性 。 现实世界的数据是动态的。该系统支持三种具体操作:

  • 插入 (Insertion) : 添加新的座位号 (\(M_7\)) 。
  • 删除 (Deletion) : 移除过期的凭证 (\(M_8\)) 。
  • 替换 (Replacement) : 更改航班时间 (\(M_9\)) 。

由于数据被结构化为图,系统可以定位特定节点 (例如,航班实体) 并更新其属性,而无需重新训练模型或重写大量文档。

第三阶段: 利用强化学习的智能检索

现在我们有了一个记忆图。当用户提问时,我们如何找到答案?

标准的 RAG 会将问题转换为向量并抓取最近的节点。但正如我们所讨论的,复杂问题需要在节点之间跳转。作者将这个检索过程建模为马尔可夫决策过程 (MDP)

他们创建了一个“智能体”,从图中的相关节点开始,决定下一步去哪里。这是一种强化学习方法。

状态 (State, \(s\)) : 智能体需要知道“我在哪里?”以及“这相关吗?”。状态通过比较问题与图中的当前位置来定义。

公式 1: 状态定义

在这个公式中:

  • \(N_Q\) 和 \(R_Q\) 是问题中的实体和关系。
  • \(N_G\) 和 \(R_G\) 是 (当前节点) 中的实体和关系。
  • \(C\) 代表余弦相似度。 本质上,智能体查看当前记忆节点与用户问题的相似程度。

动作 (Action, \(a\)) : 在每个节点,智能体做出一个二元决策:

公式 2: 动作定义

  • 1 (Including): 保留这个记忆用于最终答案,并探索连接的节点。
  • 0 (Stopping): 不包含这个记忆;修剪这条路径。

奖励 (Reward, \(r\)) : 这是该过程的“提升”部分。智能体如何知道它做得好不好?它会检查 LLM 生成的答案质量。

公式 3: 奖励定义

这里,\(\Delta\) 是一个度量标准 (如 ROUGE 或 BLEU 分数) ,用于衡量生成的答案 (\(\hat{A}\)) 与真实答案 (\(A\)) 的接近程度。

  • 如果添加一个记忆提高了分数 (\(\hat{A}' > \hat{A}\)) ,智能体获得正奖励。
  • 如果添加一个记忆混淆了 LLM 并降低了分数,智能体获得负奖励。

总奖励是从搜索开始到结束,答案质量的累积提升:

公式 4: 累积奖励

训练智能体 从头开始训练 RL 智能体可能不稳定。作者使用了两阶段方法:

  1. 热启动 (Warm-Start, WS) : 他们首先使用标准的监督学习 (二元交叉熵) 训练智能体,有效地根据训练数据标签教它基本的“好”与“坏”记忆。

公式 5: 热启动损失

  1. 策略梯度 (Policy Gradient, PG) : 一旦智能体理解了基础知识,他们就切换到强化学习 (使用 REINFORCE 算法) ,根据上面定义的实际奖励微调决策过程。

公式 6: 策略梯度损失

实验与结果

理论听起来很扎实,但在实际中有效吗?作者在一个包含 113.5 亿条来自真实用户的原始文本条目 (过滤后为 3.5 亿条记忆) 的海量数据集上测试了 EMG-RAG。

他们将自己的方法与几个强基线进行了比较:

  • NiaH (Needle in a Haystack): 将所有内容倾倒进上下文窗口。
  • Naive RAG: 标准向量搜索。
  • M-RAG: 一种多智能体 RAG 方法。

应用表现

他们在三个任务上评估了系统: 问答 (QA) 、自动填表 (AF) 和用户服务 (US) 。

表 2: EMG-RAG 在下游应用中的有效性。

表 2 所示,EMG-RAG 在各项指标上都占据主导地位。

  • 问答中,它在使用 GPT-4 时达到了 75.99 的 BLEU 分数,显著高于 M-RAG (64.16)。
  • 即使使用像 ChatGLM3-6B 这样较小的模型,性能依然稳健,这表明智能在于检索架构,而不仅仅是底层的 LLM。

“时间旅行”测试 (连续编辑)

最令人印象深刻的结果是系统如何处理时间。研究人员模拟了一个为期 4 周的时间段,在此期间用户不断添加、删除或更改记忆。

表 3: EMG-RAG 在连续编辑下的有效性。

表 3 中,看看 M-RAG 和 EMG-RAG 在第 1 周到第 4 周的对比。

  • M-RAG 的性能随着时间推移而下降 (QA 分数从 88.48 降至 85.09) 。这可能是因为陈旧、过时的记忆干扰了检索过程。
  • EMG-RAG 保持了高性能 (QA 保持在 95-96 左右) 。图结构允许它进行外科手术式的更新 (如更改航班时间) ,因此智能体总是能检索到当前的真相。

消融研究: 我们需要所有部分吗?

科学需要验证每个组件是否必要。作者移除了系统的特定部分以观察结果。

表 4: 消融研究。

表 4 证实了:

  • 移除激活节点 (Activated Nodes) (即从相关点开始搜索而不是从根节点开始) 会显著损害性能。
  • 移除策略梯度 (PG) 阶段 (RL 部分) 也会导致下降。热启动虽然不错,但 RL 微调是将准确率推向更高水平的关键。

“K”的重要性

最后,他们分析了图搜索需要多少个起始点 (激活节点) 。

表 5: 激活节点的数量 K 的影响。

有趣的是,并不是越多越好。 表 5 显示 \(K=3\) 是最佳平衡点。

  • 太少 (\(K=1\)) : 可能会错过图的相关部分。
  • 太多 (\(K=5\)) : 引入了噪声并减慢了系统速度 (推理时间从 2.14s 跃升至 3.32s) 。

实际部署

研究人员不仅将此停留在实验室中。他们将其部署并在真实用户中进行了在线 A/B 测试。

表 6: 在线 A/B 测试。

与旧系统相比,新的 EMG-RAG 系统在所有类别中显示出 3-4% 的提升 。 虽然与实验室结果相比这看起来很小,但在拥有数百万次交互的实时产品中,用户满意度提升 4% 是巨大的。

他们还进行了严格的数据质量评估,以确保提取的记忆准确无误。

表 7: 数据质量评估。

人类评估者和基于 GPT-4 的评估者都发现提取的记忆高度准确 (>90%) ,验证了数据收集流程。

最后,为了让你了解系统具体存储了什么,这里是系统支持的记忆分类法:

表 8: 支持的记忆子类及记忆示例。

结论与启示

EMG-RAG 论文代表了个人 AI 智能体向前迈出的重要一步。它让我们摆脱了将“记忆”视为静态文本桶的观念,转向将记忆视为动态的、结构化的知识图谱

主要收获:

  1. 结构至关重要: 将个人数据组织成图表可以实现精确的编辑和更新,解决信息冲突或过时的问题。
  2. 智能导航: 使用 RL 智能体遍历关联,而不是盲目地检索顶部匹配项,这使得系统能够回答复杂的多跳问题。
  3. 端到端优化: 通过将最终答案的质量作为奖励信号,检索机制学会了随着时间的推移变得更好。

对于学生和研究人员来说,这篇论文强调了 LLM 应用的未来不仅仅在于更大的模型或更大的上下文窗口。它关乎架构——我们如何构建数据以及我们如何设计与之交互的智能体。随着我们的数字生活变得越来越复杂,像 EMG-RAG 这样的系统对于创建真正有帮助、个性化且最重要的——可靠的 AI 助手将是必不可少的。