文章目录
摘要
多变量时间序列(MTS)预测已广泛应用于天气预报和能源消耗等不同领域。然而,目前的研究仍依赖于普通的逐点自注意机制来捕捉变量间的依赖关系,这种方法在提取变量间复杂的交叉相关性方面显得不足。为了解决这一问题,我们提出了变量相关变换器(VCformer),它利用变量相关注意力(VCA)模块来挖掘变量之间的相关性。具体而言,基于随机过程理论,VCA计算并整合查询和键之间对应于不同滞后时间的交叉相关性评分,从而增强其发现多变量关系的能力。此外,受库普曼动力学理论启发,我们还开发了库普曼时间检测器(KTD),以更好地应对时间序列中的非平稳性。这两个关键组件使VCformer能够提取多变量相关性和时间依赖性。我们在八个真实世界数据集上的广泛实验表明,VCformer在多个基准模型中取得了顶级性能。代码可在以下仓库获得:https://github.com/CSynn/VCformer。
1 引言
多变量时间序列(MTS)预测广泛应用于能源消耗、天气、交通、经济等领域[参考文献]。与单变量时间序列不同,MTS涉及多个相互关联的时间依赖变量,在捕捉复杂的变量间依赖关系方面提出了独特的挑战[参考文献]。因此,MTS预测一直是工业和学术界的重要研究领域。
Transformer在自然语言处理中的成就[参考文献],引发了众多Transformer变体在时间序列预测任务中的出现。这些模型开发了各种复杂的注意力机制和对Transformer架构的增强[参考文献],展示了在时间序列数据中建模时间依赖关系的显著能力[参考文献]。
然而,关于这些模型是否能有效捕捉时间依赖关系,学术界仍在进行讨论[参考文献]。这些方法通常将每个时间步嵌入到混合通道标记中,并对每个标记应用注意力机制。考虑到这些方法可能忽略了宝贵的多变量关系,研究人员开始关注确保通道独立性,并结合互信息来明确建模多变量相关性[参考文献]。
尽管如此,传统的自注意机制通过点积来保持两个变量之间的关系,这与图1a所示的情况相类似。该方法将每个时间步与两个变量对齐,忽略了它们之间可能存在的不同时间延迟,如图1b所示。
针对逐点自注意的局限性,我们引入了变量相关变换器(VCformer),充分利用MTS中固有的滞后相关性,通过变量相关注意力(VCA)模块。VCA模块计算查询和键之间的全局相关性强度,基于不同特征。受随机过程理论启发[VCA参考文献],它不仅计算自相关,还扩展这一概念以确定各种变量之间的滞后交叉相关性。该方法结合了ROLL操作和Hadamard乘积,以有效近似这些滞后相关性。此外,VCA自适应聚合了不同滞后长度上的滞后相关性,从而确定了每个变量的综合相关性。为了增强模型在应对MTS非平稳性方面的能力,我们设计了库普曼时间检测器(KTD)模块,灵感来自库普曼动力学理论[参考文献]。
实验表明,VCformer在八个真实世界数据集上实现了最先进的性能。我们还对其他基于Transformer的模型进行了VCA泛化实验,证明了VCA在建模通道依赖性方面的强大能力。总体而言,我们的贡献在以下三个方面:
- 我们提出了一种新的MTS预测模型,称为VCformer。它学习变量相关性和MTS的时间依赖性。
- 我们设计了VCA机制,充分利用不同变量间的滞后相关性。此外,我们提出了受库普曼动力学理论启发的KTD,有效解决了MTS预测中的非平稳性。
- 实验表明,VCformer在八个真实世界数据集上取得了顶级性能。为了进一步评估VCA功能的泛化性,将VCA应用于其他基于Transformer的模型,并取得了更好的性能。
图 1:点积方法在不同滞后时间下获取相关性的示意图。例如,滞后时间 ( l a g = 3 lag = 3 lag=3) 显示了 ( v 1 v_1 v1) 和 ( v 2 v_2 v2) 之间的相似性(相同颜色的点)。
2 相关工作
超越当代的时序卷积网络(TCN)[参考文献]和基于RNN的模型[参考文献],Transformer变体在序列建模中表现出了出色的能力。所有的改进可以根据其重点分为两类:仅关注建模时间依赖性和同时解决时间依赖性和变量依赖性。
对于前者,已经开发了一系列复杂的注意力机制,可以大致分为三类。第一类是通过引入稀疏偏差来移除冗余信息,从而减少普通Transformer的二次复杂性[参考文献]。第二类是将自注意机制从时间域转移到频率域。这种转换通过快速傅里叶变换或其他频率分析工具进行,使得可以更细粒度地提取子序列级别的时间依赖性[参考文献]。第三类则与处理时间序列中的分布偏移现象相关,如去平稳注意力[参考文献]。除了这些关注注意力的创新外,前者还包括采用多分辨率分析时间序列的方法,通过分层架构进行[参考文献]。
这些模型的主要焦点是提取时间依赖性,设计了各种精致的注意力机制和精巧的架构。然而,这些模型的一个关键弱点是忽视了丰富的变量间信息,而这对于MTS预测任务来说是重要的。
在解决MTS预测时,出现了两种主要维度的多变量建模:通道独立(CI)和通道相关(CD)。CI独立地处理时间序列的各个变量并采用共享的骨架。CD通过考虑所有通道来预测未来值[参考文献]。[参考文献]引入了补丁和CI策略,显著增强了其在基于Transformer的架构中的性能。尽管CI结构简单,其耗时的训练和推理催生了CD方法的发展,用于建模多变量关系。对于CD方法,[参考文献]通过依次应用时间和变量注意力来捕捉跨时间和跨维度的依赖性,而[参考文献]则将它们并行应用。此外,[参考文献]通过颠覆传统注意力机制和前馈网络的职责,彻底改变了普通Transformer。他们专注于捕捉多变量相关性和学习非线性表示。
尽管上述工作承认建模多变量关系的重要性,它们采用了基于逐点自注意机制的经典自注意方法,这并未充分利用变量序列间的关系。尽管现有方法在时间序列中分析滞后交叉相关性[参考文献],这些时间序列Transformer在文献中尚未充分利用它们,从而限制了其预测性能。
3 方法
在MTS预测中,给定历史观测数据 X = { x 1 , … , x T } ∈ R T × N X = \{x_1, \ldots, x_T\} \in \mathbb{R}^{T \times N} X={x1,…,xT}∈RT×N(其中 T T T 为时间步数, N N N 为变量数),我们预测未来 H H H 个时间步 Y = { x T + 1 , … , x T + H } ∈ R H × N Y = \{x_{T+1}, \ldots, x_{T+H}\} \in \mathbb{R}^{H \times N} Y={xT+1,…,xT+H}∈RH×N。为了解决这个MTS预测任务,我们提出了VCformer,如图2所示。
3.1 背景
在本节中,我们首先讨论了普通变量注意力在建模特征依赖性方面的局限性。这激励我们提出变量交叉相关注意力机制,该机制在特征通道之间操作,以学习变量之间的交叉相关性。
接下来,我们回顾了库普曼理论并将时间序列视为动态系统。基于此,我们设计了KTD模块,并将其与变量交叉相关注意力结合起来,以学习通道和时间步依赖性。
普通变量注意力的局限性
在采用注意力机制以促进时间依赖性的先前基于Transformer的预测模型中,自注意模块采用线性投影来获取查询、键和值 Q , K , V ∈ R T × D Q, K, V \in \mathbb{R}^{T \times D} Q,K,V∈RT×D,其中 D D D 为投影维度。查询 Q = [ q 1 , q 2 , … , q T ] ⊤ Q = [q_1, q_2, \ldots, q_T]^\top Q=[q1,q2,…,qT]⊤ 和键 K = [ k 1 , k 2 , … , k T ] ⊤ K = [k_1, k_2, \ldots, k_T]^\top K=[k1,k2,…,kT]⊤ 的预Softmax注意力分数是通过以下计算得出的:
A i , j = ( Q K ⊤ / D ) i , j ∑ j exp ( ( Q K ⊤ / D ) i , j ) ∝ q i ⊤ k j A_{i,j} = \frac{(QK^\top / \sqrt{D})_{i,j}}{\sum_j \exp((QK^\top / \sqrt{D})_{i,j})} \propto q_i^\top k_j Ai,j=∑jexp((QK⊤/D)i,j)(QK⊤/D)i,j∝qi⊤kj
然而,特征级信息,每个 D D D 特征对应于查询 q i ∈ R 1 × D q_i \in \mathbb{R}^{1 \times D} qi∈R1×D 或键 k j ∈ R 1 × D k_j \in \mathbb{R}^{1 \times D} kj∈R1×D 的一个元素,被吸收到这样的内积表示中。因此,这使得这种时间注意机制无法明确利用特征级信息。为了应对这种限制,iTransformer提出了一种反转Transformer以捕捉变量间依赖性的简单设计,但这对于与内在时间依赖性耦合的数据来说是不足的。特别是,MTS数据的变量可能以不同的滞后时间相互关联。这种现象被称为MTS分析中的滞后交叉相关性。此外,MTS数据中的变量甚至可能与自身的延迟副本相关,这被称为自相关。
库普曼理论解决非线性动力学
库普曼理论显示,一个线性动力系统可以表示为在测量函数空间上操作的无限维非线性库普曼算子 K \mathcal{K} K,如下所示:
K ∘ g ( x t ) = g ( F ( x t ) ) = g ( x t + 1 ) \mathcal{K} \circ g(x_t) = g(F(x_t)) = g(x_{t+1}) K∘g(xt)=g(F(xt))=g(xt+1)
动态模式分解(DMD)通过收集观察到的系统状态(即快照)来寻找最佳拟合矩阵 K K K,以近似无限维算子 K \mathcal{K} K。然而,找到适当的测量函数 g g g 以及库普曼算子 K \mathcal{K} K 是非常复杂的。因此,许多工作通过深度神经网络(DNNs)在数据驱动方式下学习测量函数。库普曼理论作为有限维非线性动力学和无限维线性动力学之间的连接,启用了使用频谱分析工具进行详细检查。
在本文中,我们将时间序列数据 X = { x 1 , … , x T } X = \{x_1, \ldots, x_T\} X={x1,…,xT} 视为一系列动态系统状态的观测,因此我们设计了KTD模块,利用库普曼理论方法来解决非线性动力学。
3.2 结构概览
提出的VCformer如图2所示。遵循与iTransformer相同的仅编码器结构,我们采用了反转嵌入,认为每个单变量时间序列作为嵌入标记,而不是嵌入多个变量作为时间标记。通过堆叠 L L L 层VCA和KTD模块,可以捕捉时间序列中的跨变量关系和时间依赖性。最终预测是通过投影 R D → R H \mathbb{R}^D \to \mathbb{R}^H RD→RH 获得的。
3.3 变量相关注意力
我们的VCA由滞后交叉相关性计算和分数聚合组成。
滞后交叉相关性计算
回顾随机过程理论[Chatfield and Xing, 2019],对于任何实际的离散时间过程 { X t } \{X_t\} {Xt},其自相关性 R X , X ( τ ) R_{X,X}(\tau) RX,X(τ) 可以计算如下:
R X , X ( τ ) = lim L → ∞ 1 L ∑ τ = 1 L X t X t − τ R_{X,X}(\tau) = \lim_{L \to \infty} \frac{1}{L} \sum_{\tau=1}^{L} X_t X_{t-\tau} RX,X(τ)=L→∞limL1τ=1∑LXtXt−τ
给定查询 Q = [ q 1 , q 2 , … , q N ] Q = [q_1, q_2, \ldots, q_N] Q=[q1,q2,…,qN] 和键 K = [ k 1 , k 2 , … , k N ] K = [k_1, k_2, \ldots, k_N] K=[k1,k2,…,kN],在特征维度上表示,其中 q i , k j ∈ R T × 1 q_i, k_j \in \mathbb{R}^{T \times 1} qi,kj∈RT×1,我们对于变量 i i i 的自相关性做一个近似:
R q i , k i ( τ ) = ∑ τ = 1 T ( q i ) t ⋅ ( k i ) t − τ = q i ∘ ROLL ( k i , τ ) R_{q_i, k_i}(\tau) = \sum_{\tau=1}^{T} (q_i)_t \cdot (k_i)_{t-\tau} = q_i \circ \text{ROLL}(k_i, \tau) Rqi,ki(τ)=τ=1∑T(qi)t⋅(ki)t−τ=qi∘ROLL(ki,τ)
其中, ROLL ( k i , τ ) \text{ROLL}(k_i, \tau) ROLL(ki,τ) 表示 k i k_i ki 的元素沿时间维度的移位, ∘ \circ ∘ 表示Hadamard乘积。这一思想也在Autoformer中被利用[Wu et al., 2021]。类似地,我们可以计算变量 i i i 和 j j j 之间的交叉相关性:
LAGGED-COR ( q i , k j ) = q i ∘ ROLL ( k j , τ ) \text{LAGGED-COR}(q_i, k_j) = q_i \circ \text{ROLL}(k_j, \tau) LAGGED-COR(qi,kj)=qi∘ROLL(kj,τ)
因此,我们以这种方式计算具有不同滞后长度的所有变量滞后交叉相关性。
分数聚合
为了获得变量 i i i 和 j j j 的总相关性,我们从1到 T T T 聚合不同滞后的可学习参数 λ = [ λ 1 , λ 2 , … , λ T ] \lambda = [\lambda_1, \lambda_2, \ldots, \lambda_T] λ=[λ1,λ2,…,λT],以更准确地计算滞后相关性:
COR ( q i , k j ) = ∑ τ = 1 T λ i R q i , k j ( τ ) \text{COR}(q_i, k_j) = \sum_{\tau=1}^{T} \lambda_i R_{q_i, k_j}(\tau) COR(qi,kj)=τ=1∑TλiRqi,kj(τ)
最后,VCA在每一行上对学习到的多变量相关性图 A ∈ R N × N A \in \mathbb{R}^{N \times N} A∈RN×N 执行softmax,并获得输出值:
VCA ( Q , K , V ) = SOFTMAX ( COR ( Q , K ) ) V \text{VCA}(Q, K, V) = \text{SOFTMAX}(\text{COR}(Q, K)) V VCA(Q,K,V)=SOFTMAX(COR(Q,K))V
3.4 库普曼时间检测器
我们采用KTD来解决输入序列 X var ∈ R N × D X_{\text{var}} \in \mathbb{R}^{N \times D} Xvar∈RN×D 中的非平稳性,包含多变量相关信息。显然,在整个序列 X var X_{\text{var}} Xvar 中直接捕捉非平稳性是困难的,但幸运的是,我们发现局部时间序列表现出弱平稳性,从而与库普曼理论对非线性动力学分析对齐。因此,我们将输入 X var X_{\text{var}} Xvar 分为长度为 S S S 的段:
x j = X var [ : , ( j − 1 ) S : j S ] , j = 1 , 2 , … , D S \mathbf{x}_j = X_{\text{var}}[:, (j-1)S : jS], \quad j = 1, 2, \ldots, \frac{D}{S} xj=Xvar[:,(j−1)S:jS],j=1,2,…,SD
其中,每个段可以作为系统的快照。随后,对于每个 x j ∈ R N × S \mathbf{x}_j \in \mathbb{R}^{N \times S} xj∈RN×S,我们利用基于MLP的编码器,将其投影到库普曼空间嵌入 z j ∈ R M \mathbf{z}_j \in \mathbb{R}^M zj∈RM。根据eDMD[Williams et al., 2015],这些嵌入 Z = [ z 1 , z 2 , … , z D S ] ∈ R D S × M Z = [z_1, z_2, \ldots, z_{\frac{D}{S}}] \in \mathbb{R}^{\frac{D}{S} \times M} Z=[z1,z2,…,zSD]∈RSD×M 随后用于计算拟合矩阵 K var K_{\text{var}} Kvar,以近似无限库普曼算子 K \mathcal{K} K。
具体而言,给定库普曼嵌入 Z Z Z,我们构造两个矩阵:
Z back = [ z 1 , z 2 , … , z D S − 1 ] ∈ R ( D S − 1 ) × M Z_{\text{back}} = [z_1, z_2, \ldots, z_{\frac{D}{S}-1}] \in \mathbb{R}^{(\frac{D}{S}-1) \times M} Zback=[z1,z2,…,zSD−1]∈R(SD−1)×M
Z fore = [ z 2 , z 3 , … , z D S ] ∈ R ( D S − 1 ) × M Z_{\text{fore}} = [z_2, z_3, \ldots, z_{\frac{D}{S}}] \in \mathbb{R}^{(\frac{D}{S}-1) \times M} Zfore=[z2,z3,…,zSD]∈R(SD−1)×M
它们分别包含相邻嵌入的信息。之后,拟合矩阵 K var ∈ R D × D K_{\text{var}} \in \mathbb{R}^{D \times D} Kvar∈RD×D 可以计算如下:
K var = Z fore Z back † K_{\text{var}} = Z_{\text{fore}} Z_{\text{back}}^\dagger Kvar=ZforeZback†
其中, Z back † Z_{\text{back}}^\dagger Zback† 是 Z back Z_{\text{back}} Zback 的Moore-Penrose逆矩阵。随着 K var K_{\text{var}} Kvar 的偏差,我们迭代地应用它来预测库普曼嵌入,如下所示:
z ^ T S + t = ( K var ) t z T S , t = 1 , 2 , … , H S \hat{z}_{\frac{T}{S}+t} = (K_{\text{var}})^t z_{\frac{T}{S}}, \quad t = 1, 2, \ldots, \frac{H}{S} z^ST+t=(Kvar)tzST,t=1,2,…,SH
通过这种方式,获得了长度为 H H H 的预测。最后,为了获得KTD的输出,我们采用一个解码器,将预测的嵌入映射回 Y var Y_{\text{var}} Yvar 如下:
Y var = [ x ^ T + 1 , … , x ^ T + H ] ⊤ Y_{\text{var}} = [\hat{x}_{T+1}, \ldots, \hat{x}_{T+H}]^\top Yvar=[x^T+1,…,x^T+H]⊤
3.5 高效计算
对于每个向量对 q i , k j ∈ R T × 1 q_i, k_j \in \mathbb{R}^{T \times 1} qi,kj∈RT×1,滞后相关性(公式5)的时间复杂度为 O ( T 2 ) \mathcal{O}(T^2) O(T2)。因此,计算 COR ( q i , K ) \text{COR}(q_i, K) COR(qi,K) 需要 O ( N T 2 ) \mathcal{O}(NT^2) O(NT2) 时间。其当前形式下,VCA的整体复杂度为 O ( N 2 T 2 ) \mathcal{O}(N^2 T^2) O(N2T2)。为减轻计算负担,我们基于Wiener-Khinchin定理应用快速傅里叶变换(FFT),从而将复杂度减少到 O ( N 2 T log T ) \mathcal{O}(N^2 T \log T) O(N2TlogT)。具体而言,对于计算公式4中的滞后相关性,给定离散时间序列 { X t } \{X_t\} {Xt} 和 { Y t } \{Y_t\} {Yt}, R X Y ( τ ) R_{XY}(\tau) RXY(τ) 可以通过FFT计算如下:
S X Y ( f ) = F ( X t ) F ∗ ( Y t ) S_{XY}(f) = \mathcal{F}(X_t) \mathcal{F}^*(Y_t) SXY(f)=F(Xt)F∗(Yt)
R X Y ( τ ) = F − 1 ( S X Y ( f ) ) R_{XY}(\tau) = \mathcal{F}^{-1}(S_{XY}(f)) RXY(τ)=F−1(SXY(f))
其中, F \mathcal{F} F 和 F − 1 \mathcal{F}^{-1} F−1 分别表示FFT及其逆操作, ∗ * ∗ 表示共轭运算。具体来说,我们将 Q Q Q 和 K K K 变换到频率域,并应用Hadamard乘积,然后应用逆FFT。通过这种方式,优化后的VCA复杂度为 O ( N 2 T log T ) \mathcal{O}(N^2 T \log T) O(N2TlogT)。