时间序列预测问题是根据过去的长度I序列预测未来最可能的长度O序列,表示为输入I预测O。长期预测设置是预测长期未来,即更大的O。如上所述,我们强调了长期序列预测的困难:处理复杂的时间模式,打破计算效率和信息利用的瓶颈。为了解决这两个难题,我们将分解作为一个内置模块引入深度预测模型,并提出Autoformer作为一种分解架构。此外,我们还设计了自相关机制来发现基于周期的依赖关系,并聚合来自底层周期的相似子序列。
3.1分解架构
我们将Transformer[35]更新为深度分解架构(图1),包括内部串联分解块、自相关机制以及相应的编码器和解码器。
Figure 1:encoder消除了长期趋势周期部分通过时序分解模块(也就是蓝色的模块)重点关注季节模式建模。(这个季节模式是不是指这段输入)。解码器逐步累积从隐藏变量中提取的趋势部分。编码器-解码器自相关利用来自编码器的过去季节信息。解码器中的中间绿色块。
级数分解块
为了在长期预测环境中学习复杂的时间模式,我们采用了分解的思想[1,27],它可以将序列分为趋势周期性和季节性部分。这两部分分别反映了序列的长期发展和季节性。然而,直接分解是无法实现的未来系列,因为未来是未知的。为了解决这个难题,我们提出了一个序列分解块作为Autoformer的内部操作(图1),它可以从预测的中间隐藏变量中逐步提取长期平稳趋势。具体来说,我们采用移动平均线来消除周期性波动,突出长期趋势。对于长度为L的输入系列X∈ RL×d,过程为:
Xt和Xs都是维度为L*d的,分别指的是季节性的和提取的趋势周期部分,我们采用AvgPool(·)进行移动平均,并使用填充操作来保持序列长度不变。我们使用Xs和Xt = 序列分解(X)总结上述方程,这是一个模型内部块。
模型输入
encoder部分的输入是过去I时间长度的Xen,维度是I*d的维度。作为一种分解架构(图1),Autoformer解码器的输入包含季节性部分和趋势周期部分分别是Xdes和Xdet,他们的维度都是(I/2 + O)* d。每个初始化由两部分组成:从编码器输入Xen的后半部分分解的组件,长度为I2以提供最近的信息,长度为O的占位符由标量填充。公式化如下:
:分别指的是Xen,的季节性和趋势周期部分。
:指的是由0填充的和Xen的均值。
编码器
编码器侧重于季节性零件建模。编码器的输出包含过去的季节性信息,并将用作交叉信息,以帮助解码器优化预测结果。假设我们有N个编码器层。第l个编码器层的总体方程总结为。
细节如下展示:
其中下划线"_",指的是消除的趋势的部分。
指的是第l层的encoder的输出以及
是Xen的enbedded。
代表着季节性的部分,在i-th 的序列分解块后在第l-th层的layer。 观察到在一层的layer是最起码有两个分解模块的。
我们将在下一节详细描述自相关(·),它可以无缝地取代自我注意。
解码器
解码器包含两部分:趋势周期分量的累积结构和季节分量的叠加自相关机制(图1)。
the stacked Auto-Correlation mechanism for seasonal components :seasonal部分是堆叠的。
the accumulation structure for trend-cyclical components:趋势周期成分的累积结构。
每个解码层包含内部自相关和编解码器自相关,它们可以分别细化预测和利用过去的季节信息。
*(也就是说上面那个部分是细化,而下面的部分是利用过去的seasonal信息。)
请注意,该模型在解码器期间从中间隐藏变量中提取潜在趋势,允许Autoformer逐步细化趋势预测,并消除干扰信息,以便在自相关中发现基于周期的依赖关系。假设有M个解码器层:利用来自编码器的潜变量第L层解码器的方程可以总结为:
The decoder can be formalized as follows:
is embedded from Xdes for deep transform
l是层数layer,i是代表第i个分解器。一个layer包括几个分解器。
W l,i是一个projector。
最终的预测是两个细化分解分量的总和
3.2 自相关机制
我们提出了串联连接的自相关机制来扩展信息利用率。自相关通过计算序列自相关来发现基于周期的相关性,并通过延时聚合来聚合相似的子序列。
基于周期的依赖关系
可以观察到,周期之间相同的相位位置自然会提供类似的子过程。受随机过程理论启发,对于一个真正的离散时间进程
我们可以得到自相关
通过下列等式
反映了两者之间的时间延迟相似性between
and他的
我们使用自相关作为估计周期长度的非正规置信度t。然后,我们选择最可能的k个周期长度τ1,···,τk。基于周期的依赖性由上述估计的周期导出,并可由相应的自相关加权。
时延聚合
基于周期的依赖关系将子序列连接到估计的周期中。因此,我们给出了时延聚合块(图2),可以根据选定的时间延迟滚动序列 τ1, · · · , τk,该操作可以对齐处于估计周期相同相位位置的类似子序列,这与自我注意家族中的点积聚合不同。最后,我们汇总子系列通过softmax。
对于单头情况和长度为L的时间序列X,在投影仪之后,我们得到查询Q、键K和值V。因此,它可以无缝地替代自我注意。自相关机制是:
其中,arg Topk(·)是获取Topk自相关的参数,并让k=bc×log Lc,c是一个超参数。RQ,K是序列Q和K之间的自相关。Roll(X,τ)表示对X的操作,时间延迟τ,在此期间,移动到第一个位置之外的元素在最后一个位置重新引入。 对于编码器-解码器自相关(图1),K、V来自编码器X Nen,并将调整为长度-O,Q来自解码器的前一个块。
多头注意力是这么算的,
高效计算
对于基于周期的依赖关系,这些依赖关系指向处于基础周期相同阶段位置的子流程,并且本质上是稀疏的。在这里,我们选择最可能的延迟,以避免选择相反的阶段。因为我们将长度为L的O(对数L)级数相加,所以方程6和7的复杂性为O(对数L)。对于自相关计算(方程式5),给定时间序列{Xt},可以根据维纳-钦钦定理[37]通过快速傅里叶变换(FFT)计算RX(τ):
τ在哪里∈ {1,···,L},F表示FFT,F表示FFT−1是它的反面。∗ 表示共轭运算,SX X(f)在频域中。注意,{1,···,L}中所有滞后的序列自相关可以通过FFT一次计算出来。因此,自相关实现了O(L logl)复杂度。
自相关与自我关注家庭
与点式自我注意家族不同,自相关呈现出一系列的联系(图3)。具体来说,对于时间依赖,我们基于周期性找到子序列之间的依赖关系。相比之下,自我关注家庭只计算分散点之间的关系。虽然一些自聚焦(20, 41)考虑局部信息,但它们仅利用这一点来帮助逐点依赖性发现。对于信息聚合,我们采用延时块来聚合来自底层周期的相似子序列。相比之下,自聚焦按点积聚合选定的点。由于固有的稀疏性和子序列级表示聚合,自相关可以同时提高计算效率和信息利用率。