Autoformer阅读笔记

Autoformer:基于深度分解架构和自相关机制的长期序列预测模型


Auroformer是由清华大学软件学院机器学习小组(THUML-LAB)提出的一种,以 Decomposition 和 Auto-Correlation 为创新预测长时间序列的模型。


在这里插入图片描述


摘要部分:

由于Transformers提出的目的是为了解决NLP领域的问题,导致先前以Transformers为变种的序列模型,都是以点为注意力去进行序列预测,这其实会导致信息利用瓶颈。 针对这一问题,Autoformer提出了 自相关机制(Auto-Correlation Mechanism) 代替自注意力机制,使得模型以序列的形式,选取过去重要的序列片段,做为值得注意的序列片段,而非以某个点的形式。同时,Autoformer提出了一种 深度分解架构(Decomposition) 的分解结构,与先前的长时间序列预测模型不同,以往的模型都是在数据处理部分就将数据分解成季节性数据和趋势性数据等,再分别进行数据处理预测。这样会使模型忽略了不同数据中的相关性,Autoformer将数据的分解嵌入在模型结构中,在模型内部再将数据分解,使模型具备更复杂的时间序列的逐渐分解能力。 在长期预测问题中,Autoformer在能源、交通、经济、气象、疾病五大时序领域大幅超越之前SOTA,实现38% 的相对效果提升。


模型结构:


整体模型结构图:
在这里插入图片描述
Autoformer Encoder结构:

以普遍的序列模型一样,Autoformer采用滑动平均的思想,窗口滑动获取一节节序列数据,对其进行AvgPool获取这一段序列的趋势特征。原始数据减去趋势特征得到季节性特征数据。Autoformer对数据的拆解就是基于此方法 (如下图所示) ,将数据分成趋势特征和季节性特征,但不同点在于该论文将其嵌入在模型内部。

在这里插入图片描述

模型Encoder结构中,输入序列数据,经过AutoCorrelation模块,再进行残差连接后,将此时的特征数据进行分解,分解为季节性特征数据和趋势性特征数据。 **但模型只获取季节性特征数据作为下一个模块的输入,设计的目的使得模型逐步消除趋势项,更注重周期内数据的变化。**在经过Feed Forward前馈层,即两次卷积做非线性映射,再连接残差后,分解特征数据,并只拿取季节性特征数据。

在这里插入图片描述

Auto-Correlation结构:
Autoformer提出一种新的结构,使得Autoformer不像Transformer以点为注意力,告诉模型应该注意那些部分的特征。以点为注意力,会导致模型处理序列数据这种连续值时,丢失很多信息。同时也需要大量稀疏矩阵去保存注意力信息。Autoformer就提出自相关性结构取代自注意力结构

对于一段上下波动的时序数据,当前状态的数据趋于上升或下降,都与先前一段时间数据的上升或下降的趋势有关。那么我们可以理解为,在这一段数据和先前一段的数据,使具有相关性的,也是具备一定相似性的。 那么,文章如何确定先前多少时间段的数据才是有相关性的呢?

在这里插入图片描述

文章将一段 L 长的序列数据向左移动,移动的幅度逐渐增加,移动L次。左移之后,右边空出来的数据将以左边溢出的数据为补充。如此一来,我们得到多段不同的数据,每一段都与原数据相乘,计算其自相关系数**(如下图所示)**。每一段左移的序列都有一个自相关系数值,我们只注意Top k个自相关系数值高的的序列,将它们的自相关系数值做SoftMax操作,放大这Top k段序列的自相关差距。经过SoftMax后的k个值,分别乘上自己移动序列的特征数据。基于此方式,可以使得模型注意到那些自相关性高的,也就是过去更重要的序列数据,与传统自注意力机制不同,但是目的是一样的,告诉模型应当以哪些数据为重。

在这里插入图片描述
在这里插入图片描述

Autoformer Decoder结构:


Decoder结构的输入与Encoder不同,需要将数据拆分为季节性数据和趋势性数据。同时,只取输入数据的一半作为参考数据 ,季节性数据剩下的部分 用0做填充 ,趋势性数据用输入数据的均值做填充。 两种数据是分别但同步处理。

Decoder输入季节性数据后,经过残差的AutoCorrelation结构,再经过数据分解得到季节性1和趋势性1数据,将此时得到的趋势性数据与输入的趋势性数据做加权和操作。接着,再经过一次残差的AutoCorrelation结构。需要注意的是,这一次是将EnCoder的输出一并作为结构输入,得到季节性2和趋势性2数据,趋势性数据继续做加权和操作。将季节性2数据经过残差的前馈层,得到季节性3和趋势性3数据,趋势性3数据同理。最终季节性数据得到的特征数据,与趋势性最终加权和得到的数据做相加,便是输出结果。

在这里插入图片描述

对于输入的季节性数据会不断分解出下一个输入的季节性特征数据与趋势性特征数据,趋势数据采用加权和的方式整合特征并输出,季节性数据经过三次处理得到最终季节特征数据。

实验部分

实验结果:
在长期预测问题中,Autoformer在能源、交通、经济、气象、疾病五大时序领域大幅超越之前SOTA,实现38% 的相对效果提升

Autoformer在所有数据集、各种输入-输出长度的设置下,取得了最优(SOTA)结果。

对比实验:

Autoformer提出的自相关机制,使得模型不同于以往Transformer模型以稀疏点阵为注意力方式,AutoCorrelation实现了序列级的高效连接。模型更关注前一段段序列数据的变化趋势,从而映射预测当前的数据变化趋势,预测效果更准确。

在这里插入图片描述
另外,根据实验结果我们容易发现,在相同预测序列长度下,输入序列越长反而损失值越大了。即给出的有效信息长度更长,反而使得模型的预测越不精准。这是因为,时序数据是有时效性的,当前的预测结果很大程度是依赖近期的数据,对于很久之前的数据影响是较小的。当给定的输入数据过长,反而使模型接收到更多冗余无效的数据,影响模型的判断。

值得注意的是,在模型实现过程中,上述提到自相关机制的处理方法,是将序列数据左移很多段再分别计算各自的自相关值。这其实是非常耗时的,每一段每一个点都需要相乘计算。论文基于Wiener-Khinchin的理论,利用快速傅里叶变换(FFT) 求得不同序列间的自相关系数,并且其在显存占用和运行时间表现出高效的 O(L log L) 复杂度。。在降低时间复杂度的同时,实现序列级别的高效连接,提高准确率。


参考文献:Autoformer: Decomposition Transformers with Auto-Correlation for Long-Term Series Forecasting

  • 25
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值