State Space Models 的控制论基础:Mamba 为什么懂「工程」而不只是懂「深度学习」
如果我告诉你,让 Mamba 打败 Transformer 的那套数学,最早是拿来设计导弹制导系统和飞机自动驾驶仪的,你会不会觉得有点意外?
故事从这里开始
1960 年,卡尔曼(Rudolf Kálmán)在设计阿波罗登月飞船的导航系统时,遇到一个问题:飞船在飞行过程中,位置、速度这些”状态”我们没法直接测量,只能通过雷达、加速度计这些传感器”猜”。而且飞船一直在动,这个”猜”必须实时更新,还不能把过去所有的传感器数据都存下来重新算一遍——内存和算力都跟不上。
他的解法后来被称为卡尔曼滤波器,其核心工具就是一套叫”状态空间方程”(State Space Equations)的数学语言。这套语言的精髓是:你不需要记住整个历史,只需要维护一个足够好的「状态摘要」,新数据进来时更新这个摘要就行。
六十多年后,2021 到 2023 年间,斯坦福的 Albert Gu 和普林斯顿的 Tri Dao 等人翻出了这套控制论的老工具,把它改造成了一种新的深度学习序列模型架构——先是 S4(Structured State Space Sequence Model),后来是更出名的 Mamba。Mamba 号称能在保持 Transformer 级别性能的同时,把长序列处理的计算复杂度从平方级降到线性级,推理速度快 5 倍。
这听起来像是深度学习领域的一次巧妙发明。但如果你去看 S4 和 Mamba 的论文,会发现里面大段大段都是控制论的经典结论——状态方程、离散化、卷积核、传递函数——这些概念在电子工程系的教科书里已经讲了半个世纪。
这篇文章要讲的就是这件事:Transformer 之外,还有一条完全不同的路径在思考”如何处理序列”,这条路径的祖师爷不是 AI 研究者,是控制工程师。 理解这套数学,你会对”序列建模”这个问题本身有一次视角上的重新校准——原来除了”让每个词看看其他所有词”(Attention)之外,还有”维护一个不断被更新的紧凑状态”(State Space)这条完全不同的思路,而且这条思路有着扎实到令人意外的理论基础。
我们会从一个具体的物理场景开始建立直觉,再一步步搭建出 S4 和 Mamba 背后的完整数学框架,最后回答一个关键问题:这套六十年前的理论,到底解决了 RNN 和 Transformer 各自没能解决的什么问题?
第一部分:状态空间方程——一种描述「动态系统」的通用语言
问题是什么
想象你在开车,想设计一个简单的巡航控制系统:油门踩多少,车速就变成多少。这听起来很直接——但车速的变化不仅取决于当前的油门位置,还取决于车此刻已经跑多快、路是不是在爬坡、有没有顶风。也就是说,系统现在的输出,依赖于系统内部一个持续演化的”状态”,而这个状态本身又受输入影响。
这正是序列建模要面对的核心问题的一个物理版本。语言模型在预测下一个词时,也不是只看当前这一个词——它需要某种”记忆”,记住前面文本积累下来的上下文状态,然后结合新进来的词更新这个记忆,再据此做出预测。
控制论给这类”随时间演化、被输入驱动”的系统起了一个统一的数学描述框架,叫状态空间模型(State Space Model, SSM)。
直觉:核心想法
状态空间模型的核心假设极其简朴:任何一个动态系统,都可以用两句话完整描述:
- 状态怎么变:系统内部的”状态”(用向量 $h(t)$ 表示)会随时间演化,演化速度取决于当前状态本身,也取决于外部输入 $x(t)$
- 输出怎么算:系统对外呈现的”输出” $y(t)$,是当前状态的某种映射(有时还直接掺一点输入进去)
回到巡航控制的例子:车速就是状态 $h(t)$,油门是输入 $x(t)$,仪表盘上显示的速度就是输出 $y(t)$。车速的变化率取决于当前车速(惯性、阻力)加上油门带来的加速度——这就是”状态怎么变”;仪表盘直接显示车速——这就是”输出怎么算”,在这个简单例子里输出恰好就等于状态本身。
再换一个更贴近语言模型的类比:状态 $h(t)$ 就像你阅读一本书时脑子里维护的”剧情摘要”。读到新的一句话(输入 $x(t)$),你的剧情摘要会更新(状态演化);如果有人问你”现在发生了什么”,你基于脑子里的摘要给出回答(输出映射),而不需要把前面所有页码重新翻一遍。这正是状态空间模型和”暴力存储所有历史再检索”(类似 Attention 的做法)的本质区别:它赌的是”一个紧凑的状态足够代表历史”。
技术细节(选读)
用数学语言写出来,连续时间的线性状态空间模型是这样一组方程:
\(h'(t) = Ah(t) + Bx(t)\) \(y(t) = Ch(t) + Dx(t)\)
翻译回人话:第一个方程说,状态的变化速度 $h’(t)$ 由两部分叠加而成——一部分是状态矩阵 $A$ 对当前状态 $h(t)$ 的线性作用(可以理解为”系统自身的惯性/衰减规律”),另一部分是输入矩阵 $B$ 对当前输入 $x(t)$ 的线性作用(”外部刺激怎样影响内部状态”)。第二个方程说,输出 $y(t)$ 由输出矩阵 $C$ 从状态里读出来(”从内部状态里提取多少信息作为对外呈现”),再加上矩阵 $D$ 对输入的直接贯穿(在深度学习版本里 $D$ 项常常被简化为一个残差连接,作用不大,很多论文直接忽略)。
关键在于 $A$ 矩阵。它决定了状态如果不受任何新输入驱动,会自己怎样演化——是快速衰减到零(遗忘一切),还是持续震荡(保留周期性模式),还是缓慢发散(记忆爆炸)。整个状态空间模型是否”好用”,几乎完全取决于 $A$ 怎么选。 这一点我们在第三部分讲 HiPPO 理论时会看到,正是精心设计的 $A$ 让这类模型第一次能记住上万步之前的信息。
第二部分:从连续到离散——为什么这一步是整套理论的关键
问题是什么
上面的方程描述的是”连续时间”的系统——车速在任意瞬间都有定义。但文本是离散的:一个词接着一个词,没有”词与词之间”的时刻。GPU 计算也是离散的:一步一步地做矩阵运算。要把控制论的连续方程用到语言模型上,第一件必须解决的事,就是把连续方程”翻译”成离散的、一步一步执行的版本。
这一步看起来像是纯粹的工程细节,但恰恰是整个 S4/Mamba 体系里最容易被低估、却最关键的一环。离散化的方式,直接决定了模型的表达能力、稳定性,甚至后来 Mamba 的”选择机制”能不能被塞进去。
直觉:核心想法
想象你有一台老式的自动打点机,每隔一段时间盖一次章,而不是连续地写字。你要把一支连续画线的笔,改造成这台打点机,同时希望打出来的点尽量”看起来像”原来那条连续的线。这就是离散化要做的事。
有一种特别直觉的做法叫零阶保持(Zero-Order Hold, ZOH):假设在两次打点之间,输入信号是恒定不变的(就像”保持”住上一个值,不再更新,等下一次打点时才跳到新值)。基于这个假设,你可以用微分方程的精确解,反推出”如果输入在一小段时间 $\Delta t$ 内保持不变,状态会精确地变成什么样”。这个精确解会告诉你,离散版本的状态矩阵和输入矩阵应该怎么从连续版本推算出来。
这里有个特别值得琢磨的地方:$\Delta t$(论文里常写作 $\Delta$)本质上是”打点的间隔”,或者说是”这一步走多远”。步子迈得越大,状态更新得越剧烈;步子迈得越小,状态更新得越细腻、越接近连续系统的真实行为。Mamba 后来最重要的创新之一,就是让这个 $\Delta$ 不再是一个固定的超参数,而是根据当前输入动态计算出来的一个量——这一点我们在第四部分详细展开。
技术细节(选读)
零阶保持离散化的推导思路是:先解出连续系统的解析解
\[h(t) = e^{At}h(0) + \int_0^t e^{A(t-\tau)}Bx(\tau)\,d\tau\]这个公式说的是,当前状态由两部分组成:初始状态经过 $e^{At}$ 这个”演化算子”作用之后的样子,加上过去所有时刻输入信号经过衰减/放大后的累积(这其实是一个卷积积分)。假设在每个采样间隔 $\Delta$ 内输入保持恒定,就可以把这个连续解精确地转换成离散递推式:
\[\bar{A} = \exp(\Delta A), \qquad \bar{B} = (\Delta A)^{-1}(\exp(\Delta A) - I)\cdot \Delta B\] \[h_t = \bar{A}h_{t-1} + \bar{B}x_t, \qquad y_t = Ch_t\]翻译回人话:离散化之后,状态空间模型变成了一个和 RNN 长得几乎一样的递推公式——上一步的状态乘以一个矩阵 $\bar{A}$,加上这一步输入乘以矩阵 $\bar{B}$,就得到新状态。区别在于,$\bar{A}$ 和 $\bar{B}$ 不是随便初始化学出来的权重,而是有明确物理含义的、从连续系统精确推导出来的矩阵——这也是为什么 SSM 在长程依赖上往往比普通 RNN 更稳定:它的递推矩阵不是黑箱学出来的,而是继承了控制论里几十年验证过的稳定性性质。
除了 ZOH,还有一种更古老的离散化方法叫双线性变换(Bilinear Transform,也叫 Tustin 方法),本质是用梯形法则近似积分——用当前时刻和下一时刻状态变化率的平均值来估计这一步的累积变化。S4 论文最初采用的就是双线性变换,Mamba 则改用了 ZOH,两者在实践中的差异并不巨大,但这说明了一个重点:离散化方法本身是有多种选择的,它是这套框架里一个可以调的”旋钮”,而不是唯一确定的步骤。
第三部分:HiPPO——如何设计一个”记忆力最优”的状态矩阵
问题是什么
前面提到过,整套系统是否好用,几乎全部取决于状态矩阵 $A$ 怎么选。如果 $A$ 选得不好,会出现两种典型的失败模式:状态很快衰减到零(模型迅速”失忆”,读到第 100 个词的时候已经完全不记得第 1 个词说了什么),或者状态无限放大(数值爆炸,训练直接崩掉)。
普通 RNN 早年就吃过这个亏——著名的梯度消失/爆炸问题,本质上正是因为状态转移矩阵没有被精心设计过,训练过程中它可能滑向任何一个糟糕的区域。LSTM 用门控机制打了个补丁去缓解这个问题,但补丁终究是补丁,没有从根本上解决”如何理论上最优地压缩历史”这个问题。
Albert Gu 在 S4 之前的工作 HiPPO(High-order Polynomial Projection Operators,2020 年)问的是一个更本质的问题:如果我允许状态向量有 $N$ 个维度,怎样设计状态矩阵 $A$,能让这 $N$ 个数字尽可能”最优地”总结一段任意长度的历史?
直觉:核心想法
想象你要用一份只有 64 个字的摘要,概括一整本书到目前为止读过的内容。你会怎么写这份摘要?一种朴素的做法是”只记最近发生的事情,忘掉早期的细节”——这类似于普通 RNN 隐含的行为倾向。但 HiPPO 提出了一种更讲究的思路:把整段历史看成一个函数(时间 → 内容),然后用一组”基函数”去逼近这个函数,就像用有限阶的多项式去拟合一条曲线。
具体来说,HiPPO 借用了数学里的正交多项式(比如勒让德多项式)——这些多项式有一个美妙的性质:给定阶数的限制下,它们是逼近某类函数的”最优基”。HiPPO 证明了,如果让状态向量的每一维对应一个多项式的系数,并按照一套特定的规则去更新这些系数(对应的正是设计出来的 $A$ 矩阵),那么这个状态向量就是”当前所能达到的最优历史压缩”。
用一个更贴近生活的类比:这就像用有限个傅里叶系数去重建一段音频——系数越多重建越精确,但即便系数有限,只要选对了基函数和更新规则,重建质量也能远远超过”随手记几个数字”的做法。HiPPO 最出名的一个变体叫 HiPPO-LegS(基于勒让德多项式、随时间自适应缩放测度),它有一个特别漂亮的性质:不管序列已经进行了多久,它都能均匀地记住”整段历史”,而不会随着时间推移系统性地遗忘早期信息。 这正是普通 RNN 和固定窗口注意力机制都做不到的事。
技术细节(选读)
HiPPO 的形式化定义是:给定一个”测度”(measure)$\mu(t)$,它规定了历史上每个时间点在”重要性”上的权重分布,HiPPO 要解决的是一个在线函数逼近问题——用 $N$ 阶多项式基 ${g_n}$ 去近似输入函数 $x(\tau), \tau \le t$,使得加权误差
\[\left\| x_{\le t} - \sum_{n=0}^{N-1} c_n(t)\, g_n \right\|_{\mu(t)}\]最小化,其中 $c_n(t)$ 就是状态向量的第 $n$ 个分量。HiPPO 的核心结论是:这些系数 $c_n(t)$ 的演化恰好满足一个线性 ODE,形式正是 $c’(t) = A_{\text{HiPPO}}c(t) + B_{\text{HiPPO}}x(t)$——也就是说,“最优在线多项式逼近”这个问题的解,天然就是一个状态空间模型,而这个特定的 $A_{\text{HiPPO}}$ 矩阵有着显式的解析形式(对角元素和次对角元素由简单的整数比例公式给出)。
翻译回人话:HiPPO 不是”发明”了一个状态矩阵然后测试它好不好用,而是从”什么样的压缩历史算最优”这个问题反推出,最优解正好对应某个特定形状的矩阵。这就是为什么 HiPPO/S4 论文读起来像是控制论和逼近论的自然延伸,而不是深度学习式的”试出来的架构”——它是有证明的。
S4 论文随后要解决的工程问题是:直接用这个 HiPPO 矩阵计算太贵(朴素算法是 $O(N^2 L)$,$L$ 是序列长度),于是他们把 $A_{\text{HiPPO}}$ 分解成一个”对角矩阵加低秩修正”(Diagonal Plus Low-Rank, DPLR)的形式:$A = \Lambda - PQ^*$,其中 $\Lambda$ 是对角矩阵,$P, Q$ 是低秩的向量。这个分解让整个卷积核的计算能够转化成一个叫柯西核(Cauchy Kernel)的经典数值计算问题,把复杂度降到了近似 $O(N \log^2 L)$ 的量级。这是一个纯数值线性代数的技巧,但它是 S4 能真正落地训练的关键——没有这个分解,HiPPO 只是一个漂亮的理论,跑不动。
第四部分:三种视角看同一个模型——RNN、卷积、还是别的什么?
问题是什么
一个模型如果只能用一种方式计算,往往会在某些场景吃亏。RNN 的递推形式天然适合逐步生成(推理时省显存),但训练时必须严格按时间步顺序算,没法在 GPU 上大规模并行,导致训练慢。卷积/Attention 的并行形式训练时可以一次性铺开所有位置并行计算,但推理时如果要生成一个新词,往往需要重新处理很长的上下文。
S4 论文最漂亮的一点,是发现状态空间模型天生具备”多重身份”,可以在不同场景下切换成最合适的计算形式。
直觉:核心想法
回顾一下第二部分的离散递推公式:$h_t = \bar{A}h_{t-1} + \bar{B}x_t$,$y_t = Ch_t$。这本身就是一个 RNN——一步一步往前滚。这种形式天然适合”生成模式”:来一个新词,state 更新一下,吐出一个词,显存占用是常数级的,不随生成长度增长。这是它对 Transformer KV Cache 问题的天然优势(KV Cache 会随生成长度线性增长,而 SSM 的状态大小恒定)。
但如果把递推公式反复展开,你会发现 $y_t$ 其实可以写成输入序列 $x_1, \dots, x_t$ 的一个加权求和,权重恰好构成一个固定的”卷积核”。这意味着,在训练阶段——此时整段序列是已知的、可以一次性铺开的——你完全可以把整个计算重写成一次卷积操作,用快速傅里叶变换(FFT)在 $O(L\log L)$ 的时间内并行算完整段序列,而不需要一步步递推。
这就是 S4 最漂亮的设计:同一个模型,训练时用卷积视角(享受完全并行),推理时用递推视角(享受常数显存)。 这种”双重人格”是 Transformer 做不到的——Attention 的训练并行性来自可以一次性算出所有 token 对之间的关系,但这也正是它推理时显存吃紧的根源(KV Cache)。SSM 把”训练怎么算最快”和”推理怎么算最省”这两个诉求,用两套等价但形式不同的计算方式分别满足了。
技术细节(选读)
把递推公式展开几步就能看出卷积结构:
\[y_t = C\bar{A}^t \bar{B}x_0 + C\bar{A}^{t-1}\bar{B}x_1 + \dots + C\bar{A}\bar{B}x_{t-1} + C\bar{B}x_t\]把这些系数 $C\bar{A}^k\bar{B}$ 提出来定义为一个卷积核 $K = (C\bar{B}, C\bar{A}\bar{B}, C\bar{A}^2\bar{B}, \dots)$,输出序列就变成了输入序列和这个核的卷积:$y = K * x$。翻译回人话:状态空间模型对序列的处理,等价于用一个”提前算好的固定滤波器”扫过整段输入,滤波器每个位置的系数,反映的是”$k$ 步之前的输入应该被赋予多大权重”——而这个权重的衰减/震荡规律,正是由矩阵 $A$(更精确地说是 HiPPO 设计出来的 $A$)决定的。
值得一提的是,这套框架和线性 Attention(把 softmax attention 换成不带非线性的核方法近似)在数学上有深刻的联系——两者都可以被视为某种”广义卷积/加权求和”,只是权重的生成方式不同:Attention 的权重来自 query-key 的点积相似度,是动态计算的;S4 的权重来自固定不变的卷积核,是提前算好的。这个差异,正是 Mamba 要解决的下一个问题的起点。
第五部分:Mamba 的「选择」——从固定滤波器到会思考的滤波器
问题是什么
S4 有一个致命的短板:它的卷积核 $K$ 是提前算好、对所有输入通用的固定滤波器。这意味着模型对”哪些历史信息重要”的判断,是和具体内容无关的——不管你输入的是一句诗还是一段代码,衰减规律都是同一套。
这在处理需要”内容相关推理”的任务上表现得特别糟糕。论文里用了一个经典的诊断任务叫选择性复制(Selective Copy):给模型一段夹杂着大量无关噪声词的序列,只有其中几个关键词需要被记住并按原顺序复制出来。S4 在这类任务上表现很差——因为它的”哪些位置该被记住”的机制是内容无关的,没法根据”这是个关键词”还是”这是个噪声词”做出不同反应。而 Attention 天生擅长这个:它可以为每个位置动态计算相关性分数。
这就是 Mamba 要解决的核心问题:怎么让状态空间模型也具备”根据内容动态决定该记什么、该忘什么”的能力,同时又不牺牲它推理时的效率优势?
直觉:核心想法
回到”读书做摘要”的类比。S4 相当于一个死板的摘要员:不管书里写的是什么,他固定地用同一套规则来决定”这句话该占多少篇幅写进摘要”——比如永远是”最近的内容占比多,久远的内容按固定速率淡化”。这在读小说、按时间顺序发展的情节里问题不大,但如果书里突然出现一句”记住这个密码:8492”,这个死板的摘要员完全不会因为这句话特别重要而多分配一点”记忆预算”给它。
Mamba 的想法是:让摘要员变聪明一点——读到每一句话时,先判断这句话有多重要,再决定要不要把它写进摘要、要覆盖掉多少旧内容。 读到无关的过渡句,几乎不更新摘要;读到”记住这个密码”这种关键句,大幅更新摘要,甚至可以选择性地”清空”一部分旧的、不再相关的摘要内容,给新信息让路。
具体的做法是:让状态空间模型里那几个关键参数——输入矩阵 $B$、输出矩阵 $C$,以及我们在第二部分提到的离散化步长 $\Delta$——不再是固定不变的常数,而是由当前输入内容动态计算出来的函数。$\Delta$ 尤其关键:它可以被理解为”这个词应该被赋予多大的重要性/多快地覆盖旧状态”。$\Delta$ 大,意味着这一步的状态更新剧烈,旧信息被迅速覆盖(类似”这句话很重要,赶紧更新摘要”);$\Delta$ 小,意味着几乎什么都没变(类似”这句话是废话,忽略”)。这套机制在数学效果上,和 RNN 里的”遗忘门”有异曲同工之妙——但它是从状态空间模型的离散化步长这个物理量自然导出的,不是另外拼接一个门控模块。
技术细节(选读)
具体实现上,Mamba 给 $\Delta_t, B_t, C_t$ 都套上一层线性投影加激活函数,让它们成为当前输入 $x_t$ 的函数:
\[\Delta_t = \tau_\Delta(\text{Linear}(x_t)), \quad B_t = \text{Linear}(x_t), \quad C_t = \text{Linear}(x_t)\]其中 $\tau_\Delta$ 通常是 softplus 函数,保证 $\Delta_t$ 恒为正数(因为它对应的是一个时间步长,物理上不能是负的)。翻译回人话:模型会看一眼当前这个 token,自己决定”这一步该走多大步子($\Delta_t$)”、”这一步该往状态里写入多少新信息($B_t$)”、”这一步该从状态里读出什么内容($C_t$)”——三个决策全部由内容驱动,而不是提前写死的常数。
这个改动带来了一个代价:一旦参数变成随时间变化的(time-varying),第四部分讲的”卷积视角”就不再成立了——卷积核 $K$ 依赖于固定的 $A, B, C$,一旦 $B, C, \Delta$ 每一步都不同,就没法提前算出一个统一的卷积核。这意味着 Mamba 无法用 FFT 加速训练,必须回到逐步递推的 RNN 模式——而 RNN 模式在 GPU 上天生是串行的、慢的。
Mamba 论文对此的解法是设计一种硬件感知的并行扫描算法(Hardware-aware Parallel Scan)。核心思路是:即使递推关系是串行的,”扫描”(scan,即计算一串前缀累积操作)这种运算本身在数学上是可以并行化的——用类似”并行前缀和”的分治算法,把 $O(L)$ 的串行步骤重组成 $O(\log L)$ 深度的并行计算树。再配合对 GPU 内存层级(高带宽但小容量的 SRAM vs 低带宽但大容量的 HBM)的精细调度——把中间状态尽量留在快速的 SRAM 里,减少在慢速显存里来回搬运数据——Mamba 最终实现的训练速度,在长序列上反而超过了高度优化的 Attention 实现(如 FlashAttention)。这一步工程创新,某种程度上和 FlashAttention 解决的问题是同构的:都是通过重新安排计算顺序,减少显存搬运的开销,而不是减少总的计算量。
这意味着什么
绕了一大圈,我们可以把整条脉络串起来看:
控制论给了我们一套描述”随时间演化的系统”的通用语言——状态方程。这套语言本身不特定于语言模型,卡尔曼当年用它给阿波罗飞船导航。离散化(ZOH/双线性变换)解决了”连续数学怎么落地到离散计算”的工程问题,继承了控制论几十年验证过的稳定性保证。HiPPO 从理论上回答了”状态矩阵怎么选才最优”,把”记忆”问题变成了一个有解析解的逼近论问题,而不是随手初始化再靠训练碰运气。S4 用对角加低秩分解让这套理论真正跑得动,并且发现了”同一模型,递推视角推理、卷积视角训练”的双重身份,一次性满足了 RNN 的推理效率和 CNN/Attention 的训练并行性。最后,Mamba 指出这条路径的最大短板——内容无关的固定滤波器做不了内容相关的推理,于是让状态空间模型的核心参数变成输入的函数,牺牲了卷积形式,但用硬件感知的并行扫描重新换回了训练效率。
站在这个视角回头看,Transformer 和 SSM 其实是在用两套完全不同的”哲学”回答同一个问题——”如何让模型知道该注意什么、该记住什么”。Attention 的答案是:不压缩,让每个位置都能直接看到所有其他位置,代价是存储随长度平方级增长。SSM 的答案是:压缩进一个固定大小的状态,代价是必须设计出足够聪明的压缩规则(HiPPO)和足够聪明的更新策略(Selection)。没有哪一个是”更先进”的答案,它们是在不同的取舍点上,对”记忆”这件事给出了两种数学上都站得住脚的解法。
这也解释了为什么这个方向仍然活跃——Mamba 之后出现了 Mamba-2(把状态空间模型和注意力机制在数学上统一到同一个框架下)、Jamba(把 SSM 和 Transformer 层混合使用,各取所长)、以及大量在视觉、基因组学、时间序列上的应用探索。控制论那套被”重新发现”的数学,显然还没有被榨干。
如果你想继续深挖,几个值得追的方向是:Mamba-2 论文里”结构化状态空间对偶”(SSD)如何把 SSM 递推严格改写成一种分块矩阵乘法,从而在现代 GPU 的张量核心上跑得更快;以及 State Space Duality 这个理论框架如何证明”线性 Attention”和”SSM”其实是同一个数学结构的两种参数化——这可能是理解”序列建模到底有多少种本质不同解法”这个大问题的下一块拼图。
参考来源
- Gu, Goel & Ré (2021). Efficiently Modeling Long Sequences with Structured State Spaces. arXiv:2111.00396 (S4)
- Gu, Dao, Ermon, Rudra & Ré (2020). HiPPO: Recurrent Memory with Optimal Polynomial Projections. arXiv:2008.07669
- Gu & Dao (2023). Mamba: Linear-Time Sequence Modeling with Selective State Spaces. arXiv:2312.00752
- State Space Models as Foundation Models: A Control Theoretic Overview. arXiv:2403.16899
- From S4 to Mamba: A Comprehensive Survey on Structured State Space Models. arXiv:2503.18970
- Gupta, Gu & Berant (2022). On the Parameterization and Initialization of Diagonal State Space Models (DSS). arXiv:2206.11893
- state-spaces/s4 GitHub repository, Annotated S4 (Sasha Rush)