Multimodal Memory Survey · essay

19. Multimodal Memory Survey:多模态记忆论文簇怎么入门

资源:Awesome Multimodal Memory
本地资源清单:

![[papers/19-Awesome-Multimodal-Memory-README.md]]

论文定位与阅读路径

阅读边界

这不是一篇单独论文,而是一个多模态记忆研究清单。它收录的是音频、视频、图像、机器人、3D、VLM、具身智能等方向里和 memory 相关的论文。

所以本篇不按“Abstract/Method/Experiment”拆,而是按研究方向拆。

核心定位

前面大多数 Agent Memory 论文主要是文本记忆。多模态记忆问的是:

如果 Agent 看到的是图片、视频、音频、3D 场景,记忆应该存什么、怎么检索、怎么跨模态使用?

原文结构导读(资源清单版)

这个 README 大体分三块:

部分内容你要理解什么
Multimodal Context Modeling with Memory音频/视频长上下文建模长视频、长音频不能全塞上下文
Multimodal Contextual Memory for Vision and Robotics视觉导航、机器人、操作规划具身 Agent 需要记环境
External Multimodal Knowledge/Memory Augmentation外部图像/音频/视频/3D知识增强多模态版 RAG/Memory

你现在不用读完 400 篇。先建立方向地图。

证据链阅读

资源类型应该看什么工程问题
长视频/长音频记忆论文是否有分段、压缩、时间戳和跨片段召回解决长上下文放不下的问题
视觉/机器人记忆论文是否存物体、空间、动作结果和失败原因解决 Agent 在环境里行动后的经验复用
多模态知识增强论文是否能把图像/视频/音频证据和文本查询对齐解决“找得到证据但答不准”的问题
数据集/benchmark问题是否需要跨时间、跨空间、跨模态推理判断方法是不是真在测 memory,而不是测 caption 能力
工程系统是否暴露 source pointer、timestamp、region、confidence决定回答能不能回到可检查证据

这份清单的正确用法不是收藏论文名,而是按任务反推:如果你要做课程视频记忆,先找长视频/长音频;如果你要做截图问答,先看视觉证据定位;如果你要做机器人/桌面操作 Agent,再看空间和动作记忆。

研究背景与问题定义

为什么多模态记忆更难

文本记忆通常是:

代码块TEXT · 1 行收起展开
一句话/一段文字 -> embedding -> 检索

多模态记忆可能是:

代码块TEXT · 1 行收起展开
视频片段 + 语音 + 物体轨迹 + 场景地图 + 时间戳 + 用户问题

难点多很多:

难点解释
数据量大一小时视频远大于一篇文本
时间连续视频/音频有时间轴
空间关系图像和 3D 场景有位置关系
跨模态对齐文字、声音、画面要对齐
检索复杂问题可能是“刚才左边那个人做了什么”
记忆压缩不可能保存所有帧

方法框架与核心机制

第一类:长视频/长音频上下文记忆

这类方向要解决:

模型看不完整个长视频/长音频,必须把过去内容压缩成记忆。

典型任务:

任务例子
长视频理解一部电影里某角色前后行为
视频问答问“第 30 分钟出现的物体后来去了哪”
视频摘要把长视频压成段落摘要
音频识别长会议语音中的主题和人物

一个常见流程:

多模态记忆:流输入到跨模态检索 音视频流 切片 帧/语音/事件 片段记忆 长期库 用户问题 跨模态检索 回答/总结

第二类:视觉和机器人记忆

机器人 Agent 不只是聊天,它要在世界里行动。

它需要记:

  1. 哪些地方去过。
  2. 物体在哪里。
  3. 哪个动作成功/失败。
  4. 当前目标和过去观察的关系。

这类记忆更接近:

代码块TEXT · 1 行收起展开
空间地图 + 物体状态 + 动作经验 + 任务历史

比如家务机器人:

代码块TEXT · 3 行收起展开
杯子在厨房第二层柜子。
上次抓这个杯子失败,因为角度太偏。
用户喜欢把咖啡杯放回右侧架子。

这已经不是普通文本 RAG 能完整表达的。

第三类:外部多模态知识增强

这是多模态版 RAG:

文本 RAG多模态 RAG
查文档查图片、视频、音频、3D
文本 embedding图文/音文/视频 embedding
chunkframe、clip、region、tracklet
引用段落引用画面/时间戳/区域

问题例子:

代码块TEXT · 3 行收起展开
这张图里和用户之前提到的设备是不是同一个?
这段视频中红色车第一次出现在哪里?
这个 3D 场景里可以抓取的物体有哪些?

多模态记忆该存什么

记忆对象示例字段
图像记忆image_id、caption、objects、regions、embedding
视频记忆video_id、start_time、end_time、events、keyframes
音频记忆speaker、transcript、emotion、timestamp
机器人记忆map、object_pose、action_result、failure_reason
跨模态记忆text_summary、visual_evidence、source_pointer

如果你以后做学习 Agent,最可能先用到:

代码块TEXT · 1 行收起展开
截图记忆 + 课程视频片段记忆 + PDF 图表记忆

概念校准

文本记忆像课堂笔记。
多模态记忆像你不仅记笔记,还保存:

  1. 老师板书照片。
  2. 讲课录音。
  3. PPT 截图。
  4. 实验操作视频。
  5. 当时你做错的步骤。

当你复习时,不是只搜文字,而是能回到对应画面和声音。

工程映射与实践启发

和 Agent 工程的关系

一个多模态 Personal Knowledge Agent 可以这样设计:

flowchart TD
    A[Obsidian 文本] --> D[统一记忆索引]
    B[截图/图片] --> E[视觉描述与对象提取]
    C[课程视频] --> F[转录 + 关键帧 + 时间戳]
    E --> D
    F --> D
    G[用户问题] --> H[文本+视觉混合检索]
    D --> H
    H --> I[回答并指向证据]

最小实践路线

不要一开始就做机器人/视频 Agent。可以这样逐步来:

  1. 文本笔记 RAG。
  2. PDF 图表 OCR + 文本解释。
  3. 截图自动 caption + embedding。
  4. 视频转 transcript + keyframe。
  5. 问答时返回文本证据 + 图片/时间戳证据。

局限、对比与阅读检查

局限与边界

  1. 多模态 embedding 质量参差不齐。
  2. 视频/图片存储和检索成本高。
  3. 跨模态证据很难解释清楚。
  4. 隐私风险比文本更高。
  5. 工程复杂度远超文本 Agent。

阅读检查清单

  1. 第 19 个资源不是单篇论文,而是论文清单。
  2. 多模态记忆主要分长上下文、机器人/视觉、外部知识增强三类。
  3. 多模态记忆要处理时间、空间、跨模态对齐。
  4. 文本 Agent 做熟后,再扩展图片、PDF、视频会更稳。
  5. 对你当前阶段,先关注截图/PDF/课程视频记忆最实用。

深度精读:多模态记忆不是“把图片也 embedding 一下”这么简单

1. 多模态记忆的三重难点

文本记忆主要难在语义和上下文。多模态还多了:

难点说明
时间视频/音频是连续流
空间图像/3D 有位置关系
对齐文字、声音、画面要对到同一事件

比如用户问:

代码块TEXT · 1 行收起展开
刚才视频里老师讲到那个公式时,PPT 左下角的图是什么意思?

这需要同时记住时间点、语音转录、PPT 图像和图中区域。

2. 长视频记忆的基本结构

长视频不能逐帧进模型,所以要分层:

代码块TEXT · 1 行收起展开
frame -> clip -> event -> segment summary -> global memory

每层解决不同粒度:

存什么
frame关键画面
clip几秒到几十秒事件
event人/物/动作
segment summary一段视频讲了什么
global memory整体主题和结构

这和文本的 chunk/summary 很像,但多了视觉证据。

3. 机器人记忆为什么更复杂

机器人需要行动,所以它要记的不只是“看见了什么”,还要记:

  1. 物体在哪里。
  2. 自己在哪里。
  3. 做过什么动作。
  4. 动作是否成功。
  5. 环境是否变化。

这类记忆接近:

代码块TEXT · 1 行收起展开
地图 + 物体状态 + 动作历史 + 失败经验

普通文本 RAG 无法自然表示空间关系。

4. 多模态 RAG 的证据链

文本 RAG 的证据通常是一段话。多模态 RAG 的证据可能是:

代码块TEXT · 1 行收起展开
视频 id + 时间戳 + 关键帧 + 框选区域 + 转录文本

所以数据结构要更丰富:

代码块JSON · 9 行收起展开
{
  "modality": "video",
  "source": "lecture01.mp4",
  "time_range": "00:13:20-00:13:45",
  "transcript": "...",
  "keyframes": ["frame_001.jpg"],
  "objects": ["formula", "chart"],
  "summary": "老师解释了置信区间公式"
}

5. 对你的实际路线

不要一开始做机器人。你最现实的多模态路径是:

  1. PDF 图表 OCR。
  2. 截图自动描述。
  3. 课程视频转录。
  4. 关键帧提取。
  5. 文本笔记和图片证据一起检索。

这能直接服务学习。

6. 隐私风险更高

图片和视频可能包含:

  1. 人脸。
  2. 学号/姓名。
  3. 桌面文件。
  4. 私聊内容。
  5. 地理位置。

所以多模态记忆默认要更谨慎。不是所有截图都应该进长期记忆。

7. 检索策略

多模态检索通常要混合:

代码块TEXT · 5 行收起展开
text query -> text embedding
image/frame -> vision embedding
speech -> transcript embedding
object tags -> keyword filter
time range -> temporal filter

最后 rerank。不要只靠一个 embedding。

8. 这份 awesome list 怎么用

不要从头读。按需求找:

你要做什么看哪类
课程视频问答long video understanding / VideoQA
PDF 图表理解image/document memory
截图知识库external image memory
机器人以后再说visual navigation / manipulation

这才是资源清单的正确打开方式。

精读补强:多模态记忆的证据链与工程判断

多模态记忆不能理解成“图片也做 embedding”。关键问题是不同模态的信息如何被切片、对齐、索引和回放。

判断点原文证据工程含义
模态切片视频帧、音频段、图片区域如何拆分切片粒度决定召回精度和存储成本
跨模态对齐文本、图像、时间戳如何关联没有对齐就无法解释检索结果
记忆表示caption、object、event、embedding单一向量不足以承载复杂证据
回放方式回答时引用哪种原始证据需要能回跳图片、帧、音频段或截图

对个人知识 Agent 来说,第一阶段不要追求全模态模型。更现实的路线是:图片/截图先生成文字描述和对象标签,视频先转 transcript + keyframe,再统一进入文本主索引。

落地检查:任何多模态记忆都必须回答三个问题:原始证据在哪里、文本描述是谁生成的、描述和原始证据如何互相校验。否则模型一旦把图片描述错了,后续检索会把错误当事实不断复用。

最小实现也要保留 raw_uricaption_modeltimestamp/frame_idverification_status,否则后续很难追责。

论文精读主线:问题-方法-验证-局限-启发

1. 核心结论

多模态记忆综述提醒我们:图片、视频、音频和机器人状态的记忆不只是把它们 embedding 一下,而是要处理时间、空间、跨模态对齐和隐私。

本篇的阅读重心是:多模态记忆必须处理时间、空间、跨模态对齐和隐私,而不是只做 embedding。读完后要能说清它改变的是 runtime、存储、检索、更新还是评测层;否则只是记住了论文名。

2. 问题背景

文本记忆只需要处理语言片段,多模态记忆还要处理帧序列、视觉实体、空间位置、动作轨迹和不同模态之间的证据对齐。长视频和机器人场景中,关键信息可能分散在时间和空间上。

把问题具体化为失败样例:系统回答“截图里哪里出错”却只召回文字摘要,无法定位原图区域、时间戳或证据帧。用这个样例反推论文动机,比泛泛说“上下文不够”或“记忆不准”更有判断力。

3. 核心方法

综述通常把方向分为长视频/长音频记忆、视觉与机器人记忆、外部多模态知识增强。核心流程是感知、片段化、实体/事件抽取、跨模态索引、检索和证据回放。

flowchart TD
    V[视频/图片/音频] --> P[感知与切片]
    P --> E[实体/事件/时间轴抽取]
    E --> I[跨模态索引]
    Q[查询] --> R[多模态检索]
    I --> R
    R --> G[证据回放 + 回答]

方法部分按数据流读:媒体先切片并抽取转录、实体、位置和时间,再建立跨模态索引,回答时返回可回放证据。每一步都要能标出输入、输出、控制点和失败后该记录的日志。

4. 技术细节

多模态 memory item 要有 modality、timestamp、bbox、transcript、embedding、sourceFile、privacyLevel。没有时间戳和定位信息,检索出来也难以验证。

代码块JAVA · 15 行收起展开
final class MultimodalMemoryStore {
    private final MediaSegmenter segmenter; // 把长视频/音频切成可索引片段并保留时间范围
    private final EntityEventExtractor extractor; // 抽取视觉实体、动作、场景和文字转录
    private final CrossModalIndexer indexer; // 建立文本、图像、音频向量和元数据索引
    private final EvidencePlayer evidencePlayer; // 返回原始片段位置,支持用户复核

    MemoryResult handle(MemoryInput input) {
        // 1. 把长视频/音频切成可索引片段并保留时间范围
        // 2. 抽取视觉实体、动作、场景和文字转录
        // 3. 建立文本、图像、音频向量和元数据索引
        // 4. 返回原始片段位置,支持用户复核
        // 输出中保留 traceId、sourceIds、decisionReason,方便复盘和回滚。
        return MemoryResult.withTrace(input.traceId());
    }
}

字段检查重点是 modalitysourcePathtimeRangebboxtranscriptprivacyLevel 决定可验证性。这些字段不是装饰,它们决定后续能否检索、审计、回滚、限权和做离线评测。

5. 实验验证

评测不能只看回答文字,还要看证据定位是否准确,例如时间戳、画面区域、对应字幕。多模态 QA、长视频检索、机器人任务回放都要区分检索错和生成错。

实验阅读重点:多模态评测要看证据定位,不只看回答文本;时间戳、bbox、原文件引用都要能复核。如果论文没有直接给出这层证据,复现时就要自己补机制级指标。

6. 局限与启发

成本和隐私都更高。启发是你当前 Obsidian Agent 可以先不做多模态核心,但要为图片/PDF/截图保留 source 和定位字段,未来扩展时不会重构。

迁移到你的项目时,结论是:现阶段先为 PDF、截图和图片保留来源定位字段;多模态检索可以晚做,但 schema 不能缺。先把边界做对,再追求更复杂的模型或更大的记忆规模。

7. 关键术语表

术语在论文里的意思工程落地时要看什么
Cross-modal retrieval跨模态检索文本查图像/视频,图像查文本
Temporal grounding时间定位返回视频/音频的具体时间段
Spatial grounding空间定位返回图像区域或对象位置
Multimodal evidence多模态证据原图、帧、字幕、OCR、音频片段

8. 复现难点

把图片 embedding 一下只是最低层。长视频需要切片策略,机器人记忆需要状态和动作,隐私材料需要本地处理和权限标记。证据不能回放就很难信任。

复现入口应从失败集开始:用带截图和 PDF 页码的问题测试:系统必须返回原始文件、页码/区域和文本解释。只有先证明旧方案会坏,才知道新机制是否真的解决了问题。

9. 代码框架建议

设计 MediaMemory(id,modality,source_path,start_time,end_time,bbox,transcript,embedding,privacy_level)。检索结果必须能跳回原始文件和时间/区域。

代码验收门槛:没有可回放证据的多模态回答只算猜测;不能进入高置信记忆。这条门槛应写进测试或 trace 字段里,避免实现只停留在 demo。

10. 相关论文对比

它和文本 RAG 的差别在证据形态。MemOS 的 governance 在多模态更重要;CoALA 可把视觉经历放 episodic memory,把稳定视觉知识放 semantic memory。

横向比较时抓这个角度:多模态记忆把 MemOS 的权限、MemLong 的切片、HippoRAG 的结构检索都推到更高要求。比较对象不是谁“更先进”,而是谁负责哪一层失败。

11. 批判性思考

多模态记忆很诱人,但不应成为第一阶段主线。没有清晰任务和证据定位,它只会增加成本。先把文本/PDF/笔记记忆做好,再扩展图片和视频。

批判边界:多模态成本高且隐私敏感;没有明确任务收益时,不应成为第一阶段主线。这不是否定论文,而是把论文结论放回真实系统的成本、权限和恢复约束里。