Timemixer
1 摘要
1.1背景
时间序列预测广泛应用于交通规划和天气预报等广泛应用
1.2挑战
- 现实世界的时间序列通常呈现复杂的时间变化,这使得预测极具挑战性
1.3提出新方法/角度
-
多尺度混合新视图(时间序列在不同的采样尺度上呈现不同的模式)
(1)微观和宏观信息分别反映在细尺度和粗尺度上,因此复杂的变化可以内在地解开(通过下采样将时序分变化成H/2,H/4…等长度,长度越短粒度越粗,对应于宏观)
-
提出了 TimeMixer 作为一个完全基于 MLP 的架构,主要包含两个部分:
(1)过去可分解混合 (PDM)模块:PDM 多尺度序列进行分解,并进一步分别在细到粗和粗到细方向上混合分解的季节和趋势分量,依次聚合微观季节和宏观趋势信息
(2)未来多预测器混合 (FMM) 块:集成了多个预测器,以利用多尺度观测的互补预测能力。

1.4贡献
TimeMixer能够在具有良好运行时效率的长期和短期预测任务中实现一致的最先进的性能。
2引言
2.1 背景(引出问题)
-
场景介绍:气候条件估计,交通状态预测,经济分析
-
方法介绍:
(1)多周期分析方法:timesnet
(2)基于MLP的方法:LTSF-Linear,N-Beats,N-HiTS
(3)序列分解为基础的方法:Autoformer,fedformer,MICN
(4)基于卷积神经网络的方法:TCN、SCINet,timesnet
2.2挑战
(1)由于现实世界或系统的复杂和非平稳性质,观察到的序列通常呈现出复杂的时间模式,其中多种变化,如增加、减少和波动,深度混合,给预测任务带来了严峻的挑战。
(2)未来的变化是由多个尺度的变化共同决定的
2.3 贡献
(1)从多尺度混合的新视角解决了序列预测的复杂时间变化,同时利用多尺度序列的解纠缠变化和互补预测能力。
(2)提出了 TimeMixer 作为预测模型,结合历史提取阶段和未来预测阶段的多尺度信息
(3)TimeMixer在广泛的基准测试中以卓越的效率在长期和短期预测任务中实现了一致的最先进的性能。
3 相关工作
3.1预测方向工作介绍
四种范式:RNN-、CNN-、Transformer- 和基于 MLP 的方法
- 基于 RNN 和 CNN 的方法都受到感受野的限制,限制了长期预测能力
- 基于 Transformer 的预测方法复杂度高
- MLP简单高效准确
3.2特定的设计介绍
-
序列分解
(1)Auto-former通过 moving average 得到 seasonal和trend项
(2)Fed-Former多个核移动平均增强序列分解块
(3)DLinear (Zeng et al., 2023) 利用序列分解作为线性回归前的预处理
(4)MICN (Wang et al., 2023) 还将输入序列分解为季节性和趋势项,然后整合全局和局部上下文进行预测
-
多周期分析
(1)TimesNet (Wu et al., 2023a) 采用傅里叶变换将时间序列映射到具有不同周期长度的多个分量,并提出了一种模块化架构来处理分解的组件。
()其他的不熟就没写
3.3不同点及工作
上述模型的未来预测并没有同时利用从过去观测中提取的不同尺度的信息。
在TimeMixer中,提出了一种新的多尺度混合架构与Past-Decomposable-Mixing,用解纠缠序列进行多尺度表示学习,未来多预测器混合,集成多尺度序列的互补预测技能
4 Timxer

-
MTS学习序列在多个尺度下的信息:
(1)对序列进行平均下采样,通过对过去观察数据 R ∈ R p × c R \in \mathbb{R}^{p \times c} R∈Rp×c进行平均池化,可以得到多尺度的序列 X = { x 0 , ⋯ , x M } , w h e r e x m ∈ R ⌊ p 2 m ⌋ × C . m ∈ { 0 , ⋯ , M } , C 表示维度 . X=\{\mathbf{x}_0,\cdots,\mathbf{x}_M\},\mathrm{~where~}\mathbf{x}_m\in\mathbb{R}^{\lfloor\frac p{2^m}\rfloor\times C}.m\in\{0,\cdots,M\},C\mathrm{~表示维度}. X={x0,⋯,xM}, where xm∈R⌊2mp⌋×C.m∈{0,⋯,M},C 表示维度.
注:这里有好几种获取多尺度的方法如卷积
-
Past-Decomposable-Mixing (PDM) blocks
(1)对不同尺度下的序列进行分解
if configs.decomp_method == 'moving_avg': self.decompsition = series_decomp(configs.moving_avg) .... for x in x_list: #对不同尺度的序列进行分解 season, trend = self.decompsition(x) def forward(self, x): moving_mean = self.moving_avg(x) res = x - moving_mean return res, moving_means m , t m = SeriesDecomp ( x m l ) , m ∈ { 0 , … , M } (1) s_m, t_m = \text{SeriesDecomp}(x_m^l), \quad m \in \{0, \ldots, M\}\tag1 sm,tm=SeriesDecomp(xml),m∈{0,…,M}(1)
(2)利用堆叠的过去可分解混合(PDM)块来混合不同尺度的过去信息:
X ( l ) = P D M ( X ( l − 1 ) ) , l ∈ { 0 , … , L } X^{(l)} = PDM(X^{(l-1)}), \quad l \in \{0, \ldots, L\} X(l)=PDM(X(l−1)),l∈{0,…,L}
整个模块是L层的堆叠,当前层是通过上一层的结果进一步混合得到的,公式如下
X
l
=
X
l
−
1
+
F
e
e
d
F
o
r
w
a
r
d
(
S
−
M
i
x
(
{
s
m
l
}
m
=
0
M
)
+
T
−
M
i
x
(
{
t
m
l
}
m
=
0
M
)
)
(2)
\mathcal{X}^{l}=\mathcal{X}^{l-1}+\mathrm{FeedForward}\left(\mathrm{S-Mix}\left(\{\mathbf{s}_{m}^{l}\}_{m=0}^{M}\right)+\mathrm{T-Mix}\left(\{\mathbf{t}_{m}^{l}\}_{m=0}^{M}\right)\right)\tag2
Xl=Xl−1+FeedForward(S−Mix({sml}m=0M)+T−Mix({tml}m=0M))(2)
①:Seasonal Mixing(S-Mix)
对于季节项
S
(
l
)
=
{
s
0
(
l
)
,
…
,
s
M
(
l
)
}
S^{(l)} = \{s^{(l)}_0, \ldots, s^{(l)}_M\}
S(l)={s0(l),…,sM(l)},我们以残差的方式对第m个尺度使用自底向上混合层来实现自底向上的季节信息交互。
For
m
=
1
to
M
:
s
m
(
l
)
=
s
m
(
l
)
+
Bottom-Up-Mixing
(
s
m
−
1
(
l
)
)
.
(3)
\text{For } m = 1 \text{ to } M: \quad s^{(l)}_m = s^{(l)}_m + \text{Bottom-Up-Mixing}(s^{(l)}_{m-1}).\tag3
For m=1 to M:sm(l)=sm(l)+Bottom-Up-Mixing(sm−1(l)).(3)
输入维度为
⌊
P
2
m
−
1
⌋
\lfloor\frac P{2^{m-1}}\rfloor
⌊2m−1P⌋,输出维度为
⌊
P
2
m
⌋
\lfloor\frac P{2^{m}}\rfloor
⌊2mP⌋,迭代的过程;
②:Trend Mixing(T-Mix)
对于趋势项,相反于季节项,用残差连接的方式相反,通过自顶向下混合层来实现自顶向下的趋势信息交互。
For
m
=
(
M
−
1
)
to
0
do:
t
m
(
l
)
=
t
m
(
l
)
+
Top-Down-Mixing
(
t
m
+
1
(
l
)
)
(4)
\text{For } m = (M - 1) \text{ to } 0 \text{ do:} t^{(l)}_m = t^{(l)}_m + \text{Top-Down-Mixing}(t^{(l)}_{m+1}) \tag4
For m=(M−1) to 0 do:tm(l)=tm(l)+Top-Down-Mixing(tm+1(l))(4)
输入维度为
⌊
P
2
m
⌋
\lfloor\frac P{2^{m}}\rfloor
⌊2mP⌋,输出维度为
⌊
P
2
m
−
1
⌋
\lfloor\frac P{2^{m-1}}\rfloor
⌊2m−1P⌋,是一个迭代的过程;

3.FUTURE MULTIPREDICTOR MIXING
经过L层PDM模块,得到多尺度的历史信息
X
L
=
{
x
0
L
,
⋯
,
x
M
L
}
,
x
m
L
∈
R
⌊
P
2
m
⌋
×
d
m
o
d
e
l
X^{L}=\{\mathbf{x}_{0}^{L},\cdots,\mathbf{x}_{M}^{L}\},\mathbf{x}_{m}^{L}\in \mathbb{R}^{\lfloor\frac{P}{2^m}\rfloor\times d_{\mathrm{model}}}
XL={x0L,⋯,xML},xmL∈R⌊2mP⌋×dmodel,对多尺度的信息进行聚合预测,公式如下:
x
^
m
=
P
r
e
d
i
c
t
o
r
m
(
x
m
L
)
,
m
∈
{
0
,
⋯
,
M
}
,
x
^
=
∑
m
=
0
M
x
^
m
,
(5)
\widehat{\mathbf{x}}_{m}=\mathrm{Predictor}_{m}(\mathbf{x}_{m}^{L}), m\in\{0,\cdots,M\}, \widehat{\mathbf{x}}=\sum_{m=0}^{M}\widehat{\mathbf{x}}_{m},\tag5
x
m=Predictorm(xmL),m∈{0,⋯,M},x
=m=0∑Mx
m,(5)
其中
x
^
m
∈
R
F
×
C
代表从第
m
尺度序列中的未来预测,最终输出是
x
^
∈
R
F
×
C
。
P
r
e
d
i
c
t
o
r
m
(
⋅
)
指的是第
m
尺度序列的预测器,首先
采用单层线性层直接对长度为F的未来进行回归,从长度为
⌈
P
2
m
⌉
的过去信息中提取,然后将深层表示投影到C个变量上。
\text{其中 }\hat{x}_m\in\mathbb{R}^{F\times C}\text{ 代表从第}m\text{尺度序列中的未来预测,最终输出是}\hat{x}\in\mathbb{R}^{F\times C}\text{。}Predictor_m(\cdot)\text{ 指的是第}m\text{尺度序列的预测器,首先}\\\text{采用单层线性层直接对长度为F的未来进行回归,从长度为}\left\lceil\frac P{2^m}\right\rceil\text{的过去信息中提取,然后将深层表示投影到C个变量上。}
其中 x^m∈RF×C 代表从第m尺度序列中的未来预测,最终输出是x^∈RF×C。Predictorm(⋅) 指的是第m尺度序列的预测器,首先采用单层线性层直接对长度为F的未来进行回归,从长度为⌈2mP⌉的过去信息中提取,然后将深层表示投影到C个变量上。
5 实验
5.1基准

5.2long-term forecasting comparison

5.3 short-term forecasting comparison
对于PEMS数据集 多变量 input 96 ,output 12

M4数据集单一变量,所有预测长度都在 [6, 48] 中。

5.4 消融实验
分别对序列分解,季节项和趋势项的采样方式进行替换,消除等,再结合聚合操作实现全面的分析

5.5可视化分析
在图 3(a)∼(b) 中可视化了季节性混合和趋势混合的时间线性权重

(1)其中季节性混合层呈现周期性变化(a) 中的重复蓝线,趋势混合层以局部聚合为主(b) 中的主导对角黄线。这也验证了对季节性和趋势术语采用单独的混合技术的必要性。
(2)图 3© 显示了细(尺度 0)和粗(尺度 3)尺度上季节和趋势项的预测。我们可以观察到,粗尺度细尺度和趋势部分的季节性术语对于准确预测至关重要。
(3)在ETTh1数据集上,对96-96上,对几个尺度的可视化及多尺度混合的效果如下图:


5.6 尺度选择

当 M 增加时,较短预测长度的性能增益下降。相比之下,对于更长的预测长度,随着 M 的增加,性能会有所提高。因此,我们将 M 设置为 3 进行长期预测,将 1 设置为短期预测以权衡性能和效率。
6 总结
提出了具有多尺度混合架构的 TimeMixer 来解决时间序列预测中复杂的时间变化。在过去可分解混合和未来多预测器混合块的支持下,TimeMixer利用了解纠缠的变化和互补的预测能力。在所有的实验中,TimeMixer 在长期和短期预测任务中都取得了一致的最先进的性能。此外,得益于完全基于 MLP 的架构,TimeMixer 表现出良好的运行时效率。
697

被折叠的 条评论
为什么被折叠?



