MSGNet:学习多变量时间序列预测中的多尺度间序列相关性
- 文献介绍
- 摘要
- 总体介绍
- 背景及当前面临的问题
- 现有解决方案及其局限性
- 本文的解决方案及其贡献
- 背景知识的相关工作
- 背景知识
- 问题表述:
- Method论文主要工作
- 1.输入嵌入和剩余连接 (Input Embedding and Residual Connection)
- 扩展:embedding
- 2.尺度识别(Scale Identification)
- 3.多尺度自适应图卷积(Multi-scale Adaptive Graph Convolution)
- 4.多头注意力和尺度聚合(Multi-head Attention and Scale Aggregation)
- 5.输出层(Output Layer)
- 实验/评估/结果
- 实验设置
- 结果分析
- 实验1:对比实验
- 实验1:对比实验——Flight 数据集
- 实验2:学习序列间相关性的可视化
- 实验3:消融实验
- 实验4:泛化能力
- 实验5:较长输入序列下的性能
文献介绍
论文标题:MSGNet: Learning Multi-Scale Inter-Series Correlations for Multivariate Time Series Forecastin
论文链接: https://doi.org/10.48550/arXiv.2401.00423
代码链接: https://github.com/YoZhibo/MSGNet
发表年份: 2024
发表平台: AAAI
平台等级:CCF A
作者信息: Wanlin Cai
1
^1
1, Yuxuan Liang
2
^2
2, Xianggen Liu
1
^1
1, Jianshuai Feng
3
^3
3, Yuankai Wu
1
^1
1
- Sichuan University
- The Hong Kong University of Science and Technology (Guangzhou)
- Beijing Institute of Technology
摘要
在多变量时间序列预测的领域中,时间序列数据通常表现出不同的序列内和序列间相关性,导致错综复杂和相互交织的依赖关系,精确理解和利用不同时间尺度上的多变量时间序列间的动态相关性是一个关键的挑战。为了应对这一挑战,本文提出了MSGNet模型, 该模型通过结合频率域分析与自适应图卷积技术,旨在高效捕捉跨不同时间尺度的多变量时间序列之间的相互依赖关系。MSGNet通过快速傅里叶变换(FFT)提取时间序列的周期性模式,并映射至关键时间尺度相关的空间,然后结合自注意力机制(self-attention mechanism)来捕获序列内依赖性,同时引入自适应混合跳图卷积层(adaptive mixhop graph convolution layer),以自主学习每时间尺度内的序列间相关性。
通过在数据集(Flight Weather ETTm1 ETTm2 ETTh1 ETTh2 Electricity Exchange )上进行的长时序预测实验(96 192 336 720),与TimesNet DLinear NLinear MTGnn Autoformer Informer相比,MSGNet的平均MSE和MAE达到sota。并且,MSGNet具有自动学习可解释的多尺度序列间相关性的能力, 即使在应用于分布外样本时也表现出强大的泛化能力,即该模型还表现出良好的对抗外部干扰(如COVID-19疫情)的能力,证明了其在面对未见过的数据分布时仍能保持较高性能的稳健性。(Flight数据集在疫情期间出现骤降,作者将骤降前作为训练集,骤降后作为测试集,因此样本分布不一样,但效果依旧sota)。
总体介绍
背景及当前面临的问题
时间序列预测在许多领域中都非常关键,它依赖于过去数据的模式来预测未来或隐藏的结果,核心挑战在于准确分析数据,识别数据之间的相互依赖性和时间趋势。研究主要集中在两个方向:一是内部序列相关性建模,它依据特定时间序列内的模式来预测未来值;二是序列间相关性建模,该方法研究多个时间序列之间的相互关系和依赖。
然而,现有的深度学习模型在捕捉多个时间序列在不同时间尺度上的序列间相关性变化方面存在显著不足。例如,在金融领域,不同资产价格之间的相关性,包括股票、债券和商品,在市场不稳定时期可能会因为避险现象而增加。相反,在经济增长期间,由于投资者分散投资组合以寻求不同的机会,资产间的相关性可能会减少。类似地,在生态系统中,控制物种种群数量和环境变量的动态动态表现出在不同时间尺度上的复杂时间相关性。不同时间尺度上序列间的相关性可能因市场或环境的变化而显著不同,现有模型未能有效捕捉这种在不同周期中序列间的复杂动态相关性,这构成了当前面临的一个主要问题。
以下图为例,我们在一个较长时间尺度上(scale1)可能观察到两个时间序列表现出正相关性,而在一个较短的时间尺度上(scale2),这两个序列可能展现出负相关性。这种情况下,如果我们采用基于图的分析方法,就能够构建出反映这两种不同时间尺度相关性的独特图结构。
在较长的时间尺度 1中,绿色和红色时间序列呈正相关,而在较短的时间尺度 2 中,它们呈现负相关。
现有解决方案及其局限性
虽然近年来深度学习模型,特别是循环神经网络(RNNs)、时间卷积网络(TCNs)和Transformers,在捕捉单个时间序列的内部动态方面取得了显著进展。同时,将多变量时间序列理解为图信号的新视角也逐渐浮现。在这类模型中,时间序列中的每个变量都可以视作图中的一个节点,它们通过隐藏的依赖关系相互连接。因此图神经网络(GNNs)便成了挖掘多时间序列间错综复杂依赖关系的有力工具。但这些模型在分析多变量时间序列作为图信号时,通常采用固定的图结构,难以适应序列间动态变化的相关性。尽管一些研究尝试通过动态和随时间变化的图结构来改进这一点,但这些方法往往忽视了相关性与具有显著稳定性的时间尺度之间的关键联系。
本文的解决方案及其贡献
为了克服上述局限,本文提出了一种新型深度学习模型——MSGNet(Multi-Scale Graph Network,它包含三个核心组件:尺度学习与转换层、多图卷积模块和时态多头注意力模块。MSGNet通过快速傅里叶变换(FFT)提取时间序列的周期性模式,并映射至关键时间尺度相关的空间,从而有效捕捉在不同尺度中的相关性。该模型还包含一个具有可学习邻接矩阵的多自适应图卷积模块,对于每个时间尺度,动态学习一个专用的邻接矩阵,使得模型能够捕捉与尺度相关的序列间相关性。另外还融合了一个多头自注意力机制,以同步捕捉序列内相关性。我们的贡献主要有三方面:
-
我们观察到序列间相关性与不同的时间尺度紧密相关。为此,我们提出了一个名为 MSGNet
的新型结构,它能够高效地发现并捕捉这些多尺度序列间相关性。 -
为了同时捕捉序列内和序列间的相关性,我们引入了多头注意力和自适应图卷积模块的组合。
-
通过在真实世界的数据集上进行广泛的实验,我们提供了实验证据,证明 MSGNet在时间序列预测任务中一致性地超越现有的深度学习模型。此外,MSGNet 展现出了更好的泛化能力。
背景知识的相关工作
背景知识
时间序列预测技术随时间不断进化,传统方法如VAR和Prophet基于序列变化遵循预设模式的假设,但面对现实世界中的复杂变化时,这些方法显得力不从心。为了应对这些挑战,被设计用于时间序列分析的深度学习模型,包括MLPs、TCNs、RNNs和基于Transformer的模型,相继被提出。此外,虽然某些研究如DEPTS和TimesNet尝试通过周期性分析来增强预测能力,但它们未能充分考虑在不同时间尺度上存在的序列间多样化相关性。另一方面,图神经网络(GNNs)近年来在捕获序列间相关性方面展现出潜力而受到关注,,但大多数GNN模型设计针对具有预定义图结构的情况,使得在没有明确图结构的多变量预测任务中,基于先前知识定义一个通用图结构的模型存在挑战。虽然已经有尝试探索可学习的图结构,但这些方法往往局限于考虑有限的图结构,并且在连接不同时间尺度的图结构方面存在不足,因此无法完全捕获序列间的复杂动态相关性。
问题表述:
在多变量时间序列预测的背景下,假设变量的数量为 N N N。给定输入数据 X t − L : t ∈ R N × L X_{t-L:t} \in \mathbb{R}^{N \times L} Xt−L:t∈RN×L,它代表了一个回顾窗口的观察值,包含从 t − L t-L t−L 到 t − 1 t-1 t−1 范围内每个变量 i i i 在 τ \tau τ 时刻的 X i τ X^\tau_i Xiτ 值。这里, L L L 表示回顾窗口的大小, t t t 表示预测窗口的起始位置。时间序列预测任务的目标是预测未来 T T T 时间步内的 N N N 个变量的未来值。预测的值由 X ^ t : t + T ∈ R N × T \hat{X}_{t:t+T} \in \mathbb{R}^{N \times T} X^t:t+T∈RN×T 表示,它包括了从 t t t 到 t + T − 1 t+T-1 t+T−1 每个时间点 τ \tau τ 对所有变量的 X i τ X^\tau_i Xiτ 值。
我们假设能够识别出 N N N 个时间序列在不同时间尺度上的不同序列间相关性,这些相关性可以通过图表示。例如,给定一个时间尺度 s i < L s_i < L si<L,我们可以从时间序列 X p − s i : p X_{p-s_i:p} Xp−si:p 中识别出一个图结构 G i = { V i , E i } G_i = \{V_i, E_i\} Gi={Vi,Ei}。这里, V i V_i Vi 表示节点集合, ∣ V i ∣ = N |V_i| = N ∣Vi∣=N, E i ⊆ V i × V i E_i \subseteq V_i \times V_i Ei⊆Vi×Vi 表示加权边, p p p 表示任意时间点。
考虑到 k k k 个时间尺度,表示为 { s 1 , ⋯ , s k } \{s_1, \cdots, s_k\} {s1,⋯,sk},我们可以识别 k k k 个邻接矩阵,表示为 { A 1 , ⋯ , A k } \{\mathbf{A}^1, \cdots, \mathbf{A}^k\} {A1,⋯,Ak},其中每个 A k ∈ R N × N \mathbf{A}^k \in \mathbb{R}^{N \times N} Ak∈RN×N。这些邻接矩阵捕捉了不同时间尺度上的不同序列间相关性。
Method论文主要工作
MSGNet旨在捕捉不同时间尺度上的不同序列间相关性。整个模型架构如图所示。模型由多个ScaleGraph块组成,每个模块包含三个关键模块:用于多尺度数据识别的 FFT 模块、用于时间尺度内系列间相关性学习的自适应图卷积模块以及用于系列内相关性学习的多头注意模块。即每个ScaleGraph块包含四个步骤:
- 确定输入时间序列的尺度;
- 使用自适应图卷积块揭示尺度相关的序列间相关性;
- 通过多头注意力捕捉序列内相关性;
- 使用SoftMax函数自适应地聚合不同尺度的表示。
1.输入嵌入和剩余连接 (Input Embedding and Residual Connection)
概述:这部分主要参考的是Informer等工作,输入主要是对原始输入序列做1维卷积,并加上position embedding和时间embedding。
我们将同一时间步的 N N N个变量嵌入到一个大小为 d model d_{\text{model}} dmodel的向量中: X t − L : t → X emb \mathbf{X}_{t-L: t} \rightarrow \mathbf{X}_{\text{emb}} Xt−L:t→Xemb,其中 X emb ∈ R d model × L \mathbf{X}_{\text{emb}} \in \mathbb{R}^{d_{\text{model}} \times L} Xemb∈Rdmodel×L。我们采用了Informer提出的统一输入表示法来生成嵌入。具体来说, X emb \mathbf{X}_{\text{emb}} Xemb是使用以下公式计算的:
X
emb
=
α
Conv1D
(
X
^
t
−
L
:
t
)
+
P
E
+
∑
p
=
1
P
S
E
p
.
\mathbf{X}_{\text{emb}} = \alpha \text{Conv1D}\left(\hat{\mathbf{X}}_{t-L: t}\right) + \mathbf{PE} + \sum_{p=1}^{P} \mathbf{SE}_p.
Xemb=αConv1D(X^t−L:t)+PE+p=1∑PSEp.
这里,我们首先对输入
X
t
−
L
:
t
\mathbf{X}_{t-L: t}
Xt−L:t进行归一化,得到
X
^
t
−
L
:
t
\hat{\mathbf{X}}_{t-L: t}
X^t−L:t,因为归一化策略已被证明能有效地提高数据的平稳性。然后我们使用一维卷积滤波器(核宽度=3,步长=1)将
X
^
t
−
L
:
t
\hat{\mathbf{X}}_{t-L: t}
X^t−L:t投影到一个
d
model
d_{\text{model}}
dmodel维的矩阵中。参数
α
\alpha
α作为一个平衡因子,调整标量投影与局部/全局嵌入之间的幅度。
P
E
∈
R
d
model
×
L
\mathbf{PE} \in \mathbb{R}^{d_{\text{model}} \times L}
PE∈Rdmodel×L表示输入
X
\mathbf{X}
X的位置嵌入,
S
E
p
∈
R
d
model
×
L
\mathbf{SE}_p \in \mathbb{R}^{d_{\text{model}} \times L}
SEp∈Rdmodel×L是一个可学习的全局时间戳嵌入,具有限定的词汇量大小(以分钟为最细粒度时为60)。
我们以残差方式实现MSGNet。在最开始,我们设置 X 0 = X emb \mathbf{X}^0 = \mathbf{X}_{\text{emb}} X0=Xemb,其中 X emb \mathbf{X}_{\text{emb}} Xemb代表通过嵌入层将原始输入投影到深层特征中。在MSGNet的第 l l l层,输入为 X l − 1 ∈ R d model × L \mathbf{X}^{l-1} \in \mathbb{R}^{d_{\text{model}} \times L} Xl−1∈Rdmodel×L,过程可以正式表达为:
X
l
=
ScaleGraphBlock
(
X
l
−
1
)
+
X
l
−
1
,
\mathbf{X}^l = \text{ScaleGraphBlock}\left(\mathbf{X}^{l-1}\right) + \mathbf{X}^{l-1},
Xl=ScaleGraphBlock(Xl−1)+Xl−1,
这里,ScaleGraphBlock表示构成MSGNet层核心功能的操作和计算。
扩展:embedding
这张图描绘了时间序列数据在输入到模型前的处理过程,尤其是在进行时间序列预测时如何将不同类型的时间信息嵌入(embedding)到模型中。这里有三层不同的嵌入:
- 标量投影(Scalar Projection):原始时间序列数据通常会被投影成一定长度的向量。在这个图示中, u 0 , u 1 , … , u 7 u_0, u_1, \ldots, u_7 u0,u1,…,u7 代表连续时间步的标量投影。
- 局部时间戳(Local Time Stamp):时间序列数据中的每一个时间点都会被分配一个位置嵌入(Position Embeddings),用来保持时间序列中的顺序信息。 P P P 代表位置编码, E 0 , E 1 , … , E 7 E_0, E_1, \ldots, E_7 E0,E1,…,E7 代表不同时间步的位置嵌入。
- 全局时间戳(Global Time Stamp):除了局部的时间顺序信息,全局时间戳嵌入提供了额外的时间信息,如所在的周、月、甚至假日信息。例如,周嵌入(Week Embeddings)能够让模型理解每个数据点是周中的哪一天;月嵌入(Month Embeddings)和假日嵌入(Holiday Embeddings)分别让模型知道每个时间点属于一年中的哪个月份和是否是特殊的日期或假日。
通过embedding能考虑局部时序信息以及层次时序信息,如星期、月和年等,以及突发时间戳信息(事件或某些节假日等),更全面地理解和捕捉时间序列数据中的时间动态和周期性模式。
2.尺度识别(Scale Identification)
作者将周期性作为尺度来源的选择,受 TimesNet的启发,采用快速傅立叶变换 (FFT) 检测突出的周期性作为时间尺度:
F
=
Avg
(
Amp
(
F
F
T
(
X
emb
)
)
)
,
f
1
,
⋯
,
f
k
=
argTopk
f
∗
∈
{
1
,
⋯
,
L
2
}
(
F
)
,
s
i
=
L
f
i
.
\mathbf{F}=\operatorname{Avg}\left(\operatorname{Amp}\left(\mathbf{FFT}\left(\mathbf{X}_{\text{emb}}\right)\right)\right), f_1, \cdots, f_k=\operatorname{argTopk}_{f_* \in \left\{1, \cdots, \frac{L}{2}\right\}}(\mathbf{F}), s_i=\frac{L}{f_i}.
F=Avg(Amp(FFT(Xemb))),f1,⋯,fk=argTopkf∗∈{1,⋯,2L}(F),si=fiL.
这里,
F
F
T
(
⋅
)
\mathbf{FFT}(\cdot)
FFT(⋅)表示对输入数据进行FFT,以将时间序列从时域转换到频域。在频域中,数据的周期性模式可以表现为不同频率的振幅。
Amp
(
⋅
)
\operatorname{Amp}(\cdot)
Amp(⋅)用于计算FFT后各频率点的振幅值。振幅越大,表示该频率的周期性成分在时间序列中越显著,向量
F
∈
R
L
\mathbf{F} \in \mathbb{R}^L
F∈RL包含了所有频率的平均振幅值,这个振幅在
d
model
d_{\text{model}}
dmodel维度上通过函数
Avg
(
⋅
)
\operatorname{Avg}(\cdot)
Avg(⋅)进行平均。
FFT检测显著周期性(TimesNet):
基于选定的时间尺度
{
s
1
,
…
,
s
k
}
\left\{s_1, \ldots, s_k\right\}
{s1,…,sk},我们可以通过使用以下方程将输入重塑为3D张量,得到对应不同时间尺度的多个表示:
X i = Reshape s i , f i ( Padding ( X in ) ) , i ∈ { 1 , … , k } , {X}^i=\operatorname{Reshape}_{s_i, f_i}\left(\operatorname{Padding}\left(\mathbf{X}_{\text{in}}\right)\right), \quad i \in \left\{1, \ldots, k\right\}, Xi=Reshapesi,fi(Padding(Xin)),i∈{1,…,k},
其中, Padding ( ⋅ ) \operatorname{Padding}(\cdot) Padding(⋅)用于在时间维度上通过添加零来扩展时间序列,使其适合 Reshape s i , f i ( ⋅ ) \operatorname{Reshape}_{s_i,f_i}(\cdot) Reshapesi,fi(⋅)操作。注意, X i ∈ R d model × s i × f i {X}^i \in \mathbb{R}^{d_{\text{model}} \times s_i \times f_i} Xi∈Rdmodel×si×fi表示基于时间尺度 i i i的第 i i i个重塑后的时间序列。我们使用 X in \mathbf{X}_{\text{in}} Xin来表示ScaleGraph块的输入矩阵。
3.多尺度自适应图卷积(Multi-scale Adaptive Graph Convolution)
作者提出了一种新颖的多尺度图卷积方法,用以捕捉特定和全面的序列间依赖关系。通过该方法,模型能够在不同的时间尺度上学习和表征时间序列之间复杂的关系,这对于提高时间序列预测的准确性非常关键。具体方法如下:
首先将对应于第
i
i
i个尺度的张量通过线性变换投射回含有
N
N
N个变量的张量,这里
N
N
N代表时间序列的数量。这个投射通过以下定义的线性变换来执行:
H
i
=
W
i
X
i
.
H^i = \mathbf{W}^i X^i .
Hi=WiXi.
这里, H i ∈ R N × s i × f i H^i \in \mathbb{R}^{N \times s_i \times f_i} Hi∈RN×si×fi, W i ∈ R N × d model \mathbf{W}^i \in \mathbb{R}^{N \times d_{\text{model}}} Wi∈RN×dmodel是一个可学习的权重矩阵,专门为第 i i i个尺度的张量定制。
在该的方法中,图学习过程涉及生成两个可训练参数, E 1 i \mathbf{E}_1^i E1i 和 E 2 i ∈ R N × h \mathbf{E}_2^i \in \mathbb{R}^{N \times h} E2i∈RN×h。随后,通过乘以这两个参数矩阵后,根据以下公式得到一个自适应邻接矩阵(此处使用SoftMax函数来规范化不同节点间的权重,确保序列间关系的表示是均衡且有意义的。):
A i = SoftMax ( ReLU ( E 1 i ( E 2 i ) T ) ) . \mathbf{A}^i = \operatorname{SoftMax}(\operatorname{ReLU}(\mathbf{E}_1^i (\mathbf{E}_2^i)^T)) . Ai=SoftMax(ReLU(E1i(E2i)T)).
获得第 i i i个尺度的邻接矩阵 A i \mathbf{A}^i Ai 后,我们使用Mixhop图卷积方法来捕捉序列间的相关性,其已被证明具有代表其他模型可能无法捕捉的特征的能力。图卷积定义如下:
H out i = σ ( ∥ j ∈ P ( A i ) j H i ) , H_{\text{out}}^i = \sigma(\|_{j \in {P}} (\mathbf{A}^i)^j H^i), Houti=σ(∥j∈P(Ai)jHi),
其中,
H
out
i
H_{\text{out}}^i
Houti 表示在尺度
i
i
i融合后的输出,
σ
(
)
\sigma()
σ() 是激活函数,超参数
P
\mathrm{P}
P 是一组整数邻接幂次,
(
A
i
)
j
(\mathbf{A}^i)^j
(Ai)j 表示学习到的邻接矩阵
A
i
\mathbf{A}^i
Ai 自乘
j
j
j次,
∥
\|
∥ 表示列级连接,连接在每次迭代过程中生成的中间变量。然后,我们继续使用多层感知器(MLP)将
H
out
i
H_{\text{out}}^i
Houti 投射回一个3D张量
X
^
i
∈
R
d
model
×
s
i
×
f
i
\hat{X}^i \in \mathbb{R}^{d_{\text{model}} \times s_i \times f_i}
X^i∈Rdmodel×si×fi。
4.多头注意力和尺度聚合(Multi-head Attention and Scale Aggregation)
在每个时间尺度上,我们使用多头注意力(MHA)机制来捕捉序列内的相关性。具体地,对于每个时间尺度的张量 X ^ i \hat{\mathcal{X}}^i X^i,我们在该张量的时间尺度维度上应用自注意力的多头注意力机制:
X
^
out
i
=
MHA
s
(
X
^
i
)
.
\hat{X}_{\text {out }}^i=\operatorname{MHA}_s\left(\hat{X}^i\right) .
X^out i=MHAs(X^i).
这里,
MHA
s
(
⋅
)
\operatorname{MHA}_s(\cdot)
MHAs(⋅)指的是Vaswani等人(2017年)提出的,在尺度维度上的多头注意力函数。在实现上,这涉及到将输入张量的大小从
B
×
d
model
×
s
i
×
f
i
B \times d_{\text {model }} \times s_i \times f_i
B×dmodel ×si×fi重塑为
B
f
i
×
d
model
×
s
i
B f_i \times d_{\text {model }} \times s_i
Bfi×dmodel ×si的张量,其中
B
B
B是批量大小。尽管一些研究对于多头注意力在捕捉时间序列长期时间相关性的有效性提出了担心(Zeng等人,2023年),但我们通过采用尺度转换将长时间跨度转换为周期长度,成功地解决了这一限制。我们的结果显示,即使输入时间增长,MSGNet的性能也能保持一致(见附录)。
最后,为了进入下一层,我们需要整合
k
k
k个不同尺度的张量
X
^
out
1
,
⋯
,
X
^
out
k
\hat{X}_{\text {out }}^1, \cdots, \hat{X}_{\text {out }}^k
X^out 1,⋯,X^out k。我们首先将每个尺度的张量重塑回一个二维矩阵
X
^
out
i
∈
R
d
model
×
L
\hat{\mathbf{X}}_{\text {out }}^i \in \mathbb{R}^{d_{\text {model }} \times L}
X^out i∈Rdmodel ×L。然后,我们根据它们的振幅来聚合不同的尺度:
a
^
1
,
⋯
,
a
^
k
=
SoftMax
(
F
f
1
,
⋯
,
F
f
k
)
,
X
^
out
=
∑
i
=
1
k
a
^
i
X
^
out
i
.
\begin{aligned} \hat{a}_1, \cdots, \hat{a}_k & =\operatorname{SoftMax}\left(\mathbf{F}_{f_1}, \cdots, \mathbf{F}_{f_k}\right), \\ \hat{\mathbf{X}}_{\text {out }} & =\sum_{i=1}^k \hat{a}_i \hat{\mathbf{X}}_{\text {out }}^i . \end{aligned}
a^1,⋯,a^kX^out =SoftMax(Ff1,⋯,Ffk),=i=1∑ka^iX^out i.
在这个过程中,
F
f
1
,
⋯
,
F
f
k
\mathbf{F}_{f_1}, \cdots, \mathbf{F}_{f_k}
Ff1,⋯,Ffk是每个尺度对应的振幅,使用FFT计算得到。然后应用SoftMax函数来计算振幅
a
^
1
,
⋯
,
a
^
k
\hat{a}_1, \cdots, \hat{a}_k
a^1,⋯,a^k。这种专家混合(MoE)策略使模型能够根据各自的振幅强调来自不同尺度的信息,有助于将多尺度特征有效地融合到下一层(见附录)。
5.输出层(Output Layer)
为了进行预测,我们的模型在时间维度和变量维度都使用线性投影,将
X
^
out
∈
R
d
model
×
L
\hat{\mathbf{X}}_{\text {out }} \in \mathbb{R}^{d_{\text {model }} \times L}
X^out ∈Rdmodel ×L 转换为
X
^
t
:
t
+
T
∈
R
N
×
T
\hat{\mathbf{X}}_{t: t+T} \in \mathbb{R}^{N \times T}
X^t:t+T∈RN×T。这个转换可以表示为:
X
^
t
:
t
+
T
=
W
s
X
^
out
W
t
+
b
.
\hat{\mathbf{X}}_{t: t+T}=\mathbf{W}_{\mathbf{s}} \hat{\mathbf{X}}_{\text {out }} \mathbf{W}_{\mathbf{t}}+\mathbf{b} .
X^t:t+T=WsX^out Wt+b.
这里,
W
s
∈
R
N
×
d
model
,
W
t
∈
R
L
×
T
\mathbf{W}_{\mathbf{s}} \in \mathbb{R}^{N \times d_{\text {model }}}, \mathbf{W}_{\mathbf{t}} \in \mathbb{R}^{L \times T}
Ws∈RN×dmodel ,Wt∈RL×T,和
b
∈
R
T
\mathbf{b} \in \mathbb{R}^T
b∈RT 是可学习的参数。矩阵
W
s
\mathbf{W}_{\mathbf{s}}
Ws 沿着变量维度执行线性投影,而
W
t
\mathbf{W}_{\mathbf{t}}
Wt 则沿着时间维度执行同样的操作。结果
X
^
t
:
t
+
T
\hat{\mathbf{X}}_{t: t+T}
X^t:t+T 是预测的数据,其中
N
N
N 表示变量的数量,
L
L
L 表示输入序列的长度,而
T
T
T 表示预测范围。
简单来说,这个过程首先通过 W s \mathbf{W}_{\mathbf{s}} Ws 将模型输出的特征映射到与原始变量数量相同的维度上,然后通过 W t \mathbf{W}_{\mathbf{t}} Wt 将这些特征映射到预测时间范围 T T T 上。这样,模型能够从多尺度特征提取的综合信息中,生成对未来时间步长 t t t 到 t + T t+T t+T 之间各变量的预测值。这种方法允许模型利用在整个训练过程中学习到的深层时间和变量间的关系,进行有效的时间序列预测。
实验/评估/结果
实验设置
实验环境:NVIDIA GeForce RTX 3090 24GB GPU
loss function:平均平方误差(MSE)
回顾窗口大小设置为L = 96
预测长度T = {96, 192, 336, 720}
初始学习率为LR = 0.0001
批量大小为Batch = 32
训练周期数为Epochs = 10,并在适用的情况下使用了早停策略
数据的划分比例为训练集、验证集和测试集分别占(0.7, 0.1, 0.2)
结果分析
实验1:对比实验
具有 96 个回顾窗口和预测长度 {96, 192, 336, 720} 的预测结果。最佳结果以粗体表示,次等的下划线。
如图表所示,MSGNet在5个数据集上取得了最佳性能,在2个数据集上取得了第二佳性能。在面对与COVID-19大流行相关的Flight数据集时,MSGNet超越了当前最佳方法TimesNet,平均MSE和MAE分别降低了21.5%和13.7%。虽然TimesNet使用了多尺度信息,但它采用了纯计算机视觉模型来捕捉序列间和序列内的相关性,这对于时间序列数据并不非常有效。Autoformer在Flight数据集上展现了出色的性能,这可能归因于其建立的自相关机制。MTGnn由于缺乏对不同尺度的关注,它的性能明显弱于MSGNet。通过评估模型在所有数据集上的平均排名,MSGNet显示出优异的泛化能力,平均排名超过了其他模型。这些结果证明了MSGNet在处理复杂时间序列预测任务时的优势,尤其是在对抗分布外样本时的鲁棒性方面。
实验1:对比实验——Flight 数据集
Flight预测结果的可视化:黑色真实值的线,预测值的橙色线,以及蓝色标记表示明显偏差
图为Flight预测结果的可视化图,MSGNet紧密地反映了真实情况,而其他模型在特定时间段内出现了明显的性能下降。图中的峰值和谷值与关键的飞行数据事件、趋势或周期性动态相一致。其他模型无法准确跟随这些变化,可能是由于其架构约束限制了它们捕捉多尺度模式、突然变化或复杂的序列间和序列内相关性的能力。
实验2:学习序列间相关性的可视化
图所示是MSGNet模型为不同的时间尺度(24小时、6小时和4小时)学习到了不同的自适应邻接矩阵,有效地捕捉了航班数据集中机场之间的交互作用。在机场6与机场0、1和3的距离较远,但在较长的时间尺度(24小时)上,它对这三个机场有着显著的影响。然而,随着时间尺度缩短(6小时和4小时),其对这些机场的影响显著减弱。另一方面,距离较近的机场0、3和5在较短的时间尺度上表现出更强的相互影响。这些观察结果反映了现实生活中的情况,表明在某些时间尺度上,由于物理接近性,航班之间可能存在更强的空间相关性。
Flight 数据集的学习邻接矩阵(第一层的 24h、6h 和 4h)和机场地图。
实验3:消融实验
考虑了5种消融方法,并在3个数据集上对它们进行了评估。以下将解释其实现的变体:
- w/o-AdapG:从模型中移除了自适应图卷积层(图学习)。
- w/o-MG:移除了多尺度图卷积,只使用了共享的图卷积层来学习整体的序列间依赖。
- w/o-A:移除了多头自注意力机制,消除了序列内相关性学习。
- w/o-Mix:用传统的卷积方法替换了混合跳跃卷积方法。
通过这些实验,发现移除图学习层会导致性能大幅下降,强调了学习序列间相关性的必要性;多尺度图学习的采用显著提升了模型性能,揭示了不同尺度间相关性的多样性;多头自注意力机制虽然只提供了边际性能提升,但其改进依然证明了其价值;最后,混合跳跃卷积的应用进一步提高了性能,尽管其缺失导致的性能降低有限,但仍突显了其对捕获复杂时间序列依赖关系的贡献。这些发现综合表明,MSGNet通过其独特的设计有效地捕捉了时间序列数据的复杂动态,证实了其先进性和有效性。
实验4:泛化能力
COVID-19 影响下的泛化测试:Decrease显示分区修改后性能下降的百分比。
在COVID-19大流行期间,欧洲主要机场的每日航班量急剧下降,类似于急剧下降,后来逐渐恢复
为了验证疫情对航班预测的影响以及MSGNet抵抗外部影响的性能,将Flight数据集的分区修改为4:4:2。将训练集限制为疫情爆发前的数据,并使用后续数据作为验证集和测试集。具体结果如图所示。通过捕获多尺度的系列间相关性,MSGNet不仅在两个不同的数据分区下实现了最佳性能,而且表现出最小的性能下降和最强的对外部影响的抵抗力。结果表明 MSGNet 对分布外(OOD)样本具有强大的泛化能力。我们假设这种优势归因于 MSGNet 捕获多个序列间相关性的能力,其中一些相关性即使在多元时间序列的 OOD 样本下仍然有效。
实验5:较长输入序列下的性能
MSGNet12:使用不同回顾窗口进行336个时间步的Flight数据集预测。我们用另外四个模型进行比较。
MSGNet13:MSGNet在ETT数据集上,针对不同回顾窗口大小进行336个时间步的预测性能
如图MSGNet12,在Flight数据集上的实验显示,MSGNet利用不同大小的回顾窗口来预测随后的336个时间步的值,能够有效提取时间序列的长期依赖关系。通过融合自注意力机制,MSGNet在捕获时间信息方面的表现超越了早期可能受到时间噪声过拟合影响的模型。即便在长回顾窗口的设置下,MSGNet相较于传统线性模型和其他模型,展现了更为稳健和显著的性能提升,这归功于其在内部采用的尺度转换技术(将长序列缩短为较短的序列),有效解决了捕捉长期时间序列相关性的挑战。此外,在图MSGNet13,通过在ETT数据集使用不同回顾窗口的性能进行了更深入的分析,我们进一步验证了MSGNet在处理扩展回顾窗口时的高效性,证明了尺度转换策略在优化模型处理广泛时间范围数据时的关键作用。