跳到主要内容
空间记忆与具身智能基础

第5章 世界模型的 M 层——从 Ha-Schmidhuber 到结构化空间记忆

把第 4 章建立的三层架构放进 World Model 的视角对照——Ha-Schmidhuber 经典 V/M/C 架构里 M 层的角色与边界、Genie 这一波生成式世界模型暴露的盲点、为什么 latent dynamics 无法替代结构化对象化的空间记忆

空间记忆 world-model 世界模型 M-layer latent-dynamics 对象化

1. 一个不得不先澄清的概念

最近一两年,「世界模型 (World Model)」这个词在学术圈和产业圈都被用得很泛——视频生成、机器人、自动驾驶、游戏开发、AR/VR、Agent 仿真、训练环境……只要和”世界”沾边的工作,几乎都会自称是世界模型。这种泛用让概念变得难用:当甲方说”我们要做世界模型”时,乙方很难判断他指的是哪种系统。

这一章不打算卷入”什么才算真正的世界模型”的定义之争。我们用一个更工程化的策略:先回到 Ha 与 Schmidhuber 在 2018 年提出的最早期、最简洁的 World Model 架构,把它的接口拆清楚;再以这套接口作为坐标系,回答”它和第 4 章建立的三层架构是什么关系”

这一章要做的事:

以 Ha-Schmidhuber 的 V/M/C 架构作为公共参照,把”世界模型的 M 层”和”空间记忆”的对应关系说清楚——指出哪些事情 latent dynamics 能做、哪些做不到,以及把空间记忆描述为”M 层的对象化、证据化、可查询化的工程扩展”。

2. Ha-Schmidhuber 的经典架构:V / M / C

2.1 三个组件 + 一个核心想法

Ha 与 Schmidhuber 2018 年的 World Models [73] 提出了一种极简的 RL 智能体架构:

  • V (Vision):用 VAE 把高维视觉输入压缩为低维 latent code ztz_t
  • M (Memory):用 RNN(具体是 MDN-RNN)根据当前 ztz_t、动作 ata_t 和 hidden state hth_t 预测下一时刻的 latent state zt+1z_{t+1}
  • C (Controller):在 ztz_thth_t 之上做策略选择 ata_t

放进一张时序图:

   o_t                            o_{t+1}
    │                                │
    ▼                                ▼
  ┌───┐                            ┌───┐
  │ V │                            │ V │
  └─┬─┘                            └─┬─┘
    │ z_t                            │ z_{t+1}
    ▼                                ▼
  ┌───┐  h_t            h_{t+1}    ┌───┐
  │ M │ ─────────────────────────► │ M │
  └─┬─┘                            └───┘


  ┌───┐  a_t
  │ C │ ──────► environment
  └───┘

这个架构最有启发性的地方有两个:

  1. 它把”看见”、“记住”、“做”显式地分给了三个组件 —— 不让任何一个组件兼职
  2. M 既负责对历史的压缩,也负责对未来的预测 —— 它用 hidden state hth_t 同时承担”我从过去到现在见过什么”和”接下来可能发生什么”两件事

2.2 M 层在 Ha-Schmidhuber 架构里的真正角色

很多人初读 World Model 这篇论文时,会把焦点放在 M 层的”做梦”能力——M 可以脱离环境,在自身想象中训练 C。这确实是论文最 fancy 的实验。但从工程视角看,M 层的核心价值不在”做梦”本身,而在它在感知和决策之间架起了一个内部状态层

具体说,M 层做了三件事:

M 层职责具体形态工程意义
压缩历史hidden state hth_t 是过去观测和动作的总结决策不再只依赖当前帧
预测未来$p(z_{t+1}z_t, a_t, h_t)$ 给出下一步分布
维护内部世界hth_t 在没有观测时也能演化部分可观察情况下提供状态续接

这三件事单独看都不复杂,但放在一起就是”世界模型”的核心语义:在感知和动作之间,存在一个被内部维护的世界状态。这正是第 4 章建立的 Memory 层在 Ha-Schmidhuber 框架里的早期抽象。

3. 从 V/M/C 看本模块第 4 章的架构

3.1 三层结构的对照

把 Ha-Schmidhuber 的 V/M/C 和本模块第 4 章的 Perception/Cognition/Memory 放一起:

层次Ha-Schmidhuber本模块第 4 章
1V (VAE 压缩为 ztz_t)Perception + Cognition(先识别再结构化)
2M (RNN 维护 hth_t,预测 zt+1z_{t+1})Memory(维护对象信念、容器状态、变化历史)
3C (策略)应用层(规划 / 决策 / 对话 / UI)

注意第 2 行——这是这一章的核心。M 层和 Memory 层在功能位置上是同一个槽位:它们都位于”看”和”做”之间,承担跨时间状态维护和预测的角色。

但这不等于它们是同一个东西。

3.2 M 层:隐式 latent dynamics

经典 V/M/C 架构里的 M 层是一个隐式 latent dynamics model

  • 状态:一个高维 hidden state vector hth_t,无法被人类直接读懂
  • 更新:通过 RNN 的 forward pass 完成,更新规则被编码在权重里
  • 接口:只能通过”再 forward 一步”来查询——你没有 last_seen(obj) 这样的显式接口
  • 不确定性:用 MDN(mixture density network)输出 zt+1z_{t+1} 的分布,但没有为不同对象、不同事件分别维护置信度
  • 证据:完全不存在——你无法回答”为什么相信这件事”

这套实现在 RL 任务里表现很好——尤其是在感知输入分布相对稳定、任务步长不太长的情境下。但放到第 1 章列出的四类查询(last-seen / containment / change / state-audit)面前,它会立刻露出短板:

  • last-seen:M 层不知道哪个对象上一次出现在哪个位置——它只知道 hth_t 是什么
  • containment:M 层没有”容器”的概念——只有 latent 里某些维度可能隐式编码了”这个东西看不见了”
  • change:M 层不会主动给你一份”昨天到今天的差分”——你必须从两个 hth_t 反推
  • state-audit:M 层无法被时间索引——你不能问”昨天 8 点的 hh 是什么”

3.3 Memory 层:结构化、对象化、证据化的状态

第 4 章建立的 Memory 层和 M 层的对照:

维度经典 M 层第 4 章 Memory 层
状态形态高维隐向量 hth_t结构化 ObjectRecord / RelationGraph
更新规则RNN forwardBayesian update / 容器推理 / 时间衰减
接口只能 forward + decodelast_seen / is_in / changes / state_at
不确定性zt+1z_{t+1} 的整体分布每个对象、每条关系独立PP
证据evidence_pointer 链回原始观测
时间索引隐式(在 hh 里)显式(每条记录带时间戳)
可解释黑箱白箱(每个查询都能回溯)
局部更新无(只能整段重训)单对象级(“这个对象状态改了”)

简单说:M 层是 Memory 层在权重里的早期抽象形态;本模块第 4 章的 Memory 层是 M 层在结构层面的工程化扩展。

这个对照的工程含义不是”M 层不行”——它在它擅长的任务(短任务、感知稳定、实时控制)里依然有价值——而是:当任务跨过几小时、几个房间、几次重启时,M 层这种”全部塞进 latent”的策略会失效。 此时必须把状态从 latent 里搬出来,落到对象级、关系级、证据级的结构化表示上。

4. 现代生成式世界模型:Genie 这一波的盲点

2024-2026 年这一波”世界模型”热潮,核心驱动力其实是视频生成模型——Genie [14]、Cambrian-S [15]、各种 driving world model [74]、Genie 2 / 3 等等。这些模型把生成质量推到了惊人的水准,让人产生”世界模型问题已经在被解决”的错觉。

这一节我们要说清楚:生成质量提升 ≠ 世界状态维护能力提升。前者是”对世界的影子建模得更好”,后者是”对世界的状态维护得更好”——这是两件事。

4.1 生成式世界模型的真正能力

生成式世界模型确实有真实价值:

  • 数据生成:合成大量训练数据,覆盖 long-tail 场景
  • 规划仿真:在生成的虚拟环境里做策略评估
  • 梦境训练:类似 Ha-Schmidhuber 的”做梦”,用模型仿真 rollout 来训 RL 策略

WorldArena [80] 这样的新一代 benchmark 已经把世界模型评测推向”下游功能效用”——不再只看视频质量,也看它能不能服务规划、能不能作为 policy evaluator。这是好事。

4.2 三个被掩盖的局限

但即便是表现最好的生成式世界模型,在第 1 章列出的四类查询上仍然不能直接回答

1. 没有显式对象身份

生成模型会”画”出连贯的对象——这一帧的钥匙到下一帧仍然是钥匙——但它不维护对象身份的离散标识。如果用户问”这是同一把钥匙吗”,模型只能基于视觉相似度答,没有跨场景、跨时间的稳定 ID。

2. 没有显式置信度衰减

生成模型默认每一帧都有完整画面——它不会告诉你”这一帧里钥匙的存在我只有 30% 把握”。它要么生成出来,要么不生成。这种”全或无”的画面不能直接服务于决策——决策需要带置信度的信念。

3. 没有可被局部更新的状态

生成模型生成的是”画面流”,不是”状态结构”。如果用户告诉系统”钥匙我已经拿走了”,模型没法把这条事实”插入”到它的内部状态——只能 fine-tune 或在 prompt 里追加。

4.3 视觉保真度的陷阱

最危险的陷阱是把”视觉保真度”等同于”空间智能”。WorldArena 的关键发现 [80] 直接戳破了这件事:

生成视频在视觉质量、运动质量、3D 准确性等维度的提升,并不一定转化为下游 embodied 任务的能力提升。

这件事和我们在第 6 章会展开的”NeRF / 3DGS 不等于空间智能”是同一个观察的两个版本——前者是关于动态生成模型,后者是关于静态高保真重建——但本质相同:它们都是”对世界影子的高质量建模”,不是”对世界状态的可维护建模”

5. 为什么 latent dynamics 不够:四件具体的事

把上面三节的讨论收拢,可以列出”latent dynamics 解不了 / 解不好”的四件具体的事。这四件事会在第 7 章变成评测设计的核心,第 8 章变成工程落地的核心。

5.1 第 1 件:跨小时尺度的容器推理

容器推理是空间记忆的 litmus test(第 4 章已经详细展开)。latent dynamics 处理这件事的失败模式:

  • t1t_1 看到螺丝刀放进抽屉 → latent 里某些维度编码了这件事
  • t2t_2 抽屉关上 → 后续观测里都看不到螺丝刀
  • 经过几小时连续 forward → hidden state 渐渐”忘掉”了 t1t_1 看到的事
  • t3t_3 用户问”螺丝刀现在在哪” → latent 里已经没有强信号

这件事不是 RNN 容量小——它是结构问题。RNN 没有”容器”的离散概念,没有”事件持久化”的机制,自然无法把”放进容器后状态被保护”这件事编码进 forward pass。

要做对,必须显式建模 ContainerState 和容器关闭后的”belief protection”——这就是第 4 章给出的做法。

5.2 第 2 件:跨会话的状态恢复

应用场景:用户关机睡觉,第二天重启系统。

  • 经典 M 层:hth_t 在关机时丢失。重启后 h0h_0 重新初始化,过去的记忆全没了。
  • “保存 hth_t 到磁盘”的折中方案:可行,但 hth_t 是个不可解释的 latent vector——它不能被检验、不能被局部修正、不能被人类读取。如果昨天 hth_t 里有错误状态,今天它会带着这个错误继续累积。

要做对,状态必须以结构化、可读、可修正的方式持久化——也就是第 4 章的 ObjectRecord + RelationGraph + EvidenceIndex。

5.3 第 3 件:负观测的处理

用户问”我护照在哪?最近三次主动扫描书桌都没看到。”

  • 经典 M 层:每次”扫描书桌没看到”是一次正常 forward pass,但模型不知道要把这件事当成对”在书桌上”信念的反证来处理。它只是更新 hh 而已。
  • 结果:模型可能仍然回答”在书桌上”——因为之前的 forward pass 里这个状态被编码过,且 RNN 没有显式机制去主动衰减它。

要做对,必须把”负观测”作为一类独立的更新事件,并区分”应该看到却没看到”和”本来就看不到”两种情况——这正是第 4.3 节情形 2 的工程化。

5.4 第 4 件:变化的可解释回答

用户问”昨晚到今早玄关有什么变化?”

  • 经典 M 层:你能拿到 h昨晚h_{\text{昨晚}}h今早h_{\text{今早}} 两个 latent vector,但它们的差对人类毫无意义
  • 你可以训一个 decoder 把差解码成自然语言——但这个解码本质上是”再生成一段描述”,不是”基于结构化变化的可追溯报告”。它可能漏掉真实变化、可能编造不存在的变化。

要做对,变化必须基于两个时刻的 ObjectRecord 集合做集合差分,并把每条差分挂到具体的 evidence_pointer 上——这才能让回答可被检验。

6. 新一波”M 层结构化”的尝试

学界已经在多个方向上做过把 M 层”结构化”的尝试。这一节简要梳理几条代表性路径,让读者看清”M 层结构化”不是凭空发明的工程偏好,而是社区共识在演化的方向。

6.1 路径 A:在 latent space 里嵌入对象 slot

代表工作如 SLATE / Slot Attention 系列、对象中心的 video prediction、Genesis 等:

  • 让 latent 自动分解成”slots”,每个 slot 对应一个对象
  • 在 dynamics 阶段,每个 slot 独立演化,slot 之间通过注意力交互

这条路保留了 latent 的端到端训练优势,但给了 M 层”对象级别”的结构。它的缺点:slot 仍然是 latent,没有真实身份、没有证据链;对长程容器推理依然困难。

6.2 路径 B:把 M 层换成显式场景图

代表工作:Hydra [10]、Pandora [65]、SceneLLM [42]、3DLLM-Mem [46]:

  • 直接把 M 层的状态用动态场景图表示
  • 节点是对象 / 区域 / 容器,边是空间关系 / 容器关系 / 时间关系
  • 更新通过图操作完成(添加节点、修改边、删除边、版本化)

这条路就是第 4 章的工程实现路径。它的优点:可读、可检验、可局部更新、可证据化。缺点:场景图的构建需要可靠的对象身份识别和关系推断——这要求感知和认知层都做得相当扎实。

6.3 路径 C:脑启发的双系统记忆

代表工作:MemoryVLA [48]、RoboMemory [53]、BSC-Nav [57]、Hippoformer [62]:

  • 把记忆分成”工作记忆”和”长期记忆”两部分
  • 工作记忆类似经典 M 层的 latent dynamics,处理短时序内的连续状态
  • 长期记忆类似结构化场景图,处理跨会话、跨场景的稳定知识
  • 两套记忆通过显式的”巩固 (consolidation)“机制连接

这条路是路径 A 和路径 B 的混合。它接受了”短时序用 latent、长时序用结构”的工程现实,并把巩固机制本身作为可被设计的模块。

6.4 三条路径的工程取舍

把三条路径放在同一张表里:

维度A: latent + slotB: 显式场景图C: 双系统记忆
端到端可训性困难中等
长时序稳定性一般
容器推理一般
跨会话恢复困难自然自然
可解释 / 证据链强(长期部分)
工程复杂度
当前最适合的领域短任务、连续控制长任务、需要审计综合长短任务

第 6 章我们会更深入地展开”全隐式端到端 vs 神经符号混合”这条主线——在那里你会看到,A 路径属于”隐式优化派”,B 路径属于”神经符号派”,C 路径是两者的妥协。

7. 把”世界模型”和”空间记忆”放回正确的位置

经过这一章的对照,我们终于可以给出一组工程上可用的、避免概念混乱的判定原则。

7.1 一张概念位置图

                      ┌───────────────────────────┐
                      │   生成式世界模型           │
                      │   (Genie / 视频 WM 等)    │
                      │                           │
                      │   核心输出:高质量未来帧   │
                      │   适合:仿真训练 / 数据生成│
                      └─────────────┬─────────────┘

                                    │ "做梦/仿真" 接口

┌──────────────┐                    ▼
│  Application  │   ┌─────────────────────────────┐
│  规划/决策     │ ◄ │   M 层 / Memory 层           │
└──────────────┘   │   - 隐式:latent dynamics   │
       ▲           │   - 显式:结构化空间记忆    │
       │           │   - 综合:双系统               │
       └───────────┤                              │
                   │   核心输出:当前世界状态     │
                   │   接口:last-seen/in/change  │
                   └──────────────┬──────────────┘


                  ┌───────────────┴───────────────┐
                  │  Perception / Cognition       │
                  │  (从感知到结构化观测)          │
                  └───────────────────────────────┘

这张图传达的核心信息:

  • 生成式世界模型主要服务的是”做梦/仿真”接口——它能给规划器一个仿真环境,但不直接维护当前世界状态
  • M 层 / Memory 层才是当前世界状态的所在地——应用层的查询主要打到这里
  • 两者是互补关系,不是替代关系——一个工业级系统可能两者都有,分工清晰

7.2 三条判定原则

把这套对照浓缩成三条可以挂在工程评审上的判定原则:

原则 1:世界模型 ≠ 空间记忆

如果你的需求是”维护当前对象级世界状态、支持 last-seen/containment/change/state-audit 查询”,不要把 Genie / 视频 WM 这一类生成模型直接放进系统主链路——它们解决的不是这个问题。这是把”做梦能力”和”记日记能力”混为一谈。

原则 2:M 层是空间记忆的早期抽象,不是终点

如果你的系统目前的状态层是一个 RNN 或 Transformer 的 hidden state,请承认它在长时序、跨会话、容器推理这几件事上的工程上限——不要试图通过”再加几层 attention""扩大 hidden state”来把它撑下去。这条路的边际收益会断崖式下降。

原则 3:双系统记忆是当前最现实的工程方案

把”短时连续状态”留给 latent dynamics(M 层 / 工作记忆),把”长时结构状态”放给显式场景图(Memory 层 / 长期记忆),中间通过明确的巩固机制连接——这是当前能让一个空间智能系统长期跑得动的最现实工程路径。

8. 章节小结

本章核心结论:

  1. Ha-Schmidhuber 的 V/M/C 架构提供了世界模型的最简公共参照——M 层在感知和决策之间维护内部世界状态。这个槽位本身是对的,本模块的 Memory 层和它在功能位置上是同一个。
  2. M 层是空间记忆的早期抽象形态——latent dynamics 解决了”在感知和决策间架一层内部状态”这件事,但它的接口、不确定性表达、证据链都不够支撑物理世界中的长程任务。
  3. 生成式世界模型(Genie / 视频 WM)和空间记忆是两个不同槽位的系统——前者服务”做梦/仿真”,后者服务”当前状态查询”。视觉保真度的提升不直接转化为状态维护能力——WorldArena 的核心发现就是这一点。
  4. latent dynamics 解不了的四件事:跨小时容器推理、跨会话状态恢复、负观测处理、变化的可解释回答。这四件事都需要把状态从 latent 里搬出来,落到对象级、结构级、证据级的显式表示。
  5. 三条结构化 M 层的路径:latent + slot(A)、显式场景图(B)、双系统记忆(C)。当前最现实的工程方案是 C——短时序 latent + 长时序结构,通过巩固机制连接。
  6. 三条判定原则:世界模型 ≠ 空间记忆 / M 层是早期抽象不是终点 / 双系统记忆是现实工程路径——可以直接挂在系统设计评审上。
  7. 下一章预告:我们将沿着这一章建立的”M 层 vs 空间记忆”对照,进入更具体的”全隐式端到端 vs 神经符号混合”工程范式之争——以及这个对比下”NeRF / 3DGS 不等于空间智能”这一观察的深层意义。

思考题

  1. 在你目前的系统里,“世界模型 / 空间记忆”这两个角色是分清的,还是被一个组件兼任的?兼任的情况下,最容易在哪一类查询(last-seen / containment / change / state-audit)上出问题?
  2. 把第 5 节的”latent dynamics 解不了的四件事”逐项套到你的系统:哪些已经显式处理了?哪些还是”latent 自己应该会处理”的状态?后者通常就是”不可解释长程崩溃”的根源。
  3. 你的系统里有没有”双系统记忆”的雏形?比如一个”短时连续 hidden state”+ 一个”长期结构化记忆”?如果有,巩固机制是怎么设计的?如果没有,硬塞一个进去的最小代价是什么?
  4. 如果让你重新审视一份”我们要做世界模型”的项目方案——只用本章三条判定原则——你会问对方哪三个问题来确定他们到底要做哪一种系统?

下一章我们正式进入工程范式的对比:全隐式端到端路线 vs 神经符号混合路线,并展开”NeRF / 3DGS 不等于空间智能”这一观察的真实含义——以及 GSMem 这种”3DGS + 场景图”的混合路线给我们的工程启示。