TimeMixer:用于时间序列预测的可分解多尺度混合模型
在时间序列预测领域,准确捕捉复杂的时间变化是关键挑战。本文介绍的“TimeMixer: Decomposable Multiscale Mixing for Time Series Forecasting”提出了创新的TimeMixer模型,在长短期预测任务中均展现卓越性能。
一、研究背景
时间序列预测应用广泛,但现实中的时间序列变化复杂,给预测带来困难。当前主流方法如序列分解和多周期性分析有一定效果,但仍需新的思路。研究发现时间序列在不同采样尺度下呈现不同变化模式,这为多尺度分析提供了依据,TimeMixer正是基于此提出的新模型。
二、模型架构
(一)多尺度混合架构
TimeMixer通过平均池化将过去观测值下采样为多个尺度,获取多尺度时间序列。假设输入的过去观测值为 x ∈ R P × C x \in \mathbb{R}^{P \times C} x∈RP×C,经过平均池化后得到 M M M个尺度的时间序列 X = { x 0 , ⋯ , x M } X = \{x_0, \cdots, x_M\} X={x0,⋯,xM} ,其中 x m ∈ R ⌊ P 2 m ⌋ × C x_m \in \mathbb{R}^{\lfloor\frac{P}{2^{m}}\rfloor \times C} xm∈R⌊2mP⌋×C , m ∈ { 0 , ⋯ , M } m \in \{0, \cdots, M\} m∈{0,⋯,M}, C C C表示变量数。这一步的目的是将原始时间序列在不同尺度下进行表示,最低层序列 x 0 = x x_0 = x x0=x包含最精细的时间变化,最高层序列 x M x_M xM表示宏观变化。
然后通过嵌入层将这些多尺度序列投影为深度特征
x
0
=
E
m
b
e
d
(
X
)
x^0 = Embed(X)
x0=Embed(X)。接着,利用堆叠的Past - Decomposable - Mixing(PDM)块混合不同尺度的过去信息,对于第
l
l
l层,其输入为
x
l
−
1
x^{l - 1}
xl−1,PDM的过程可形式化表示为:
x
l
=
P
D
M
(
X
l
−
1
)
,
l
∈
{
0
,
⋯
,
L
}
x^l = PDM(X^{l - 1}), l \in \{0, \cdots, L\}
xl=PDM(Xl−1),l∈{0,⋯,L}
其中
L
L
L是总层数,
x
l
=
{
x
0
l
,
⋯
,
x
M
l
}
x^l = \{x_0^l, \cdots, x_M^l\}
xl={x0l,⋯,xMl},
x
m
l
∈
R
⌊
P
2
m
⌋
×
d
m
o
d
e
l
x_m^l \in \mathbb{R}^{\lfloor\frac{P}{2^{m}}\rfloor \times d_{model}}
xml∈R⌊2mP⌋×dmodel表示混合后的过去表示,
d
m
o
d
e
l
d_{model}
dmodel为通道数。该公式描述了PDM块对不同尺度过去信息的混合操作,随着层数
l
l
l的增加,逐步整合多尺度信息。
最后通过Future - Multipredictor - Mixing(FMM)块集成多尺度过去信息进行未来预测,即:
x
^
=
F
M
M
(
X
L
)
\hat{x} = FMM(X^{L})
x^=FMM(XL)
其中
x
^
∈
R
F
×
C
\hat{x} \in \mathbb{R}^{F \times C}
x^∈RF×C代表最终预测结果。此公式体现了FMM块利用前面PDM块处理后的多尺度信息进行最终预测的过程。
(二)Past - Decomposable - Mixing
由于现实中时间序列即使在粗尺度也存在混合变化,PDM块分别对多尺度时间序列的季节性和趋势性成分进行分解和混合。对于第
l
l
l个PDM块,先将多尺度时间序列
x
m
l
x_m^l
xml通过Autoformer中的序列分解块分解为季节性部分
s
l
=
{
s
0
l
,
⋯
,
s
M
l
}
s^l = \{s_0^l, \cdots, s_M^l\}
sl={s0l,⋯,sMl}和趋势部分
T
l
=
{
t
0
l
,
⋯
,
t
M
l
}
\mathscr{T}^l = \{t_0^l, \cdots, t_M^l\}
Tl={t0l,⋯,tMl} ,其过程可表示为:
s
m
l
,
t
m
l
=
S
e
r
i
e
s
D
e
c
o
m
p
(
x
m
l
)
,
m
∈
{
0
,
⋯
,
M
}
s_m^l, t_m^l = SeriesDecomp(x_m^l), m \in \{0, \cdots, M\}
sml,tml=SeriesDecomp(xml),m∈{0,⋯,M}
这一步是对每个尺度的时间序列进行季节性和趋势性分解,为后续分别处理做准备。
然后,考虑到季节性和趋势部分的不同特性,分别对它们进行混合操作。
季节性混合采用自下而上的方式,对于多尺度季节性部分
s
l
=
{
s
0
l
,
⋯
,
s
M
l
}
s^l = \{s_0^l, \cdots, s_M^l\}
sl={s0l,⋯,sMl},通过Bottom - Up - Mixing层以残差方式实现自下而上的季节性信息交互,公式为:
for
m
:
1
→
M
do:
s
m
l
=
s
m
l
+
B
o
t
t
o
m
−
U
p
−
M
i
x
i
n
g
(
s
m
−
1
l
)
\text{for } m: 1 \to M \text{ do: } s_m^l = s_m^l + Bottom - Up - Mixing(s_{m - 1}^l)
for m:1→M do: sml=sml+Bottom−Up−Mixing(sm−1l)
其中Bottom - Up - Mixing(·)由两个带有中间GELU激活函数的线性层组成,输入维度是
⌊
P
2
m
−
1
⌋
\lfloor\frac{P}{2^{m - 1}}\rfloor
⌊2m−1P⌋ ,输出维度是
⌊
P
2
m
⌋
\lfloor\frac{P}{2^{m}}\rfloor
⌊2mP⌋。该公式描述了季节性混合过程中,如何从较低尺度的季节性信息逐步向上补充,以完善不同尺度的季节性建模。
趋势性混合采用自上而下的方式,对于多尺度趋势成分
T
l
=
{
t
0
l
,
⋯
,
t
M
l
}
\mathscr{T}^l = \{t_0^l, \cdots, t_M^l\}
Tl={t0l,⋯,tMl},通过Top - Down - Mixing层以残差方式实现自上而下的趋势信息交互,公式为:
for
m
:
(
M
−
1
)
→
0
do:
t
m
l
=
t
m
l
+
T
o
p
−
D
o
w
n
−
M
i
x
i
n
g
(
t
m
+
1
l
)
\text{for } m: (M - 1) \to 0 \text{ do: } t_m^l = t_m^l + Top - Down - Mixing(t_{m + 1}^l)
for m:(M−1)→0 do: tml=tml+Top−Down−Mixing(tm+1l)
Top - Down - Mixing(·)同样是两个带有中间GELU激活函数的线性层,输入维度是
⌊
P
2
m
+
1
⌋
\lfloor\frac{P}{2^{m + 1}}\rfloor
⌊2m+1P⌋ ,输出维度是
⌊
P
2
m
⌋
\lfloor\frac{P}{2^{m}}\rfloor
⌊2mP⌋。此公式体现了趋势性混合利用粗尺度的宏观信息指导细尺度趋势建模的过程。
(三)Future - Multipredictor - Mixing
不同尺度的时间序列预测能力不同,FMM块通过聚合多尺度序列的预测结果,充分利用其互补的预测能力。具体来说:
x
^
m
=
P
r
e
d
i
c
t
o
r
m
(
x
m
L
)
,
m
∈
{
0
,
⋯
,
M
}
\hat{x}_m = Predictor_m(x_m^L), m \in \{0, \cdots, M\}
x^m=Predictorm(xmL),m∈{0,⋯,M}
x
^
=
∑
m
=
0
M
x
^
m
\hat{x} = \sum_{m = 0}^{M} \hat{x}_m
x^=m=0∑Mx^m
其中
x
^
m
∈
R
F
×
C
\hat{x}_m \in \mathbb{R}^{F \times C}
x^m∈RF×C代表第
m
m
m个尺度序列的未来预测,
P
r
e
d
i
c
t
o
r
m
(
⋅
)
Predictor _m(\cdot)
Predictorm(⋅)表示第
m
m
m个尺度序列的预测器,先通过一个线性层从长度为
⌊
P
2
m
⌋
\lfloor\frac{P}{2^{m}}\rfloor
⌊2mP⌋的提取过去信息直接回归长度为
F
F
F的未来信息,然后将深度表示投影到
C
C
C个变量。这两个公式展示了FMM块如何对每个尺度的信息进行预测,并最终聚合得到整体预测结果。
三、实验结果
(一)实验设置
在18个真实世界基准数据集上进行实验,涵盖长短期预测任务,对比15个基线模型。采用多种评估指标,如长期预测使用均方误差(MSE)和平均绝对误差(MAE),短期预测在PeMS数据集上使用平均绝对误差(MAE)、平均绝对百分比误差(MAPE)、均方根误差(RMSE),在M4数据集上使用对称平均绝对百分比误差(SMAPE)、平均绝对缩放误差(MASE)和总体加权平均(OWA)。实验在PyTorch框架下进行,使用NVIDIA A100 GPU。
(二)主要结果
在长期预测任务中,TimeMixer在所有基准测试中均取得领先成绩,在Weather和Solar - Energy数据集上,相比PatchTST,MSE分别降低9.4%和24.7%。在短期预测任务中,TimeMixer在多变量和单变量设置下表现出色,在处理复杂时空相关性的PeMS基准测试和包含多种时间变化的M4数据集中,均展现良好性能。
(三)模型分析
通过消融实验验证了TimeMixer各组件的有效性,如去除FMM会显著降低预测精度,不同的过去混合方式对模型性能影响较大。可视化结果展示了季节性和趋势性混合的不同特性,以及多尺度预测的互补性。此外,TimeMixer在效率方面表现优异,在GPU内存和运行时间上优于许多基于Transformer的模型。
四、研究结论
TimeMixer通过多尺度混合架构有效处理时间序列预测中的复杂时间变化,在长短期预测任务中均达到了最先进的性能,且运行效率高。
从可视化角度来看,timemixer能有效的分解出时序序列的季节性和趋势性,使得模型具有良好的可解释性。
未来研究方向包括探索替代混合设计以提高参数效率、融入变量维度混合以及进行理论分析。