SpeakerMem-R1:面向多方对话的说话人中心双轨记忆 SpeakerMem-R1: Speaker-Centered Dual-Track Memory for Multi-Party Dialogue
双轨记忆+强化学习Writer,破解群聊记忆的消息归属与状态重建难题
前置知识
长期对话记忆(Long-term Conversational Memory)
让 LLM 智能体跨会话保留事实、偏好与社会关系的技术。主流做法是把历史对话切分、压缩、索引,问答时按相关性检索(RAG 范式),代表系统有 Mem0、A-MEM、MemGPT、MemoryBank、HippoRAG 等。它们大多针对单人或双人场景设计,用摘要或知识图谱压缩历史以突破上下文窗口限制。
本文批判的对象正是这些通用记忆系统:它们在群聊场景因丢失归属关系和状态版本而大幅退化,理解这一背景才能看懂动机与实验对比。
消息归属(source/owner 区分)
一条派生记忆记录 $r=(x, src, own, scope, event, time, ref)$ 中,source 是信息的提供者或观察者,owner 是内容所涉及的人。自述满足 src=own;「Alice 认为 Bob 已同意」则 src=Alice、own=Bob。普通摘要和图谱把两者合并,导致把转述错写成当事人自述。
归属错误是多方记忆的第一大失败模式,本文的数据结构、写入动作和 RL 奖励全部围绕这对字段展开,不懂它就看不懂方法核心。
双轨记忆(System 1 / System 2)
借用认知科学的双系统隐喻:System 1 是逐字层,确定性地原样保存每条消息及说话人、时间、频道坐标,不经过语言模型;System 2 是派生层,把状态组织成 PERSON 级(Core/Profile)与 GROUP 级(Interaction/Insight)四层视图。UPDATE 采用非破坏性更新链:追加新节点并用 links/superseded_by 链接旧节点,head 查询取当前状态、full 查询展开完整历史。
这是论文的系统骨架,检索、回答、消融实验全部建立在该结构上;head/full 模式也是时间类问题能答对的关键。
GRPO(组相对策略优化)
DeepSeekMath 提出的 RL 算法:对同一输入采样一组(本文 $G=8$)轨迹,用组内均值和标准差把回报归一化为相对优势,替代价值网络(critic),再用 PPO 式的 clip 目标更新策略,并用 KL 惩罚约束不偏离参考策略。省去 critic 使训练更轻量。
Writer-R1 的训练算法是「说话人条件化」的 GRPO 变体,只有理解组相对优势和 clip/KL 机制,才能看懂第 4 节与附录 E 的训练细节。
匈牙利算法一对一软匹配
在预测记录集合与参考记录集合之间求最大权一对一匹配的组合优化算法。本文在 owner 桶内以软匹配分数 $\kappa_{ij}$ 为边权做最大权匹配:一条预测只能配一条参考,因此漏写(漏配)和过写(无配可配)都会拉低得分,一一对应的约束防止一条模糊预测蹭多条参考的分。
SpeakerLevenshtein 奖励的核心计算步骤,决定了 RL 信号的稠密性与正确性;owner 桶划分则保证低频成员不被高频说话人淹没。
二元准确率与 token-F1
二元准确率(Acc.)由 LLM 判官对每个问题给 0/1 判定后取平均,衡量任务级对错;token-F1 把预测与参考答案小写、去多余空白后切成词集合,计算 $2pr/(p+r)$ 再对问题平均,衡量与判官无关的词面重叠。两者可能不同向:答案范围过大时 Acc 掉但 F1 可能升。
论文所有表格都同时报告这两个指标并明确指出其不单调性,读懂两者区别才能正确解读主结果表与消融表。
研究动机
现有通用 LLM 记忆系统(Mem0、A-MEM、HippoRAG 等)主要针对单人或双人历史设计,依赖「切分—压缩—索引—按相关性检索」流水线。但群聊里参与者讨论不同话题分支、立场各异、互相提及并不断修订先前状态,无法摊平成按序压缩的消息流。三个多方基准实测显示严重退化:DeepSeek-V4-Flash 配置下,Mem0 在 GroupMemBench(745 题)仅 21.6%、SocialMemBench(1,031 题)仅 13.7%,A-MEM 为 27.1% 与 56.8%,甚至不如 BM25(GM 44.6%)。问题归结为两个耦合瓶颈:其一是消息归属——摘要与通用记忆图谱丢失「谁说的、关于谁、属于个人还是群体」的 source/owner 区分,典型错误如把「Alice 认为 Bob 已同意」写成 Bob 的自述,或把少数派意见抬升为群体共识;其二是状态重建——证据分散在成员、群体与时间轴上,全局 top-k 检索无法保证低频成员或正确分支进入有限候选集,覆盖式更新又抹掉历史版本,使「最终决定」「观点如何变化」这类问题无法回答。
本文的目标是目标是构建面向长期多方群聊的可追溯记忆系统,使证据在参与者、归属、范围、事件与时间上相互兼容,而不仅是与问题文本相关。具体有三:(1)双轨记忆结构——System 1 逐字保存每条带说话人、时间、频道坐标的消息;System 2 把派生状态组织成 PERSON 级(Core/Profile)与 GROUP 级(Interaction/Insight)四层视图,每条记录携带 source、owner、scope、from_ids 溯源指针,以非破坏性更新链保留全部历史版本,支持 head/full 两种时间查询模式;(2)训练可本地部署的 Qwen2.5-3B Writer 执行 ADD/UPDATE/NOOP 写入决策,用 SpeakerLevenshtein 奖励与说话人条件化 GRPO 降低归属与更新错误,同时冻结检索与回答模块以隔离度量 Writer 贡献;(3)在 GroupMemBench、SocialMemBench、EverMemBench 上与 BM25、稠密检索、Mem0、A-MEM、HippoRAG、全上下文系统对比,以 LoCoMo(1,986 题)作双人边界测试,并用消融实验验证双轨与两级视图的互补性。
与已有工作不同的是,与既有工作的关键差异在切入角度:检索增强(BM25、DPR、RAG/RETRO)只优化查询-证据相关性,不约束成员覆盖、归属与事件一致性;记忆图谱(HippoRAG、GraphRAG、Zep、Mnemis)通过实体边改善关联,但把「谁说的」与「关于谁」合并进同质节点;Mem0、A-MEM 等框架的写入过程没有任何 owner 级监督。新兴的可学习记忆管理(Memory-R1、Mem-α、DeltaMem、Memory-R2)用 RL 学记忆动作或状态差分奖励,但都不是面向群聊的 owner 级书写监督。本文的独特之处有三:一是「逐字+结构化」双轨设计,结构层永远可以通过 from_ids 回溯到逐字原文,避免压缩不可逆地丢证据,检索时两轨独立预算、空行显式保留;二是把记忆评估分解到 owner 桶内做坐标一致的一对一匹配,宏平均加最差 owner 双项势函数使低频成员与 GROUP 不被高频说话人淹没;三是只训练 Writer、冻结查询与回答,用终端增益 $R^{QA}=QA(\text{S1+S2})-QA(\text{S1})$ 在同一逐字证据上作差,精确隔离派生轨道的净贡献。
核心方法
直觉上,群聊记忆要同时回答「原话是什么」与「现在的状态是什么」,单轨无法兼顾,故分写入—查询—回答三段。写入阶段:每条消息确定性追加进 System 1 逐字层(speaker、时间、频道、消息 ID),不经语言模型;Writer(大模型或本文训练的 Qwen2.5-3B)读取局部消息段 $X_t$、名册与四层派生头部,输出 ADD/UPDATE/NOOP 的 JSON 动作;确定性代码校验后,为 ADD 附加 from_ids 溯源,为 UPDATE 继承原坐标并用 links/superseded_by 连接新旧状态,旧节点不删,支持 head(取当前)与 full(展开全链)查询。查询阶段:Project 将问题编译为 $Q_q=(rows(q), issue(q), mode(q), scope(q))$——「每个人」展开全部名册行、「最终决定」选 GROUP 行、「Alice 对 Bob 的看法」固定 source=Alice、owner=Bob;System 1 路径召回 n=40 候选、Select 排序、Expand 至多扩两次邻接消息、必要时 ASK 补检一次,截断 top-k=10;System 2 路径按行在行内按 issue、事件、时间检索,每 owner k=2、source-k=1 补充;派生行空则回退该成员逐字消息,仍无证据则保留显式空行。两路证据经 Compose 沿人、关系与更新链组织后交给冻结回答器。
核心创新是「以说话人为中心的可追溯双轨记忆 + owner 级强化学习书写监督」。与通用系统把对话压成无主摘要或同质图谱不同,本文坚持三条结构不变量:(1)source/owner 分离——派生记录 $r=(x, src, own, scope, event, time, ref)$ 中 src 记录信息提供者、own 记录内容所涉者,如「Alice 认为 Bob 已同意」满足 src=Alice、own=Bob,从数据结构层面杜绝归属混淆;(2)PERSON/GROUP 范围控制——个人事实与习惯存 Core、跨人观察存 Profile,跨说话人事件与决定存 Interaction、群体规范与共识存 Insight,防止少数派意见被抬升为群体结论,也防止群体规范覆盖个人例外;(3)非破坏性时间版本——UPDATE 只追加新节点并链接旧节点,head 查询取当前状态、full 展开完整链,兼顾「现在如何」与「当时如何」。在此结构上 RL 只优化 Writer:SpeakerLevenshtein 在 owner 桶内做坐标一致的一对一软匹配提供稠密局部信号,终端 QA 增益作为延迟全局信号,两者按写入位置对齐做组相对优势估计;检索与回答全程冻结,使 RL 收益可被干净归因到 Writer。
方法步骤详情
方法分四步。第一步在线写入:消息段 $X_t$ 确定性写入 System 1 并更新名册;Writer 输入名册、$X_t$ 与四层派生头部,动作预算 $n_{g,t}\le\max(8,2|X_t|)$,输出 ADD/UPDATE/NOOP;系统校验后为 ADD 挂 from_ids 溯源,UPDATE 复用 entry_id 的坐标、追加新节点并链接旧状态。第二步局部奖励:SpeakerLevenshtein 计算软匹配 $\bar{\kappa}_{ij}=0.60\,F1_{tok}+0.40\,S_{seq}$,要求 owner/source/层坐标一致且得分不低于 0.50 才计匹配;在 owner 桶内做匈牙利一对一最大权匹配得 $F_p$,势函数 $\Phi_{SL}=0.80\cdot\frac{1}{|P|}\sum_p F_p+0.20\cdot\min_p F_p$ 以最差 owner 项防止高频说话人掩盖低频成员;更新链奖励新旧状态各占 0.50,$R^{mem}=0.80\Phi_{SL}+0.20R^{chain}$;$R^{valid}$ 按 JSON/schema/去重/停止加权 0.25/0.35/0.25/0.15,另有罚项 $P_{g,t}$。第三步全局信号:轨迹写完后在至多 4 个固定问题上算 $R^{QA}_g=QA(\text{S1+S2})-QA(\text{S1})$,同一 S1 证据作差剔除逐字层本就能答的功劳,以 $\gamma^{T-1-t}$($\gamma=0.95$)回填到每个动作。第四步更新:采 $G=8$ 条轨迹,仅在同一写位置做组相对优势 $\hat{A}_{g,t}=\mathrm{clip}((r_{g,t}-\mu_t)/\sigma_t,-3,3)$($\sigma_t<0.02$ 跳过),总回报 $r_{g,t}=0.20R^{valid}+0.45R^{mem}+P_{g,t}+0.35\gamma^{T-1-t}R^{QA}$,用 $\varepsilon=0.20$、$\beta=0.10$ 的 clip GRPO 更新 Qwen2.5-3B;训练数据 15 个网络、73 个书写段、452 个监督动作(430 ADD/20 UPDATE/2 NOOP),从 SFT 第 10 轮检查点跑 30 轮 rollout。
技术新颖性
新颖性有四点。第一,SpeakerLevenshtein 与 DeltaMem 的状态级匹配同源,但把匹配约束到 owner 桶并加坐标门控(owner、source、层一致且软分不低于 0.50 才计分),配合宏平均加最差 owner 的双项势函数,是首个面向群聊 owner 级误写的结构化奖励;名字虽含 Levenshtein,实际用 token-F1 与 SequenceMatcher 比率的加权组合而非标准编辑距离。第二,与 Memory-R2 的 LoGo-GRPO「从共享记忆状态局部重 rollout」不同,本文按写入位置对齐轨迹,只在相同 UPDATE 转移位置比较并做组内归一化,避免长度不同的轨迹共享归一化组,零方差组直接跳过。第三,终端奖励取 S1+S2 与 S1-only 在同一逐字证据下的 QA 差值,把「逐字层本就能答」的功劳从 Writer 剔除,使冻结检索/回答器下的因果归因成立,也解释了 RL 仅 30 步即见效。第四,系统层面把「模型决定写什么」与「代码填充坐标、溯源、版本链」严格分工,保证可验证性,也让 3B 小模型的训练目标足够窄而可学;与 R2-Mem 免 RL 反思搜索、G-Memory 多智能体经验分层形成清晰对照。
实验结果
主实验(Table 1,DeepSeek-V4-Flash 配置)中,SpeakerMem-R1 在 GroupMemBench/SocialMemBench/EverMemBench 分别取得 47.9%/69.2%/61.9%,比各基准最强主流基线(BM25 44.6%、A-MEM 56.8%、BM25 52.5%)高出 3.3/12.4/9.4 个百分点;SM 关闭 ASK 的 69.2% 几乎追平 69.4% 全上下文上界,MeanQ/MeanN 0.710/0.693(95% CI [0.659,0.726]);EverMem 开放题 40.0% 对 BM25 27.0%(+13.0)。官方榜单配置下答对 1,496/2,400(62.33%),超 EverOS 约 60.08% 与 RippleMem 54.75%,为公开已报道最好成绩;Single 93.43、Const 87.06、Update 80.22 强,Multi 24.10、Role 43.88、Skill 40.83 弱。控制实验(305 题、冻结查询/回答):SFT 57.38±0.33% → Writer-R1 68.20±0.66%(+10.82 个百分点),达 LLM Writer 71.48±0.66% 的 95.4%。LoCoMo 边界测试 70.85%(1,407/1,986),Multi-hop 41.13%、Open-domain 40.62% 偏弱。消融中去 S1 掉 26.62/14.75/23.57、去 S2 掉 14.40/5.89/12.98,PERSON/GROUP 各降 3.8–7.0,双轨与两级视图互补。成本上每题平均 9,713 tokens,低于 A-MEM 17,402 与 HippoRAG 17,352,约为 BM25 的 7.5 倍。值得注意的是,三个基准上的最佳配置不同(GM/EM 需开启 ASK 补充检索、SM 反而关闭更好),说明补充检索的收益依赖证据分布;准确率增益主要集中在时间、知识更新与说话人归属等结构敏感类别,而在纯词法检索已够用的弃答类问题上不占优,印证了「结构化归属而非更强检索」才是涨点的来源。
查看结构化数据
| 任务 | 指标 | 本文 | 基线 | 提升 |
|---|---|---|---|---|
| GroupMemBench 群组记忆问答(745 题) | 二元准确率 Acc.(token-F1) | 47.9%(26.5) | BM25 44.6%(25.0),为最强主流基线;A-MEM/HippoRAG 仅 27.1/27.0 | +3.3 个百分点;时间类 50.6 对 BM25 41.4,知识更新 33.6 对 23.4 |
| SocialMemBench 社交群组记忆问答(1,031 题) | 二元准确率 Acc. 与 MeanQ/MeanN | 69.2%(关闭 ASK);MeanQ/MeanN 0.710/0.693(95% CI [0.659,0.726]) | A-MEM 56.8% 为最强基线;全上下文上界 69.4% | +12.4 个百分点,并基本追平全上下文上界;说话人归属题 Q4 达 90.0 对 A-MEM 80.0 |
| EverMemBench 长期协作记忆问答(2,400 题) | 二元准确率 Acc. | 61.9%;开放题(EM-OE)40.0 | BM25 52.5% 为最强基线;开放题最强基线 BM25 27.0 | +9.4 个百分点;开放题 +13.0 个百分点 |
| EverMemBench 官方榜单(EverMind-AI,GPT-4.1-mini/Gemini-3-Flash 配置) | 问题加权总准确率(2,400 题) | 62.33%(1,496/2,400) | EverOS 约 60.08%、RippleMem 54.75% | +2.25 个百分点,公开已报道最好成绩;Update 80.22 仅次于 EverOS 84.70 |
| LoCoMo 双人长对话边界测试(1,986 题) | 二元准确率 Acc. | 70.85%(Non-AD 67.34) | LightRAG Non-AD 79.87、MemOS 75.80 | 边界测试:整体过 70 但低于 LightRAG/MemOS,Multi-hop 41.13、Open-domain 40.62 为短板 |
| Writer 控制实验(10 个 held-out SocialMem 网络,305 题) | 冻结查询/回答下的 Acc. | Writer-R1(Qwen2.5-3B,30 步 RL)68.20±0.66% | SFT 同模型 57.38±0.33%;LLM Writer(DeepSeek-V4-Flash)71.48±0.66% | RL 较 SFT +10.82 个百分点,达 LLM Writer 的 95.4% |
| 三基准 API 成本(4,176 题) | 平均 tokens/题 | 9,713(总 40.56M) | A-MEM 17,402、HippoRAG 17,352、Mem0 14,930;BM25 1,289 | 较学习型基线省约 44–50% 成本,但仍是纯检索的约 7.5 倍 |
局限与改进
作者承认的局限:系统假设名册可靠、source/owner 归属与时间可识别,别名、成员变动、隐式听众与并行事件仍是难点;构建与检索成本需降低;跨证据推理、开放域问答与跨领域/跨语言泛化开放,LoCoMo 上 Multi-hop 41.13% 与 Open-domain 40.62% 即为体现。笔者的补充观察:其一,SocialMem Q3(逐人立场汇总)仅 4.5–9.1%,即便有名册展开的行级检索,派生层对沉默或低频成员仍经常缺记录,连全上下文也只有 18.2%;其二,EverMem 的 Multi 24.10 与 Role 43.88 暴露跨证据组合与角色归属瓶颈;其三,换用 GPT-5.6-luna 时 GroupMem 降至 42.7%,反而低于 BM25 的 46.2%,跨模型稳健性存疑;其四,二元准确率与 token-F1 不同向(SM 全系统 64.9%/32.7 对无 ASK 的 69.2%/27.4),ASK 补充检索可能引入冗余;其五,RL 训练集仅 15 个网络(5 个为手工构造),教师轨迹由 DeepSeek-V4-Flash 生成、属代理监督而非人工金标,泛化证据有限;此外主结果依赖 GPT-4o-mini 判官,判官偏差未做交叉验证。
独立分析的弱点
独立分析的弱点与改进方向:(1)低频成员覆盖失败——Q3 立场题 4.5–9.1% 说明即便名册展开,派生层也可能从未为沉默成员生成记录;可改为「覆盖保证写入」:每会话强制为每位在场成员产出至少一条记录或显式空标记,并在奖励中加入逐成员覆盖项。(2)跨证据组合弱——EverMem Multi 24.10、Skill 40.83 表明按行取回的碎片证据仍要靠回答器自行拼装;可在 Compose 阶段加入沿事件链的中间推理摘要或显式多跳证据路径。(3)检索预算静态——S1 top-k=10、S2 k=2 为手工选定,敏感性实验显示最优组合实为 (20,4);可训练按问题类型动态分配两轨预算的轻量控制器。(4)RL 泛化与数据规模——训练仅 15 个网络、以 LLM 教师轨迹为代理监督;应扩充真实网络、引入人工核验的动作标注并增加跨基准迁移评测。(5)成本与延迟——GM 上 4,815 次 Window25 Writer 调用折合每题约 2.7 万 tokens;可通过动作蒸馏、更大批次窗口或派生头部增量缓存降低。(6)GROUP/PERSON 边界混淆——群体决定误写个人层或个人例外被群体规范覆盖时缺乏校验;可在校验器中加入跨层一致性检查与少数派保留标记。
未来方向
作者提出的方向:降低记忆构建与检索成本;增强跨证据推理,把分散在成员、事件、时间上的线索连接成可验证的推理链;改进开放域问答(LoCoMo Open-domain 40.62% 表明需要接入外部知识);以及跨领域、跨语言泛化。基于本文成果可自然延伸的研究:把别名消解与成员进出建模为一等公民,对名册做动态版本化,处理「半途加入/退出」群聊与隐式听众;将 SpeakerLevenshtein 推广为带不确定性加权的软评估,利用记录中已存在但未深挖的 confidence 字段驱动检索加权与证据排序;把 ASK 单次补充检索升级为多轮、可学习的检索策略并与 Writer 联合训练(CoMAM 式多智能体联合优化是现成参照);在双人场景引入心智理论类任务(Q5 跨人信念 78–80% 显示结构潜力);把非破坏更新链与 full 模式时间旅行查询暴露给用户界面,支持「当时为什么改主意」的可解释审计;以及探索 Writer 与回答器联合 RL,突破当前冻结管线的上限。
复现评估
复现条件较好。代码与项目页开源(GitHub: 2022hpsk/SpeakerMemR1),四个基准全部公开(745/1,031/2,400/1,986 题),附录给出五层 schema、记录字段、写入与查询算法、复现清单(Table 8)及全部模块提示词原文(Appendix I),可直接照抄。Writer 用 Qwen2.5-3B 可本地部署,RL 超参完整(G=8、30 轮 rollout、每轮 2 个 PPO epoch、学习率 1e-6、温度 0.8、top-p 0.95、clip 0.20、KL 系数 0.10),训练数据仅 15 个网络/73 个书写段/89 个 QA,单卡量级算力即可承担。主要门槛是流水线其余部分依赖 API 模型:DeepSeek-V4-Flash 或 GPT-5.6-luna 负责构建/检索/回答,GPT-4o-mini 作判官,榜单配置用 GPT-4.1-mini+Gemini-3-Flash,完整复现三基准约需 4,056 万 tokens 的 API 开销;教师轨迹与判官均为模型生成,严格对齐数字需使用相同模型版本。总体属于「中等偏低难度、有 API 成本」的复现。
论文图表
三栏动机图。(A) 展示一个三会话家庭群聊:妈妈膝盖疼、Cara 提出走简单路线、Ben 坚持山脊路线、最终爸爸拍板全员走简单路线且 Cara 留下陪妈妈;(B) 显示扁平记忆、话题记忆、图谱记忆分别丢失「事实·话题·成员」、混淆「成员·范围」、丢失来源;(C) 指出两大挑战(归属与关系理解、跨交错历史的状态重建)与 SpeakerMem-R1 的答案——按人和群组织视图,用 Anchor·Separate·Resolve·Compose 查询。
用最小例子讲清了群聊为何不是扁平消息流,以及三类通用记忆系统的具体丢信息方式,是理解全文问题定义的钥匙。
与 Figure 5 同一数据的网格视图:每个格子同时给出 Acc(左上三角)与 token-F1(右下三角),最优格 (S1 top-k=20, S2 k=4) 同时取得 73.11% Acc 与 26.53% token-F1;还可看到 S1=5 时增大 S2 有益、S1=20 时同样操作反而有害的双轨交互模式。
以精确数值呈现预算组合的完整图景,直观展示 Acc 与 token-F1 并不同向变化,支撑「两轨独立控制预算」的设计结论。