📌 系列导航:🔥 日报 · 📚 周报 · 📡 技术雷达 · 📄 论文精读 · 📮 情报站

论文信息

项目内容
日期2026-11-09
论文MedGraph: Maintaining Patient State with Graph Memory for Long-Term Medical Dialogue
作者Donghua Zhang, Zizheng Wang, Ze Dong, Yiding Feng, Siyu Qian
机构Harvard University / University of Michigan / Georgetown University / Johns Hopkins University
链接arXiv:2611.08433
代码未公开

一句话总结

先解剖五个记忆系统在长期医疗对话中的150个错误答案,归纳出三大失败根因(状态过时、张冠李戴、安全事实丢失),再针对性设计三层图记忆MedGraph,在MedMemoryBench上以GPT和Qwen两种骨干模型双双拿下最高准确率,领先最强基线约10.5个百分点。

解决什么问题

LLM医疗助手需要跨多次就诊持续跟踪病人:当前用药、过敏史、检查指标都会随时间变化。现有通用记忆系统(RAG、Mem0、MemOS、LightMem、REMem)在这类场景中错误频发。作者对五个系统的150个错误答案做了细致归因,发现三类反复出现的根因:

  1. 状态有效性:同一临床项目(如某药物剂量)随时间变化,Mem0会用新记录覆盖旧记录导致历史问题答不出;MemOS保留了记录却没标记哪条是当前状态。150个错误中24个属于此类。
  2. 主体归属:对话里常混入家属的健康信息(如病人谈论父亲的用药),108个错误的证据里混入了别人的健康事实。
  3. 安全优先:早期记录的过敏史可能约束后续处方,18个错误的证据缺失了答案依赖的安全事实。

核心方法

MedGraph是三层记忆架构:

  • L1 原始对话层:保留全部原始对话作为源证据。
  • L2 临床事实图:每个会话一次LLM抽取调用,产出带类型(用药/诊断/检验/生命体征/安全)、主体、实体、事件日期的事实节点。关键设计有三:
    • 事实链:同一(实体, 主体, 类型)三元组的事实按插入顺序串成链,新旧记录间加supersedes边,旧状态不删除、保留有效期区间,历史问题与当前问题都能答;
    • 主体归属:每条事实显式挂到它描述的人身上(父亲说的药挂父亲节点),检索时先按病人过滤;
    • 重复提及判定:状态一致且数字未变时只更新提及计数,不新建节点。
  • L3 病人档案:检索时从L2渲染,无条件伴随每个问题注入,包含全部过敏/禁忌/相互作用等安全事实(永不删改),加上诊断与用药链尾及关键偏好。
  • 检索:BM25+稠密向量双路召回病人自己的链(链为检索单元),RRF融合取top-8;每条链提供"命中事实+问题时刻适用记录+被取代记录"三元组;问题含明确年份时触发日期通道;附原文片段,reader单次LLM调用作答。

形式化:Mt=𝒰(Mt-1}, st),Et,q=ℛ(Mt, q),答案由固定reader生成,控制变量只看记忆构建与检索的增益。

实验结果

  • 基准:MedMemoryBench,967个问题,每段历史约100个病人会话+200个干扰会话,六种题型(EEM/MQ/TLA/SUA/IG/MCD)。
  • 主结果:GPT骨干(gpt-6-luna构建+gpt-5.1回答)和Qwen骨干(Qwen3-30B-A3B全包)下MedGraph总体准确率均第一,分别领先最强基线10.5和10.4个百分点,增益最大的是时间定位(TLA)和推理生成(IG)题型。
  • 抗历史增长:历史不断变长的十个检查点上MedGraph全程领先;重放早期问题后,Embedding RAG/Mem0/MemOS显著掉分,MedGraph降幅不显著。
  • 三大挑战逐项验证:204个状态变化问题上准确率最高;11,039条他人会话事实中仅9条归属错误,证据几乎不混入他人事实;89个安全依赖问题上基线常缺安全事实,MedGraph几乎总能供上。
  • 消融:仅用BM25对抽取事实排序(无链检索/档案/原文窗口)就能拿到相对raw text增益的一半以上,说明事实构建贡献过半;检索侧增益集中在TLA和IG。
  • 成本:每会话一次抽取调用,构建输入token约为Mem0/REMem的一半,回答仅一检一答,是准确率-成本Pareto前沿上唯一的LLM构建记忆。

深层洞察

这篇论文的方法论值得反复品味:先做错误解剖,再做系统设计。三大失败根因不是拍脑袋想的,而是从150个错误答案的证据审查中统计出来的,每一个设计点(链式有效期、主体过滤、无条件安全档案)都精确对应一类根因,最后再用消融逐一验证。这种"归因驱动设计"的科研路径比堆模块的工作扎实得多。

另一个深层启示是:结构化事实本身就是最好的检索单元。一条"某人某天某药某状态"的短事实自带主体和日期,连BM25这种朴素排序都能直接命中,根本不需要花哨的检索算法。增益的一半以上来自"存对了",而不是"找得巧"。这与GraphRAG等用复杂图遍历换增益的路线形成鲜明对比。

局限性

  • 只在一个中文基准(MedMemoryBench)上评估,跨语言、跨临床场景未验证。
  • 事实抽取依赖LLM,抽取器质量决定记忆上限。
  • 因果边只在会话内连接,跨会话多跳推理是未来工作。
  • 链按记录顺序而非事件顺序排列,晚报告的早期事件或计划性变更会成为链尾,可能误导当前状态判断。
  • 安全事实永不删除:后来被排除的过敏、已停药的警告会一直留在档案里。
  • 四种题型由LLM裁判评分,存在裁判偏差风险。

工程实践启示

  1. 带时间戳的事实链 + supersedes边是处理"随时间变化的状态"的通用模式,任何需要历史回溯的Agent记忆(订单状态、工单、配置变更)都可以借鉴,比覆盖式更新健壮得多。
  2. 主体归属必须显式存储。多用户/多实体混叙的场景(家庭群聊、客服代述),检索前先按主体过滤能消掉一大类张冠李戴错误。
  3. 安全关键信息应"无条件注入"而非依赖相关性检索——过敏史、权限边界、红线规则不谈相关性,每次都带上,代价小收益大。
  4. 别急着上复杂检索:先把记忆存成"一条事实一句话+日期+主体+状态"的规范形态,朴素BM25就能吃到大半增益。