Problem Statement
在长短期时间序列预测问题中,给定历史时间序列样本的回溯窗口 L = ( x 1 , x 2 , . . , x L ) L = (x_1, x_2, .., x_L) L=(x1,x2,..,xL),长度为 L L L,其中每个时间步 t t t的样本 x t ∈ R M x_t \in \mathbb{R}^M xt∈RM,包含 M M M个变量,我们的目标是预测未来的 F F F个值,即 F = ( x L + 1 , x L + 2 , . . , x L + F ) F = (x_{L+1}, x_{L+2}, .., x_{L+F}) F=(xL+1,xL+2,..,xL+F),长度为 F F F。此外,假设已知与这些时间序列样本相关的时间上下文信息 ( c 1 , c 2 , . . , c L ) (c_1, c_2, .., c_L) (c1,c2,..,cL),其维度为 C C C,例如周几和一天中的小时信息【16】。
这个问题设置在滚动预测(rolling forecasting)框架下【42】。在完成一次预测 F F F之后,回溯窗口 L L L向前移动 F F F个时间步,这样模型就可以进行下一次预测。具体而言,这意味着在预测完成后,新的回溯窗口将包含最新的 F F F个时间步的信息,并且根据这些新的数据进行下一步的预测。
关键点解释:
-
回溯窗口(Look-back Window):这是模型在进行预测之前用来观察历史数据的窗口。窗口长度 L L L决定了模型可以参考多少过去的数据来进行预测。每个数据点 x t x_t xt包含 M M M个变量,这可能包括多个相关的时间序列特征,例如温度、湿度、股票价格等。
-
未来值预测(Future Values Forecasting):目标是预测长度为 F F F的未来值,这要求模型能够捕捉和理解数据中的趋势和模式,从而提供精确的预测。
-
时间上下文信息(Temporal Context Information):这些信息可以帮助模型更好地理解时间序列中的模式。例如,知道某天是周末还是工作日、某个时间点是白天还是晚上,可以帮助模型更好地预测某些类型的数据,如交通流量或能源消耗。
-
滚动预测(Rolling Forecasting):这是时间序列预测中的常见方法,每次预测后,回溯窗口移动 F F F步,以包含最新的数据。这种方法确保了模型始终使用最新的信息进行预测,有助于应对时间序列中的变化趋势。
通过这种设置,模型可以在时间序列数据中有效地捕捉和预测长短期依赖关系。这个过程在许多实际应用中都非常重要,例如金融市场预测、需求预测和天气预报等。
State Space Models
状态空间模型(SSM)是一类最近发展的序列建模框架,与RNNs、CNNs以及传统状态空间模型有广泛的联系【14】。S4【13】和Mamba【11】是其中的两个代表性模型,它们的灵感来自一个连续系统,该系统通过隐式的潜在状态 h ( t ) h(t) h(t)从输入函数或序列 x ( t ) ∈ R x(t) \in \mathbb{R} x(t)∈R映射到输出函数或序列 y ( t ) ∈ R y(t) \in \mathbb{R} y(t)∈R。具体来说,这个过程可以表示为:
- 连续时间系统方程:
h ′ ( t ) = A h ( t ) + B x ( t ) h'(t) = Ah(t) + Bx(t) h′(t)=Ah(t)+Bx(t)
y ( t ) = C h ( t ) y(t) = Ch(t) y(t)=Ch(t)
其中, A ∈ R N × N A \in \mathbb{R}^{N \times N} A∈RN×N、 B ∈ R N × 1 B \in \mathbb{R}^{N \times 1} B∈RN×1和 C ∈ R 1 × N C \in \mathbb{R}^{1 \times N} C∈R1×N是可学习的矩阵。这些矩阵决定了输入如何影响潜在状态 h ( t ) h(t) h(t)的变化以及潜在状态如何产生输出 y ( t ) y(t) y(t)。
离散化
SSM可以通过步长 Δ \Delta Δ将连续信号离散化为离散序列。离散化后的方程为:
- 离散时间系统方程:
h t = A h t − 1 + B x t h_t = Ah_{t-1} + Bx_t ht=Aht−1+Bxt
y = C h t y = Ch_t y=Cht
在这里,离散参数(
A
,
B
A, B
A,B)可以通过离散化规则从连续参数(
Δ
,
A
,
B
\Delta, A, B
Δ,A,B)中获得。例如,零阶保持(ZOH)规则可以表示为:
A
=
exp
(
Δ
A
)
,
B
=
(
exp
(
Δ
A
)
−
I
)
⋅
Δ
B
A = \exp(\Delta A), \quad B = (\exp(\Delta A) - I) \cdot \Delta B
A=exp(ΔA),B=(exp(ΔA)−I)⋅ΔB
计算方法
离散化后的模型可以通过两种方式进行计算:
-
线性递归推理: 如方程2所示,可以作为一个线性递归系统进行推理。这个方法计算每个时间步的潜在状态 h t h_t ht,并根据该状态产生输出 y t y_t yt。
-
全局卷积训练: 在训练过程中,可以使用卷积的方法来计算,如方程3所示:
K = ( C B , C A B , … , C A k B , … ) K = (CB, CAB, \dots, CA^kB, \dots) K=(CB,CAB,…,CAkB,…)
y = x ∗ K y = x * K y=x∗K其中, K K K是卷积核。这里的卷积核 K K K是通过对矩阵 A A A和 B B B的多项展开得到的,它代表了系统对输入序列的响应。这个卷积过程允许在一次计算中考虑到多个时间步的输入对输出的影响,从而实现更高效的计算。
模型的优势
通过上述机制,SSM模型能够在处理序列数据时捕捉长距离依赖,并且可以有效地表示系统的状态动态。相比传统的RNN和LSTM,SSM具有更好的计算效率,特别是在长时间序列中。此外,SSM还可以通过设计适当的矩阵 A , B , C A, B, C A,B,C结构,调整对不同特征的关注度,这使得它们在多领域应用中表现优异,如自然语言处理、音频处理、基因组学等。