首页 > 其他分享 >MSGNet:多尺度序列间相关性学习的多变量时间序列预测

MSGNet:多尺度序列间相关性学习的多变量时间序列预测

时间:2025-01-15 17:59:11浏览次数:3  
标签:mathbf 时间尺度 相关性 序列 MSGNet mathrm

MSGNet——多尺度序列间相关性学习的多变量时间序列预测

[2401.00423v1] MSGNet: Learning Multi-Scale Inter-Series Correlations for Multivariate Time Series Forecasting

——来自CCF-A(AAAI, AAAl Conference on Artificial Intelligence)

GitHub代码:YoZhibo/MSGNet: MSGNet: Learning Multi-Scale Inter-Series Correlations for Multivariate Time Series Forecasting (AAAI2024)

摘要

多元时间序列预测是各个学科中持续存在的挑战。 时间序列数据通常表现出不同的序列内和序列间相关性,导致了复杂和交织的依赖性,这已经成为众多研究的焦点。

本文引入了MSGNet,这是一种高级深度学习模型,该模型通过结合频域分析与自适应图卷积技术,旨在高效捕捉跨不同时间尺度的多变量时间序列之间的相互依赖关系。MSGNet 通过快速傅里叶变换(FFT)提取时间序列的周期性模式,并映射至关键时间尺度相关的空间,然后结合自注意力机制(self-attention mechanism)来捕获序列内依赖性,同时引入自适应Mixhop图卷积层(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)。

频域分析:是指一种将时间序列数据从时间域转换到频率域进行分析的方法。这种方法能够有效地提取时间序列中的显著周期性模式,并将时间序列分解成不同的时间尺度。通过频域分析,MSGNet模型能够更准确地捕捉和表示多个时间序列之间在不同时间尺度上的相互关系。

自注意力机制 (Self-Attention Mechanism) :是一种用于神经网络,尤其是自然语言处理 (NLP) 和计算机视觉 (CV) 中的技术,用于对输入的不同部分之间的关系进行建模,从而帮助模型更好地理解数据中的上下文和依赖关系。自注意力机制的核心思想是让每个输入元素能够关注到其他输入元素,从而提取出更加丰富的特征表示。

自适应 Mixhop 图卷积层:是一种用于自主学习多个时间序列之间在每个时间尺度内的多样相关性的网络层。它为每个时间尺度动态地学习一个专用的邻接矩阵,并利用 Mixhop 图卷积方法来捕获时间序列之间的相关性。这种方法能够灵活地表示那些其他模型可能无法捕捉到的特征,从而提高了 MSGNet 模型在多元时间序列预测任务中的性能。

1 引言

时间序列预测的背景及当前面临的问题: 时间序列预测在许多领域中都非常关键,它依赖于过去数据的模式来预测未来或隐藏的结果,核心挑战在于准确分析数据,识别数据之间的相互依赖性和时间趋势。研究主要集中在两个方向:

  • 一是内部序列相关性建模,它依据特定时间序列内的模式来预测未来值;
  • 二是序列间相关性建模,该方法研究多个时间序列之间的相互关系和依赖。

现有模型的局限性: 现有的深度学习模型在捕捉不同时间尺度下的多尺度序列间相关性方面存在局限性。例如,一些模型可能只考虑单一时间尺度下的相关性,而忽略了其他时间尺度上的信息。这导致这些模型在处理复杂的时间序列数据时,预测精度和泛化能力受到限制。

以下图为例,我们在一个较长时间尺度上(scale1)可能观察到两个时间序列表现出正相关性,而在一个较短的时间尺度上(scale2),这两个序列可能展现出负相关性。这种情况下,如果我们采用基于图的分析方法,就能够构建出反映这两种不同时间尺度相关性的独特图结构。

image-20241207101605067

图中,在较长的时间尺度1在,绿色和红色时间序列呈正相关,而在较短的时间尺度2中,它们表现为负相关。

MSGNet 模型的提出:为了解决所发现的差距并克服先前模型的局限性,我们引入了MSGNet,它由三个基本组成部分组成:尺度学习和转换层多图卷积模块时间多头注意模块。该模型通过利用傅里叶变换和多尺度自适应图卷积等方法,有效地捕捉和利用不同时间尺度下的多尺度序列间相关性,从而提高预测精度和泛化能力。此外,在框架中进一步结合了一个多头自注意机制,善于捕捉数据中的序列内时间模式。本文的贡献主要有三个方面:

  1. 我们注意到,系列间的相关性与不同的时间尺度密切相关。为了解决这个问题,本文提出了一种名为多尺度图网络 MSGNet(Multi-Scale Graph Network)的新结构,可以有效地发现和捕获这些多尺度序列间相关性。
  2. 为了解决同时捕获序列内和序列间相关性的挑战,我们引入了多头注意和自适应图卷积模块的组合。
  3. 通过对真实世界数据集的广泛实验,我们提供了经验证据,证明MSGNet在时间序列预测任务中始终优于现有的深度学习模型。而且,MSGNet具有更好的泛化能力。

2 相关工作

2.1 时间序列预测

  • 传统方法:如 VAR 和 Prophet 等经典方法假设时间序列内部变化遵循预定义模式,然而,现实世界的时间序列往往表现出超出这些预定义模式范围的复杂变化,限制了经典方法的实际适用性。

    假设时间序列内部变化遵循预定义模式:指的是研究者或分析师认为时间序列数据中的变化不是随机的,而是遵循某种已知的、可识别的模式或规律。这种预定义模式可能基于历史数据、理论模型或先验知识,用于指导时间序列的分析、预测或建模。主要包括四种类型:周期性模式、趋势性模式、季节性模式、事件驱动模式。

  • 深度学习方法:近年来,深度学习模型如多层感知器(MLPs)、时序卷积网络(TCNs)、循环神经网络(RNNs)和基于 Transformer 的模型被提出用于时间序列分析。这些模型在捕捉时间序列数据的复杂变化方面显示出潜力。然而关于哪种架构更适合建模内部相关性仍存在争议。

  • 周期性分析:一些方法如 DEPTS 和 TimesNet 考虑了时间序列中的周期性特征,通过将周期函数实例化为一系列余弦函数或进行周期维变换来分析序列。但这些方法没有考虑不同周期性尺度上的多变量时间序列之间的不同相关性。

    DEPTS是一种针对长时间序列周期性预测的深度学习模型方法。该方法的全称为“Deep Expansion Learning for Periodic Time Series Forecasting”,即面向周期性时间序列预测的深度扩展学习。

2.2 图神经网络 (GNN) 用于学习序列间相关性

  • GNN 的兴起:GNNs被用于学习跨系列相关性,最初用于交通预测和骨架动作识别等任务,并在短期时间序列预测中显示出比传统方法更好的性能。
  • 局限性:大多数现有的GNNs设计用于具有预定义图结构的场景。在处理一般多变量预测任务时,基于先验知识定义通用图结构可能很困难。
  • 可学习图结构:一些方法探索使用可学习图结构,但通常考虑的图结构数量有限,并且没有将学习到的图结构与不同的时间尺度联系起来。

3 方法概述

3.1 问题表述

在多元时间序列预测的背景下,考虑一个变量数量用 N 表示的场景,我们给出输入数据 X t − L : t ∈ R N × L \mathbf{X}_{t-L:t}\in\mathbb{R}^{N\times L} Xt−L:t​∈RN×L,它代表了一个回顾性的观察窗口,包括从 t−L 到 t−1 范围内每个变量 i 在第 τ \tau τ 个时间点的 X τ i X_{\tau}^i Xτi​ 值。在这里, L L L 表示回顾性窗口的大小,t 表示预测窗口的初始位置。时间序列预测任务的目标是在 T 个未来时间步长的时间跨度内预测 N 个变量的未来值。预测值用 X ^ t − L : t ∈ R N × L \mathbf{\hat{X}}_{t-L:t}\in\mathbb{R}^{N\times L} X^t−L:t​∈RN×L 表示,其中包括所有变量在每个时间点 τ \tau τ 从 t 到 t + T−1 的 X τ i X_{\tau}^i Xτi​ 值。

我们假设能够识别出 N N N 个时间序列在不同时间尺度上的不同序列间相关性,这些相关性可以通过图表示。例如,给定一个时间尺度 s i < L s_i < L si​<L ,我们可以从时间序列 X p − s i : p \mathbf{X}_{p-s_i:p} Xp−si​:p​ 中识别一个图结构 G i = { V i , E i } \mathcal{G}_{i}=\{\mathcal{V}_{i},\mathcal{E}_{i}\} Gi​={Vi​,Ei​} 。这里, V i \mathcal{V}_i Vi​ 表示一组节点, ∣ V i ∣ = N , E i ⊆ V i × V i |\mathcal{V}_i|=N,\mathcal{E}_i\subseteq\mathcal{V}_i\times\mathcal{V}_i ∣Vi​∣=N,Ei​⊆Vi​×Vi​ 表示加权边,p 表示任意时间点。考虑 k 个时间尺度的集合,表示为 { s 1 , … , s k } \{s_{1},\ldots,s_{k}\} {s1​,…,sk​} ,我们可以识别 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 。这些邻接矩阵在不同的时间尺度上捕获了不同的序列间相关性。

3.2 模型架构

文章详细阐述了MSGNet的整体模型架构,包括多个尺度图卷积块、捕捉序列内关联的多头注意力机制、以及使用SoftMax 函数自适应聚合不同尺度表示等关键组成部分。同时解释了模型如何通过结合频域分析和图卷积网络来捕捉多变量时间序列数据中不同时间尺度上的复杂相关性,并通过自注意力机制和尺度聚合策略来提高预测的准确性和泛化能力。

image-20241205141117419

MSGNet采用了几个ScaleGraph块,每个块包含三个关键模块:用于多尺度数据识别的FFT模块,用于时间尺度内序列间相关学习的自适应图卷积模块,以及用于序列内相关学习的多头注意模块。

如前所述,我们的工作旨在通过引入 MSGNet 来弥补现有时间序列预测模型的空白,MSGNet是一个旨在捕捉不同时间尺度上不同序列间相关性的新框架。整体模型架构如图所示。由多个ScaleGraph块组成,MSGNet的本质在于它能够无缝地交织各种组件。每个ScaleGraph块包含一个四步序列:

  1. 识别输入时间序列的尺度。
  2. 使用自适应图卷积块揭示与尺度相关的跨系列相关性。
  3. 通过多头自注意力捕获内部系列相关性。
  4. 使用SoftMax函数自适应地聚合不同尺度的表示。

3.3 输入嵌入与残差连接

我们在同一时间步将 N 个变量嵌入到一个大小为 d m o d e l d_{model} dmodel​ 的向量中: X t − L : t → X e m b \mathbf{X}_{t-L:t}\to\mathbf{X}_{\mathrm{emb}} Xt−L:t​→Xemb​,其中 。 X e m b ∈ R d m o d e l × L \mathbf{X}_{\mathrm{emb}}\in\mathbb{R}^{d_{\mathrm{model}}\times L} Xemb​∈Rdmodel​×L 我们采用 Informer 提出的统一输入表示来生成嵌入。具体来说, X e m b X_{emb} Xemb​ 是使用以下公式计算的:

​ X e m b = α C o n v 1 D ( X ^ t − L : t ) + P E + ∑ p = 1 P S E p ( 1 ) \mathbf{X}_{\mathrm{emb}}=\alpha\mathrm{Conv1D}(\mathbf{\hat{X}}_{t-L:t})+\mathbf{PE}+\sum_{p=1}^P\mathbf{SE}_p\quad(1) Xemb​=αConv1D(X^t−L:t​)+PE+∑p=1P​SEp​(1)

在这里,我们首先对输入 X t − L : t \mathrm{X}_{t-L:t} Xt−L:t​ 进行归一化,得到 X ^ t − L : t \mathbf{\hat{X}}_{t-L:t} X^t−L:t​ ,因为归一化策略已被证明能有效地提高数据的平稳性。然后我们使用一维卷积滤波器(核宽度=3,步长=1)将 X ^ t − L : t \mathbf{\hat{X}}_{t-L:t} X^t−L:t​ 投影到 d m o d e l d_{\mathrm{model}} dmodel​维的矩阵中。参数 α 作为一个平衡因子,调节标量投影和局部/全局嵌入之间的幅度。 P E ∈ R d m o d e l × L \mathbf{PE}\in\mathbb{R}^{d_\mathrm{model}{\times L}} PE∈Rdmodel​×L 表示输入 X \mathbf{X} X 的位置嵌入, S E p ∈ R d m o d e l × L \mathbf{SE}_p\in\mathbb{R}^{d_{\mathrm{model}}\times L} SEp​∈Rdmodel​×L 是一个可学习的全局时间戳嵌入(以分钟为最细粒度时为60)。

我们以残差方式实现 MSGNet 。一开始,我们设置 X 0 = X e m b \mathbf{X}^0=\mathbf{X}_{\mathrm{emb}} X0=Xemb​,其中 X e m b \mathbf{X}_{\mathrm{emb}} Xemb​ 表示由嵌入层投影到深度特征中的原始输入。在 MSGNet 的第 l l l 层,输入为 X l − 1 ∈ R d m o d e l × L \mathbf{X}^{l-1}\in\mathbb{R}^{d_{\mathrm{model}}\times L} Xl−1∈Rdmodel​×L ,其过程可以形式化表示为:

​ X l = ScaleGraphBlock ( X l − 1 ) + X l − 1 ( 2 ) \mathbf{X}^l=\text{ScaleGraphBlock}\left(\mathbf{X}^{l-1}\right)+\mathbf{X}^{l-1}\quad(2) Xl=ScaleGraphBlock(Xl−1)+Xl−1(2)

这里,ScaleGraphBlock表示构成 MSGNet 层核心功能的操作和计算。

扩展:embedding

image-20241207145608616

这张图描绘了时间序列数据在输入到模型前的处理过程,尤其是在进行时间序列预测时如何将不同类型的时间信息嵌入(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 能考虑局部时序信息以及层次时序信息,如星期、月和年等,以及突发时间戳信息(事件或某些节假日等),更全面地理解和捕捉时间序列数据中的时间动态和周期性模式。

3.4 尺度识别

我们的目标是通过利用不同时间尺度上的序列间相关性来提高预测的准确性。该尺度的选择是我们方法的一个关键方面,我们特别重视选择周期性作为尺度源。这种选择背后的基本原理在于时间序列数据中周期性的内在意义。例如,在太阳能电池板暴露在阳光下的白天,能量消耗和太阳能电池板输出的时间序列往往表现出更强的相关性。如果我们选择不同的周期,例如考虑一个月或一天过程中的相关性,这种相关性模式就会有所不同。

受 TimesNet(Wu et al. 2023a)的启发,我们采用快速傅里叶变换(Fast Fourier Transform, FFT)来检测突出的周期周期作为时间尺度:

​ F = A v g ( A m p ( F F T ( X e m b ) ) ) ) , f 1 , ⋯   , f k = arg ⁡ T o p k f ∗ ∈ { 1 , ⋯   , L 2 } ( F ) , s i = L f i . \begin{aligned} \mathbf{F}=\mathrm{Avg}\left(\mathrm{Amp}\left(\mathrm{FFT}(\mathbf{X}_{\mathrm{emb}})\right)\right)), \\ f_1,\cdots,f_k=\underset{f_*\in\{1,\cdots,\frac{L}{2}\}} {{\arg\mathrm{Topk}}}(\mathbf{F}),s_i=\frac{L}{f_i}. \end{aligned} F=Avg(Amp(FFT(Xemb​)))),f1​,⋯,fk​=f∗​∈{1,⋯,2L​}argTopk​(F),si​=fi​L​.​

其中, F F T ( ⋅ ) \mathrm{FFT}(\cdot) FFT(⋅) 表示对输入数据进行 FFT ,以将时间序列从时域转换到频域。在频域中,数据的周期性模式可以表现为不同频率的振幅。 A m p ( ⋅ ) \mathrm{Amp}(\cdot) Amp(⋅) 分用于计算 FFT 后各频率点的振幅值。振幅越大,表示该频率的周期性成分在时间序列中越显著,向量 F ∈ R L \mathbf{F}\in\mathbb{R}^L F∈RL 表示每个频率的计算振幅,通过函数 A v g ( ⋅ ) \mathrm{Avg}(\cdot) Avg(⋅) 在 d m o d e l d_{\mathrm{model}} dmodel​ 维度上平均。argTopk 是一个函数,用于找出幅度值最大的前 k 个频率分量。这些频率分量代表了输入数据中最为显著的周期性模式。

**快速傅里叶变换(FFT,Fast Fourier Transform)**是一种用于计算离散傅里叶变换(DFT,Discrete Fourier Transform)及其逆变换的高效算法。傅里叶变换是一种数学工具,用于分析信号中的频率成分,常用于信号处理、图像处理、音频处理、通信等领域。FFT算法通过减少计算量,提高了DFT计算的效率,是一种在许多应用中广泛使用的基础算法。

傅里叶变换将一个信号从时域(时间或空间的表现形式)转换到频域(表示信号各个频率成分的组合)。对于连续信号,傅里叶变换的公式如下:

​ X ( f ) = ∫ − ∞ ∞ x ( t ) ⋅ e − i 2 π f t d t X(f)=\int_{-\infty}^{\infty}x(t)\cdot e^{-i2\pi ft}dt X(f)=∫−∞∞​x(t)⋅e−i2πftdt

在这种情况下,值得注意的是,时间变化的输入可能表现出不同的周期性,从而允许我们的模型检测不断变化的尺度。我们假设这种随时间变化的周期尺度所固有的相关性保持稳定。这一观点使我们观察到我们的模型所学习的序列间和序列内相关性中的动态属性。

基于所选择的时间尺度 { s 1 , … , s k } \{s_{1},\ldots,s_{k}\} {s1​,…,sk​} ,我们可以通过使用以下方程将输入重塑为3D张量来获得对应于不同时间尺度的多个表示:

​ X i = R e s h a p e s i , f i ( P a d d i n g ( X i n ) ) , i ∈ { 1 , … , k } , ( 4 ) \mathcal{X}^i=\mathrm{Reshape}_{s_i,f_i}(\mathrm{Padding}(\mathbf{X}_\mathrm{in})),\quad i\in\{1,\ldots,k\},(4) Xi=Reshapesi​,fi​​(Padding(Xin​)),i∈{1,…,k},(4)

其中, P a d d i n g ( ⋅ ) \mathrm{Padding}(\cdot) Padding(⋅) 是用来在时间维度上对时间序列进行零扩展的,以使其与 R e s h a p e s i , f i ( ⋅ ) \mathrm{Reshape}_{s_{i},f_{i}}(\cdot) Reshapesi​,fi​​(⋅) 兼容。注意, X i ∈ R d m o d e l × s i × f i \mathcal{X}^{i}\in\mathbb{R}^{d_{\mathrm{model}}\times s_{i}\times f_{i}} Xi∈Rdmodel​×si​×fi​ 表示基于时间尺度 i i i 的第 i i i 个重构时间序列。我们使用 X i n \mathrm{X}_{in} Xin​ 表示 ScaleGraph 块的输入矩阵。

3.5 多尺度自适应图卷积

我们提出了一种新颖的多尺度图卷积方法来捕获特定的和全面的序列间依赖关系。为了实现这一点,我们通过将第 i i i 个尺度对应的张量投影回具有 N 个变量的张量来启动该过程,其中 N 表示时间序列的数量。这个投影是通过线性变换来实现的,定义如下:

​ H i = W i X i ( 5 ) \mathcal{H}^i=\mathbf{W}^i\mathcal{X}^i \quad(5) Hi=WiXi(5)

其中, H i ∈ R N × s i × f i \mathcal{H}^i\in\mathbb{R}^{N\times s_i\times f_i} Hi∈RN×si​×fi​ , W i ∈ R N × d m o d e l \mathbf{W}^i\in\mathbb{R}^{N\times d_{\mathrm{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 。随后,通过将这两个参数矩阵相乘来获得自适应邻接矩阵,如下公式:

​ A i = SoftMax(ReLu ( E 1 i ( E 2 i ) T ) ) ( 6 ) \mathbf{A}^{i}=\text{SoftMax(ReLu}(\mathbf{E}_{1}^{i}(\mathbf{E}_{2}^{i})^{T})) \quad (6) Ai=SoftMax(ReLu(E1i​(E2i​)T))(6)

在这个公式中,我们利用 SoftMax 函数对不同节点之间的权重进行归一化,确保了序列间关系的良好平衡和有意义的表示。

在获得第 i i i 个尺度的邻接矩阵 A i \mathbf{A}^{i} Ai 后,我们利用Mixhop图卷积方法来捕获序列间相关性,因为它证明了能够表示其他模型可能无法捕获的特征。图卷积的定义如下:

​ H o u t i = σ ( ∥ j ∈ P ( A i ) j H i ) ( 7 ) \mathcal{H}_{\mathrm{out}}^{i}=\sigma\left(\underset{j\in\mathcal{P}}{{{\|}}}(\mathbf{A}^{i})^{j}\mathcal{H}^{i}\right)\quad (7) Houti​=σ(j∈P∥​(Ai)jHi)(7)

其中 H o u t i \mathcal{H}_{\mathrm{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 o u t i \mathcal{H}_{\mathrm{out}}^i Houti​ 投影回三维张量 X i ^ ∈ R d m o d e l × s i × f i \hat{\mathcal{X}^{i}}\in\mathbb{R}^{d_{\mathrm{model}}}\times s_{i}\times f_{i} Xi^∈Rdmodel​×si​×fi​ 。

3.6 多头自注意力和尺度聚合

在每个时间尺度上,MSGNet应用多头自注意力机制(Multi-head Attention,MHA)来捕捉内部系列相关性,具体地说,对于每个时间尺度张量 X ^ i \hat{\mathcal{X}}^i X^i ,我们在张量的时间尺度维度上应用多头自注意:

​ X ^ o u t i = M H A s ( X ^ i ) ( 8 ) \hat{\mathcal{X}}_{\mathrm{out}}^i=\mathrm{MHA}_s(\hat{\mathcal{X}}^i)\quad(8) X^outi​=MHAs​(X^i)(8)

这里, M H A s ( ⋅ ) \mathrm{MHA}_s(\cdot) MHAs​(⋅) 指的是(Vaswani et al. 2017)在尺度维度上提出的多头注意函数。在实现方面,它涉及将大小为 B × d m o d e l × s i × f i B\times d_{\mathrm{model}}\times s_{i}\times f_{i} B×dmodel​×si​×fi​ 重塑为一个 B f i × d m o d e l × s i Bf_i\times d_{\mathrm{model}}\times s_i Bfi​×dmodel​×si​ 的张量,其中 B为每一批的大小。尽管一些研究对 MHA 在捕获时间序列中的长期时间相关性方面的有效性提出了担忧(Zeng etal. 2023),但我们通过采用尺度转换将长时间跨度转换为周期长度,成功地解决了这一限制。我们的结果显示,即使输入时间增长,MSGNet 的性能也能保持一致(见附录)。

最后,为了进入下一层,我们需要整合 k k k 个不同尺度的张量 X ^ o u t 1 , ⋯   , X ^ o u t k \hat{\mathcal{X}}_{\mathrm{out}}^{1},\cdots,\hat{\mathcal{X}}_{\mathrm{out}}^{k} X^out1​,⋯,X^outk​ 。我们首先将每个尺度的张量重新塑造回一个二维矩阵 X ^ o u t i ∈ R d m o d e l × L \mathbf{\hat{X}}_{\mathrm{out}}^i\in\mathbb{R}^{{d_{\mathrm{model}}}\times L} X^outi​∈Rdmodel​×L 。然后,我们根据它们的振幅来聚合不同的尺度:

​ a ^ 1 , ⋯   , a ^ k = S o f t M a x ( F f 1 , ⋯   , F f k ) , X ^ o u t = ∑ i = 1 k a ^ i X ^ o u t i ( 9 ) \hat{a}_{1},\cdots,\hat{a}_{k}=\mathrm{SoftMax}(\mathbf{F}_{f_1},\cdots,\mathbf{F}_{f_k}), \\\mathbf{\hat{X}}_{\mathrm{out}}=\sum_{i=1}^k\hat{a}_i\mathbf{\hat{X}}_{\mathrm{out}}^i \quad(9) a^1​,⋯,a^k​=SoftMax(Ff1​​,⋯,Ffk​​),X^out​=∑i=1k​a^i​X^outi​(9)

在这个过程中, 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)策略使模型能够根据不同尺度各自的振幅强调来自不同尺度的信息,从而促进将多尺度特征有效地合并到下一层。

专家混合策略 (Mixture of Experts, MoE) 是一种深度学习技术,旨在通过引入多个“专家”模型并根据输入动态选择不同的专家来执行任务,从而提高模型的性能和效率。简单来说,它是一种将多个子模型(即“专家”)的输出进行加权组合的策略,而每次输入都会根据其特性选择最合适的专家来处理。工作流程如下:

  1. 输入传递:首先,输入数据传递给门控网络。门控网络会根据输入数据生成每个专家的权重或选择概率。
  2. 选择专家:根据门控网络的输出,选择一个或多个专家来进行处理。门控机制可能会选择只有少数几个专家来计算,而其他专家的计算被“关闭”或“冻结”,从而提高计算效率。
  3. 专家计算:每个被选中的专家会独立地处理输入数据并生成输出。
  4. 输出组合:最终的输出是所有选中专家输出的加权平均或其他组合方法。这个加权过程通常基于门控机制为每个专家分配的权重。

3.6 输出层

为了进行预测,我们的模型在时间维度和变量维度上都利用线性投影将 X ^ o u t   ∈ R d m o d e l × L \mathbf{\hat{X}}_\mathrm{out~}\in\mathbb{R}^{d_\mathrm{model}\times L} X^out ​∈Rdmodel​×L 转换为 X ^ t : t + T ∈ R N × T \mathbf{\hat{X}}_{t:t+T}\in\mathbb{R}^{N\times T} X^t:t+T​∈RN×T 。这种转换可以表示为:

​ X ^ t : t + T = W s X ^ o u t W t + b ( 10 ) \mathbf{\hat{X}}_{t:t+T}=\mathbf{W}_\mathbf{s}\mathbf{\hat{X}}_\mathrm{out}\mathbf{W}_\mathbf{t}+\mathbf{b} \quad (10) X^t:t+T​=Ws​X^out​Wt​+b(10)

这里, W s ∈ R N × d m o d e l \mathbf{W_s}\in\mathbb{R}^{N\times d_{\mathrm{model}}} Ws​∈RN×dmodel​, W t ∈ R L × T \mathbf{W_t}\in\mathbb{R}^{L\times T} 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​ 沿着时间维度执行相同的线性投影(它将每个时间步长上的特征向量转换为预测未来 T 个时间步长的向量)。得到的结果是预测数据,其中 N N N 表示变量的数量, L L L 表示输入序列长度, T T T 表示预测范围。

4 实验/评估/结果

4.1 实验设置

实验环境: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)

4.2 结果分析

实验1:对比试验

具有 96 个回顾窗口和预测长度 {96, 192, 336, 720} 的预测结果。最佳结果以粗体表示,次等的下划线。

image-20241207132036443

如图表所示,MSGNet 在5个数据集上取得了最佳性能,在2个数据集上取得了第二佳性能。在面对与 COVID-19 大流行相关的 Flight 数据集时,MSGNet 超越了当前最佳方法 TimesNet,平均 MSE 和 MAE 分别降低了 21.5% 和 13.7% 。虽然 TimesNet 使用了多尺度信息,但它采用了纯计算机视觉模型来捕捉序列间和序列内的相关性,这对于时间序列数据并不非常有效。Autoformer 在 Flight 数据集上展现了出色的性能,这可能归因于其建立的自相关机制。MTGnn 由于缺乏对不同尺度的关注,它的性能明显弱于MSGNet。

通过评估模型在所有数据集上的平均排名,MSGNet显示出优异的泛化能力,平均排名超过了其他模型。这些结果证明了MSGNet在处理复杂时间序列预测任务时的优势,尤其是在对抗分布外样本时的鲁棒性方面。

实验1:对比实验——Flight 数据集

Flight 预测结果的可视化:黑色真实值的线,预测值的橙色线,以及蓝色标记表示明显偏差

image-20241207132634842

图为 Flight 预测结果的可视化图,MSGNet紧密地反映了真实情况,而其他模型在特定时间段内出现了明显的性能下降。图中的峰值和谷值与关键的飞行数据事件、趋势或周期性动态相一致。其他模型无法准确跟随这些变化,可能是由于其架构约束限制了它们捕捉多尺度模式、突然变化或复杂的序列间和序列内相关性的能力。

实验2:学习序列间相关性的可视化

图所示是 MSGNet 模型为不同的时间尺度(24小时、6小时和4小时)学习到了不同的自适应邻接矩阵,有效地捕捉了航班数据集中机场之间的交互作用。在机场6与机场0、1和3的距离较远,但在较长的时间尺度(24小时)上,它对这三个机场有着显著的影响。然而,随着时间尺度缩短(6小时和4小时),其对这些机场的影响显著减弱。另一方面,距离较近的机场0、3和5在较短的时间尺度上表现出更强的相互影响。这些观察结果反映了现实生活中的情况,表明在某些时间尺度上,由于物理接近性,航班之间可能存在更强的空间相关性。
image-20241207132844081

Flight 数据集的学习邻接矩阵(第一层的 24h、6h 和 4h)和机场地图。

实验3:消融实验

image-20241207140250463

考虑了4种消融方法,并在3个数据集上对它们进行了评估。以下将解释其实现的变体:

  1. w/o-AdapG:从模型中移除了自适应图卷积层(图学习)。
  2. w/o-MG:移除了多尺度图卷积,只使用了共享的图卷积层来学习整体的序列间依赖。
  3. w/o-A:移除了多头自注意力机制,消除了序列内相关性学习。
  4. w/o-Mix:用传统的卷积方法替换了混合跳跃卷积方法。

通过这些实验,发现移除图学习层会导致性能大幅下降,强调了学习序列间相关性的必要性;多尺度图学习的采用显著提升了模型性能,揭示了不同尺度间相关性的多样性;多头自注意力机制虽然只提供了边际性能提升,但其改进依然证明了其价值;最后,混合跳跃卷积的应用进一步提高了性能,尽管其缺失导致的性能降低有限,但仍突显了其对捕获复杂时间序列依赖关系的贡献。这些发现综合表明,MSGNet通过其独特的设计有效地捕捉了时间序列数据的复杂动态,证实了其先进性和有效性。

实验4:泛化能力

COVID-19 影响下的泛化测试:Decrease表示分区修改后性能下降的百分比。

image-20241207140645463

在COVID-19大流行期间,欧洲主要机场的每日航班量急剧下降,类似于急剧下降,后来逐渐恢复。

image-20241207140753218

为了验证疫情对航班预测的影响以及MSGNet抵抗外部影响的性能,将Flight数据集的分区修改为4:4:2。将训练集限制为疫情爆发前的数据,并使用后续数据作为验证集和测试集。具体结果如图所示。

image-20241207144712683

通过捕获多尺度的系列间相关性,MSGNet 不仅在两个不同的数据分区下实现了最佳性能,而且表现出最小的性能下降和最强的对外部影响的抵抗力。结果表明 MSGNet 对分布外(OOD)样本具有强大的泛化能力。我们假设这种优势归因于 MSGNet 捕获多个序列间相关性的能力,其中一些相关性即使在多元时间序列的 OOD 样本下仍然有效。

实验5:较长输入序列下的性能

MSGNet12:使用不同回顾窗口进行336个时间步的Flight数据集预测。我们用另外四个模型进行比较。

image-20241207140933960

如图 MSGNet12,在 Flight 数据集上的实验显示,MSGNet 利用不同大小的回顾窗口来预测随后的336个时间步的值,能够有效提取时间序列的长期依赖关系。通过融合自注意力机制,MSGNet在捕获时间信息方面的表现超越了早期可能受到时间噪声过拟合影响的模型。即便在长回顾窗口的设置下,MSGNet相较于传统线性模型和其他模型,展现了更为稳健和显著的性能提升,这归功于其在内部采用的尺度转换技术(将长序列缩短为较短的序列),有效解决了捕捉长期时间序列相关性的挑战。

MSGNet13:MSGNet在ETT数据集上,针对不同回顾窗口大小进行336个时间步的预测性能。

image-20241207141020756

在图 MSGNet13,通过在 ETT 数据集对不同回顾窗口的性能进行了更深入的分析,我们进一步验证了 MSGNet 在处理扩展回顾窗口时的高效性,证明了尺度转换策略在优化模型处理广泛时间范围数据时的关键作用。

5、结论

在本文中,我们介绍了MSGNet,这是一个新的框架,旨在解决现有深度学习模型在时间序列分析中的局限性。我们的方法利用周期作为时间尺度源来捕获不同时间尺度上的不同序列间相关性。通过对各种真实数据集的广泛实验,我们证明了MSGNet 在预测精度方面优于现有模型,并捕获了多个时间序列之间复杂的相互依赖关系。我们的研究结果强调了在时间序列数据分析中识别不同时间尺度的不同序列间相关性的重要性。

标签:mathbf,时间尺度,相关性,序列,MSGNet,mathrm
From: https://blog.csdn.net/weixin_58682959/article/details/145123893

相关文章

  • Emacs 折腾日记(九)——elisp 数组与序列
    elisp中序列是数组和列表的统称,序列的共性是内部数据有一个先后的顺序,它与C/C++中有序列表类似。elisp中的数组包括向量、字符串、char-table和布尔向量,它们的关系如下:在之前一章中已经介绍了序列中的一种类型——列表,本篇将介绍序列中的另外一种数据类型——数组数组简......
  • 线性代数13.线性相关性&内积&范数&正交
    13.线性相关性&内积&范数&正交13.1向量组的线性相关性13.1.1定义对于任意向量组\(A:a_1,a_2,a_3,...,a_n\),存在不全为0的数\(k_i(i=1,2,3,...,m)\),使:\[\tag{1}\sum_{i=1}^mk_i\cdota_i=0\]则称向量组A是\(线性相关\)的,否则称A是\(线性无关\)的13.1.2线性相关示例示例......
  • 使用Python实现基于矩阵分解的长期事件(MFLEs)时间序列分析
    在现代数据分析领域,时间序列数据的处理和预测一直是一个具有挑战性的问题。随着物联网设备、金融交易系统和工业传感器的普及,我们面临着越来越多的高维时间序列数据。这些数据不仅维度高,而且往往包含复杂的时间依赖关系和潜在模式。传统的时间序列分析方法如移动平均等,在处理此类......
  • Oracle 如何生成连续的数字/字符/时间序列
     文章目录使用层次查询生成序列生成一个连接的数字序列生成一个间隔的数字序列生成一个连续的字符序列生成一个间隔的时间序列使用表函数生成序列创建模拟的generate_series函数使用generate_series函数生成序列使用通用表表达式生成序列生成一个......
  • 解锁最新专业版005,内置序列免安装!
    随着数字化的推广,PDF文件凭借其强大的优势和稳定性逐渐成为各类文档交流和存储的首选格式。随之而来的是对PDF文件的阅读、编辑、转换、转曲等各种操作需求的不断增长。因此,各类PDF软件层出不穷,而这其中AcrobatProDC可以说是其中的佼佼者;AcrobatProDCv24.005的安装版......
  • 最长递增子序列
    题目最长递增子序列输入42315输出3(因为235组成了最长递增子序列)分析要求42315的最长递增子序列,先求4231的递增子序列,结果是23。然后比较5是否比3大,如果是的话,42315的最长递增子序列就是235题解packagecom.company.test5;importcom.com......
  • 8.10 序列化(第二版)
    8.10序列化(第二版).NET框架提供了三种主要的序列化技术,如下:数据协定(DataContract)序列化;XML序列化;运行时序列化(二进制和SOAP)​​​DO​:在设计新的类型时考虑到序列化。如果类型实例需要持久化,或需要传输,则设计时要考虑如何序列化。1选择要支持的序列化技术......
  • 代码随想录:从中序与后序遍历序列构造二叉树
    /**Definitionforabinarytreenode.structTreeNode{intval;TreeNode*left;TreeNode*right;TreeNode():val(0),left(nullptr),right(nullptr){}TreeNode(intx):val(x),left(nullptr),right(nullptr){}TreeNode(intx,TreeNo......
  • go序列化库--msgpack
    简介msgpack是一个基于二进制高效的对象序列化类库,可用于跨语言通信。它可以像JSON那样,在许多种语言之间交换结构对象。但是它比JSON更快速也更轻巧。支持Python、Ruby、Java、C/C++、Go等众多语言。宣称比GoogleProtocolBuffers还要快4倍。官方的说法它像JSON,但更......
  • 时间序列预测模型和 随机森林预测模型原理和使用
    让我们一起走向未来......