虽然基于Transformer的方法已经显著提高了长期序列预测的先进结果,但它们的计算代价是高昂的,更重要的是它们无法捕捉时间序列的全局视图。为了应对这一问题,文章提出将Transformer和季节趋势分解方法相结合,用分解方法捕捉世界序列的全局模式,而用Transformer捕捉更细节的结构。为了更好的提升Transformer在长期预测中的性能,我们利用了这样一个事实,即大多数时间序列倾向于在众所周知的基(如傅立叶变换)中具有稀疏表示,并提出一个增频Transformer。该方法被称为频率增强分解变压器(FEDformer),不仅效率更高,而且其复杂度与序列长度呈线性关系,比标准Transformer的效率更高。实验在六个基准数据集上进行,与最先进的方法相比,FEDformer在多变量和单变量时间序列任务中能够分别降低预测误差14.8%和22.6%。
论文的代码链接
长期时间序列预测在各种应用中是一个长期的挑战,如能源、气象、交通、经济等。尽管RNN类型的方法取得了令人印象深刻的结果,但它们有梯度消失和梯度爆炸的问题,这显著限制了它们的性能表现。随着Transformer在NLP和CV领域的成功,它被用于捕捉时间序列预测中的长期依赖性并展示出有前景的结果。但Transformer较高的计算复杂度和内存需求使得它难以应用于长序列建模,因此大量的研究致力于降低Transformer的计算成本。
尽管基于Transformer的时间序列预测方法取得了进展,但在某些情况下,它们往往无法捕捉到时间序列的总体特征或分布。图1中我们在真实数据集ETTm1上(Zhou et al., 2021)比较了真实值和vanilla Transformer(Vaswani et al., 2017) 方法的预测值,很显然预测的时间序列与真实值展现了不同的分布。这种真值和预测值之间的差异可以用Transfoemer中的point-wise注意力和预测来解释。由于每个时间步的预测是独立的,因此模型很可能无法保持时间序列作为一个整体的全局属性和统计特征。为了克服这个问题,我们在工作中利用了两个想法:
PEDformer的一个关键问题是傅里叶分析应该使用哪个频率分量子集来表示时间序列。一个常用做法是保留低频成分,丢弃高频成分,但是这可能不适用于时间序列预测,因为时间序列中的一些趋势变化与重要事件有关,如果我们简单地删除所有高频成分,这部分信息可能会丢失。我们通过有效利用时间序列倾向于在傅立叶基的基础上具有(未知的)稀疏表示这一事实来解决这个问题。根据我们的理论分析,随机选取频率分量子集,包括低频分量和高频分量,可以更好地表示时间序列。除了对长期预测更有效外,将Transformer与频率分析相结合还可以将Transformer的计算成本从二次复杂度降低到线性复杂度。我们注意到,这与以前加速Transformer的努力不同,后者通常会导致性能下降。本文工作的贡献如下:
本文工作区别于其他长期预测算法的一个关键贡献是使用神经网络进行频域运算。如何用傅立叶分析恰当地表示时间序列中的信息是至关重要的。
作者建议通过随机选择固定数量的傅立叶分量(包括高频和低频)来表示时间序列。
具体的,对每个时间序列进行傅里叶变换,例如:将一个时序转换为一个向量 X i ( t ) → a i = ( a i , 1 , . . . , a i , d ) T X_i(t)\to a_{i}=(a_{i,1},...,a_{i,d})^{T} Xi(t)→ai=(ai,1,...,ai,d)T。然后通过把所有变换后的向量代入矩阵得到 A = ( a 1 , a 2 , . . . , a m ) T A=(a_{1},a_{2},...,a_{m})^{T} A=(a1,a2,...,am)T。每一行对应不同的时间序列,每一列对应不同的傅里叶分量。尽管使用所有的傅里叶分量可以使我们最好地保存时间序列中的历史信息,但它可能会导致历史数据的过拟合,从而导致对未来信号的糟糕预测。因此,我们需要选择一个傅里叶分量的子集,一方面要足够小,以避免过拟合问题,另一方面要能够保留大部分的历史信息。于是文章提出从d个傅里叶分量(s < d)中均匀随机选取分量。具体的,我们用 i 1 < i 2 < . . . < i s i_{1}
为了测量 A ′ A ' A′保存来自A的信息的能力,将 A A A的每个列向量投影到由A '中的列向量张成的子空间中。用 P A ′ ( A ) PA ' (A) PA′(A)表示投影后的结果矩阵,其中 P A ′ ( ⋅ ) PA '(\cdot) PA′(⋅)表示投影算子。如果 A ′ A ' A′保留了 A A A的大部分信息,则 A A A和 P A ′ ( A ) PA ' (A) PA′(A)之间的误差预计是小的。让 A k A_{k} Ak用 A A A的前k个最大的单值分解来表示 A A A的近似。下述理论表明,如果随机采样的傅里叶成分 s s s是 k 2 k^{2} k2的数量级,那么 ∣ A − P A ′ ( A ) ∣ |A-P_{A'}(A)| ∣A−PA′(A)∣和 ∣ A − A k ∣ |A-A_{k}| ∣A−Ak∣是接近的。
对于真实的多元时间序列,傅立叶变换对应的矩阵A往往表现出低秩性,因为多元时间序列中的单变量不仅依赖于其过去的值,而且变量的彼此之间存在依赖关系,共享相似的频率分量。因此,如理论1所示,随机选择傅里叶分量的子集可以在傅里叶矩阵 A A A中恰当地表示信息。
同样,小波正交多项式,如勒让德多项式,服从限制等距性(RIP),可用于时间序列中的信息捕获与傅立叶基相比,小波表示更能有效地捕捉时间序列中的局部结构,因此在某些预测任务中更有效。
本节将介绍(1)FEDformer的总体结构,如图2所示,(2)信号处理的两种颠覆结构:一种是傅立叶基,另一种是小波基,(3)混合专家机制进行季节趋势分解,(4)提出的模型的复杂性分析。
长时间序列预测是一个序列到序列的问题,我们用 I I I表示输入长度, O O O表示输出长度, D D D表示序列的隐状态。编码器的输入为 I × D I\times D I×D,而解码器的输入为 ( I / 2 + O ) × D (I/2+O)\times D (I/2+O)×D。
受第1节中讨论的季节趋势分解和分布分析的启发,作者将Transformer更新为如图2的深度分解架构,包括频率增强块(FEB)、连接编码器和解码器的频率增强注意力(FEA),混合专家分解块(MOEDecomp)。
编码器采用多层结构: χ e n l = E n c o d e r ( χ e n l − 1 ) \chi ^{l}_{en}=Encoder(\chi ^{l-1}_{en}) χenl=Encoder(χenl−1), l ∈ 1 , . . . , N l\in{1,...,N} l∈1,...,N表示第 l l l个编码层的输出, χ e n 0 \chi^{0}_{en} χen0是嵌入的历史序列, E n c o d e r ( ⋅ ) Encoder(\cdot) Encoder(⋅)形式化如下:
其中, S e n l , i , i ∈ 1 , 2 S^{l,i}_{en}, i\in{1,2} Senl,i,i∈1,2分别表示第 l l l层第 i i i个分解块后的季节分量。对于FEB模块,它有两个不同的版本(FEB-f和FEB-w)是通过离散傅立叶变换(DFT)与离散小波变换(DWT)机制分别实现的,并可无缝替代自注意块。
解码器也使用了一个多层结构: χ d e l , τ d e l = D e c o d e r ( χ d e l − 1 , τ d e l − 1 ) \chi^{l}_{de},\tau^{l}_{de}=Decoder(\chi^{l-1}_{de},\tau^{l-1}_{de}) χdel,τdel=Decoder(χdel−1,τdel−1),其中, l ∈ 1 , . . . , M l\in{1,...,M} l∈1,...,M表示第l层解码器的输出。 D e c o d e r ( ⋅ ) Decoder(\cdot) Decoder(⋅)形式化如下:
S d e l , i , i ∈ 1 , 2 , 3 S^{l,i}_{de}, i\in{1,2,3} Sdel,i,i∈1,2,3分别表示第 l l l层第 i i i个分解块后的季节分量和趋势分量。 W l , i , i W_{l,i},i Wl,i,i表示提取的第 i i i个趋势 τ d e l , i \tau ^{l,i}_{de} τdel,i的映射。与FEB类似,FEA有两个不同的版本(FEA-f和FEA-w),分别通过DFT和DWT投影实现,并具有注意设计,可替代交叉注意块。
最后的预测是两个细化分量的和 W S × χ d e M + τ d e M W_{S}\times \chi^{M}_{de}+\tau^{M}_{de} WS×χdeM+τdeM。
所提结构使用离散傅里叶变换(DFT),用 F F F表示傅里叶变换, F − 1 F^{-1} F−1表示傅里叶逆变换。给定时域实数序列 x n x_{n} xn,其中 n = 1 , 2 … , N n = 1,2…,N n=1,2…,N。DFT定义为 X l = ∑ n = 0 N − 1 x n e − i w l n X_{l}=\sum^{N-1}_{n=0}x_{n}e^{-iwln} Xl=∑n=0N−1xne−iwln,其中 i i i是虚数单位, X l , l = 1 , 2.. L X_{l},l=1,2..L Xl,l=1,2..L是一个频域内的复数序列。相似的,DFT逆变换被定义为 x n = ∑ l = 0 L − 1 X l e i w l n x_{n}=\sum^{L-1}_{l=0}X_{l}e^{iwln} xn=∑l=0L−1Xleiwln,其复杂度为 O ( N 2 ) O(N^{2}) O(N2)。采用快速傅里叶变换,其计算复杂度可以被降低到 O ( N l o g N ) O(NlogN) O(NlogN)。这里使用的是傅里叶基的一个随机子集,子集的尺度由一个标量限定。当在DFT和DFT逆操作前选择模式模式时,计算复杂度可进一步降低到O(N)。
如图2所示,FEB-f在编码器和解码器中均被使用,该块的输入 x ∈ R N × D x\in \mathbb{R}^{N\times D} x∈RN×D首先通过 w ∈ R D × D w\in \mathbb{R}^{D\times D} w∈RD×D,然后KaTeX parse error: Undefined control sequence: \cdotw at position 4: q=x\̲c̲d̲o̲t̲w̲。然后将 q q q从时域转换到频域。 q q q的傅里叶变换表示为 Q ∈ C N × D Q\in \mathbb{C}^{N\times D} Q∈CN×D。频域中,只有随机选择的 M M M模式被保留,所以我们使用一个选择算子 Q ~ = S e l e c t ( Q ) = S e l e c t ( F ( q ) ) \tilde{Q} =Select(Q)=Select(F(q)) Q~=Select(Q)=Select(F(q))。其中, Q ~ ∈ C M × D \tilde{Q}\in \mathbb{C}^{M\times D} Q~∈CM×D并且 M < < N M<
然后,FEB-f模块被定义为:
F E B − f ( q ) = F − 1 ( P a d d i n g ( Q ~ ⊙ R ) ) FEB-f(q)=F^{-1}(Padding(\tilde{Q}\odot R)) FEB−f(q)=F−1(Padding(Q~⊙R))
其中, R ∈ C D × D × M R\in \mathbb{C}^{D\times D\times M} R∈CD×D×M是一个随机初始化的参数化内核。乘积算子 ⊙ \odot ⊙被定义为 Y m , d o = ∑ d i = 0 D Q m , d i ⋅ R d i , d o , m Y_{m,d_{o}}=\sum_{d_{i}=0}^{D}Q_{m,d_{i}}\cdot R_{d_{i},d_{o},m} Ym,do=∑di=0DQm,di⋅Rdi,do,m( d i d_{i} di是输入通道, d o d_{o} do是输出通道)。 Q ⊙ R Q\odot R Q⊙R的结果在执行傅里叶逆变换回时域之前零填充为 C N × D \mathbb{C}^{N\times D} CN×D。结构如图3所示:
使用标准Transformer的表达,输入:queries、keys、values被表示为 q ∈ R L × D q\in \mathbb{R}^{L\times D} q∈RL×D、 k ∈ R L × D k\in \mathbb{R}^{L\times D} k∈RL×D、 v ∈ R L × D v\in \mathbb{R}^{L\times D} v∈RL×D。在交叉注意力中,queries来自解码器并且可以由 q = x e n ⋅ w q q=x_{en}\cdot w_{q} q=xen⋅wq获得( w q ∈ R D × D w_{q}\in \mathbb{R}^{D\times D} wq∈RD×D)。keys和values来自编码器并且可以由 k = x d e ⋅ w k k=x_{de}\cdot w_{k} k=xde⋅wk和 v = x d e ⋅ w v v=x_{de}\cdot w_{v} v=xde⋅wv得到( w k , w v ∈ R D × D w_{k},w_{v}\in \mathbb{R}^{D\times D} wk,wv∈RD×D)。于是形式化的标准注意力可写做:
A t t e n ( a , k , v ) = S o f t m a x ( q k T d q ) v Atten(a,k,v)=Softmax(\frac{qk^{T}}{\sqrt{d_{q}}})v Atten(a,k,v)=Softmax(dqqkT)v
FEA-f中,使用傅里叶变换转换queries、keys、values,并通过随机选择 M M M个模式在频域中执行一个相似的注意力机制。用 Q ~ , K ~ , V ~ \tilde{Q},\tilde{K},\tilde{V} Q~,K~,V~表示它们在经过傅里叶变换后的版本,则FEA-f可以被定义为:
Q ~ = S e l e c e t ( F ( q ) ) \tilde{Q}=Selecet(F(q)) Q~=Selecet(F(q))
K ~ = S e l e c e t ( F ( k ) ) \tilde{K}=Selecet(F(k)) K~=Selecet(F(k))
V ~ = S e l e c e t ( F ( v ) ) \tilde{V}=Selecet(F(v)) V~=Selecet(F(v))
F E A − f ( q , k , v ) = F − 1 ( P a d d i n g ( σ ( Q ~ ⋅ K ~ T ) ⋅ V ~ ) ) FEA-f(q,k,v)=F^{-1}(Padding(\sigma(\tilde{Q}\cdot \tilde{K}^{T})\cdot\tilde{V})) FEA−f(q,k,v)=F−1(Padding(σ(Q~⋅K~T)⋅V~))
其中, σ \sigma σ是激活函数,文中将softmax或tanh用于激活,因为它们在不同数据集上的收敛性能不同。在执行傅里叶逆变换前,使 且 且 且需要进行零填充为$$。其整体结构如图4所示:
傅里叶变换在频域创建信号的表示,而小波变换在频域和时域都创建表示,从而有效的获取信号的局部信息。多小波变换综合了正交多项式和小波变换的优点,对于给定的 f ( x ) f(x) f(x),尺度 n n n下的多小波系数可被分别定义为 s l n = [ < f , ϕ i l n > μ n ] i = 0 k − 1 , d l n = [ < f , ψ i l n > μ n ] i = 0 k − 1 s_{l}^{n}=[
ϕ i l n \phi_{il}^{n} ϕiln是分段多项式的小波标准正交基。跨尺度的分解/重建可以被定义为:
其中, ( H ( 0 ) , H ( 0 ) , G ( 0 ) , G ( 1 ) ) (H^{(0)}, H^{(0)}, G^{(0)}, G^{(1)}) (H(0),H(0),G(0),G(1))是多小波分解滤波器的线性系数。它们是被用于小波分解的混合矩阵。信号的多小波表示可以通过多尺度和多小波基的张量积得到。注意,不同尺度下的基是由张量乘积耦合的,所以我们需要解开它。受到(Gupta et al., 2021)的启发,作者采用了非标准小波表示来降低模型的复杂性。对于一个映射函数 F ( x ) = x ′ F(x)=x' F(x)=x′,多小波域下的映射函数可被写作:
U d l n = A n d l n + B n s l n , U s l n = C n d l n , U s l L = F ˉ s l L U_{dl}^{n}=A_{n}d_{l}^{n}+B_{n}s_{l}^{n}, U_{sl}^{n}=C_{n}d_{l}^{n}, U_{sl}^{L}=\bar{F}s_{l}^{L} Udln=Andln+Bnsln,Usln=Cndln,UslL=FˉslL
其中, ( U s l n , U d l n , s l n ) , d l n (U_{sl}^{n}, U_{dl}^{n}, s_{l}^{n}), d_{l}^{n} (Usln,Udln,sln),dln是多尺度系数, L L L是递归分解下最粗的尺度, A n , B n , C n A_{n}, B_{n}, C_{n} An,Bn,Cn是在分解和重建过程中用于处理不同信号的三个独立FEB-f模块。这里 L ˉ \bar{L} Lˉ是一个单层感知器,它处理 L L L分解步骤后剩下的最粗信号。
FEB-w模块的整体架构如图5所示:
它不同于FEB-f的递归机制:***输入被分别分解为3部分并独立进行操作。***对于小波分解部分,我们使用固定的勒让德小波分解基分解矩阵。三个FEB-f模块被分别用于处理产生的高频部分、低频部分以及小波分解中遗留的部分。对于每一个周期 L L L,它产生一个经过处理的高频张量 U d ( L ) Ud(L) Ud(L),一个经过处理的低频张量 U s ( L ) Us(L) Us(L)和一个原始低频张量 X ( L + 1 ) X(L+1) X(L+1)。这是一种阶梯向下的方法,分解阶段执行1/2因子的信号抽取,运行最多 L L L个循环,其中 L < l o g 2 ( M ) L
小波重建部分同样递归的建立输出张量。每一个循环中我们结合分解部分产生的 X ( L + 1 ) , U s ( L ) , U d ( L ) X(L+1), Us(L), Ud(L) X(L+1),Us(L),Ud(L)。对于每一个循环,信号张量的长度维数增加2倍。
FEA-w与FEB-w一样,包含分解阶段和重构阶段。这里保持重构部分不变,差异仅在分解阶段。用相同的分解矩阵分别对 q , k , v q, k, v q,k,v信号进行分解, q , k , v q, k, v q,k,v共用同一组模块进行处理。由上文可知,一个带小波分解块的频率增强块(FEB-w)包含三个用于信号处理的FEB-f块。我们可以把FEB-f看作是一种自我注意机制的替代。我们用一个FEA-f模块代替每个FEB-f模块,用小波分解建立了频率增强交叉注意。另外,增加了一个FEA-f模块,对剩余最粗的 q ( L ) , k ( L ) , v ( L ) q(L), k(L), v(L) q(L),k(L),v(L)信号进行处理。
由于通常观察到的复杂周期模式与真实数据上的趋势成分相结合,因此在固定窗口的平均池化中提取趋势比较困难。为了克服这样一个问题,文章设计了一个混合专家分解块,它包含一组不同大小的平均滤波器,从输入信号中提取多个趋势成分,以及一组数据相关的权重,将它们组合成最终趋势。形式化如下:
X t r e n d = S o f t m a x ( L ( x ) ) ∗ ( F ( x ) ) X_{trend}=Softmax(L(x))*(F(x)) Xtrend=Softmax(L(x))∗(F(x))
KaTeX parse error: Undefined control sequence: \codt at position 3: F(\̲c̲o̲d̲t̲)是一组平均池化过滤器和 S o f t m a x ( L ( x ) ) Softmax(L(x)) Softmax(L(x))是混合这些提取趋势的权重。
对于FEDformer-f,在FEB和FEA块中随机选择固定数量的模式时,时间和内存的计算复杂度为 O ( L ) O(L) O(L)。将模式数64设为默认值。通过FFT的离散傅里叶变换的复杂度为 O ( L l o g ( L ) ) O(Llog(L)) O(Llog(L)),而所提方法通过使用预先选择的傅里叶基集来快速实现,其代价和内存复杂度仅需 Q ( L ) Q(L) Q(L)。对于FEDformer-w,当我们将递归分解步骤设置为固定数目 L L L,并使用与FEDformer-f相同的固定数目随机选择的模式时,时间复杂度和内存占用率也为O(L)。实际中, L = 3 , M = 64 L=3, M=64 L=3,M=64。训练时的时间复杂度和内存使用情况以及测试中推理步骤的比较如表1所示。
为了评估所提FEDformer,文章在6个流行的真实数据集上进行了广泛实验(包括能源、经济、交通、天气和疾病)。由于经典模型如ARIMA和基本RNN/CNN模型的性能相对较差,如(Zhou et al.,2021)和(Wu et al.,2021)所示,我们主要包括四个最先进的基于Transformer的模型进行比较,即Autoformer (Wu et al.,2021)、Informer (Zhou et al.,2021)、LogTrans (Li et al.,2019)和Reformer (Kitaev et al.,2020)作为基线模型。由于Autoformer在所有六个基准测试中拥有最好的性能,因此它被用作主要基准模型进行比较。
使用消融实验目的在于比较频率增强块及其替代的性能。将使用自相关机制的Autoformer的SOTA结果作为基线,测试了FEDformer的三种变体:
离散傅里叶基的选择是有效表示信号和保持模型线性复杂度的关键。**随机策略不需要输入的先验知识,很容易在新任务中泛化。**这里我们对随机选择策略和固定选择策略进行了实证比较,实验结果如图6所示。采用随机策略比只保留低频模态的常规固定策略性能更好。同时,随机策略表现出一定的模态饱和效应,说明适当的模态随机数而不是全部模态会带来更好的性能。
本节定量地评估不同变压器模型的输入序列和预测输出之间的分布相似性。我们使用Kolmogrov-Smirnov测试检查在ETTm1和ETTm2上不同模型的预测结果是否与输入序列一致。特别地,我们测试固定96时间步长的输入序列是否来自与预测序列相同的分布,零假设是两个序列来自相同的分布。在两个数据集上,通过设置共同的p值为0.01,除了Autoformer,现有的各种Transformer基线模型的值都远小于0.01,这表明它们的预测输出相比于输入序列有更高的概率从不同的分布中采样。相比之下,Autoformer和FEDformer的p值要大得多,这主要与它们的季节趋势分解机制有关。虽然两种模型在ETTm2中得到了接近的结果,但所提出的FEDformer在ETTm1中具有更大的p值。并且它是唯一一个在两个数据集的所有情况下p值都大于0.01时零假设不能被拒绝的模型,这意味着由FEDformer生成的输出序列与输入序列相比具有更相似的分布,从而证明了我们在第1节中讨论的FEDformer的设计动机。
由于我们使用分解的编码器-解码器整体架构如Autoformer,我们认为强调其差异是至关重要的。在Autoformer中,作者考虑了一个很好的想法,使用top-k子序列相关(自相关)模块,而不是点式注意,并且为了提高子序列级相似性计算的效率,采用了傅立叶方法。一般来说,Autoformer可以被认为是将序列分解为多个时域子序列进行特征提取。相反,我们采用频率变换将序列分解为多个频域模态来提取特征。特别是,我们在子序列选择中不使用选择性方法。而是所有的频率特征都是从整个序列中计算出来的,这种全局特性使我们的模型对长序列具有更好的性能。
文章提出了一种用于长期序列预测的频率增强变压器模型,该模型不仅具有最先进的性能,而且具有线性计算复杂度和存储成本。提出了一种频率低秩逼近和混合专家分解的注意机制来控制分布漂移。提出的频率增强结构将输入序列长度和注意矩阵维数解耦,从而拥有线性复杂度。文章在理论上和实证上证明了所采用的随机模式选择策略在频率上的有效性。最后,大量的实验表明,与四种先进的算法相比,该模型在6个基准数据集上获得了最佳的预测性能。