
你有没有想过,为什么医院的心电监护数据和望远镜拍的星星亮度曲线,处理起来会比普通的文本或语音难那么多?
答案藏在一个很容易被忽略的细节里:时间间隔。文本里的每个字、语音里的每一帧,几乎都是均匀排布的,就像地铁报站一样,每隔固定时间来一次。但医院的检测仪器不是这样工作的,它什么时候测你的血压,取决于护士什么时候有空、你的病情有多紧急。望远镜拍星星也是,云层、天气、设备维护,都会让两次观测之间的间隔忽长忽短。
这种"不规律"听起来只是个麻烦事,但它其实携带着重要信息。两次心跳测量之间隔了五分钟还是五小时,这件事本身就在告诉你病人的状态变化有多快。一个好的模型必须能读懂这种"间隔的含义",而不是简单粗暴地把所有数据硬塞进一个假装均匀的网格里。
这篇来自苏黎世联邦理工学院和布朗大学团队的论文,就是在解决这个问题。他们发现,现在最流行的两类序列模型,在处理不规律时间间隔这件事上,都有各自说不出口的毛病。
两条路线,各有各的死穴
要理解这篇论文的贡献,得先认识一下序列建模领域里两个重要的"门派"。
第一个门派是选择性状态空间模型,代表作是大名鼎鼎的Mamba。
状态空间模型(SSM):一种用隐藏状态随时间演化来处理序列数据的模型架构,可以理解成一个会"记笔记"的系统,每来一个新输入,它就根据笔记本上已有的内容和新信息,更新一下笔记,然后决定输出什么。
Mamba的厉害之处在于"选择性",它会根据每个输入token动态调整自己的"记忆方式":遇到重要信息就多记一会儿,遇到无关紧要的内容就快速遗忘。这种能力来自一个叫做离散化步长的参数,记作Δ(读作delta hat)。
离散化步长Δ:决定模型在每一步"前进"多远的参数,可以想象成模型内部时钟走一步的幅度。在Mamba里,这个幅度不是固定的,而是由当前输入内容决定的。
问题来了:Mamba把Δ变成了一个"由内容学出来的闸门",这意味着它已经不再代表真实的物理时间间隔了。如果你的数据本身就是不规律采样的,真实的时间差只能作为一个额外特征塞进输入里,然后指望模型自己去学会这个特征和内部闸门之间的关系。
这就是论文里"淡出闪光"实验要揭示的核心问题,后面会详细展开。
第二个门派是连续时间状态空间模型,代表作是S5。
S5这类模型反其道而行之,坚持让Δ永远等于真实的物理时间间隔Δ。这样一来,模型天生就能正确处理不规律采样,因为采样间隔变了,离散化之后的动态系统就会按照真实物理过程该有的方式去响应。
但代价也很明显:S5的内部参数是静态的,不随输入变化。这意味着相同的输入永远产生相同的状态更新,不管上下文是什么。这种性质叫线性时不变(LTI),翻译成人话就是"一视同仁,不看场合"。
线性时不变(LTI):指系统的响应规律不随时间或上下文改变,同样的输入在任何时候得到的反应都一样。
Mamba和S5的分歧,本质上是一个关于Δ该代表什么的分歧:是该让它变成灵活的智能闸门,还是该让它老老实实对应物理时间?论文的作者们觉得,这个二选一的局面其实是个伪命题。
打个比方,这就像是选司机。一种司机完全按导航规定的路线和时速开车,不管路上发生什么,该多快就多快,这样的好处是你永远知道从A到B要花多久,坏处是遇到堵车或者行人横穿,他不会减速。另一种司机会根据路况随时调整车速和路线,很灵活,但他会把"现在几点了"这件事也当成自己随意判断的依据,导致同样开十分钟,有时候实际走了三公里,有时候走了八公里,你根本没法根据时间推算他的位置。论文想要的司机,是既会根据路况灵活调整开车策略,又严格遵守"十分钟就是十分钟"这个物理规则的那种。
TIDES的解法:把"聪明"和"时间"分家
论文提出的架构叫TIDES,全称是Time-Implicit Decay and Eigenvalue Selectivity(隐式时间衰减与特征值选择性)。核心思路一句话就能说清:把输入依赖性从步长Δ身上挪走,挪到状态矩阵身上去。
要理解这个操作,得先看看状态空间模型的数学骨架。连续时间下,系统的演化规律写作:
x(t) = Ax(t) + Bu(t)
这里x是隐藏状态,u是输入,A是状态矩阵,决定了系统自己怎么演化,B决定了输入怎么影响状态。
状态矩阵A(在TIDES和S5里写作对角矩阵Λ,读作lambda):矩阵的每个对角元素对应一个独立的"衰减-振荡"模式,实部控制这个模式忘记过去信息的速度,虚部控制振荡的频率。
把这个连续系统离散化之后,得到的递推公式里有四个关键角色:Λ(状态矩阵)、B(输入投影)、C(输出投影)、Δ(离散化步长)。这四个角色里,到底该让谁变得"聪明"(也就是输入依赖),谁该保持"老实"(也就是静态不变),正是三种架构的分歧所在。
S5选择让这四个全部保持静态,只有Δ天然等于物理时间。Mamba选择让B、C、Δ都变聪明,牺牲了Δ的物理意义。TIDES的方案是:让Λ的实部、B、C变聪明,但让Λ的虚部和Δ保持静态和物理。
为什么偏偏是实部而不是虚部?这里有个很直觉的解释。
Λ的实部控制的是"衰减速度",也就是这个记忆单元忘记信息的快慢。让它随输入变化,意味着模型可以学会"遇到事件边界就加速遗忘,遇到重要信息就延长记忆",这个能力和Mamba的选择性在语义上是对得上号的。
但虚部控制的是振荡频率,相当于这个记忆单元"摆动"的节奏。如果让频率也随每个token变化,就相当于模型在每一步都重新定义自己的"坐标系",论文的说法是,这样一来轨迹就不再对应任何一个连贯的连续时间信号了。作者们在后面的消融实验里也验证了这一点,让虚部变聪明不但没有帮助,反而轻微拉低了性能。
这里可以再打一个比方。想象一个记账本,每一页记录一类开销,有的页面是"每天都要花的钱"(衰减快,很快就过时),有的页面是"每月才花一次的大额支出"(衰减慢,记得久)。TIDES允许模型根据当前这笔账的性质,动态决定该把它记在哪种"遗忘速度"的页面上,这就是实部变聪明的意义。但如果你还让账本自己决定"这一页该隔几天翻一次"(也就是虚部也变聪明),那记账的周期本身就乱套了,上个月记的账可能下个月就对不上页码了,整本账就失去了连贯性。
架构细节:从HiPPO初始化到低秩投影
TIDES的具体实现里有几个值得展开的设计。
首先是三个选择性投影头,分别负责计算输入依赖的Λ实部、B、C:
Re(Λ?) = WΛu? + Re(Λ?),B? = WBu? + B?,C? = WCu? + C?
这里有个巧妙的初始化技巧:偏置项Λ?、B?、C?全部用S5的HiPPO派生值来初始化,而投影权重WΛ、WB、WC则全部初始化为零。
HiPPO:一种从数学上推导出来的状态空间矩阵初始化方案,能让模型一开始就具备合理的"长期记忆"结构,而不是从随机噪声开始摸索。
这个零初始化的设计意味着,模型训练一开始,TIDES的行为和S5几乎一模一样,相当于从一个已经调试好的起点出发,再慢慢学会往哪个方向偏移才算"更聪明"。如果反过来让这些权重随机初始化,模型得先花很长时间把自己"修复"回一个合理的起点,才能开始学习选择性机制,这无疑是在浪费训练资源。这就像新员工入职,与其让他一开始就自由发挥,不如先给他一套标准操作流程打底,等他熟悉了业务逻辑,再慢慢根据实际情况做个性化调整,这样既保证了下限,又留出了上限的空间。
其次是低秩分解B和C投影。直接计算一个稠密的投影矩阵,参数量是2PH?(P是状态维度,H是隐藏维度),对于常见的P=128、H=128设置,这一个矩阵的参数量能超过整个SSM核心本身。
论文的解决办法是把这个大矩阵拆成两个小矩阵相乘,一个降维到秩r,一个再升维回去,参数量从O(PH?)降到O(rPH)。这个秩r成了一个可调的旋钮,既控制了模型容量,也起到了正则化的作用,防止投影层过拟合。
此外还有投影归一化的设计。当Λ、B、C从静态参数变成每一步都要重新计算的动态量时,误差会被放大,特别是Λ实部的误差会在递推过程中被指数级放大。TIDES对投影后的Λ实部用RMSNorm做归一化,对B和C用复数版本的归一化,这和Mamba-3里的BCNorm思路是类似的,目的都是防止训练过程中数值失控。
淡出闪光实验:把两种失败模式关进同一个笼子里观察
为了验证自己的设计思路,作者们设计了一个精巧的玩具实验,叫做"淡出闪光"(Fading Flash)。
这个实验的场景是这样的:想象一排40个探测器排成一行,每个探测器会被随机"闪一下",闪过之后开始指数衰减地发光,直到亮度归零。这40个探测器被划分成三个颜色区域,分别对应慢、中、快三种衰减速率。如果一个还在发光的探测器跨越到了新的区域,它会立刻改用新区域的衰减速率。还有一个全局的"时钟速度"参数Δ,可以让整个过程的节奏拉长或压缩。
这个设定的巧妙之处在于,它同时测试了两件事:模型能不能同时学会三种不同的衰减速率(这考验的是输入依赖能力),以及模型在时钟速度变化到训练时没见过的范围时,还能不能保持正确(这考验的是外推能力)。
作者们训练了三个参数量相当的模型来做对比:纯静态的S5、Mamba风格的代理模型(取名MambaS,刻意让步长变得输入依赖)、以及TIDES。
实验结果非常干脆。S5由于所有参数都是静态的,没法同时表示三种不同的衰减速率,表现一直卡在一个"及格线"附近,论文形容这是"LTI地板",怎么都突破不了。MambaS在训练范围内的时钟速度下表现不错,误差很低,但一旦测试时的时钟速度超出训练区间,误差会急剧飙升,论文的图表显示,在分布外区域,相对误差可以达到超过10%到100%的量级,而TIDES在同样的分布外区域依然能保持个位数的低误差。
这个结果揭示了Mamba式设计的一个本质问题:它学到的Δ?和真实时间差之间的关系,是一个完全靠数据拟合出来的映射,没有任何东西强制这个映射在训练区间之外依然成立。好比你训练一个翻译模型只见过"1公里=1000米"这种简单换算,突然让它处理"1光年等于多少米",它压根没有机制去正确外推,因为它学的不是物理定律本身,而是训练数据里碰巧出现的那几个数值对应关系。
如果不这样设计会怎样?论文的答案已经摆在那里了:如果继续让步长保持输入依赖,模型在真实世界里遇到任何训练时没见过的采样密度,性能就会断崖式下跌,而这种采样密度的变化在真实医疗、科学观测场景里几乎是家常便饭。
大规模数据集上的验证:从星星到蠕虫
光有玩具实验还不够,论文在多个大规模基准上验证了TIDES的实际效果。
第一个战场是UEA时间序列分类数据集,这是一个规整网格的分类任务集合,包含脑电图、运动捕捉等六个子数据集。TIDES在平均排名上拿到了第一(3.00),平均准确率66.1%,超过了第二名Mamba-3的64.7%。这个结果有点意外,因为UEA数据本身采样是规整的,按理说应该是Mamba家族更擅长的领域,但TIDES依然能打赢,说明它在规则网格任务上也没有牺牲表现力。
第二个战场是Physiome-ODE,一个由50个生物物理微分方程模拟出来的不规律时间序列预测基准。
这里需要补充一句背景:此前的医疗类不规律时间序列基准(比如PhysioNet2012、MIMIC系列)被社区发现存在严重缺陷,这些数据集往往是从死亡率分类任务改造而来,存在一个"时间盲"的恒定预测基线就能拿到不错分数的问题,模型根本不需要理解时间就能蒙混过关。Physiome-ODE是针对这个缺陷专门设计的新基准,保证了生成数据的协变量真实存在,任务本身是良定义的。
在这个更严格的基准上,TIDES拿到了最佳平均排名2.40,和最强的连续时间基线LinODEnet(2.62)打成平手,两者在50个数据集里各自赢了16个。论文还给出了统计检验,TIDES和LinODEnet排名差异的95%置信区间是[-0.87, 0.34],这个区间包含零,说明差异不算显著,但偏向TIDES这一边。
第三个战场是随机丢弃实验,用来专门隔离采样密度变化带来的影响。实验者在EigenWorms数据集(一种蠕虫运动轨迹数据)上,训练时随机丢弃50%的时间点,测试时则分别在丢弃10%到90%的不同密度下评估模型表现。
结果呈现出三种清晰的失败模式。只让B、C保持输入依赖但Λ是静态的变体(S5和TIDESΛ),表现一直卡在接近随机猜测的水平,说明光有读写能力的灵活性,没有衰减速率的灵活性,是不够用的。让步长Δ保持输入依赖的变体(MambaS,以及官方的Mamba、Mamba-2、Mamba-3),在测试丢弃率达到70%以内都表现尚可,但一旦到了90%这种极端场景,准确率从0.7左右直接腰斩到0.4到0.6之间。一个叫RFormer的非SSM连续时间变换器基线,也出现了类似的崩溃,原因是它用固定数量的窗口来做路径签名摘要,这个窗口数量是写死在位置编码里的,没法在测试时根据实际观测密度调整。
只有TIDES在整个10%到90%的测试区间内保持了相对平稳的表现,平均准确率达到0.739,是所有对比方案里最高的。
第四个战场是自然不规律数据集,涵盖天文学、农业、神经形态传感器和气候四个领域,这些数据集的不规律性不是人为模拟出来的,而是测量过程本身决定的。
比如MACHO和ASAS-SN这两个望远镜拍摄的变星光变曲线数据集,观测节奏完全取决于天气和观测条件;TimeSen2Crop和EuroCropsML这两个卫星农作物时间序列数据集,重访周期和云层覆盖让每个样本都有自己独特的时间戳集合;SHD和SSC这两个神经形态传感器数据集,记录的是异步脉冲事件,间隔跨越好几个数量级;USHCN气候站点数据,每个变量各自有自己的观测时间点,完全不同步。
在这八个数据集里,TIDES在六个上达到或超过了各自论文报告的参照基线。特别是在USHCN上,TIDES把均方误差从0.159降到了0.147,平均绝对误差从0.261降到了0.211,改善幅度相当明显。
这里有个处理细节值得一提:USHCN原始格式是"宽表"形式,每个时间戳对应一行,每个变量一列,没观测到的地方留空。作者把它转换成了"长表"格式,也就是每条记录变成(时间戳, 通道编号, 数值)这样的三元组,只保留真正被观测到的条目。这个转换本身没有花哨的技术含量,但它精确对应了TIDES要解决的那类问题:每个传感器通道都有自己独立的采样节奏,不能强行凑成一张整齐的表格。
设计原则的延伸:把"解释规则"和"表达能力"分开
论文在讨论部分提炼出了一条更普适的设计原则:让离散化和表达能力各司其职。
物理采样间隔只应该通过把连续时间生成器转化成离散递推的那条规则进入模型,这条规则的含义应该是解析确定的,而不是从数据里学出来的。表达能力应该留在连续时间生成器本身,也就是TIDES里的Λ实部、B、C这几个角色上。
这个原则解释了为什么Mamba在语言建模这类规则网格任务上依然强大,因为那些任务里本来就没有"物理时间"这个概念需要保留,输入依赖的步长扮演的是另一种角色。但一旦这个步长被要求同时承担"表达灵活性"和"物理时间语义"两个任务,矛盾就会在遇到分布外采样间隔时爆发出来。
这让我想起一个关于分工的朴素道理:一个系统里,如果让同一个开关同时控制"灯光亮度"和"房间温度",平时看起来运转正常,因为你调节亮度的时候恰好也顺带调节了温度,两者需求一致。但总有一天你只想调亮度不想动温度,这时候你会发现这个设计从一开始就埋了雷。TIDES做的事情,就是把这两个开关拆开,一个管真正的物理时间(对应调温度),一个管模型的灵活性(对应调亮度),互不干扰。
当然,论文也坦诚地列出了一些局限。TIDES比S5多了几个需要调的超参数,比如低秩投影的秩r、投影深度、Λ的重参数化方式,调参成本更高。论文的并行扫描实现用的是通用版本,没有针对硬件做专门优化,所以计算效率的比较更多是架构层面而非工程层面的。另外,作者们明确表示没有在语言建模这类规则网格长序列任务上验证TIDES,这个设计原则能不能在那种尺度下依然成立,是留给未来的开放问题。
写在后面
读完这篇论文,最触动我的其实是那个"淡出闪光"实验的设计思路。它没有直接拿UEA或者Physiome-ODE这种大型基准来说话,而是先花精力造了一个极简的玩具问题,专门用来把两种失败模式剥离开来观察。这种做法在机器学习论文里不算罕见,但做得这么干净利落的不多见,三条曲线,LTI模型卡在地板上、Mamba式模型在训练区间外暴毙、TIDES全程稳定,一张图把整个论证讲完了,比堆砌十个大表格更有说服力。
还有一个细节值得单独说一说:论文里提到TIDES的零初始化策略,让训练一开始完全等价于S5的行为,再慢慢学出"选择性"这个增量。这种"从一个已知良好的基线出发再做微调"的思路,其实在很多领域都有影子,比如迁移学习里用预训练权重初始化,再在下游任务上微调。TIDES把这个思路用在了架构内部的初始化策略上,细节虽小,但很说明问题,好的工程直觉往往体现在这种不起眼的地方。
论文结尾提到一个开放方向,叫"任意时刻预测":因为TIDES在推理时Δ依然是物理量,理论上一个训练好的TIDES可以直接喂入任意想要的Δ,不用重新训练就能预测未来任意时间点的状态。这个性质听起来很诱人,但论文也老实承认,这种外推能力到底能在多远的未来保持可靠,还是一个没解答的问题。一个模型在训练时只见过几分钟到几小时的间隔,你让它去预测几年后的状态,它真的还能"理解"那么长的时间跨度意味着什么吗?这个问题留给读者自己去想了。
Q&A
Q1:TIDES是什么?
A:TIDES是一种改进的选择性状态空间模型,它把输入依赖性放在状态矩阵的衰减速率上,而不是放在离散化步长上,这样既保留了类似Mamba的per-token表达能力,又像S5一样能正确处理不规律的时间采样。
Q2:TIDES和Mamba、S5相比有什么优势?
A:Mamba的步长参数是由输入学出来的,遇到训练时没见过的采样间隔会性能崩溃;S5虽然能正确处理不规律时间,但所有参数静态不变,表达能力有限。TIDES把两者优点结合,在UEA分类和Physiome-ODE回归基准上都拿到了最好的平均排名。
Q3:TIDES在哪些真实场景的数据集上做了验证?
A:论文在天文学变星光变曲线、农作物卫星遥感时间序列、神经形态传感器脉冲数据、气候站点观测数据这四类自然不规律数据集上做了测试,八个数据集里有六个达到或超过了参照基线表现。
好文章,需要你的鼓励
RGPO用"临时脚手架"破解大模型强化学习的奖励稀疏难题:先让模型独立解题,失败则分段放出标准解法引导重写,仅采纳经验证更优的答案。难题测试准确率从0跃至99.5%,语言模型平均分高出最强基线5.0分。
论文提出用MoE模型的路由器输出作为跨语言对齐目标,通过持续预训练对翻译句对施加路由KL散度损失,在不改变分词和架构的前提下让隐藏表示更接近,并在四个开源MoE模型、七种语言上验证了下游任务性能的一致提升。
DiffGate提出难度门控的教师指导机制,让验证器决定何时需要教师介入,仅对失败且困难的轨迹提供有界教师指导,结合GRPO强化学习,在数学与代码任务上显著提升解题覆盖率与跨领域迁移能力。
研究者用固定不变的16位二进制编码替代传统可训练词嵌入表,在17亿参数规模模型上训练1000亿token,证明模型仍可获得实质语言能力,揭示输入表并非必需,但性能略逊于可学习方案。