文章目录
- 摘要
- 1 引言
- 2 相关工作
- 多变量时间序列预测
- 基于Transformer的MTS预测
- 视觉Transformers
- 3 方法
- 详细解释
- 3.1 维度-分段-方式嵌入
- 3.2 两阶段注意力层
- 跨时间阶段
- 跨维度阶段
- 3.3 分层编码器-解码器
- 编码器
- 解码器
摘要
最近,许多深度模型被提用于多变量时间序列(MTS)预测。特别是,基于Transformer的模型展示了巨大的潜力,因为它们能够捕捉长期依赖性。然而,现有的基于Transformer的模型主要集中于建模时间依赖性(跨时间依赖性),却常常忽略了不同变量之间的依赖性(跨维度依赖性),而这对于MTS预测至关重要。为了解决这一问题,我们提出了Crossformer,这是一种利用跨维度依赖性的基于Transformer的MTS预测模型。在Crossformer中,输入的MTS通过维度-分段-方式(DSW)嵌入被嵌入到二维向量数组中,以保留时间和维度信息。然后,提出了两阶段注意力(TSA)层,以有效捕捉跨时间和跨维度依赖性。通过利用DSW嵌入和TSA层,Crossformer在不同尺度上建立了一个分层编码器-解码器(HED),以在最终预测中使用信息。广泛的实验结果表明,Crossformer在六个真实世界数据集上的有效性,优于之前的最新技术。
1 引言
多变量时间序列(MTS)是具有多个维度的时间序列,每个维度代表一个特定的单变量时间序列(例如,天气的某个气候特征)。MTS预测旨在利用历史数据预测MTS的未来值。MTS预测有助于下游任务的决策,在包括天气(Angryk等,2020)、能源(Demirel等,2012)、金融(Patton,2013)等多个领域被广泛应用。随着深度学习的发展,许多模型被提出并在MTS预测中取得了优异的表现(Lea等,2017;Qin等,2017;Flunkert等,2017;Rangapuram等,2018;Li等,2019a;Wu等,2020;Li等,2021)。其中,最近基于Transformer的模型(Li等,2019b;Zhou等,2021;Wu等,2021a;Liu等,2021a;Zhou等,2022;Chen等,2022)由于其捕捉长期时间依赖性的能力,显示出巨大的潜力。
除了跨时间依赖性外,跨维度依赖性对于MTS预测也至关重要,即,对于一个特定的维度,来自其他维度关联序列的信息可能会改善预测。例如,在预测未来温度时,不仅历史温度,而且历史风速也有助于预测。一些以前的神经模型显式地捕捉了跨维度依赖性,即在潜在特征空间中保留维度信息,并使用卷积神经网络(CNN)或图神经网络(GNN)来捕捉其依赖性(Lai等,2018;Wu等,2020;Cao等,2020)。然而,最近的基于Transformer的模型通常仅隐式地通过嵌入来利用这种依赖性。通常,基于Transformer的模型在将所有维度的时间点嵌入到一个特征向量时,尝试捕捉不同时间步之间的依赖性(如图1(b)所示)。通过这种方式,跨时间依赖性得到了很好地捕捉,但跨维度依赖性没有,这可能会限制它们的预测能力。
为了解决这一问题,我们提出了Crossformer,一种显式利用跨维度依赖性的基于Transformer的MTS预测模型。具体来说,我们设计了维度-分段-方式(DSW)嵌入来处理历史时间序列。在DSW嵌入中,每个维度的序列首先被划分成片段,然后嵌入到特征向量中。DSW嵌入的输出是一个二维向量数组,其中两个轴分别对应时间和维度。然后我们提出了两阶段注意力(TSA)层,以有效捕捉二维向量数组中的跨时间和跨维度依赖性。使用DSW嵌入和TSA层,Crossformer为预测建立了分层编码器-解码器(HED)。在HED中,每一层对应一个尺度。编码器的上层将下层输出的相邻片段合并,以在更粗的尺度上捕捉依赖性。解码器层在不同的尺度上生成预测,并将它们加总作为最终预测。
本文的贡献如下:
-
我们深入研究了现有的基于Transformer的MTS预测模型,发现跨维度依赖性没有得到很好利用:这些模型只是简单地将特定时间步中所有维度的数据点嵌入到一个向量中,并集中于捕捉不同时间步之间的跨时间依赖性。在没有充分、显式地挖掘和利用跨维度依赖性的情况下,它们的预测能力经验上显示有限。
-
我们开发了Crossformer,这是一种利用跨维度依赖性的基于Transformer的MTS预测模型。这是少数显式探索和利用跨维度依赖性的Transformer模型之一。
-
在六个真实世界基准上的广泛实验结果表明,我们的Crossformer模型相较于之前的最新技术的有效性。具体来说,在58种不同预测长度和指标设置中的36种情况下,Crossformer在9个比较模型中排名第一,并在51种情况下排名前二。
图 1 说明我们DSW嵌入
(a) 在ETTh1数据集上训练的2层Transformer的自注意力分数,显示MTS数据趋向于被分段。
(b) 以前基于Transformer模型的嵌入方法(Li等,2019b;Zhou等,2021;Wu等,2021a;Liu等,2021a):不同维度在同一时间步的数据点被嵌入到一个向量中。
© Crossformer的DSW嵌入:在每个维度中,时间上的相邻点形成一个片段用于嵌入。
2 相关工作
多变量时间序列预测
MTS预测模型大致可分为统计模型和神经模型。向量自回归(VAR)模型(Kilian & Lütkepohl,2017)和向量自回归移动平均(VARMA)是典型的统计模型,这些模型假设线性跨维度和跨时间依赖性。随着深度学习的发展,许多神经模型被提出,并且经常显示出优于统计模型的表现。例如,TCN(Lea等,2017)和DeepAR(Flunkert等,2017)将MTS数据视为向量序列,并使用CNN/RNN捕捉时间依赖性。LSTNet(Lai等,2018)使用CNN捕捉跨维度依赖性,使用RNN捕捉跨时间依赖性。另一类工作使用图神经网络(GNNs)显式捕捉跨维度依赖性(Li等,2018;Yu等,2018;Cao等,2020;Wu等,2020)。例如,MTGNN(Wu等,2020)使用时间卷积和图卷积层捕捉跨时间和跨维度依赖性。这些神经模型通过CNN或RNN捕捉跨时间依赖性,但在建模长期依赖性方面存在困难。
基于Transformer的MTS预测
Transformers(Vaswani等,2017)在自然语言处理(NLP)、计算机视觉(CV)和语音处理等领域取得了成功。最近,许多基于Transformer的模型被提出用于MTS预测,并显示出巨大的潜力(Li等,2019b;Zhou等,2021;Wu等,2021a;Liu等,2021a;Zhou等,2022;Du等,2022)。例如,LogTrans(Li等,2019b)提出了减少Transformer计算复杂性的LogSparse注意力机制,从 (O(L^2)) 降到 (O(L(\log L)^2))。Informer(Zhou等,2021)利用稀疏注意力通过KL散度估计,并提出了实现 (O(L\log L)) 复杂性的ProbSparse自注意力机制。Autoformer(Wu等,2021a)引入了一种带有自动相关机制的分解架构,也实现了 (O(L\log L)) 复杂性。Pyraformer(Liu等,2021a)引入了一个金字塔注意力模块,该模块总结了不同分辨率和范围的特征。FEDformer(Zhou等,2022)提出时间序列具有稀疏表示,并开发了一种频率增强Transformer,复杂性为 (O(L))。Preformer(Du等,2022)将嵌入的特征向量序列划分为段,并利用分段相关性基于注意力机制进行预测。这些模型主要集中于降低跨时间依赖性建模的复杂性,但忽略了对MTS预测至关重要的跨维度依赖性。
视觉Transformers
Transformer最初应用于NLP进行序列建模,最近的工作将Transformer应用于CV任务处理图像(Dosovitskiy等,2021;Touvron等,2021;Liu等,2021b;Chen等,2021;Han等,2021)。这些工作在CV任务上取得了最先进的性能,启发了我们的工作。ViT(Dosovitskiy等,2021)是视觉Transformers的先驱之一。ViT的基本思想是将图像划分为不重叠的中等大小的块,然后将这些块重新排列成序列以输入Transformer。将图像划分为块的想法启发了我们将MTS划分为维度-分段-方式的嵌入。Swin Transformer(Liu等,2021b)在窗口内执行局部注意力以降低复杂性,并通过合并图像块建立分层特征图。读者可以参考Han等(2022)关于视觉Transformers的综合研究。
3 方法
在多变量时间序列预测中,目标是根据历史数据 x 1 : T ∈ R T × D \mathbf{x}_{1:T} \in \mathbb{R}^{T \times D} x1:T∈RT×D预测时间序列 x T + 1 : T + τ ∈ R τ × D \mathbf{x}_{T+1:T+\tau} \in \mathbb{R}^{\tau \times D} xT+1:T+τ∈Rτ×D的未来值,其中 τ , T \tau, T τ,T分别是未来和过去的时间步数, D > 1 D > 1 D>1是维度的数量。一个自然的假设是这些 D D D个序列是相关的(例如,天气的气候特征),这有助于提高预测的准确性。为了利用跨维度依赖性,在第 3.1 节中,我们使用维度-分段-方式(DSW)嵌入对MTS进行嵌入。在第 3.2 节中,我们提出了一种两阶段注意力(TSA)层,以有效捕捉嵌入片段之间的依赖性。在第 3.3 节中,使用DSW嵌入和TSA层,我们构建了一个分层编码器-解码器(HED),以在最终预测中利用不同尺度的信息。
详细解释
在多变量时间序列预测中,目标是根据历史数据 x 1 : T ∈ R T × D \mathbf{x}_{1:T} \in \mathbb{R}^{T \times D} x1:T∈RT×D预测时间序列 x T + 1 : T + τ ∈ R τ × D \mathbf{x}_{T+1:T+\tau} \in \mathbb{R}^{\tau \times D} xT+1:T+τ∈Rτ×D的未来值,其中 τ \tau τ和 T T T分别表示未来和过去的时间步数, D > 1 D > 1 D>1是维度的数量。一个自然的假设是这些 D D D个序列是相关的(例如,天气的气候特征),这有助于提高预测的准确性。
为了利用跨维度依赖性,在第 3.1 节中,我们使用维度-分段-方式(DSW)嵌入对多变量时间序列(MTS)进行嵌入。在第 3.2 节中,我们提出了一种两阶段注意力(TSA)层,以有效捕捉嵌入片段之间的依赖性。在第 3.3 节中,使用DSW嵌入和TSA层,我们构建了一个分层编码器-解码器(HED),以在最终预测中利用不同尺度的信息。
以下是各部分的详细解释:
-
维度-分段-方式(DSW)嵌入:我们将每个维度的数据划分为固定长度的片段,并将这些片段嵌入到向量空间中。这样做的目的是捕捉每个维度中的时间依赖性,同时保持不同维度的独立性。
-
两阶段注意力(TSA)层:为了进一步捕捉不同片段之间的依赖性,我们使用了两阶段的注意力机制。第一阶段是跨时间的注意力,它在每个维度中应用多头自注意力来捕捉时间片段之间的依赖性。第二阶段是跨维度的注意力,它通过一个路由器机制来聚合和分配不同维度之间的信息,从而降低计算复杂度。
-
分层编码器-解码器(HED):我们构建了一个分层结构的编码器-解码器,每一层的编码器合并相邻的时间片段,并应用TSA层以捕捉不同尺度的依赖性。解码器部分则使用这些编码层的输出,通过多头自注意力和线性投影,逐层生成预测值,并将这些预测值加总以获得最终的预测结果。
这个方法的核心在于通过多层次的处理,充分利用不同时间尺度和不同维度的信息,提高了多变量时间序列预测的准确性。
3.1 维度-分段-方式嵌入
为了激发我们的方法,我们首先分析了以前基于Transformer的MTS预测模型的嵌入方法(Zhou等,2021;Wu等,2021a;Liu等,2021a;Zhou等,2022)。如图 1(b) 所示,现有方法在同一时间步中将不同维度的数据点嵌入到一个向量中: x t → h t , x t ∈ R D , h t ∈ R d m o d e l \mathbf{x}_t \rightarrow \mathbf{h}_t, \mathbf{x}_t \in \mathbb{R}^D, \mathbf{h}_t \in \mathbb{R}^{d_{model}} xt→ht,xt∈RD,ht∈Rdmodel,其中 x t \mathbf{x}_t xt代表第 t t t步中 D D D维度的所有数据点。通过这种方式,输入 x 1 : T \mathbf{x}_{1:T} x1:T被嵌入到 T T T个向量 { h 1 , h 2 , … , h T } \{\mathbf{h}_1, \mathbf{h}_2, \ldots, \mathbf{h}_T\} {h1,h2,…,hT}中。然后捕捉这 T T T个向量之间的依赖性用于预测。因此,之前基于Transformer的方法主要捕捉跨时间依赖性,而跨维度依赖性在嵌入过程中没有得到显式捕捉,限制了它们的预测能力。
Transformer 最初是为NLP开发的(Vaswani等,2017),其中每个嵌入向量表示一个信息丰富的词语。对于MTS,一个单独的数值在时间域中提供的信息很少。虽然它在时间域中与相邻值形成信息模式,但图1(a) 显示了原始Transformer在MTS预测中的典型注意力分数图。我们可以看到,注意力值有分段的趋势,即相邻数据点有相似的注意力权重。
基于上述两点,我们认为一个嵌入向量应该表示单个维度的序列片段(图1©),而不是单个时间步中所有维度的值。为此,我们提出了维度-分段-方式(DSW)嵌入,其中每个维度中的点被划分为长度为 L s e g L_{seg} Lseg的片段,然后进行嵌入:
x 1 : T = { x i , d ( s ) ∣ 1 ≤ i ≤ T L s e g , 1 ≤ d ≤ D } \mathbf{x}_{1:T} = \left\{\mathbf{x}_{i,d}^{(s)} | 1 \leq i \leq \frac{T}{L_{seg}}, 1 \leq d \leq D \right\} x1:T={xi,d(s)∣1≤i≤LsegT,1≤d≤D}
x i , d ( s ) = { x t , d ∣ ( i − 1 ) ⋅ L s e g < t ≤ i ⋅ L s e g } \mathbf{x}_{i,d}^{(s)} = \left\{\mathbf{x}_{t,d} | (i-1) \cdot L_{seg} < t \leq i \cdot L_{seg} \right\} xi,d(s)={xt,d∣(i−1)⋅Lseg<t≤i⋅Lseg}
其中 x i , d ( s ) ∈ R L s e g \mathbf{x}_{i,d}^{(s)} \in \mathbb{R}^{L_{seg}} xi,d(s)∈RLseg是维度 d d d中第 i i i个片段,长度为 L s e g L_{seg} Lseg。为了方便,我们假设 T , τ T, \tau T,τ可以被 L s e g L_{seg} Lseg整除。然后每个片段使用线性投影加上位置嵌入进行嵌入:
h i , d = E x i , d ( s ) + E i , d ( p o s ) \mathbf{h}_{i,d} = \mathbf{E}\mathbf{x}_{i,d}^{(s)} + \mathbf{E}_{i,d}^{(pos)} hi,d=Exi,d(s)+Ei,d(pos)
其中 E ∈ R d m o d e l × L s e g \mathbf{E} \in \mathbb{R}^{d_{model} \times L_{seg}} E∈Rdmodel×Lseg表示可学习的投影矩阵, E i , d ( p o s ) ∈ R d m o d e l \mathbf{E}_{i,d}^{(pos)} \in \mathbb{R}^{d_{model}} Ei,d(pos)∈Rdmodel表示位置 ( i , d ) (i,d) (i,d)的可学习位置嵌入。嵌入后,我们得到一个二维向量数组:
H = { h i , d ∣ 1 ≤ i ≤ T L s e g , 1 ≤ d ≤ D } \mathbf{H} = \left\{ \mathbf{h}_{i,d} | 1 \leq i \leq \frac{T}{L_{seg}}, 1 \leq d \leq D \right\} H={hi,d∣1≤i≤LsegT,1≤d≤D}
其中每个 h i , d \mathbf{h}_{i,d} hi,d代表一个单变量时间序列片段。分段的思想也被用于Du等(2022),他们将嵌入的一维向量序列分段以计算片段相关性,从而增强局部性并减少计算复杂性。然而,与其他用于MTS预测的Transformers类似,它并未显式捕捉跨维度依赖性。
图2:TSA层
(a) 两阶段注意力层处理表示多变量时间序列的二维向量数组:每个向量对应原始序列的一个片段。整个向量数组通过跨时间阶段和跨维度阶段获取相应的依赖关系。
(b) 在跨维度阶段直接使用MSA构建维度到维度的连接导致 O ( D 2 ) O(D^2) O(D2) 的复杂度。
© 跨维度阶段的路由器机制:少量固定数量(c)的“路由器”从所有维度收集信息,然后分配收集的信息。复杂度降低为 O ( 2 c D ) = O ( D ) O(2cD) = O(D) O(2cD)=O(D)。
3.2 两阶段注意力层
对于获得的二维数组 H \mathbf{H} H,可以将其展平为一维序列,从而可以将其输入到像ViT(Dosovitskiy等,2021)这样的标准Transformer中。我们有以下具体考虑:
- 与高度和宽度轴可以互换的图像不同,MTS的时间和维度轴具有不同的意义,因此应区别对待。
- 在二维数组上直接应用自注意力会导致复杂度为 O ( D 2 T 2 L s e g 2 ) O(D^2 \frac{T^2}{L_{seg}^2}) O(D2Lseg2T2),对于较大的 D D D是不可承受的。因此,我们提出了两阶段注意力(TSA)层,以捕捉二维向量数组中的跨时间和跨维度依赖性,如图2(a)所示。
跨时间阶段
给定一个二维数组 Z ∈ R L × D × d m o d e l \mathbf{Z} \in \mathbb{R}^{L \times D \times d_{model}} Z∈RL×D×dmodel作为TSA层的输入,其中 L L L和 D D D分别是片段数和维度数。这里的 Z \mathbf{Z} Z可以是DSW嵌入或下层TSA层的输出。为了方便,以下我们用 Z i , : \mathbf{Z}_{i,:} Zi,:表示第 i i i时间步中所有维度的向量。在跨时间阶段,我们直接对每个维度应用多头自注意力(MSA):
Z ^ : , d t i m e = LayerNorm ( Z : , d + MSA t i m e ( Z : , d , Z : , d , Z : , d ) ) \hat{\mathbf{Z}}_{:,d}^{time} = \text{LayerNorm}(\mathbf{Z}_{:,d} + \text{MSA}^{time}(\mathbf{Z}_{:,d}, \mathbf{Z}_{:,d}, \mathbf{Z}_{:,d})) Z^:,dtime=LayerNorm(Z:,d+MSAtime(Z:,d,Z:,d,Z:,d))
Z t i m e = LayerNorm ( Z ^ t i m e + MLP ( Z ^ t i m e ) ) \mathbf{Z}^{time} = \text{LayerNorm}(\hat{\mathbf{Z}}^{time} + \text{MLP}(\hat{\mathbf{Z}}^{time})) Ztime=LayerNorm(Z^time+MLP(Z^time))
其中 1 ≤ d ≤ D 1 \leq d \leq D 1≤d≤D, LayerNorm \text{LayerNorm} LayerNorm表示层归一化, MLP \text{MLP} MLP表示多层感知器(在本文中为两层), MSA ( Q , K , V ) \text{MSA}(\mathbf{Q}, \mathbf{K}, \mathbf{V}) MSA(Q,K,V)表示多头自注意力层,其中 Q , K , V \mathbf{Q}, \mathbf{K}, \mathbf{V} Q,K,V分别作为查询、键和值。所有维度( 1 ≤ d ≤ D 1 \leq d \leq D 1≤d≤D)共享相同的MSA层。 Z ^ t i m e , Z t i m e \hat{\mathbf{Z}}^{time}, \mathbf{Z}^{time} Z^time,Ztime分别表示MSA和MLP的输出。
跨时间阶段的计算复杂度为 O ( D L 2 ) O(DL^2) O(DL2)。在这一阶段之后,捕捉到相同维度中时间片段之间的依赖性,被包含在 Z t i m e \mathbf{Z}^{time} Ztime中。然后 Z t i m e \mathbf{Z}^{time} Ztime成为跨维度阶段的输入,以捕捉跨维度依赖性。
跨维度阶段
在DSW嵌入中使用较大的 L s e g L_{seg} Lseg可以减少跨时间阶段中的片段数 L L L。然而在跨维度阶段,我们不能将维度分段并直接应用MSA,这将导致复杂度为 O ( D 2 ) O(D^2) O(D2)(如图2(b)所示),对于具有大 D D D的数据集是不可承受的。因此,我们提出了用于潜在大 D D D的路由器机制。如下图2©所示,我们设置了一个可学习的向量数组作为路由器。首先,这些路由器从所有维度聚合消息,并将路由器作为查询,所有维度的向量作为键和值,使用MSA进行计算。然后,路由器使用维度的向量作为查询,并将聚合的消息作为键和值,构建所有维度之间的全连接:
B i , : = MSA 1 d i m ( R i , : , : , Z i , : t i m e , Z i , : t i m e ) , 1 ≤ i ≤ L \mathbf{B}_{i,:} = \text{MSA}_1^{dim}(\mathbf{R}_{i,:,:}, \mathbf{Z}_{i,:}^{time}, \mathbf{Z}_{i,:}^{time}), \quad 1 \leq i \leq L Bi,:=MSA1dim(Ri,:,:,Zi,:time,Zi,:time),1≤i≤L
Z ˉ i , : d i m = MSA 2 d i m ( Z i , : t i m e , B i , : , B i , : ) , 1 ≤ i ≤ L \bar{\mathbf{Z}}_{i,:}^{dim} = \text{MSA}_2^{dim}(\mathbf{Z}_{i,:}^{time}, \mathbf{B}_{i,:}, \mathbf{B}_{i,:}), \quad 1 \leq i \leq L Zˉi,:dim=MSA2dim(Zi,:time,Bi,:,Bi,:),1≤i≤L
Z ^ d i m = LayerNorm ( Z t i m e + Z ˉ d i m ) \hat{\mathbf{Z}}^{dim} = \text{LayerNorm}(\mathbf{Z}^{time} + \bar{\mathbf{Z}}^{dim}) Z^dim=LayerNorm(Ztime+Zˉdim)
Z d i m = LayerNorm ( Z ^ d i m + MLP ( Z ^ d i m ) ) \mathbf{Z}^{dim} = \text{LayerNorm}(\hat{\mathbf{Z}}^{dim} + \text{MLP}(\hat{\mathbf{Z}}^{dim})) Zdim=LayerNorm(Z^dim+MLP(Z^dim))
其中 R ∈ R L × c × d m o d e l \mathbf{R} \in \mathbb{R}^{L \times c \times d_{model}} R∈RL×c×dmodel是作为路由器的可学习向量数组, B ∈ R L × c × d m o d e l \mathbf{B} \in \mathbb{R}^{L \times c \times d_{model}} B∈RL×c×dmodel是从所有维度聚合的消息。 Z ˉ , Z ^ , Z \bar{\mathbf{Z}}, \hat{\mathbf{Z}}, \mathbf{Z} Zˉ,Z^,Z分别表示路由器机制的输出、跳过连接和MLP的输出。所有时间步( 1 ≤ i ≤ L 1 \leq i \leq L 1≤i≤L)共享相同的 MSA 1 d i m \text{MSA}_1^{dim} MSA1dim, MSA 2 d i m \text{MSA}_2^{dim} MSA2dim。路由器机制将复杂度从 O ( D 2 L ) O(D^2 L) O(D2L)降低到 O ( D L ) O(DL) O(DL)。
总结方程3和方程4,我们将两阶段建模为:
Y = Z d i m = TSA ( Z ) \mathbf{Y} = \mathbf{Z}^{dim} = \text{TSA}(\mathbf{Z}) Y=Zdim=TSA(Z)
其中, Z , Y ∈ R L × D × d m o d e l \mathbf{Z}, \mathbf{Y} \in \mathbb{R}^{L \times D \times d_{model}} Z,Y∈RL×D×dmodel分别表示TSA层的输入和输出向量数组。注意,TSA层的总计算复杂度为 O ( D L 2 + D L ) = O ( D L 2 ) O(DL^2 + DL) = O(DL^2) O(DL2+DL)=O(DL2)。在跨时间和跨维度阶段之后, Z \mathbf{Z} Z中的每两个片段(例如 Z i 1 , d 1 , Z i 2 , d 2 \mathbf{Z}_{i1,d1}, \mathbf{Z}_{i2,d2} Zi1,d1,Zi2,d2)被连接,因此在 Y \mathbf{Y} Y中捕捉到跨时间和跨维度依赖性。
图 3:Crossformer中分层编码器-解码器的架构
该图显示了Crossformer中具有3个编码层的分层编码器-解码器的架构。每个向量的长度表示覆盖的时间范围。编码器(左侧)使用TSA层和片段合并以在不同的尺度上捕捉依赖关系:上层的向量覆盖更长的范围,导致在更粗糙的尺度上捕捉依赖关系。通过探索不同的尺度,解码器(右侧)通过在每个尺度上进行预测并将它们相加来生成最终预测。
3.3 分层编码器-解码器
分层结构在Transformers中广泛用于MTS预测,以在不同尺度上捕捉信息(Zhou等,2021;Liu等,2021a)。在本节中,我们使用提出的DSW嵌入、TSA层和片段合并构建了一个分层编码器-解码器(HED)。如图3所示,上层利用较粗尺度的信息进行预测。不同尺度上的预测值被加和以输出最终结果。
编码器
在编码器的每一层(除了第一层)中,时间域中的每两个相邻向量合并,以在更粗的层次上获得表示。然后,在该尺度上应用TSA层以捕捉依赖关系。此过程建模为 Z e n c , l = Encoder ( Z e n c , l − 1 ) \mathbf{Z}_{enc,l} = \text{Encoder}(\mathbf{Z}_{enc,l-1}) Zenc,l=Encoder(Zenc,l−1):
{ l = 1 : Z ^ e n c , l = H l > 1 : Z ^ e n c , l , i , d = M [ Z e n c , l − 1 , 2 i − 1 , d , Z e n c , l − 1 , 2 i , d ] , 1 ≤ i ≤ L l − 1 2 , 1 ≤ d ≤ D \begin{cases} l = 1: & \hat{\mathbf{Z}}_{enc,l} = \mathbf{H} \\ l > 1: & \hat{\mathbf{Z}}_{enc,l,i,d} = \mathbf{M}[\mathbf{Z}_{enc,l-1,2i-1,d}, \mathbf{Z}_{enc,l-1,2i,d}], 1 \leq i \leq \frac{L_{l-1}}{2}, 1 \leq d \leq D \end{cases} {l=1:l>1:Z^enc,l=HZ^enc,l,i,d=M[Zenc,l−1,2i−1,d,Zenc,l−1,2i,d],1≤i≤2Ll−1,1≤d≤D
Z e n c , l = TSA ( Z ^ e n c , l ) \mathbf{Z}_{enc,l} = \text{TSA}(\hat{\mathbf{Z}}_{enc,l}) Zenc,l=TSA(Z^enc,l)
其中 H \mathbf{H} H表示通过DSW嵌入获得的二维数组; Z e n c , l \mathbf{Z}_{enc,l} Zenc,l表示第 l l l个编码层的输出; M ∈ R d m o d e l × 2 d m o d e l \mathbf{M} \in \mathbb{R}^{d_{model} \times 2d_{model}} M∈Rdmodel×2dmodel表示用于片段合并的可学习矩阵; [ ⋅ ] [\cdot] [⋅]表示连接操作; L l − 1 L_{l-1} Ll−1表示第 l − 1 l-1 l−1层中每个维度中的片段数,如果不能被2整除,我们将 Z e n c , l − 1 \mathbf{Z}_{enc,l-1} Zenc,l−1填充到适当的长度; Z ^ e n c , l \hat{\mathbf{Z}}_{enc,l} Z^enc,l表示第 l l l层中的片段合并后的数组。假设编码器中有 N N N层,我们使用 Z e n c , 0 , Z e n c , 1 , … , Z e n c , N ( Z e n c , 0 = H ) \mathbf{Z}_{enc,0}, \mathbf{Z}_{enc,1}, \ldots, \mathbf{Z}_{enc,N} (\mathbf{Z}_{enc,0} = \mathbf{H}) Zenc,0,Zenc,1,…,Zenc,N(Zenc,0=H)表示编码器的 N + 1 N + 1 N+1个输出。每个编码层的复杂度为 O ( D T 2 L s e g 2 ) O(D \frac{T^2}{L_{seg}^2}) O(DLseg2T2)。
解码器
通过编码器获得 N + 1 N + 1 N+1个特征数组后,我们使用 N + 1 N + 1 N+1层(从0到 N N N)的解码器进行预测。第 l l l层以第 l l l层编码数组作为输入,然后输出第 l l l层的解码二维数组。此过程总结如下:
{ l = 0 : Z ^ d e c , l = TSA ( E ( d e c ) ) l > 0 : Z ^ d e c , l = TSA ( Z d e c , l − 1 ) \begin{cases} l = 0: & \hat{\mathbf{Z}}_{dec,l} = \text{TSA}(\mathbf{E}^{(dec)}) \\ l > 0: & \hat{\mathbf{Z}}_{dec,l} = \text{TSA}(\mathbf{Z}_{dec,l-1}) \end{cases} {l=0:l>0:Z^dec,l=TSA(E(dec))Z^dec,l=TSA(Zdec,l−1)
Z d e c , l , i , d = MSA ( Z ^ d e c , l , d , Z e n c , l , d , Z e n c , l , d ) , 1 ≤ d ≤ D \mathbf{Z}_{dec,l,i,d} = \text{MSA}(\hat{\mathbf{Z}}_{dec,l,d}, \mathbf{Z}_{enc,l,d}, \mathbf{Z}_{enc,l,d}), 1 \leq d \leq D Zdec,l,i,d=MSA(Z^dec,l,d,Zenc,l,d,Zenc,l,d),1≤d≤D
Z ^ d e c , l = LayerNorm ( Z d e c , l + Z ^ d e c , l ) \hat{\mathbf{Z}}_{dec,l} = \text{LayerNorm}(\mathbf{Z}_{dec,l} + \hat{\mathbf{Z}}_{dec,l}) Z^dec,l=LayerNorm(Zdec,l+Z^dec,l)
Z d e c , l = LayerNorm ( Z ^ d e c , l + MLP ( Z ^ d e c , l ) ) \mathbf{Z}_{dec,l} = \text{LayerNorm}(\hat{\mathbf{Z}}_{dec,l} + \text{MLP}(\hat{\mathbf{Z}}_{dec,l})) Zdec,l=LayerNorm(Z^dec,l+MLP(Z^dec,l))
其中 E ( d e c ) ∈ R τ L s e g × D × d m o d e l \mathbf{E}^{(dec)} \in \mathbb{R}^{\frac{\tau}{L_{seg}} \times D \times d_{model}} E(dec)∈RLsegτ×D×dmodel表示解码器的可学习位置嵌入; Z ^ d e c , l \hat{\mathbf{Z}}_{dec,l} Z^dec,l是TSA的输出;MSA层以 Z ^ d e c , l , d \hat{\mathbf{Z}}_{dec,l,d} Z^dec,l,d作为查询, Z e n c , l , d \mathbf{Z}_{enc,l,d} Zenc,l,d作为键和值,构建编码器和解码器之间的连接。MSA的输出表示为 Z d e c , l , i , d \mathbf{Z}_{dec,l,i,d} Zdec,l,i,d, Z ^ d e c , l , Z d e c , l \hat{\mathbf{Z}}_{dec,l}, \mathbf{Z}_{dec,l} Z^dec,l,Zdec,l分别表示跳过连接和MLP的输出。我们使用 Z d e c , 0 , Z e n c , 1 , … , Z d e c , N \mathbf{Z}_{dec,0}, \mathbf{Z}_{enc,1}, \ldots, \mathbf{Z}_{dec,N} Zdec,0,Zenc,1,…,Zdec,N表示解码器输出。每个解码层的复杂度为 O ( D τ ( T + τ ) L s e g 2 ) O(D \frac{\tau(T+\tau)}{L_{seg}^2}) O(DLseg2τ(T+τ))。
线性投影应用于每层的输出以生成该层的预测。层预测的值被加总以生成最终预测:
x i , d ( s ) , l = W l Z i , d d e c , l , 1 ≤ i ≤ τ L s e g , 1 ≤ d ≤ D \mathbf{x}_{i,d}^{(s),l} = \mathbf{W}^l \mathbf{Z}_{i,d}^{dec,l}, \quad 1 \leq i \leq \frac{\tau}{L_{seg}}, 1 \leq d \leq D xi,d(s),l=WlZi,ddec,l,1≤i≤Lsegτ,1≤d≤D
x T + 1 : T + τ p r e d , l = ∑ l = 0 N x T + 1 : T + τ p r e d , l \mathbf{x}_{T+1:T+\tau}^{pred,l} = \sum_{l=0}^N \mathbf{x}_{T+1:T+\tau}^{pred,l} xT+1:T+τpred,l=l=0∑NxT+1:T+τpred,l
其中 W l ∈ R L s e g × d m o d e l \mathbf{W}^l \in \mathbb{R}^{L_{seg} \times d_{model}} Wl∈RLseg×dmodel是一个可学习矩阵,将向量投影到时间序列片段。每层中的所有片段 x i , d ( s ) , l ∈ R L s e g \mathbf{x}_{i,d}^{(s),l} \in \mathbb{R}^{L_{seg}} xi,d(s),l∈RLseg被重新排列以获得该层的预测 x T + 1 : T + τ p r e d , l \mathbf{x}_{T+1:T+\tau}^{pred,l} xT+1:T+τpred,l。所有层的预测值相加以获得最终预测 x T + 1 : T + τ p r e d \mathbf{x}_{T+1:T+\tau}^{pred} xT+1:T+τpred。