自学内容网 自学内容网

Pyraformer

摘要

基于时间序列数据准确预测未来是至关重要的,因为这为决策制定和风险管理提前打开了大门。在实践中,挑战在于构建一个既灵活又简洁的模型,以捕捉广泛的时间依赖性。在本文中,我们通过探索时间序列的多分辨率表示来提出Pyraformer模型。具体来说,我们引入了金字塔注意力模块(PAM),其中跨尺度树结构总结了不同分辨率的特征,而尺度内的邻接连接则模拟了不同范围的时间依赖性。在温和条件下,信号传播路径的最大长度是常数(即, O ( 1 ) \mathcal{O}(1) O(1))与序列长度 L L L相关,而其时间和空间复杂度线性随 L L L变化。广泛的实验结果表明,Pyraformer在单步和长距离多步预测任务中,通常以最少的时间和内存消耗实现了最高的预测准确性,尤其是在序列较长时。

1 引言

时间序列预测是下游任务的基石,如决策制定和风险管理。例如,可靠地预测微服务的在线流量可以提前预警潜在的云系统风险。此外,它还为动态资源分配提供指导,以在不降低性能的情况下尽量减少成本。除了在线流量外,时间序列预测还在其他领域有广泛应用,包括疾病传播、能源管理、经济和金融。

时间序列预测的主要挑战在于构建一个既强大又简洁的模型,该模型可以紧凑地捕捉不同范围的时间依赖性。时间序列通常表现出短期和长期重复模式(Lai等,2018),考虑到这些模式是准确预测的关键。特别值得注意的是处理长期依赖性的困难,这种依赖性由信号传播路径的最长长度来表征(见定义2)(Vaswani等,2017)。路径越短,捕捉到的依赖性越好。此外,为了使模型学习这些长期模式,输入模型的历史数据也应当足够长。为此,低时间和空间复杂度是一个优先事项。

不幸的是,现有的最先进方法未能同时实现这两个目标。一方面,RNN(Salinas等,2020)和CNN(Munir等,2018)实现了与时间序列长度 L L L成线性关系的低时间复杂度,但它们的信号传播路径最长为 O ( L ) \mathcal{O}(L) O(L),因此难以学习远距离位置之间的依赖性。另一方面,Transformer显著缩短了最大路径到 O ( 1 ) \mathcal{O}(1) O(1),但以时间复杂度增至 O ( L 2 ) \mathcal{O}(L^2) O(L2)为代价。因此,它无法处理非常长的序列。为了在模型容量和复杂度之间找到折中,提出了Transformer的变体,如Longformer(Beltagy等,2020)、Reformer(Kitaev等,2019)和Informer(Zhou等,2021)。然而,它们很少能在显著减少时间和空间复杂度的同时,实现小于 O ( L ) \mathcal{O}(L) O(L)的最大路径长度。

在本文中,我们提出了一种新的基于金字塔注意力的Transformer(Pyraformer),以弥合捕捉长期依赖性和实现低时间和空间复杂度之间的差距。具体来说,我们通过基于消息传递的金字塔注意力机制开发了金字塔图中的注意力,如图1(d)所示。图中的边分为两组:跨尺度边和尺度内边。跨尺度边构建了原始序列的多分辨率表示:最精细尺度的节点对应于原始时间序列中的时间点(例如,每小时观测),而粗尺度的节点表示具有较低分辨率的特征(例如,每日、每周和每月模式)。这些潜在的粗尺度节点通过粗尺度构建模块初始引入。另一方面,尺度内边在每个分辨率下通过连接邻近节点捕捉时间依赖性。因此,该模型通过在粗尺度下捕捉这种行为来紧凑地表示远距离位置之间的长期依赖性,从而缩短了信号传播路径的长度。此外,在不同尺度下使用稀疏的邻近尺度内连接建模不同范围的时间依赖性显著减少了计算成本。简而言之,我们的关键贡献包括:

  • 我们提出了Pyraformer,以紧凑的多分辨率方式同时捕捉不同范围的时间依赖性。为了区分Pyraformer和现有方法,我们从图的角度总结了所有模型,如图1所示。
  • 理论上,我们证明通过适当选择参数,可以同时实现最大路径长度 O ( 1 ) \mathcal{O}(1) O(1)和时间与空间复杂度 O ( L ) \mathcal{O}(L) O(L)。为了突出所提模型的吸引力,我们进一步在表1中比较了不同模型的最大路径和复杂度。
  • 实验上,我们表明所提的Pyraformer在各种真实数据集上的单步和长距离多步预测场景中,比原始Transformer及其变体具有更准确的预测,同时具有更低的时间和内存成本。

2 相关工作

2.1 时间序列预测

时间序列预测方法大致可以分为统计方法和基于神经网络的方法。第一类包括ARIMA(Box & Jenkins, 1968)和Prophet(Taylor & Letham, 2018)。然而,这两种方法都需要分别拟合每个时间序列,在长期预测方面的表现不佳。

近来,深度学习的发展在基于神经网络的时间序列预测方法中带来了显著增长,包括CNN(Munir et al., 2018)、RNN(Salinas et al., 2020)和Transformer(Li et al., 2019)。如前一节所述,CNN和RNN具有低时间和空间复杂度(即 O ( L ) \mathcal{O}(L) O(L)),但需要 O ( L ) \mathcal{O}(L) O(L)的路径来描述长期依赖性。我们建议读者参考附录A了解有关RNN方法的详细综述。相比之下,Transformer(Vaswani et al., 2017)可以有效捕捉到路径为 O ( 1 ) \mathcal{O}(1) O(1)步骤的长期依赖性,但其复杂度从 O ( L ) \mathcal{O}(L) O(L)大幅增加到 O ( L 2 ) \mathcal{O}(L^2) O(L2)。为了减轻这种计算负担,提出了LogTrans(Li et al., 2019)和Informer(Zhou et al., 2021):前者限制序列中每个点只能关注最多2^n步之前的点(n=1, 2, …),后者利用注意力得分的稀疏性,显著降低了复杂度(即 O ( L log ⁡ L ) \mathcal{O}(L \log L) O(LlogL)),代价是引入了较长的最大路径长度。

2.2 稀疏Transformer

除了时间序列预测的文献之外,还提出了许多方法来提高Transformer在自然语言处理(NLP)领域的效率。与CNN类似,Longformer(Beltagy et al., 2020)在局部滑动窗口或扩展滑动窗口内计算注意力。尽管复杂度降低到 O ( A L ) \mathcal{O}(AL) O(AL)(其中A是局部窗口大小),有限的窗口大小使得在全局交换信息变得困难。结果,最大路径长度为 O ( L / A ) \mathcal{O}(L/A) O(L/A)。作为替代,Reformer(Kitaev et al., 2019)利用局部敏感哈希(LSH)将序列划分成若干桶,然后在每个桶内进行注意力计算。它还采用可逆Transformer来进一步减少内存消耗,因此可以处理非常长的序列。其最大路径长度与桶的数量成正比,但更糟的是,需要一个大的桶数量来降低复杂度。另一方面,ETC(Ainslie et al., 2020)引入了一组额外的全局tokens用于全局信息交换,导致 O ( G L ) \mathcal{O}(GL) O(GL)的时间和空间复杂度及 O ( 1 ) \mathcal{O}(1) O(1)的最大路径长度(其中G是全局tokens的数量)。然而,G通常随L增加,结果复杂度仍是超线性的。与ETC类似,所提出的Pyraformer也引入全局tokens,但在多尺度方式下成功减少了复杂度到 O ( L ) \mathcal{O}(L) O(L),而不增加最大路径长度的阶数。

2.3 层次Transformer

最后,我们简要回顾了提高Transformer捕捉自然语言层次结构能力的方法,尽管它们从未用于时间序列预测。HIBERT(Miculicich et al., 2018)首先使用句子编码器提取句子的特征,然后将句子中的EOS tokens作为新序列输入文档编码器。然而,它专用于自然语言,无法泛化到其他序列数据。多尺度Transformer(Subramanian et al., 2020)通过自上而下和自下而上的网络结构学习序列数据的多尺度表示。这些多尺度表示有助于减少原始Transformer的时间和内存成本,但仍受制于二次复杂度的缺陷。另一个方法是BP-Transformer(Ye et al., 2019),它递归地将整个输入序列分区,直到每个分区只包含一个token。这些分区序列形成二叉树。在注意力层中,每个上层节点可以关注自己的子节点,而底层节点可以关注同层和所有较粗层的相邻节点。注意BP-Transformer用零初始化粗尺度节点,而Pyraformer通过构建模块以更灵活的方式引入粗尺度节点。此外,BP-Transformer与比Pyraformer更密集的图相关,从而引起更高的复杂度 O ( L log ⁡ L ) \mathcal{O}(L \log L) O(LlogL)

3 方法

时间序列预测问题可以表述为在给定之前 L L L步观察 z t − L + 1 : t z_{t-L+1:t} ztL+1:t和相关协变量 x t − L + 1 : t + M x_{t-L+1:t+M} xtL+1:t+M的情况下预测未来 M M M z t + 1 : t + M z_{t+1:t+M} zt+1:t+M(例如,一天中的小时)。为了实现这一目标,本文提出了Pyraformer,其整体架构如图2所示。正如图中所示,我们首先分别嵌入观察数据、协变量和位置,然后将它们相加,与Informer(Zhou等,2021)中的做法相同。接下来,我们使用粗尺度构建模块(CSCM)构建一个多分辨率的C叉树,其中粗尺度的节点总结了相应精细尺度的C个节点的信息。为了进一步捕捉不同范围的时间依赖性,我们通过在金字塔图中传递消息引入了金字塔注意力模块(PAM)。最后,根据下游任务的需要,我们采用不同的网络结构输出最终预测。为了便于说明,本文中的所有符号在表4中进行了总结。

3.1 金字塔注意力模块(PAM)

我们从介绍PAM开始,因为它是Pyraformer的核心。正如图1(d)所示,我们利用金字塔图以多分辨率的方式描述观察时间序列的时间依赖性。这样的多分辨率结构已被证明在计算机视觉(Sun等,2019;Wang等,2021)和统计信号处理(Choi等,2008;Yu等,2019)领域中是一个有效且高效的长距离交互建模工具。我们可以将金字塔图分解为两部分:跨尺度连接和尺度内连接。跨尺度连接形成了一个C叉树,每个父节点有C个子节点。例如,如果将金字塔图的最精细尺度与原始时间序列的每小时观察联系起来,那么粗尺度的节点可以被视为时间序列的每日、每周甚至每月特征。因此,金字塔图提供了原始时间序列的多分辨率表示。此外,在粗尺度中仅通过连接邻近节点可以更容易地捕捉长期依赖性(例如,每月依赖性)。换句话说,粗尺度在描述长距离相关性方面是至关重要的,其图形化表示比单一、最精细尺度的模型更为简洁。事实上,原始的单尺度Transformer(见图1(a))采用一个完整图来连接最精细尺度的每两个节点,从而在时间和空间复杂度上导致计算负担沉重的模型(Vaswani等,2017)。与此形成鲜明对比的是,金字塔图在所提出的Pyraformer中将计算成本减少到 O ( L ) \mathcal{O}(L) O(L)而不增加信号传播路径的最大长度。

在深入研究PAM之前,我们首先介绍原始注意力机制。令 X X X Y Y Y分别表示单头注意力机制的输入和输出。注意可以引入多个头来从不同角度描述时间模式。 X X X首先线性变换为三个不同的矩阵,即查询 Q = X W Q Q = XW_Q Q=XWQ,键 K = X W K K = XW_K K=XWK和值 V = X W V V = XW_V V=XWV,其中 W Q , W K , W V ∈ R L × D K W_Q, W_K, W_V \in \mathbb{R}^{L \times D_K} WQ,WK,WVRL×DK。对于 Q Q Q中的第i行 q i q_i qi,它可以关注 K K K中任何一行(即,键) k k k。换句话说,相应的输出 y i y_i yi可以表示为:
y i = ∑ ℓ = 1 L exp ⁡ ( q i k ℓ T / D K ) v ℓ ∑ ℓ = 1 L exp ⁡ ( q i k ℓ T / D K ) y_i = \sum_{\ell=1}^{L} \frac{\exp(q_i k_{\ell}^T / \sqrt{D_K}) v_{\ell}}{\sum_{\ell=1}^{L} \exp(q_i k_{\ell}^T / \sqrt{D_K})} yi==1L=1Lexp(qikT/DK )exp(qikT/DK )v

其中 k ℓ T k_{\ell}^T kT表示 K K K中第 ℓ \ell 行的转置。我们强调需要计算和存储的查询-键点积(Q-K对)的数量决定了注意力机制的时间和空间复杂度。换句话说,这个数量与图中的边数成正比(见图1(a))。由于所有Q-K对都在完全注意力机制中计算和存储,最终的时间和空间复杂度为 O ( L 2 ) \mathcal{O}(L^2) O(L2)

与上述完全注意力机制相反,在PAM中,每个节点仅关注金字塔图中有限的键。具体来说,假设 n ℓ ( s ) n_{\ell}^{(s)} n(s)表示尺度 s s s上的第 ℓ \ell 个节点,其中 s = 1 , ⋯   , S s = 1, \cdots, S s=1,,S表示从底尺度到顶尺度。在一般情况下,图中的每个节点可以关注三个尺度上的相邻节点集合 N ℓ ( s ) N_{\ell}^{(s)} N(s):同一尺度的相邻节点A,包括节点自身(记作 A ℓ ( s ) A_{\ell}^{(s)} A(s)),在C叉树中它的C个子节点(记作 C ℓ ( s ) C_{\ell}^{(s)} C(s)),以及在C叉树中的父节点(记作 P ℓ ( s ) P_{\ell}^{(s)} P(s)),即
N ℓ ( s ) = A ℓ ( s ) ∪ C ℓ ( s ) ∪ P ℓ ( s ) N_{\ell}^{(s)} = A_{\ell}^{(s)} \cup C_{\ell}^{(s)} \cup P_{\ell}^{(s)} N(s)=A(s)C(s)P(s)

注意力节点 n ℓ ( s ) n_{\ell}^{(s)} n(s)的注意力可以简化为:
y i = ∑ ℓ ∈ N ℓ ( s ) exp ⁡ ( q i k ℓ T / d K ) v ℓ ∑ ℓ ∈ N ℓ ( s ) exp ⁡ ( q i k ℓ T / d K ) y_i = \sum_{\ell \in N_{\ell}^{(s)}} \frac{\exp(q_i k_{\ell}^T / \sqrt{d_K}) v_{\ell}}{\sum_{\ell \in N_{\ell}^{(s)}} \exp(q_i k_{\ell}^T / \sqrt{d_K})} yi=N(s)N(s)exp(qikT/dK )exp(qikT/dK )v

我们进一步将注意力层的数量表示为 N N N。在不失一般性的情况下,我们假设 L L L可以被 C S − 1 C^{S-1} CS1整除。然后可以得到以下引理(见附录B的证明和符号的意义在表4中):

引理1:给定满足方程(4)的 A , C , L , N A, C, L, N A,C,L,N S S S,在N个堆叠的注意力层之后,粗尺度的节点可以获得全局感受野。

当尺度数 S S S固定时,以下两个命题总结了金字塔注意力机制的时间和空间复杂度及最大路径长度的阶数。证明见附录C和D。

命题1:给定 A A A L L L,金字塔注意力机制的时间和空间复杂度为 O ( A L ) \mathcal{O}(AL) O(AL),当 A A A相对于 L L L是常数时为 O ( L ) \mathcal{O}(L) O(L)

命题2:令图中两个节点之间的信号传播路径表示连接它们的最短路径。那么在金字塔图中,两个任意节点之间的信号传播路径的最大长度为 O ( S + L / C S − 1 / A ) \mathcal{O}(S + L / C^{S-1} / A) O(S+L/CS1/A)。对于给定的 A , C , L A, C, L A,C,L S S S,如果 A A A S S S固定且 C C C满足方程(5),则时间序列长度为 L L L时最大路径长度为 O ( 1 ) \mathcal{O}(1) O(1)

在我们的实验中,我们固定了 S S S N N N,且 A A A只能取3或5,无论序列长度 L L L如何。因此,所提出的PAM在最大路径长度为 O ( 1 ) \mathcal{O}(1) O(1)的情况下实现了 O ( L ) \mathcal{O}(L) O(L)的复杂度。注意,在PAM中,一个节点最多可以关注 A + C + 1 A + C + 1 A+C+1个节点。不幸的是,现有的深度学习库(如Pytorch和TensorFlow)不支持这种稀疏注意力机制。能够充分利用张量操作框架的PAM的简单实现是首先计算所有Q-K对之间的点积,即 q i k ℓ T q_i k_{\ell}^T qikT,然后屏蔽掉不在 N ℓ ( s ) N_{\ell}^{(s)} N(s)中的 ℓ \ell 。然而,这种实现的时间和空间复杂度仍然是 O ( L 2 ) \mathcal{O}(L^2) O(L2)。相反,我们使用TVM(Chen等,2018)构建了专门用于PAM的定制CUDA内核,从而在实践中减少了计算时间和内存成本,使所提出的模型适用于长时间序列。较长的历史输入通常有助于提高预测准确性,因为提供了更多信息,特别是在考虑长期依赖性时。

3.2 粗尺度构建模块(CSCM)

CSCM的目标是初始化金字塔图中粗尺度的节点,以便后续的PAM能够在这些节点之间交换信息。具体而言,粗尺度节点是通过对相应子节点 C ℓ ( s ) C_{\ell}^{(s)} C(s)进行卷积操作从底到顶逐级引入的。如图3所示,卷积层的核大小和步长均为C,按时间维度依次应用于嵌入序列,从而在尺度s上产生长度为 L / C s L / C^s L/Cs的序列。不同尺度上的序列形成一个C叉树。在将这些从细到粗的序列输入PAM之前,我们将它们连接起来。为了减少参数量和计算量,我们通过一个全连接层减少每个节点的维度,然后将序列输入堆叠的卷积层,并在所有卷积之后恢复原始维度。这样的瓶颈结构显著减少了模块中的参数数量,并能防止过拟合。

3.3 预测模块

对于单步预测,我们在历史序列 z t − L + 1 : t z_{t-L+1:t} ztL+1:t末尾添加一个终止标记(设置 z t + 1 = 0 z_{t+1} = 0 zt+1=0),然后将其输入嵌入层。在序列被PAM编码后,我们收集金字塔图中所有尺度最后一个节点给出的特征,连接它们,并将其输入全连接层进行预测。

对于多步预测,我们提出了两个预测模块。第一个与单步预测模块相同,但将所有尺度的最后节点映射到批次中的所有M个未来时间步。第二个则借助具有两个完全注意力层的解码器。具体来说,类似于原始Transformer(Vaswani等,2017),我们将未来M个时间步的观测值替换为0,并以与历史观测相同的方式嵌入它们,并将观测、协变量和位置嵌入的和作为“预测标记” F p F_p Fp。第一个注意力层将预测标记 F p F_p Fp作为查询,并将编码器 F e F_e Fe(即PAM中的所有节点)输出作为键和值,生成 F d 1 Fd1 Fd1。第二个注意力层以 F d 1 Fd1 Fd1作为查询,并将连接的 F d 1 Fd1 Fd1 F e F_e Fe作为键和值。历史信息 F e F_e Fe直接输入到这两个注意力层中,因为这种信息对于准确的长程预测至关重要。最终预测通过全连接层在通道维度上获取。再次强调,我们输出所有未来的预测以避免自回归解码器中误差累积的问题。


原文地址:https://blog.csdn.net/weixin_45633221/article/details/140277099

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!