【论文阅读】MSGNet:学习多变量时间序列预测中的多尺度间序列相关性

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

  1. Sichuan University
  2. The Hong Kong University of Science and Technology (Guangzhou)
  3. 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 中,它们呈现负相关。
在较长的时间尺度 1中,绿色和红色时间序列呈正相关,而在较短的时间尺度 2 中,它们呈现负相关。

现有解决方案及其局限性

虽然近年来深度学习模型,特别是循环神经网络(RNNs)、时间卷积网络(TCNs)和Transformers,在捕捉单个时间序列的内部动态方面取得了显著进展。同时,将多变量时间序列理解为图信号的新视角也逐渐浮现。在这类模型中,时间序列中的每个变量都可以视作图中的一个节点,它们通过隐藏的依赖关系相互连接。因此图神经网络(GNNs)便成了挖掘多时间序列间错综复杂依赖关系的有力工具。但这些模型在分析多变量时间序列作为图信号时,通常采用固定的图结构,难以适应序列间动态变化的相关性。尽管一些研究尝试通过动态和随时间变化的图结构来改进这一点,但这些方法往往忽视了相关性与具有显著稳定性的时间尺度之间的关键联系。

本文的解决方案及其贡献

为了克服上述局限,本文提出了一种新型深度学习模型——MSGNet(Multi-Scale Graph Network,它包含三个核心组件:尺度学习与转换层、多图卷积模块和时态多头注意力模块。MSGNet通过快速傅里叶变换(FFT)提取时间序列的周期性模式,并映射至关键时间尺度相关的空间,从而有效捕捉在不同尺度中的相关性。该模型还包含一个具有可学习邻接矩阵的多自适应图卷积模块,对于每个时间尺度,动态学习一个专用的邻接矩阵,使得模型能够捕捉与尺度相关的序列间相关性。另外还融合了一个多头自注意力机制,以同步捕捉序列内相关性。我们的贡献主要有三方面:

  1. 我们观察到序列间相关性与不同的时间尺度紧密相关。为此,我们提出了一个名为 MSGNet
    的新型结构,它能够高效地发现并捕捉这些多尺度序列间相关性。

  2. 为了同时捕捉序列内和序列间的相关性,我们引入了多头注意力和自适应图卷积模块的组合。

  3. 通过在真实世界的数据集上进行广泛的实验,我们提供了实验证据,证明 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} XtL:tRN×L,它代表了一个回顾窗口的观察值,包含从 t − L t-L tL t − 1 t-1 t1 范围内每个变量 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+TRN×T 表示,它包括了从 t t t t + T − 1 t+T-1 t+T1 每个时间点 τ \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} Xpsi: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 EiVi×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} AkRN×N。这些邻接矩阵捕捉了不同时间尺度上的不同序列间相关性。

Method论文主要工作

MSGNet旨在捕捉不同时间尺度上的不同序列间相关性。整个模型架构如图所示。模型由多个ScaleGraph块组成,每个模块包含三个关键模块:用于多尺度数据识别的 FFT 模块、用于时间尺度内系列间相关性学习的自适应图卷积模块以及用于系列内相关性学习的多头注意模块。即每个ScaleGraph块包含四个步骤:

  1. 确定输入时间序列的尺度;
  2. 使用自适应图卷积块揭示尺度相关的序列间相关性;
  3. 通过多头注意力捕捉序列内相关性;
  4. 使用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}} XtL:tXemb,其中 X emb ∈ R d model × L \mathbf{X}_{\text{emb}} \in \mathbb{R}^{d_{\text{model}} \times L} XembRdmodel×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^tL:t)+PE+p=1PSEp.
这里,我们首先对输入 X t − L : t \mathbf{X}_{t-L: t} XtL:t进行归一化,得到 X ^ t − L : t \hat{\mathbf{X}}_{t-L: t} X^tL:t,因为归一化策略已被证明能有效地提高数据的平稳性。然后我们使用一维卷积滤波器(核宽度=3,步长=1)将 X ^ t − L : t \hat{\mathbf{X}}_{t-L: t} X^tL:t投影到一个 d model d_{\text{model}} dmodel维的矩阵中。参数 α \alpha α作为一个平衡因子,调整标量投影与局部/全局嵌入之间的幅度。 P E ∈ R d model × L \mathbf{PE} \in \mathbb{R}^{d_{\text{model}} \times L} PERdmodel×L表示输入 X \mathbf{X} X的位置嵌入, S E p ∈ R d model × L \mathbf{SE}_p \in \mathbb{R}^{d_{\text{model}} \times L} SEpRdmodel×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} Xl1Rdmodel×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(Xl1)+Xl1,
这里,ScaleGraphBlock表示构成MSGNet层核心功能的操作和计算。

扩展:embedding

在这里插入图片描述
这张图描绘了时间序列数据在输入到模型前的处理过程,尤其是在进行时间序列预测时如何将不同类型的时间信息嵌入(embedding)到模型中。这里有三层不同的嵌入:

  1. 标量投影(Scalar Projection):原始时间序列数据通常会被投影成一定长度的向量。在这个图示中, u 0 , u 1 , … , u 7 u_0, u_1, \ldots, u_7 u0,u1,,u7 代表连续时间步的标量投影。
  2. 局部时间戳(Local Time Stamp):时间序列数据中的每一个时间点都会被分配一个位置嵌入(Position Embeddings),用来保持时间序列中的顺序信息。 P P P 代表位置编码, E 0 , E 1 , … , E 7 E_0, E_1, \ldots, E_7 E0,E1,,E7 代表不同时间步的位置嵌入。
  3. 全局时间戳(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 FRL包含了所有频率的平均振幅值,这个振幅在 d model d_{\text{model}} dmodel维度上通过函数 Avg ⁡ ( ⋅ ) \operatorname{Avg}(\cdot) Avg()进行平均。

FFT检测显著周期性(TimesNet):
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} XiRdmodel×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} HiRN×si×fi W i ∈ R N × d model \mathbf{W}^i \in \mathbb{R}^{N \times d_{\text{model}}} WiRN×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} E2iRN×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=σ(jP(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^iRdmodel×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 iRdmodel ×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=1ka^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+TRN×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} WsRN×dmodel ,WtRL×T,和 b ∈ R T \mathbf{b} \in \mathbb{R}^T bRT 是可学习的参数。矩阵 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个数据集上对它们进行了评估。以下将解释其实现的变体:

  1. w/o-AdapG:从模型中移除了自适应图卷积层(图学习)。
  2. w/o-MG:移除了多尺度图卷积,只使用了共享的图卷积层来学习整体的序列间依赖。
  3. w/o-A:移除了多头自注意力机制,消除了序列内相关性学习。
  4. 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在处理扩展回顾窗口时的高效性,证明了尺度转换策略在优化模型处理广泛时间范围数据时的关键作用。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/457989.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java高级编程—泛型

文章目录 1.为什么要有泛型 (Generic)1.1 泛型的概念1.2 使用泛型后的好处 2.在集合中使用泛型3.自定义泛型结构3.1 自定义泛型类、泛型接口3.2 自定义泛型方法 4.泛型在继承上的体现5.通配符的使用5.1 基本使用5.2 有限制的通配符的使用 1.为什么要有泛型 (Generic) Java中的…

边缘计算与物联网的核心 —— 低功耗芯片

一、低功耗芯片 在边缘计算与物联网&#xff08;IoT&#xff09;中&#xff0c;低功耗芯片扮演了至关重要的角色&#xff0c;主要体现在以下几个方面&#xff1a; 延长设备寿命&#xff1a;物联网设备通常需要部署在难以更换电池或不方便进行频繁维护的环境中&#xff0c;比如…

软考高级:信息系统分类-业务处理系统(TPS)概念和例题

作者&#xff1a;明明如月学长&#xff0c; CSDN 博客专家&#xff0c;大厂高级 Java 工程师&#xff0c;《性能优化方法论》作者、《解锁大厂思维&#xff1a;剖析《阿里巴巴Java开发手册》》、《再学经典&#xff1a;《Effective Java》独家解析》专栏作者。 热门文章推荐&am…

工具篇--从零开始学Git

一、git概述 1.1安裝 windows版本 官方下载&#xff08;比较慢&#xff09;&#xff1a;Git - Downloads Linux版本 ​yum install git查看git版本。 git --version 1.2创建仓库gitee 注册账号 Gitee - 基于 Git 的代码托管和研发协作平台 新建仓库 honey2024 配置 git confi…

Jira自动化的实用工具——ScriptRunner简介及最佳实践

近日&#xff0c;龙智举办的DevSecOps研讨会年终专场“趋势展望与实战探讨&#xff1a;如何打好DevOps基础、赋能创新”在上海圆满落幕。龙智Atlassian技术与顾问咨询团队&#xff0c;以及清晖、JamaSoftware、CloudBees等生态伙伴的嘉宾发表了主题演讲&#xff0c;分享他们在D…

一、C#冒泡排序算法

一、C#冒泡排序算法 简介 冒泡排序算法是一种基础的排序算法&#xff0c;它的实现原理比较简单。核心思想是通过相邻元素的比较和交换来将最大&#xff08;或最小&#xff09;的元素逐步"冒泡"到数列的末尾。 实现原理 冒泡排序是一种简单的排序算法&#xff0c;其…

借助 mydumper 实现定期 MySQL 全量备份、恢复方案

一、Mydumper 工具介绍 mydumper 是一款社区开源的逻辑备份工具&#xff0c;由 C 语言编写&#xff0c;与 MySQL 官方提供的 mysqldump 相比&#xff0c;它具有更高的性能和更多的功能&#xff0c;例如&#xff1a; 支持多线程导出数据&#xff0c;速度更快&#xff1b; 支持…

JVM探究

JVM探究 请你谈谈你对JVM的理解&#xff1f;java -> class -> jvm java 8虚拟机和之前的变化更新OOM 内存溢出。栈溢出 StackOverFlowError > 怎么分析JVM的常用调优参数 &#xff1f; 扩大内存内存快照如何抓取&#xff0c;怎么分析Dump文件&#xff1f;知道吗&…

密码学——MAC

消息认证码 在信息发送和接收过程中,若攻击者能够得到信息,进行篡改,就能达到欺骗,诈骗,冒名顶替的作用。为了防止冒名诈骗,一个对策就是使用消息认证码——MAC: Message Authentication Code。 消息认证码,即确定消息真实性的认证程序。发件人将想要发送的信息和从哪个…

Spring Cloud Gateway如何实现熔断

Spring Cloud Gateway熔断集成 熔断应用&#xff1a; 金融市场中的熔断机制&#xff1a;在金融交易系统中&#xff0c;熔断机制&#xff08;Circuit Breaker&#xff09;是一种市场保护措施&#xff0c;旨在预防市场剧烈波动时可能导致的系统性风险。当某个基准指数&#xff08…

ArrayList和LinkedList区别

ArrayList和LinkedList是两个集合类&#xff0c;用于存储一系列的对象引用(references)。例如我们可以用ArrayList来存储一系列的String或者Integer。 1 问题 那么ArrayList和LinkedList在性能上有什么差别呢&#xff1f;什么时候应该用ArrayList什么时候又该用LinkedList呢&am…

Github 2024-03-15 Java开源项目日报 Top10

根据Github Trendings的统计,今日(2024-03-15统计)共有10个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Java项目9非开发语言项目1TypeScript项目1《Hello 算法》:动画图解、一键运行的数据结构与算法教程 创建周期:476 天协议类型:OtherStar数量…

gin框架教程笔记

参考 官方中文文档&#xff1a;https://gin-gonic.com/zh-cn/docs/introduction/ 但是示例截图少 https://www.kancloud.cn/shuangdeyu/gin_book/949411 https://www.topgoer.com/gin%E6%A1%86%E6%9E%B6/ 这个网站不光有gin框架 适合阅读 吉米老师的 &#xff1a;https://www…

Redis基本使用

Redis基本使用 1.通用命令2.基本数据类型2.1 String2.2 Hash2.3 List2.4 Set2.5 SortedSet 3. SpringDataRedis3.1 简介3.2 快速代码示例3.3 序列化 1.通用命令 针对所有数据类型的操作可以在Redis官方文档查看。以下是通用的命令。 KEYS&#xff1a;查看符合模板的所有key D…

气压计LPS25HB开发(1)----轮询获取气压计数据

气压计LPS25HB开发----1.轮询获取气压计数据 概述视频教学样品申请源码下载产品特性通信模式速率生成STM32CUBEMX串口配置IIC配置SA0地址设置串口重定向参考程序SA0设置模块地址获取ID复位操作BDU设置设置速率轮询读取数据演示 概述 本文将介绍如何使用 LPS25HB 传感器来读取数…

QT信号与槽实现方式

1、第一种实现方式 在QT开发工具UI界面先拖入按钮&#xff0c;然后鼠标右键拖入按钮&#xff0c;点击选中槽&#xff0c;在页面选着需要的信号&#xff0c;然后OK&#xff0c;随即将会跳转到类的.cpp文件&#xff0c;&#xff08;这种UI代码结合的方式&#xff0c;会自动去绑定…

【剪枝实战】使用VGGNet训练、稀疏训练、剪枝、微调等,剪枝出只有3M的模型

摘要 本次剪枝实战是基于下面这篇论文去复现的&#xff0c;主要是实现对BN层的γ/gamma进行剪枝操作&#xff0c;本文用到的代码和数据集都可以在我的资源中免费下载到。 相关论文&#xff1a;Learning Efficient Convolutional Networks through Network Slimming (ICCV 2017…

【小白学机器学习9】自己纯手动计算验证,EXCEL的一元线性回归的各种参数值

目录 0 目标 1 构造模型 1.1 构造模型的思路 1.2 具体模型构造的EXCEL公式和过程 2 直接用EXCEL画图&#xff0c;然后生成趋势线的方式进行回归分析 2.1 先选择“观测值Y”的数据&#xff0c;用散点图或者折线图作图 2.2 然后添加趋势线和设置趋势线格式 2.3 生成趋…

服务器Debian 12.x中安装Jupyer并配置远程访问

服务器系统&#xff1a;Debian 12.x&#xff1b;IP地址&#xff1a;10.100.2.138 客户端&#xff1a;Windows 10;IP地址&#xff1a;10.100.2.38 利用ssh登录服务器&#xff1a; 1.安装python3 #apt install python3 2.安装pip #apt install python3-pip … 3.安装virtualen…

HBase分布式数据库的原理和架构

一、HBase简介 HBase是是一个高性能、高可靠性、面向列的分布式数据库&#xff0c;它是为了在廉价的硬件集群上存储大规模数据而设计的。HBase利用Hadoop HDFS作为其文件存储系统&#xff0c;且Hbase是基于Zookeeper的。 二、HBase架构 *图片引用 Hbase采用Master/Slave架构…