Chapter 4 HIPPO: Continuous Memory with Optimal Polynomial Projections
Gu A. Modeling Sequences with Structured State Spaces[D]. Stanford University, 2023.
本文是MAMBA作者的博士毕业论文,为了理清楚MAMBA专门花时间拜读这篇长达330页的博士论文,由于知识水平有限,只能尽自己所能概述记录,并适当补充一些相关数学背景,欢迎探讨与批评指正。内容多,分章节更新以免凌乱。
本章主要讨论了一种名为HIPPO(High-order Polynomial Projection Operators)的框架,用于处理序列数据中的记忆问题。HIPPO通过在线函数近似来处理记忆,将函数的最佳系数存储为基函数的形式。这种方法特别强调正交多项式的使用,因为它们的最佳系数可以闭式表示。此外,该框架利用不同的度量来生成适应不同时间尺度的序列数据处理方法,并提供理论保证。文章还展示了HIPPO框架在处理长期依赖性、计算效率、梯度流动和近似误差方面的理论和实验优势。总的来说,这部分内容深入探讨了记忆表示问题,并提出了一种新的方法来有效处理复杂的时间序列数据。
备注 :为了强调与 SSM 的独立性,本章的材料使用不同的符号:使用 f(t)f(t)f(t) 表示输入函数, 代替 u(t)u(t)u(t) 表示输入。使用 c(t)c(t)c(t)表示“多项式系数”的状态,这是最初发表的 HIPPO 论文中的注释。
4.1 Introduction
本节讨论了顺序数据建模和学习的基本问题,这些问题包括语言建模、语音识别、视频处理和强化学习。核心是如何建立长期复杂时间依赖的模型,即如何存储和整合过去时间步骤的信息。传统方法是模拟随时间演变的状态。长距离依赖建模的核心问题是如何通过有限的memory来尽可能记住之前所有的历史信息。当前的主流序列建模模型(即Transformer和RNN) 存在着普遍的遗忘问题。
- fixed-size context windows: Transformer的window size通常是有限的,一般来说quadratic的attention最多建模到大约10k的token就到计算极限了
- vanishing gradient: RNN通过hidden state来存储历史信息,理论上能记住之前所有内容,但实际上的effective memory大概是<1k个token的level,可能的原因是gradient vanishing
4.2 High-order Polynomial Projection Operators
这部分内容其实就是NIPS’2020论文:HiPPO: Recurrent Memory with Optimal Polynomial Projections的一部分。
第4.2节“高阶多项式投影算子”(High-order Polynomial Projection Operators)中,介绍了在线函数近似问题的概念和HIPPO框架的总体思路。这一部分详细讨论了如何使用多项式基函数来近似一个函数,并在不同时间点维护这个近似的最优系数。文档描述了HIPPO框架的技术细节,包括如何选择适当的基函数集合和度量,以及如何使用这些基函数来优化近似过程。此外,还探讨了将这种连续时间的思想转化为实际应用中的离散时间版本的方法。最后,展示了如何将HIPPO框架应用于RNN中的记忆机制,提供了关于不同度量和优化策略的深入分析,并讨论了这种方法的理论保证和实际应用效果。
4.2.1 HIPPO Problem Setup
为了了解迄今为止所看到的输入并做出未来的预测,由于函数空间极其庞大,历史无法完美记忆,必须进行压缩;论文提出将其投影到有界维子空间的一般方法。因此,目标是(在线)维护历史的压缩表示。为了充分说明这个问题,需要两个要素:量化近似的方法和合适的子空间。
问题
考虑一个一维函数,我们能否用一个固定大小的representation c(t)∈RNc(t) \in \mathbb{R}^{N}c(t)∈RN 来最优拟合 fff 在[0,t][0, t][0,t](后面记作 f≤tf_{\leq t}f≤t) 的曲线? 并且随着ttt的增加,例如从 t1t_1t1 到 t2t_2t2 ,我们可以在线的根据 c(t1)c\left(t_{1}\right)c(t1) 求c(t2)c\left(t_{2}\right)c(t2) 来拟合 f≤t2f_{\leq t_{2}}f≤t2 ?
如何判断拟合的质量
我们需要一个测度(measure)来判定拟合出来的连续函数和原来的连续函数的相似度 ( in other words, how much we care about every time in the past,对不同的time step xxx有着一个权重 μ(x)\mu(x)μ(x) )。 每个measure都需要在函数空间里定义一个距离, 即定义函数的内积:⟨f,g⟩μ=∫0∞f(x)g(x)dμ(x)\langle f, g\rangle_{\mu}=\int_{0}^{\infty} f(x) g(x) \mathrm{d} \mu(x)⟨f,g⟩μ=∫0∞f(x)g(x)dμ(x)
如何用N维向量来编码 f≤tf_{\leq t}f≤t
假设一组多项式正交基 G={gn}n<N\mathcal{G}=\left\{g_{n}\right\}_{n<N}G={gn}n<N 满足⟨gi,gj⟩μ=0\left\langle g_{i}, g_{j}\right\rangle_{\mu}=0⟨gi,gj⟩μ=0(注意到正交基是由测度μ\muμ决定的,不同的 μ\muμ 对应不同的 G\mathcal{G}G )。我们直接把 f≤tf_{\leq t}f≤t 投影到多项式正交基 G\mathcal{G}G 上,让每个投影分量为c(t)c(t)c(t)的分量:
cn(t):=⟨f≤t,gn⟩μ(t)c_{n}^{(t)}:=\left\langle f_{\leq t}, g_{n}\right\rangle_{\mu^{(t)}}cn(t):=⟨f≤t,gn⟩μ(t)
也就是说 c(t)c(t)c(t)是多项式正交基的系数向量 (类似于傅立叶变换后的频域的值)
然后是论文中的描述:
函数近似与度量(Function Approximation with respect to a Measure):通过在 [0,∞)[0, \infty)[0,∞) 上的任何概率度量 μ\muμ 来实现的。这个度量为平方可积函数空间提供了内积,进而导致一个希尔伯特空间结构(Hμ\mathscr{H}_{\mu}Hμ以及相应的范数∥f∥L2(μ)=⟨f,f⟩μ1/2\|f\|_{L_{2}(\mu)}=\langle f, f\rangle_{\mu}^{1 / 2}∥f∥L2(μ)=⟨f,f⟩μ1/2)。
多项式基展开:在此基础上,可以选择任何 NNN 维子空间作为近似的候选,其中 NNN 是近似的阶数或压缩大小。论文认为,多项式基是一种自然的选择,使得G\mathscr{G}G成为度数小于 NNN 的多项式集合。
在线近似:由于我们关心每个时间 ttt 的近似 f≤tf_{≤t}f≤t,因此还要让度量随时间变化。对于每个 ttt,令 μ(t)\mu^{(t)}μ(t) 为 [0,∞)[0, \infty)[0,∞) 上支持的测度(因为f≤tf_{≤t}f≤t仅在时间 ttt 之前定义)。寻求g(t)∈Gg^{(t)} \in \mathscr{G}g(t)∈G 来最小化∥f≤t−g(t)∥L2(μ(t))\left\|f_{\leq t}-g^{(t)}\right\|_{L_{2}\left(\mu^{(t)}\right)}f≤t−g(t)L2(μ(t)) 。直观上,测度μ\muμ控制着输入域各部分的重要性,而定义了允许的近似值。挑战在于如何以闭式解决优化问题,形成给定的 μ(t)\mu^{(t)}μ(t),以及如何在 t→∞t \rightarrow \inftyt→∞ 时在线维护这些系数。
4.2.2 General HIPPO framework
本小节介绍了HIPPO框架的主要理念和解决问题的策略。这个框架基于正交多项式和信号处理文献中相关变换的丰富历史。在HIPPO框架中,对于一个输入函数f(t)f(t)f(t),使用正交多项式基来表示它的近似,并且根据时间变化的度量μ(t)\mu^{(t)}μ(t)动态更新这些系数。论文还提到了如何通过不同的时间变化度量,使用HIPPO框架对任意函数进行投影操作。重点在于如何在线维护这些系数,使其可以随时间递增更新,从而实现函数的高效在线近似。此外,还讨论了这个框架的一些理论优势,包括对输入时间尺度的不变性、更新的效率和近似误差的界限
HIPPO 抽象:在线函数逼近
定义 4.1:给定 (−∞,t](-\infty, t](−∞,t] 支持的时变测度族 μ(t)\mu^{(t)}μ(t)、多项式的 NNN 维子空间 G\mathscr{G}G 和连续函数 f:R≥0→Rf: \mathbb{R}_{\geq 0} \rightarrow \mathbb{R}f:R≥0→R,HIPPO 定义投影算子 projt{proj}_tprojt 和系数提取算子 coeft{coef}_tcoeft ,在每个时间 ttt 的具有以下属性:
(1) projt{proj}_tprojt :将函数 fff 限制到时间 ttt,f≤t:=f(x)∣x≤tf_{\leq t}:=\left.f(x)\right|_{x \leq t}f≤t:=f(x)∣x≤t,并将其映射到多项式 g(t)∈Gg^{(t)} \in \mathscr{G}g(t)∈G,从而最小化近似误差 ∥f≤t−g(t)∥L2(μ(t))\left\|f_{\leq t}-g^{(t)}\right\|_{L_{2}\left(\mu^{(t)}\right)}f≤t−g(t)L2(μ(t))。
(2) coeft{coef}_tcoeft : G→RN\mathscr{G} \rightarrow \mathbb{R}^{N}G→RN 将多项式 g(t)g^{(t)}g(t) 映射到相对于度量μ(t)\mu^{(t)}μ(t)定义的正交多项式基的系数 c(t)∈RNc(t) \in \mathbb{R}^{N}c(t)∈RN。这意味着 g(t)g^{(t)}g(t) 的表示是通过其在这组正交多项式基上的系数来进行的。这种映射对于在线函数近似的过程至关重要,因为它提供了一种方法来动态地表示和更新函数的近似,这是根据随时间变化的度量来实现的。
HIPPO
操作符: coef o proj \text { coef o proj } coef o proj ,是一个由两个步骤组成的复合操作,首先是 proj
,它将一个函数f:R≥0→Rf: \mathbb{R}_{\geq 0} \rightarrow \mathbb{R}f:R≥0→R映射到其在多项式基上的投影,然后是 coef
,它将这个投影转换成对应的最优投影系数 c:R≥0→RNc: \mathbb{R} {\geq 0} \rightarrow \mathbb{R}^{N}c:R≥0→RN。简单来说,Hippo(f) 表示的是计算函数 fff 在每个时间点 ttt 的最优多项式投影系数,是一种将函数映射到其在正交多项式基上系数的方法。
系数函数 c(t)=coeft(projt(f))c(t)=\operatorname{coef}_{t}\left(\operatorname{proj}_{t}(f)\right)c(t)=coeft(projt(f)) 具有 ODE 的形式,对于某些 A(t)∈RN×N\boldsymbol{A}(t) \in \mathbb{R}^{N \times N}A(t)∈RN×N 满足 c′(t)=A(t)c(t)+B(t)f(t)c^{\prime}(t)=\boldsymbol{A}(t) c(t)+\boldsymbol{B}(t) f(t)c′(t)=A(t)c(t)+B(t)f(t),A(t)∈RN×N,B(t)∈RN×1\boldsymbol{A}(t) \in \mathbb{R}^{N \times N}, \boldsymbol{B}(t) \in \mathbb{R}^{N \times 1}A(t)∈RN×N,B(t)∈RN×1。因此,结果展示了如何通过求解 ODE,或更具体地通过运行离散递推来在线轻松获得 c(t)c(t)c(t)。离散化时,HIPPO 接收一系列实值并生成一系列 NNN 维向量。
对上面的图再理解一下:上图中输入函数f(t)f(t)f(t)(黑线)通过存储其最佳多项式投影的系数(彩色线)来持续逼近,这些系数根据指定的度量(彩色框)进行存储。这些系数会随着时间的推移而演变(红色、蓝色),遵循常微分方程。从离散的角度来理解的话,我们从 t=0t=0t=0 开始,每次给一个输入 f(t)f(t)f(t) ,然后来更新c(t)c(t)c(t) 用来编码f≤tf_{\leq t}f≤t ,接着再输入 f(t+1)f(t+1)f(t+1) 并更新 c(t+1)c(t+1)c(t+1)来编码 f≤t+1f_{\leq t+1}f≤t+1 。可以看出, f(t+1)f(t+1)f(t+1) 的值受 c(t)c(t)c(t) 和 f(t+1)f(t+1)f(t+1) 的影响,那么 c(t+1)c(t+1)c(t+1) 可以写成 c(t)c(t)c(t) 和 f(t+1)f(t+1)f(t+1) 的函数 (类似RNN)。 HiPPO证明,在连续的情况下,这个过程可以用一个一阶ODE来建模:c˙(t)=A(t)c(t)+B(t)f(t)\dot{c}(t)=A(t) c(t)+B(t) f(t)c˙(t)=A(t)c(t)+B(t)f(t)。只要给定测度μ\muμ 我们就能确定 A∈RN×N,B∈RN×1A \in \mathbb{R}^{N \times N}, B \in \mathbb{R}^{N \times 1}A∈RN×N,B∈RN×1 。如果按着这个ODE的dynamics走的话, c(t)c(t)c(t) 就是我们要找的最优编码 f≤tf_{\leq t}f≤t 的coefficient,如上图。
4.2.3 High Order Projection: Measure Families and HIPPO ODEs
这一小节专注于自然滑动窗口度量及其对应的投影算子的例子,并以此重现了Legendre Memory Unit(LMU)。同时,这一节还分析了LMU的局限性。特别地,提到了转换Legendre(LegT)度量,该度量对最近历史给予均匀权重,并且引入了一个控制滑动窗口长度的超参数θ\thetaθ。文中提出了一个关于LegT的定理,并用线性时不变的常微分方程来描述这种情况,从而证明了LMU更新规则。此外,还讨论了这种滑动窗口更新规则的一个额外近似源。
只要给定measure,整个c(t)c(t)c(t)的dynamics就是确定的,下面是两个具体measure的例子
4.2.4 HIPPO Recurrences: from Continuous- to Discrete- Time
本小节描述如何将连续时间的HIPPO(高阶多项式投影算子)操作转换为离散时间的线性递归。这个转换对于将HIPPO框架应用于实际的序列和时间序列数据至关重要,因为实际数据通常是离散的。在连续情况下,这些运算符消耗输入函数 f(t)f(t)f(t) 并产生输出函数 c(t)c(t)c(t)。离散时间情况 (i) 消耗输入序列 (fk)k∈N\left(f_{k}\right)_{k \in \mathbb{N}}(fk)k∈N,(ii)隐式定义函数 f(t)f(t)f(t),其中 f(k⋅Δ)=fkf(k \cdot \Delta)=f_{k}f(k⋅Δ)=fk 对于某个步长 Δ\DeltaΔ,(iii) 通过 ODE 动力学生成函数 c(t)c(t)c(t),并且 (iv) 离散化回输出序列ck:=c(k⋅Δ)c_{k}:=c(k \cdot \Delta)ck:=c(k⋅Δ)。
4.2.5 Low Order Projection: Memory Mechanisms of Gated RNNs
本小节探讨了当在投影问题中不包含高阶多项式时会发生什么。具体来说,如果N=1(即使用一阶多项式),HIPPO-LegT的离散化版本就变为一个门控循环神经网络(Gated RNN)。文中指出,与HIPPO使用单一隐藏特征并将其投影到高阶多项式不同,这些模型使用许多隐藏特征,但仅使用一阶多项式进行投影。这种观点揭示了这些经典技术的内在逻辑,说明了它们是如何从基本原理中推导出来的。例如,通过并行堆叠多个单元并选择特定的更新函数,可以特别得到GRU更新单元作为一个特例。
4.3 LegS: Scaled Measures for Timescale Robustness
介绍了一种新的记忆机制——缩放勒让德度量(LegS)。LegS 通过对整个历史赋予均匀的权重,来解决记忆过程中的时标问题。这一节证明了HIPPO-LegS的理论性质,包括输入时标的不变性、快速计算性、以及梯度和逼近误差的界限。LegS不需要任何有关时标的超参数,这使得它能够适应不同输入时标。此外,相较于具有超参数θ\thetaθ的LegT度量,LegS在理论和实践上显示出了更好的时标鲁棒性。这一节通过新的度量设计,提出了一个更加健壯和理论上可靠的记忆机制。
HIPPO-LegS连续性和离散型的两种形式:

4.4 Empirical Validation
这一部分通过几个实验来验证HIPPO框架,包括在线函数近似和速度基准测试。文中展示了HIPPO-LegS能够处理数百万时间步长的依赖关系,并且其内存更新在计算上高效。此外,对不同离散化方法进行了函数近似错误分析,证明了HIPPO-LegS在各种离散化方法下的有效性。最后,还验证了HIPPO-LegS在面对不同时间尺度数据时的鲁棒性,特别是在处理时间序列分类任务时对抽样率变化的适应性。这一部分证实了HIPPO理论的可行性和实用性。
LegS的三大好处
- Gradient bounds: RNN对历史信息的遗忘速度是指数级的,HiPPO的遗忘速度是多项式级,好处就是可以用来建模更长的sequence同时尽可能不遗忘

-
Computational efficiency: AtA_tAt 有特殊的结构, 因此recurrence可以在linear而不是quadratic time算出
-
Timescale robustness: 缩放的度量与输入函数的快速演变无关

有什么好处呢?表格显示了在轨迹分类数据集上的结果,训练序列和测试序列之间存在分布偏移(即由于时间序列在部署时以不同速率采样而产生的);HiPPO 是唯一能够推广到新时间尺度的方法!

潜在的应用:低分辨率训练vision model, 可以较为无损的迁移到高分辨率
4.5 Conclusion
第四章通过提出一个框架(HIPPO),解决了序列数据中记忆的根本问题。HIPPO的核心是最优函数近似的抽象概念,这一概念是针对随时间变化的度量来定义的。除了统一并解释现有的记忆方法外,HIPPO还推出了一种新方法(HIPPO-LegS),这是朝向时标鲁棒性迈出的第一步,能够有效处理数百万时间步的依赖关系。HIPPO在历史上早于用于深层序列建模的结构化状态空间模型(SSM,例如S4);接下来的两章将从SSM的角度描述它,并将其与第一部分连接起来。