它们不是四个互相替代的方案,而是同一个状态方程在四种离散化假设下的解。看清这一点,选型问题会简单一半。
导语
时序建模领域过去五年最消耗工程师注意力的一场争论是”Mamba 能不能取代 Transformer”。这场争论之所以反复无解,是因为大部分对比都在模型层面做(谁的 benchmark 高、谁的 FLOPs 低),而真正的差异在更下面一层:
你如何定义”状态”,以及你如何把连续时间推进到下一个时刻。
Transformer 的答案是”不要状态,每次从全历史里重新取”;Mamba 的答案是”用一个固定大小的、输入相关的状态做压缩”;GRU 的答案是”用一个固定大小的、输入相关的状态做压缩,但更新方式是门控”;ODE 模型的答案是”状态是连续演化的,我在任意时刻都能查询它”。
这四个答案在数学上可以写进同一个框架。本文先把框架搭出来,再逐个拆解,最后给选型与踩坑。目标读者是做时序/序列建模的算法研发,默认你熟悉 attention、RNN 和基本的数值方法。
1. 统一视角:四种模型都在解同一个方程
1.1 一个连续时间系统,四种离散化
所有(线性)序列模型都可以看成下面这个连续时间状态空间系统的某种离散化:
1 | dz/dt = A z(t) + B u(t) |
其中 u(t) 是输入,z(t) 是隐状态,y(t) 是输出。区别只在三处:
- A、B、C 是否随输入变化(时不变 vs 选择性);
- 用哪个积分器把连续方程变成离散递推;
- 怎么在时间维上并行。
把离散化写成统一形式 z_k = Ā z_{k-1} + B̄ u_k,三种积分器给出的 Ā 完全不同:
| 积分器 | Ā 的取法 |
精度 | 稳定性 | 是否需要解方程 |
|---|---|---|---|---|
| 显式(前向)欧拉 | I + ΔA |
一阶 | 条件稳定:需 Δ < 2 / abs(λ_max) |
否 |
| 隐式(后向/逆)欧拉 | (I − ΔA)^{−1} |
一阶 | 无条件稳定(A-stable),且 L-stable | 是(每步解线性/非线性方程) |
| 零阶保持(ZOH) | exp(ΔA) |
精确(在输入分段常值假设下) | 无条件稳定 | 否(预计算即可) |
| 双线性(Tustin) | (I − ΔA/2)^{−1}(I + ΔA/2) |
二阶 | 无条件稳定 | 否 |
这张表就是全文的骨架。后面会看到:
- Mamba 用的是 ZOH(
Ā = exp(ΔA)),并且让Δ随输入变化——这就是”选择性”的物理含义:模型自己决定每个 token 的积分步长; - 逆欧拉 ODE 模型用的是隐式欧拉,代价是每步要解一个不动点/线性系统,换来对刚性系统的无条件稳定;
- GRU 不对应任何标准积分器,它是”用神经网络直接参数化状态更新函数”,跳过了物理建模;
- Transformer 根本没有这个方程,它把
z换成了”整个历史的一个加权和”,Ā的概念不存在。
1.2 三个正交维度
比较这四类模型,其实只需要看三个轴:
| 维度 | 问题 | Transformer | Mamba | GRU | ODE |
|---|---|---|---|---|---|
| 状态容量 | 状态能存多少信息? | O(L·d)(全历史 KV) | O(d·N)(固定) | O(d)(固定) | O(d)(固定) |
| 访问方式 | 怎么取用历史? | 内容寻址(attention) | 压缩式(state 衰减) | 压缩式(门控) | 压缩式(连续演化) |
| 时间并行 | 训练能否并行? | ✅ 完全并行 | ✅ 并行扫描 | ❌ 严格串行 | ⚠️ 取决于求解器 |
“内容寻址 vs 压缩”这一列是后面所有工程差异的根源。**内容寻址可以精确取回第 37 步的信息;压缩只能保证”大概还记得”**。
1.3 三个常见误区
在进入细节前先排掉三个会让对比失真的认知:
误区一:把 FLOPs 当成本。
Transformer 的 O(L²) 是 FLOPs,Mamba 的 O(L) 也是 FLOPs。但实际墙钟时间由内存带宽主导,不是 FLOPs。Mamba 的并行扫描是 memory-bound 的,在小 d、短序列上经常打不过高度优化过的 FlashAttention。这也是为什么 Mamba 论文强调”硬件感知”——它在跟 cuBLAS 的手工调优抢时间。
误区二:拿不同参数量的模型比精度。
Mamba 论文的标准做法是匹配参数量(Mamba-130M vs Pythia-130M)。但在时序论文里,很多”Mamba 超过 Transformer”的结果是拿 1 层 Mamba 对比 1 层 Transformer,而两者的有效容量差好几倍。看到时序 Mamba 论文,先翻附录看参数量对齐没有。
误区三:把”长序列”当成唯一需求。
长序列是成本问题,不是能力问题。如果你的序列只有 96 步,Transformer 的 O(L²) 完全不是瓶颈,Mamba 的线性优势换不来任何东西,反而丢掉内容寻址。先量一下你的 L 到底多大,再谈架构。
2. Transformer 时序建模:能力上限最高,稳定性最差
2.1 机制:把”记忆”换成”检索”
Self-attention 做的事是:
1 | z_t = Σ_{s≤t} softmax(q_t · k_s / √d) · v_s |
注意这里没有任何状态传递。第 t 步的输出直接是对 1..t 所有历史的一个加权平均,权重由当前 query 和每个历史 key 的相似度决定。
这个设计的本质是:用 O(L²) 的计算换掉了”如何压缩历史”这个难题。你不需要设计一个状态更新规则,因为历史一直都在,随时可以精确取回任意一步。
对时序来说这既是最大的优势也是最大的问题:
- 优势:多尺度周期性、跨通道依赖、事件对齐——这些”需要往回翻很远去找参照”的模式,attention 天生擅长;
- 问题:时序的核心结构是局部连续性和因果顺序,而 attention 对顺序是排列不变的(permutation invariant),必须靠位置编码强行注入顺序信息。
2.2 为什么时序 Transformer “强但不稳”
(a) 排列不变性与时序归纳偏置的冲突
标准 attention 满足 f(π(x)) = π(f(x))。而时序信号满足 x_t 与 x_{t-1} 强相关、与 x_{t-100} 弱相关。这个错配导致两个后果:
- Transformer 必须从数据里学出“相邻更重要”这件事,而 RNN/SSM 的架构里天然带着它;
- 在小数据量下,学不出来 → 退化成”对全局做平均” → 预测趋近常数。
这解释了时序领域一个反复出现的现象:中等规模数据集上,简单的线性模型能打赢精心设计的 Transformer。
(b) 注意力稀释(attention dilution)
序列变长后,softmax 的分母变大,单个位置的权重被摊薄到 O(1/L)。结果是对远距离信息的有效利用下降,模型倾向于只关注最近几步 + 一个全局平均。
这和”上下文变长后 LLM 找不到中间信息”是同一现象(Lost in the Middle)。在时序上的表现是:长预测步长下,attention map 趋于均匀,模型退化为移动平均。
(c) DLinear 之争:一个必须正视的结果
2023 年 *Are Transformers Effective for Time Series Forecasting?*(Zeng et al., AAAI’23)用一条线性层(把历史窗口直接线性映射到预测窗口)在多个标准基准上追平甚至超过了当时的 SOTA Transformer。这个工作的价值不在于”线性更好”,而在于指出了两个真实问题:
- 很多时序 Transformer 的有效感受野远小于声称的,去掉 attention 换成线性层性能不掉;
- 基准本身有问题:数据泄漏(归一化用了全量统计量)、评测协议不一致、超参搜索预算不对等。
后续的 PatchTST、iTransformer 通过 patch 化与通道维 attention 重新拉开了差距,但**”时序 Transformer 需要非常小心地调”这个结论至今成立**。
2.3 成本结构:不只看 O(L²)
| 阶段 | 复杂度 | 内存 | 实际瓶颈 |
|---|---|---|---|
| 训练(全序列) | O(L² d) |
O(L²) 或 O(L)(FlashAttention) |
L > 4K 后是显存与带宽 |
| 训练(因果 mask) | O(L² d / 2) |
同上 | 同上 |
| 推理(自回归) | 每步 O(L d) |
KV cache O(L d) |
cache 随 L 线性增长,长上下文推理变慢 |
| 推理(编码器式) | 一次 O(L² d) |
O(L d) |
适合”整段输入 → 整段输出” |
KV cache 是被低估的项。 对 LLM 它是显存墙;对时序(尤其是边缘部署的实时预测)它是延迟墙:你要预测第 t+1 步,就必须保留 1..t 的全部 K、V。序列越长,单步延迟越高。
这也是 Mamba 在流式/在线预测场景真正的杀手级优势:O(1) 状态,单步延迟与历史长度无关。
2.4 两个工程修正,几乎成了标配
修正一:Patch 化(PatchTST, 2023)
把序列切成不重叠的 patch(如 16 步一个),每个 patch 当一个 token。收益有三:
- 序列长度除以 patch size → attention 的 L 变小,复杂度降一个量级;
- 保留局部连续性(patch 内部是连续片段,不是孤立点);
- 减少 token 数 → 缓解注意力稀释。
修正二:通道独立(Channel Independent)
多变量时序有 C 个通道。早期做法是把 C 个通道拼成一个 token(channel mixing),参数量随 C² 增长且容易过拟合。CI 策略是每个通道独立过同一个模型,共享权重。PatchTST 的实验表明 CI 在多数基准上更好——这个结论反直觉(丢掉了跨通道信息),但工程上极稳。
后续的 iTransformer 反过来做了 channel-wise attention(把每个通道的整体序列当一个 token),在通道相关性强的数据集上更强。结论:CI vs channel-mixing 没有普适答案,取决于通道间是否真有稳定的相关结构。 这一点在做选型时比”选 Transformer 还是 Mamba”更影响结果。
2.5 什么时候 Transformer 仍然不可替代
- 需要精确回指:序列里有”事件”(促销、故障、政策变更),模型需要精确定位到某一次历史事件;
- 多变量强耦合:变量间的依赖是稀疏、动态、非局部的(如金融多因子);
- 跨模态:时序 + 文本/图像(日志、K线图、传感器图谱),需要统一 token 空间;
- 零样本/少样本迁移:时序基础模型(Chronos、TimesFM、Moirai)几乎都是 Transformer 系,因为它们需要大量参数 + 强表达力。
3. Mamba:把”记忆”做成一个可学习的压缩器
3.1 从 S4 说起:SSM 是什么
结构化状态空间模型(S4, Gu et al., 2021)的出发点是:用一个线性时不变系统来记忆历史。
1 | z_k = Ā z_{k-1} + B̄ u_k |
关键洞察在于 Ā 的结构。如果 A 是任意矩阵,长程记忆会指数衰减或爆炸。S4 的做法是用 HiPPO 矩阵初始化 A,使得状态 z 是历史输入在正交多项式基上的最优投影——换句话说,z 压缩保存了历史的一个正交分解,而不是随便一个衰减和。
这个设计让 S4 在 Long Range Arena 上比 Transformer 强很多,但有个致命限制:**A, B, C 都是时不变的,所以整个递推等价于一个固定的长卷积核**,可以用 FFT 在 O(L log L) 内算完。
但”时不变”意味着:模型无法根据内容决定记什么、忘什么。它像一扇固定孔径的窗,对所有输入一视同仁。
3.2 选择性(S6):让参数随输入变化
Mamba(Gu & Dao, 2023)的核心改动只有一句话:让 Δ, B, C 成为输入的函数。
1 | Δ_k = softplus(Linear(u_k)) # 步长,随输入变化 |
这一步改动带来了语义上的质变:Δ 是积分步长。Δ 大 = 这一步”跨得远” = 更重要/更值得记住;Δ 小 = “几乎原地” = 可以忽略。
于是模型学会了:
- 选择性记忆:遇到关键 token(分隔符、异常值、事件标记)时把
Δ拉大,把信息写进状态; - 选择性遗忘:遇到噪声时把
Δ压小,让状态几乎不变。
这是 Mamba 相对 S4 最本质的进步,也是它能在语言建模上追平同规模 Transformer 的原因。
3.3 代价:卷积形式失效,逼出并行扫描
时不变时,递推可以写成卷积,用 FFT 算。一旦 Ā 随 k 变化,卷积核就变成时变的,FFT 这条路断了——你只能老老实实做递推,而递推是 O(L) 串行的。
Mamba 的解法是 并行扫描(parallel scan / associative scan)。递推 z_k = a_k z_{k-1} + b_k 是一个结合律成立的运算:
1 | (a_2, b_2) ∘ (a_1, b_1) = (a_1 a_2, a_2 b_1 + b_2) |
既然满足结合律,就可以用 Blelloch 扫描在 O(L log L) 的工作量、O(log L) 的深度内并行完成。
但学术上的 O(L log L) 在 GPU 上并不快——中间结果的显存读写把带宽吃满了。Mamba 论文的第二个贡献是硬件感知实现:
- 只把
Ā, B̄放显存/共享内存,C和输出在寄存器里融合计算,避免物化整个(L, d, N)中间张量; - 在 SRAM 里做重计算:反向传播时不存中间激活,而是重算(类似 FlashAttention 的思路);
- 按通道并行,把
d维当成 batch。
这三个工程技巧合起来,才让 Mamba 在真实 GPU 上比朴素的 O(L log L) 扫描快几倍到十几倍。只看论文里的复杂度会严重高估它的实际优势。
3.4 Mamba-2 与 SSD:把选择性写成矩阵分解
Mamba-2(Dao & Gu, 2024)把选择性 SSM 和 attention 的关系显式化了。核心观察是:
标量 A(或对角 A)的 SSM,等价于一个 masked attention,其中 mask 是由 Δ 累乘出来的衰减矩阵。
写成矩阵形式:
1 | Y = (M ⊙ (C B^T)) X |
其中 M_{ij} = exp(Σ_{k=j+1}^{i} Δ_k · A)(当 i ≥ j),⊙ 是逐元素乘。
这个式子说明了三件事:
- SSM 和 attention 是同一个族的两端:attention 的 mask 是全 1(或因果 1),SSM 的 mask 是衰减的;**
Δ → ∞时 SSM 退化成因果 attention,Δ → 0时退化成”只看最近”**。 - SSM 可以复用 attention 的所有工程优化(tensor core、chunked 计算、序列并行)。Mamba-2 的 chunked 算法就是把序列分块,块内用矩阵乘、块间用状态传递,从而在长序列上比 Mamba-1 快 2–8 倍。
- 理论上限被明确了:SSM 的表达力受限于”状态维度 × 标量衰减”这个结构,它不能精确实现任意 attention pattern。这是 Mamba 的结构性天花板,不是工程能补的。
3.5 优势:三个真实的、一个被夸大的
| 优势 | 是否真实 | 说明 |
|---|---|---|
训练复杂度 O(L) |
✅ 真实 | 但常数大,实际拐点在 L ≈ 1K–4K |
推理 O(1) 状态、O(1) 单步延迟 |
✅ 最真实 | 流式场景的决定性优势;无需 KV cache |
| 长序列显存恒定 | ✅ 真实 | 状态大小与 L 无关,这是硬优势 |
| “长程依赖比 Transformer 强” | ⚠️ 被夸大 | 见下 |
最后一条需要展开。Mamba 的”长程”是指能处理长序列,不等于能有效利用远处的信息。原因是状态是固定大小的压缩(d × N 个数),信息论上不可能无损保存任意长历史。多项 probing 研究显示,SSM 在精确检索类任务(”找出序列中第 3 次出现的某个值”)上显著弱于 attention。
Mamba 论文自己也报告了这一点:在需要精确回忆的任务(如 MQAR)上,Mamba 需要更大的状态维度才能追平。
3.6 局限:五个必须知道的边界
① 无内容寻址。
状态是压缩的,你不能”回查第 500 步到底发生了什么”。这对时序是硬伤——很多时序任务恰恰需要精确定位历史事件(去年同期、上次故障)。
② 因果单向。
Mamba 的扫描天然是单向的。时序预测中,双向上下文(用未来推断缺失值、做插补、做表示学习)是常见需求,需要 Bi-Mamba 这类双向变体(两个方向各扫一遍再融合),成本翻倍。
③ 衰减结构带来的”近因偏置”。exp(ΔA) 是衰减的,这意味着远处的信息必须经过多次压缩才能到达当前步,累积误差大。对强周期性数据(如”每周一都高”),这个结构不自然——你需要显式的周期先验(分解、多尺度)来补。
④ 对非平稳分布敏感。
SSM 的状态是输入的累积和(z = Σ Ā^{k-i} B u_i),输入的均值漂移会直接进入状态。时序的非平稳性(趋势、level shift)需要额外处理:RevIN、差分、分解。这一点上 Mamba 和 GRU 一样脆弱,而线性模型反而更鲁棒。
⑤ 生态与工具链。mamba_ssm 的 CUDA kernel 对硬件和 CUDA 版本敏感,编译经常失败;torch.compile 与自定义 kernel 的兼容性不稳;混合精度下 exp(ΔA) 容易溢出(Δ 大 + A 负得少)。这些不是理论问题,是每周都会遇到的工程问题。
3.7 时序上特有的三个坑
坑一:直接套 NLP 的 Mamba 到多变量时序。
NLP 是单通道 token 序列;多变量时序是 (L, C) 矩阵。直接把 C 个通道拼成一个 token,参数量爆炸且丢失通道语义。主流做法(S-Mamba、TimeMachine)是通道独立 + 跨通道用一层轻量 mixing,或者反过来(先通道 attention,再时间 Mamba)。
坑二:忽略双向需求。
很多时序任务(插补、异常检测、表示学习)是非因果的。用单向 Mamba 会显著掉点,而论文里的 baseline 往往是双向的。
坑三:baseline 没调好。
时序 Mamba 论文里,DLinear / PatchTST 这些 baseline 常常用默认超参。看到”Mamba 比 Transformer 强 20%”,先自己跑一遍 PatchTST 调过参的版本。 这是这个领域最常见的假阳性来源。
4. GRU:被低估的、最诚实的基线
4.1 门控循环的核心
GRU(Cho et al., 2014)的更新式:
1 | r_k = σ(W_r u_k + U_r h_{k-1}) # 重置门 |
把它和第一节的状态方程对照,会发现一个有意思的对应:
1 | h_k = (1 - z_k) h_{k-1} + z_k h̃_k |
这是一个用门控插值实现的”离散积分”**——(1-z_k) 扮演了 Ā 的角色,z_k 扮演了 B̄ 的角色,而 h̃_k 是”新信息的方向”。所以 GRU 可以看成:用一个神经网络学出来的、逐维度的、输入相关的积分器,只不过它不对应任何已知的数值格式(不是欧拉、不是 ZOH),它直接学 Ā**。
这解释了 GRU 的两个特性:
- 比 SSM 更灵活(
Ā完全自由); - 比 SSM 更难训练(没有结构化约束,长程梯度容易消失,因为没有
exp的先验保证衰减有界)。
LSTM 是同一思路的变体(多一个输出门和一个独立的 cell state),参数量多 33%,在长程上略优,在小数据上更容易过拟合。GRU 通常是性价比更高的默认选择。
4.2 为什么它至今仍然是强基线
| 原因 | 机制解释 |
|---|---|
| 参数效率高 | 3 组权重矩阵,比同隐维度的 1 层 Transformer 少一个量级 |
| 小数据友好 | 强归纳偏置(马尔可夫假设 + 平滑更新),不需要从数据学”相邻更重要” |
| 状态 O(1)、流式友好 | 单步延迟与序列长度无关,比 Mamba 更成熟、更轻量 |
| 对非平稳相对鲁棒 | 门控会自动收缩(z→0 时保持,z→1 时跟随),不会像 SSM 那样把均值漂移累积进状态 |
| 工程极成熟 | cuDNN 优化好、量化/剪枝工具链完整、边缘端可用 |
| 可解释性好 | 门控值可以直接可视化,看模型在哪一步”记住了” |
一个常被引用的经验结果:在 M3、M4 这类时序竞赛基准上,经过合理调参的 GRU/RNN 系模型(如 ES-RNN、DSSM)长期是强基线,很多复杂模型在同等算力预算下打不过它们。
4.3 边界:三个硬约束
① 时间维不可并行。h_k 依赖 h_{k-1},训练时必须串行。这是 GRU 相对 Transformer/Mamba 最大的劣势——训练吞吐差一个量级。序列长度 1000 以上时,训练时间会成为实际的选型约束。
② 长程依赖的衰减是”学出来的”,不可靠。
理论上 GRU 可以记住无限长的历史(如果 z=0),但实践中梯度会消失。没有 exp(ΔA) 这种结构化的衰减先验,长程能力强烈依赖初始化和数据。
③ 状态容量固定且小。
隐维度 d 通常在 64–512。相比 attention 的 O(L·d) KV,GRU 的容量小两三个数量级。信息瓶颈是真实的:多变量 + 长历史 + 高精度要求时,瓶颈会显现。
4.4 什么时候 GRU 就是最优解
不要因为”不新”就跳过它。以下场景 GRU 经常是最优或接近最优:
- 序列长度 < 200,数据量 < 10 万样本:Transformer 会过拟合,Mamba 的线性优势用不上;
- 边缘/嵌入式部署:MCU、车机、手机端,算力和内存都受限;
- 严格的流式/低延迟要求:单步 < 1ms,需要确定性延迟(无动态求解器步数);
- 需要快速建立 baseline:一天内跑通,用来验证特征工程和数据 pipeline;
- 在线学习/持续更新:GRU 的状态更新是一次矩阵乘,增量更新成本极低。
一条工程建议:任何时序项目,第一个模型都应该是 GRU 或线性模型。不是因为它们最强,而是因为它们的失败模式最容易被诊断(欠拟合/过拟合一眼看得出),能帮你快速判断”问题在数据还是在模型”。
5. Inverse Euler ODE Solver:连续时间视角
术语说明:这里需要先做一个诚实的澄清。”Inverse Euler” 在不同文献里指两种东西:
① 隐式(后向)欧拉法z_{k+1} = z_k + h f(z_{k+1})——因为增量在未来状态处求值,也称 backward/implicit Euler,部分教材译作”逆欧拉”;
② 对时间反向积分的欧拉格式(用于可逆模型、连续归一化流的反向采样)。在时序建模语境下,绝大多数情况指 ①。本节按 ① 展开,并在 5.7 讨论 ② 的意义。如果你指的是某篇具体论文里的 “Inverse Euler layer”,其数学结构也落在下面这个框架里——**核心永远是”隐式求解 + 不动点”**。
5.1 Neural ODE 的基本设定
Neural ODE(Chen et al., 2018)把”层”换成”流”:
1 | dz/dt = f_θ(z(t), t, u(t)) |
和 RNN 的根本差异在于:RNN 定义的是 h_{k} = F(h_{k-1}, u_k)(离散映射),Neural ODE 定义的是 dz/dt = f(z, u)(导数场)。
这个换位带来三个能力:
- 任意时刻可查询:给定
z(t_0),可以在任意t求解,不需要”按步走”; - 天然处理不规则采样:观测时间
t_i不必等距,直接在[t_i, t_{i+1}]上积分(Latent ODE, Rubanova et al., 2019); - 参数效率:
f_θ在所有时间步共享,一个函数描述整个动力学。
代价也很明确:前向要迭代求解,反向要用伴随法(adjoint method)再解一遍 ODE,训练成本比同规模 RNN 高一个量级。
5.2 显式欧拉 vs 逆(隐式)欧拉:稳定性是核心差异
显式欧拉:
1 | z_{k+1} = z_k + h f(z_k) |
对测试方程 dz/dt = λz(λ 为复数),放大因子 R = 1 + hλ。稳定要求 |1 + hλ| ≤ 1,即 h ≤ 2/|λ|。当 λ 的实部很负(刚性系统)时,h 必须极小,否则数值解会震荡发散。
逆(隐式)欧拉:
1 | z_{k+1} = z_k + h f(z_{k+1}) |
放大因子 R = 1/(1 - hλ)。对 Re(λ) < 0 的任意 h,都有 |R| < 1。这就是 A-stable(无条件稳定)。进一步,hλ → -∞ 时 R → 0,即刚性模态被瞬间压掉——这叫 L-stable,是处理刚性系统最需要的性质。
对比表:
| 性质 | 显式欧拉 | 逆(隐式)欧拉 | ZOH(Mamba 用的) |
|---|---|---|---|
| 单步计算 | 一次 f 求值 |
需解方程(迭代或求逆) | 一次矩阵指数 |
| 稳定性 | 条件稳定 | 无条件稳定(A/L-stable) | 无条件稳定 |
| 精度阶 | 1 | 1 | 精确(分段常值输入) |
允许的 h |
受 λ 限制 |
任意 | 任意 |
| 对刚性系统 | 崩 | ✅ 最优 | ✅(线性情形) |
| 计算成本 | 最低 | 最高 | 中(exp 预计算后极低) |
| 可并行(时间维) | ✅ | ❌(隐式耦合) | ✅(线性时不变时) |
一句话总结:显式欧拉”快但不稳”,逆欧拉”稳但慢”,ZOH “对线性系统又稳又准,但对非线性系统不适用”。Mamba 选 ZOH 是因为它的动力学是线性的(A 固定),隐式方法的价值在非线性 + 刚性场景。
5.3 逆欧拉作为一层:它就是不动点层
把逆欧拉的一步展开写:
1 | z_{k+1} = z_k + h · f_θ(z_{k+1}, u_k) |
令 g(z) = z_k + h f_θ(z, u_k),则 z_{k+1} 是 g 的不动点:
1 | z_{k+1} = g(z_{k+1}) |
于是每次”时间步推进”变成了一次不动点求解,通常用:
- 定点迭代:
z^{(m+1)} = g(z^{(m)}),收敛需h·Lip(f) < 1(对刚性f不成立); - Newton 法:
z^{(m+1)} = z^{(m)} - (I - h J_f)^{-1}(g(z^{(m)}) - z^{(m)}),二次收敛但每步要解线性系统(J_f是 Jacobian,d × d); - 拟牛顿 / Anderson 加速:折中方案,工程上最常用。
这个结构和 Deep Equilibrium Models(DEQ)是同一个东西:DEQ 求的是”无穷深层的表示”,逆欧拉求的是”下一步的状态”,两者都是 z = F(z, x) 的不动点。
由此得到几个实用推论:
- **隐式层的显存是 O(1)**(不需要存中间迭代),可以用隐函数定理反传;
- **隐式层天然”深”**,表达能力等价于无穷多步显式迭代;
- 但训练不稳定:不动点不唯一、迭代不收敛、Jacobian 病态都会导致训练崩。工程上必须加:谱归一化、阻尼、最大迭代次数截断、收敛监控。
5.4 和 SSM 的真正关系:都是 Ā,只是取法不同
这是本文最想强调的一点。把三者写成同一个递推:
| 模型 | Ā |
B̄ |
参数是否随输入变化 |
|---|---|---|---|
| 显式欧拉 SSM | I + ΔA |
ΔB |
否(S4)/ 是(Mamba 用 ZOH 而非欧拉) |
| 逆欧拉 SSM | (I − ΔA)^{−1} |
(I − ΔA)^{−1}ΔB |
可做(”隐式选择性 SSM”) |
| ZOH SSM(Mamba) | exp(ΔA) |
(exp(ΔA) − I)A^{−1}B |
是 |
| GRU | diag(1 − z_k) |
由 z_k, r_k 决定 |
是 |
| Transformer | 无(全历史加权) | — | — |
“逆欧拉 SSM”是一个有意思的中间态:它保留了 SSM 的线性结构(Ā 可以预计算/求逆),但用隐式格式换来了更强的稳定性,尤其是当 Δ 很大(长步长、强选择性)时,exp(ΔA) 可能下溢到 0 而 (I − ΔA)^{−1} 仍然良态。这在极长序列 + 大 Δ 的场景下有实际价值。
5.5 优势:三个不可替代的能力
| 能力 | 为什么只有 ODE 系能给 |
|---|---|
| 不规则采样 | 时间戳直接作为积分区间端点,不需要插值/掩码填补 |
| 任意时刻查询 | 训练时用观测点,推理时可以问任何 t(missing data 插补、连续监测) |
| 物理先验注入 | f_θ 可以写成”已知动力学 + 残差网络”,把守恒律、衰减率、耦合结构写进模型 |
| 连续时间干预 | 反事实预测(”如果第 5 天开始用药”)可以在任意时刻改变 u(t) 重新积分 |
这几个能力在临床、气象、工业过程、传感器网络里是刚需,而 Transformer/Mamba 都要靠”时间戳 embedding + mask”来模拟,效果和优雅度都差一截。
5.6 代价:四个真实的工程问题
① 求解器步数是超参,且影响精度。dopri5(自适应)会根据局部误差调整步数,导致不同样本的计算图不同 → batch 内无法对齐 → 训练慢。工程上常用固定步数的 RK4 或欧拉,牺牲自适应性换吞吐。
② 伴随法的数值误差。
反向传播用伴随法重新积分一遍,长时间跨度下误差会累积,且对刚性系统不稳定。这是 Neural ODE 训练的经典痛点,工业界常用”检查点 + 短段积分”折中。
③ 刚性系统难训。
真实时序里大量存在多时间尺度(秒级振动 + 天级趋势),这是典型的刚性系统。显式求解器会崩,隐式求解器(逆欧拉、隐式 RK)稳定但每步要解方程,成本高且需要好的预条件。
④ 训练慢。
一个 100 步的序列,RK4 要 400 次 f 求值,而 GRU 只要 100 次矩阵乘。在同等精度下,ODE 模型的训练成本通常是 RNN 的 3–10 倍。
5.7 关于”Inverse Euler”的第二种读法
如果”inverse”指时间反向,那么它对应的是:
1 | z_{k-1} = z_k − h f(z_k) # 反向显式 |
用途有两个:
- 可逆模型:正向和反向都能精确计算(类似 RevNet),显存
O(1); - 连续归一化流的采样:从噪声反向积分到数据。
在时序预测里这个用法较少,但在生成式时序模型(时间序列扩散/流匹配)中,反向积分是采样过程的核心。如果你在做生成式时序,这一支值得关注。
6. 四路对比
6.1 总表
| 维度 | Transformer | Mamba (S6) | GRU | ODE(逆欧拉/隐式) |
|---|---|---|---|---|
| 状态表示 | 全历史 KV,O(L·d) |
固定压缩状态 O(d·N) |
固定状态 O(d) |
连续轨迹 z(t),O(d) |
| 历史访问 | 内容寻址(精确回指) | 压缩(衰减加权) | 压缩(门控) | 压缩(连续演化) |
| 训练复杂度 | O(L² d) |
O(L d N)(扫描) |
O(L d²) 但串行 |
O(S · L d²),S=求解器步数 |
| 训练并行性 | 完全并行 | 并行扫描 | ❌ 严格串行 | ⚠️ 段内可并行,段间串行 |
| 推理状态 | KV cache O(L),随 L 增长 |
O(1),与 L 无关 |
O(1) |
O(1) + 求解器开销 |
| 长序列(>4K) | 成本爆炸 | ✅ 最优 | 训练慢但内存恒定 | 求解步数爆炸 |
| 精确检索能力 | ✅ 最强 | ⚠️ 弱(状态瓶颈) | ❌ 弱 | ❌ 弱 |
| 不规则采样 | ❌ 需时间戳 embedding | ❌ 需 Δ 编码 | ❌ 需 Δ 编码 | ✅ 原生支持 |
| 双向建模 | ✅ 天然 | ⚠️ 需 Bi-Mamba(2×成本) | ⚠️ 需 BiGRU | ✅ 天然(可反向积分) |
| 数值稳定性 | 好(softmax 归一化) | ⚠️ exp(ΔA) 易下溢 |
好(门控有界) | ⚠️ 显式不稳;隐式最稳 |
| 对小数据 | 易过拟合 | 中等 | ✅ 最稳 | 易过拟合(参数共享但需长训练) |
| 非平稳鲁棒性 | 中(需归一化) | 弱(状态累积漂移) | 中 | 中 |
| 可解释性 | attention map | 弱(隐状态不可读) | ✅ 门控可读 | ⚠️ 导数场可分析,轨迹难读 |
| 工程成熟度 | ✅ 极高 | ⚠️ 中(kernel 编译坑) | ✅ 极高 | ❌ 低(需自建) |
| 典型部署 | 云端、大模型 | 长序列/流式 | 边缘、低延迟 | 科研、医疗、工业过程 |
6.2 复杂度不是重点,内存层级才是
| 模型 | 名义复杂度 | 实际瓶颈 | 拐点(经验值) |
|---|---|---|---|
| Transformer | O(L²) |
显存带宽(L > 2K)+ KV cache(推理) | L < 1K 时最快(kernel 成熟) |
| Mamba | O(L) |
扫描的串行深度、kernel 启动 | L > 2K 开始反超 |
| GRU | O(L) 串行 |
无法并行 → 训练墙钟 | L > 500 时训练明显变慢 |
| ODE | O(S·L) |
求解器步数 × 每步 Jacobian | 几乎总是最慢(除非 L 很小) |
这张表的实用价值:如果你的序列长度在 512 以下,用 Transformer 就好,别折腾。Mamba 的优势区间是 2K–100K,ODE 的优势区间是”不规则采样 + 需要连续查询”,不是”长”。
6.3 能力雷达(定性)
按 1–5 打分,主观评估,用于快速定位:
| 能力 | Transformer | Mamba | GRU | ODE |
|---|---|---|---|---|
| 长程依赖利用 | 5 | 3.5 | 2 | 3 |
| 长序列成本效率 | 2 | 5 | 3 | 1 |
| 精确回忆/回指 | 5 | 2.5 | 1.5 | 1.5 |
| 小数据泛化 | 2 | 3 | 5 | 3 |
| 训练吞吐 | 4 | 4.5 | 1.5 | 1 |
| 流式推理延迟 | 2.5 | 5 | 5 | 3 |
| 不规则采样 | 1.5 | 2 | 2 | 5 |
| 多变量耦合 | 4.5 | 3.5 | 3 | 3.5 |
| 工程可落地性 | 5 | 3 | 5 | 2 |
读法:没有一行是”全 5”。Transformer 赢在表达力与工程成熟,Mamba 赢在成本曲线,GRU 赢在鲁棒与部署,ODE 赢在连续时间。
7. 选型建议
7.1 决策树
1 | Step 1:你的采样是否规则? |
7.2 场景 → 推荐
| 场景 | 首选 | 理由 | 备选 |
|---|---|---|---|
| 短期负荷/销量预测(L≈96–336) | PatchTST / iTransformer | 长度不够长,线性优势无意义;patch 化已足够 | DLinear(先做 baseline)、GRU |
| 超长历史(电力、气象,L>10K) | Mamba 系(S-Mamba、TimeMachine) | O(L) 成本 + 恒定显存 | 分块 Transformer |
| 流式实时预测(单步 < 10ms) | GRU / Mamba | O(1) 状态;GRU 更成熟 | 轻量 Transformer + 滑窗 |
| 不规则采样(临床、传感器) | Latent ODE / Neural CDE | 原生支持任意时间戳 | GRU-ODE-Bayes |
| 多变量强耦合(金融、交通) | iTransformer / Crossformer | 通道间 attention 显式建模 | 图神经网络 + GRU |
| 边缘设备(MCU/车机) | GRU / 量化后的轻量 Transformer | 内存与功耗 | 线性模型 |
| 时序基础模型/零样本 | Transformer 系(Chronos、TimesFM) | 只有这个规模能撑起预训练 | — |
| 异常检测(需要回指历史模式) | Transformer | 需要精确定位相似片段 | Mamba + 重构误差 |
| 生成式时序(扩散/流匹配) | Transformer 或 双向 Mamba | 需要双向 + 强表达 | ODE 采样器 |
| 物理仿真/数字孪生 | Neural ODE | 可注入守恒律、可连续查询 | — |
7.3 混合架构:2026 年最务实的答案
纯 Mamba vs 纯 Transformer 的争论在实践中已经弱化,主流是混合:
| 混合方式 | 代表 | 思路 | 适用 |
|---|---|---|---|
| 层间交替 | Jamba、Samba | Mamba 层做长程压缩,attention 层做精确检索 | 超长序列 + 需要回指 |
| Mamba 主干 + attention 头 | 多数时序 Mamba 变体 | 时间维用 Mamba,跨通道/跨尺度用 attention | 多变量时序 |
| Transformer 蒸馏到 Mamba | 苹果 2026 年的工作(把 Transformer 改造成 Mamba) | 保留教师能力,换学生架构降本 | 推理成本敏感 |
| Mamba + 分解 | DMamba 等 | 趋势/季节分解后分别建模 | 强周期性数据 |
| Mamba + 多尺度 | ms-Mamba | 不同 patch size 并行扫描 | 多时间尺度 |
为什么混合有效:Mamba 缺的是”精确回指”,Transformer 缺的是”长序列成本”。两者互补,而不是互斥。默认建议:先上混合,纯 Mamba 只在成本压力极大时才考虑。
7.4 评测怎么做才不骗自己
时序 benchmark 是这个领域最大的坑。四条硬要求:
| 要求 | 为什么 | 怎么做 |
|---|---|---|
| 统一参数量/FLOPs | 否则比的是容量不是架构 | 报告参数量、训练 FLOPs、墙钟时间三件套 |
| baseline 必须调参 | 默认超参的 PatchTST 会输给调过的 Mamba,反之亦然 | 每个 baseline 至少做同样预算的随机搜索 |
| 多次种子 + 置信区间 | 时序数据方差大,单次结果不可信 | ≥ 5 seeds,报均值 ± 标准差 |
| 检查数据泄漏 | 归一化用全量统计、滑窗穿越测试集 | 严格按时间切分,归一化统计量只用训练集 |
另外两个时序特有的陷阱:
- look-back window 的选择:不同模型的最优回看窗口不同,固定一个窗口对比是不公平的。至少要扫
{96, 336, 720}; - 数据集饱和:ETT、Weather 这些老基准的 SOTA 差距已经进入噪声区间(< 1%),在这些基准上比 0.5% 没有意义。用 GIFT-Eval、fev-bench 这类新基准,或者你自己的业务数据。
8. 踩坑清单
8.1 Transformer
- 不加位置编码:时序完全失去顺序信息,性能断崖式下降;
- 不做 RevIN/标准化:非平稳数据的分布漂移直接打穿模型;
- patch 边界不对齐:patch size 与周期不整除时,周期性被打碎。周期 24 就用 24 或 12;
- 通道混合导致过拟合:C 大时 channel-mixing 的参数量是
O(C²),小数据必炸,改用 CI; - KV cache 没算进延迟预算:线上推理才发现 P99 延迟随序列长度线性增长。
8.2 Mamba
Δ初始化不当:Δ太小 → 状态几乎不更新(等于死网络);太大 →exp(ΔA)→0,状态瞬间清零。按官方建议用Δ的对数参数化(softplus前);- 混合精度溢出:
exp(ΔA)在 fp16 下容易 inf/nan。用 bf16,或对ΔA做 clamp; - kernel 编译失败:
mamba_ssm对 CUDA/torch 版本极敏感。生产环境锁定版本,用预编译 wheel,别在 CI 里现编; - 单向建模用在双向任务上:插补、异常检测、表示学习必须 Bi-Mamba,否则掉点 5–15%;
- 忘了补位置信息:Mamba 的因果结构隐含顺序,但多变量/多尺度拼接后顺序会乱,需要显式位置编码或通道标识;
- 直接对标 NLP 的 Mamba 实现:时序需要
(B, L, C)处理,官方实现是(B, L, d),通道语义要自己设计。
8.3 GRU
- 不做梯度裁剪:RNN 的梯度爆炸是老问题,
clip=1.0是标配; - 训练不 shuffle 时间窗:必须按窗口 shuffle,不能按样本点;
- 隐维度开太大:
d=512在小数据上必过拟合,64–128通常够; - 忽略 cuDNN 的 batch 要求:某些 cuDNN 版本对
batch % 8敏感,速度差异明显; - 用在超长序列上:L > 2000 时训练慢到不可接受,早该换架构。
8.4 ODE
- 用自适应求解器做 batch 训练:不同样本步数不同 → 无法向量化 → 慢 10 倍。固定步数 RK4 更实用;
- 伴随法长程不稳定:跨度大时误差累积,用检查点分段反传;
- 忽略刚性:多时间尺度数据上显式欧拉必崩,要么换隐式,要么对数据做时间归一化;
- 不动点迭代不收敛:逆欧拉 + 定点迭代要求
h·Lip(f) < 1,实际中经常不满足,必须用 Newton 或阻尼迭代,并监控残差; - 时间尺度没归一化:
t的量纲(秒 vs 天)直接影响f的 Lipschitz 常数和求解器步数。**训练前一定把时间归一化到[0, 1]**; - 参数量看着小但训练贵:一个 10 万参数的 Neural ODE 可能比 100 万参数的 GRU 训练慢 5 倍,别按参数量估成本。
8.5 跨模型的三个通用坑
- 拿单变量结论套多变量:很多论文只在单变量上验证,多变量下结论可能反过来(通道独立性是关键变量);
- 忽略推理成本:训练时 batch 大、并行好,上线时单条流式推理,结论完全不同。必须在目标部署形态下测延迟;
- 不做 ablation 就下结论:说”Mamba 更好”,但没分离出是”线性复杂度”还是”选择性”还是”训练更长”的贡献。至少做:同参数量、同训练步数、同数据增强。
9. 小结
- 四种模型是同一个状态方程的四种离散化。 Transformer 放弃状态、用全历史检索;Mamba 用 ZOH 离散化的选择性线性 SSM;GRU 让网络直接学
Ā;ODE 用隐式积分保留连续时间。理解Ā的取法,比记 architecture 图有用。 - Transformer 的能力上限最高,稳定性最差。 内容寻址是它不可替代的优势(精确回指、多变量耦合、跨模态);O(L²) 和 KV cache 是它的硬成本;排列不变性带来的归纳偏置错配,是它在中小数据上不稳的根源。
- Mamba 的真实优势是”成本曲线”,不是”长程能力”。 O(1) 推理状态、恒定显存、线性训练,这三点在流式和超长序列上是决定性的。但固定容量状态导致精确检索能力弱,这是结构性限制,不是调参能解决的。
- Mamba-2 的 SSD 视角最重要:SSM 和 attention 是同一族的两端,
Δ控制衰减,Δ→∞退化成因果 attention。这解释了为什么混合架构(Jamba/Samba)有效,也解释了为什么纯 Mamba 有天花板。 - GRU 是被严重低估的基线。 它对应”让网络直接学积分器”,没有结构化先验所以更难训长程,但参数效率、鲁棒性、部署成熟度都是最好的。任何时序项目,第一个模型就该是 GRU 或线性模型。
- 逆(隐式)欧拉的价值是数值稳定性,不是精度。 A-stable/L-stable 让它在刚性和大步长下不崩;代价是每步解方程(隐式欧拉本质是一个不动点层,和 DEQ 同构)。它对标的是”显式欧拉会炸”的场景,不是”Transformer 太慢”的场景。
- **ODE 系唯一不可替代的能力是”连续时间”**:不规则采样、任意时刻查询、物理先验注入。如果你的数据是规则网格、没有缺失,ODE 的收益通常抵不过它的训练成本。
- 选型的正确顺序:先看采样是否规则 → 再看序列长度 → 再看是否需要精确回指 → 最后才比架构。反过来做,一定选到”benchmark 最好但线上跑不动”的那个。
- 2026 年的务实答案是混合:Mamba 做长程压缩主干,attention 做精确检索头。纯架构之争在实践中已经让位于”成本 vs 能力的配比”。
- 评测比选型更容易出错。 时序基准普遍存在数据泄漏、baseline 未调参、数据集饱和三大问题。在看到”Mamba 比 Transformer 强 20%”时,先问三件事:参数量对齐了吗?baseline 调了吗?回看窗口扫了吗?
如果只留一句:Transformer 用算力换记忆的精确性,Mamba 用记忆的精确性换算力,GRU 用先验换鲁棒,ODE 用计算换连续时间——选型就是决定你愿意在哪一项上付账。
参考来源
核心论文
- Vaswani et al., Attention Is All You Need, NeurIPS 2017
- Gu, Goel, Ré, Efficiently Modeling Long Sequences with Structured State Spaces (S4), ICLR 2022;arXiv:2111.00396
- Gu et al., HiPPO: Recurrent Memory with Optimal Polynomial Projections, NeurIPS 2020
- Gu, Dao, Mamba: Linear-Time Sequence Modeling with Selective State Spaces, 2023;arXiv:2312.00752
- Dao, Gu, Transformers are SSMs: Generalized Models and Efficient Algorithms Through Structured State Space Duality (Mamba-2 / SSD), ICML 2024;arXiv:2405.21060
- Cho et al., Learning Phrase Representations using RNN Encoder–Decoder for Statistical Machine Translation, EMNLP 2014(GRU)
- Chung et al., Empirical Evaluation of Gated Recurrent Neural Networks on Sequence Modeling, 2014
- Hochreiter, Schmidhuber, Long Short-Term Memory, Neural Computation 1997
- Chen et al., Neural Ordinary Differential Equations, NeurIPS 2018;arXiv:1806.07366
- Rubanova et al., Latent Ordinary Differential Equations for Irregularly-Sampled Time Series, NeurIPS 2019
- De Brouwer et al., GRU-ODE-Bayes: Continuous Modeling of Sporadically-Observed Time Series, NeurIPS 2019
- Kidger et al., Neural Controlled Differential Equations for Irregular Time Series, NeurIPS 2020
时序专门
- Zeng et al., Are Transformers Effective for Time Series Forecasting? (DLinear), AAAI 2023
- Nie et al., A Time Series is Worth 64 Words: Long-term Forecasting with Transformers (PatchTST), ICLR 2023
- Liu et al., iTransformer: Inverted Transformers Are Effective for Time Series Forecasting, ICLR 2024
- Zhou et al., Informer, AAAI 2021;Wu et al., Autoformer, NeurIPS 2021
- Bai et al., Transformers in Time Series: A Survey, IJCAI 2023
- Ansari et al., Chronos: Learning the Language of Time Series, TMLR 2024;Das et al., TimesFM, 2024
Mamba 时序与混合架构
- Wang et al., S-Mamba: Latent State Space Models for Time Series Forecasting, 2024
- Ahamed, Cheng, TimeMachine: A Time Series is Worth 4 Mambas, 2024
- Liang et al., Bi-Mamba+: Bidirectional Mamba for Time Series Forecasting, 2024
- DMamba(分解增强的 Mamba 时序模型),arXiv:2602.09081, 2026;DeMa,arXiv:2601.05527, 2026
- Lieber et al., Jamba: A Hybrid Transformer-Mamba Language Model, 2024;Ren et al., Samba, 2024
说明:本文的复杂度与稳定性分析基于上述论文的公开结论与数值分析的标准结果;”能力雷达”与拐点经验值属于工程判断,不同数据/硬件下会漂移,建议用自己的数据复现后再采信。