Paper

MemORAI 速读:图谱记忆 + 动态加权 PageRank,F1 从 16 拉到 56

6 min read ·

💡 一句话总结:MemORAI 是把 LLM 长期记忆从『一堆向量』升级到『可追溯 + 查询自适应的知识图谱』的关键工程。在 LOCOMO 多跳场景下,F1 提升 3-4 倍。

论文基本信息

问题背景:长期记忆为什么仍然是开放问题

LLM 的 context window 在 2026 年已经卷到 1M-10M 级别,看似不再需要外部记忆。但实际生产中三个原因让长期记忆仍然是关键工程问题:

  1. 成本:1M context 推理一次的 token 费用是 10K context 的 100 倍,长期对话每次都喂完整历史不可持续
  2. 延迟:1M context 首 token 延迟 5-10 秒,对话场景体验崩盘
  3. 遗忘性:context window 再大也是『单次 prompt』范畴,跨 session 的事实仍需外部存储

所以 ChatGPT / Claude / Gemini 都在自家产品里加了 memory 模块。学术界的代表作是 Mem0(2025)。Mem0 给出『把对话切段 → 向量化 → 检索』的基础架构,但有三个明显问题:

MemORAI 就是针对这三点开刀。

核心贡献 1:选择性记忆过滤

不是所有对话内容都值得记忆。MemORAI 引入一个 Memory Gate

同时做『双层压缩』:

这层过滤让最终图谱密度更高,检索质量更高。

核心贡献 2:溯源增强多关系图谱

把过滤后的 fact 组织成异构图,三类节点:

三类边:

这套设计的关键是 provenance 在 turn-level,每条 fact 都能追溯到具体哪一次对话被提及。后续 agent 回答『你上次说的那个会议在哪天』之类的时序问题时,溯源是必须的。

核心贡献 3:Dynamic Weighted PageRank

最技术含量的一部分。把 PageRank 的边权改成『查询自适应』:

边权重定义

对于每个 query q,三类边的权重:

w(u→v) = {
    sim(q, e.desc),           if 边类型是 entity-turn
    sim(q, r.desc),           if 边类型是 entity-relation
    (1/|τ|)·Σ sim(q, e.desc), if 边类型是 turn-snippet
}

sim 是 query 跟描述的 cosine similarity,τ 是该轮所含实体集合。

迭代公式

PR_{t+1}(v) = (1-d)·seed(v) + d·S(v)
S(v) = Σ_{u→v} [w(u→v) / Σ w(u→*)] · PR_t(u)

d 是 damping factor(一般 0.85),seed(v) 是种子节点(多 faceted retrieval 找出来的 top-k 起点)。

直白说:跟 query 越相关的边,传播的 PageRank 质量越多;不相关的节点拿不到质量,自然不被检索。

跟传统 PageRank 的差距

传统 PageRank 一次计算,所有 query 共享一套 rank。MemORAI 是每个 query 跑一次 PageRank。这增加了计算成本(论文报告每次 query 需要 5-50ms 额外开销,看图谱大小),但精度提升明显。

实验结果:LOCOMO 多跳 + 时序 SOTA

论文在 LOCOMO 和 LongMemEval 两个基准上测试。关键数据来自 LOCOMO-10:

指标BaselineMem0Mem0gMemORAI
Turn-level Recall@1051.77%56.4%60.2%64.68%
GPT-4o-as-judge Score45.62%51.3%55.7%60.22%
F1 Score16.6628.541.256.71

F1 从 16.66 跨到 56.71 的提升非常大,但 baseline 本身在 LOCOMO-10 这种『超长对话 + 多跳 + 时序』硬骨头上几乎全军覆没(10% 召回率都难)。所以提升幅度有夸张成分,但相对 Mem0 / Mem0g 的 15-20 pp 提升是真实的。

按问题类型拆解:

多跳 + 时序的大幅提升说明图谱 + 溯源 + 自适应检索这套组合在硬问题上确实带来质变。

工程化部署考量

MemORAI 在工程上有几个考虑点:

组件依赖

需要三层栈:

  1. LLM:做 Memory Gate 判断 + 生成 entity/relation 描述(论文用 gpt-oss-20B)
  2. 向量库:做 multi-faceted retrieval(论文用 Contriever embedding)
  3. 图数据库:存异构图(Neo4j / NebulaGraph / KuzuDB)

计算成本估算

每次 query 的成本:

对实时对话场景可接受,但相比 Mem0 的纯向量检索(~20ms)贵 5-10 倍。

图谱大小膨胀

每轮对话平均产生 2-5 个 fact node + 1 个 turn node。100K 轮对话 ≈ 500K 节点,1-2M 边。Neo4j / KuzuDB 这种 native 图库可以扛,但需要定期 prune 长期不被访问的节点。

跟其他记忆方案的横向对比

5 月份附近记忆方向的几篇代表作:

方案核心思路优势劣势
Mem0 (2504.19413)切段 + 向量检索简单、快多跳差
Mem0g (2504.19413)+ entity 三元组图多跳 OK没溯源
MemRouter (2605.00356)记忆作为 embedding routing模型亲和好解释性差
MemORAI (2605.01386)三件套全栈多跳 + 时序 SOTA工程复杂
Memoria (2512.12686)个性化框架(更早)多端协同评测体系不完整

选型建议:

论文不足

诚实点评,MemORAI 也有几个待解:

  1. 没开源代码:截至 5 月底 GitHub 仍未公开,复现困难
  2. 基准数据少:只测了 LOCOMO 和 LongMemEval,缺更多多样化测试
  3. Memory Gate 阈值未公开:什么样的 fact 算用户相关?这个分类器的 false negative rate 没披露
  4. 图谱长期维护机制缺失:3 年对话产生的图谱怎么 prune / 归档没讲

总结

MemORAI 把 LLM 长期记忆推到了『图谱 + 溯源 + 自适应检索』这一层。三个核心创新(选择性过滤、provenance 增强图、Dynamic Weighted PageRank)单独看都不新,但组合到一起在 LOCOMO 多跳 + 时序场景下做出了 3-4 倍的精度提升。

2026 年下半年值得期待的几个方向:

  1. 代码开源 + 社区集成:LangGraph / Mem0 / LlamaIndex 是否会吸纳类似机制
  2. RL 维护图谱:让 agent 学会自动决定『什么该忘』
  3. 图谱压缩 + 隐私敏感:长对话的图谱合规化处理

如果你在做长期对话 agent,强烈建议把 MemORAI 的三件套作为下一代记忆系统的设计参考。

Sources:

Frequently asked questions

MemORAI 跟 Mem0 / Mem0g 的本质差异是什么?
Mem0 是『单层向量记忆』,Mem0g 是『加图谱关系』,MemORAI 是『图谱 + 溯源 + 自适应检索』。具体三层差异:(1) Mem0 把对话切段后纯靠 embedding 检索,相关性判断只看语义相似度;Mem0g 在此基础上加实体-关系-实体的三元组图谱;MemORAI 在图谱里继续加 turn-level provenance(每个事实标记『来自第几轮』),让多跳追溯有迹可循。(2) Mem0 检索是『查询 vs 段』相似度,Mem0g 加图传播,MemORAI 把图传播改成查询自适应(边权随 query 调整),相当于每个 query 走出来的图是不一样的。(3) Mem0 / Mem0g 假设所有 fact 等权重,MemORAI 用选择性记忆门(gate)过滤掉无关 fact,记忆密度更高。
Dynamic Weighted PageRank 公式具体怎么工作?
核心是把传统 PageRank 的 uniform 边权改成『查询条件下的语义相似度边权』。三类边的权重:实体-轮次边 = `sim(query, entity_description)`、关系边 = `sim(query, relation_description)`、轮次-片段边 = 该轮所有实体相似度均值。迭代用标准 PageRank `PR_{t+1}(v) = (1-d)·seed(v) + d·S(v)`,但权重 S(v) 跟着 query 走。这套机制让 query 主导信息流方向:不相关节点拿不到 PageRank 质量自然不被检索。代价是每个 query 都要重新跑一次 PageRank,比传统贵 5-50ms。
F1 从 16.66 拉到 56.71 是什么概念?真实场景有多少提升?
这个跨度有点夸张,原因是 LOCOMO-10 是『超长对话 + 多跳记忆查询』的硬骨头,baseline 在该 benchmark 上几乎全军覆没(10% 召回率都很难拿到)。具体看几个数:(a) 单跳问题(『我最喜欢什么口味的咖啡』)提升相对小,从 baseline 65% 到 MemORAI 81%;(b) 多跳问题(『我们上次见面那家咖啡店的对面是什么餐厅』)提升大,baseline 20%,MemORAI 55%+;(c) 时序问题(『去年这个时候我提到的项目进展如何』)从 12% 到 48%。结论:单跳场景提升有限,但多跳 + 时序场景提升 3-4 倍,对真实长期记忆 agent 是质变。
MemORAI 用了哪些 LLM 测试?工程上怎么部署?
论文测了三个 backbone:Qwen3-8B(32K context)、openai/gpt-oss-20B(128K)、Qwen3-30B-A3B(256K)。主实验用 gpt-oss-20B 做生成 + Contriever 做 embedding。工程三层组件:Memory Filter(LLM gate 判断是否记忆)、Graph Constructor(实时加 fact 到图谱)、Retrieval Engine(multi-faceted 找种子 + dynamic weighted PageRank 排名)。截至 5 月底 GitHub repo 尚未公开。生产部署预计 1-2 个月工程化时间(向量库 + 图数据库 + LLM gate 调度三件套都要搭好)。
图谱记忆方向 2026 年还有哪些值得关注的工作?
目前 4 篇核心:Mem0(2504.19413)开山之作;MemRouter(2605.00356)把记忆做成 embedding routing;MemORAI(2605.01386)图谱 + 溯源 + 自适应检索;Memoria(2512.12686)个性化对话框架。趋势是从单层向量 → 多层图谱 → 自适应检索 → 全栈记忆 OS。Mem0 / MemORAI 都已被 LangChain / LangGraph 集成。下半年值得追三个方向:RL 自动维护图谱让 agent 自己决定什么该忘、跨 session 记忆迁移、隐私敏感的图谱压缩。
// next.txt ›

Some outbound links in this post are affiliate links — see disclosure.