于 2022/10/23 更新
论文原文:https://arxiv.org/abs/2205.14415
代码:thuml/Nonstationary_Transformers: Code release for "Non-stationary Transformers: Exploring the Stationarity in Time Series Forecasting" (NeurIPS 2022), https://arxiv.org/abs/2205.14415 (github.com)
清华吴师兄的新工作//真正理论内容是5页,其余都是做的实验与文献,总计18页,可读性强
Transformers由于其全局范围的建模能力,在时间序列预测方面表现出了巨大的能力。然而,在联合分布随时间变化的非平稳现实数据中,它们的性能会严重退化。
以往的研究主要采用平稳化的方法来减少原始序列的非平稳性,从而获得更好的可预测性。但是,被剥夺了固有非平稳性的平稳化序列对现实世界突发事件预测的指导意义不大。//确实,比如过度平滑把原本真实得突发事件给平滑没了
该问题在本文中被称为过度平稳化,导致变压器对不同序列产生无法区分的时间关注,并阻碍了深度模型的预测能力。为了解决序列可预测性和模型能力之间的困境,我们提出非平稳Transformer作为一个通用框架,它有两个相互依赖的模块:序列平稳化和去平稳注意。具体来说,Series Stationarization(序列平稳化)将每个输入的统计数据统一起来,并将输出数据转换为还原的统计数据,以获得更好的可预测性。
为了解决过度平稳问题,设计了去平稳注意算法,通过近似非平稳序列中可区分的注意,将固有的非平稳信息恢复为时间依赖性。我们的非平稳变压器框架持续大幅提升了主流变压器,Transformer的MSE降低了49.43%,Informer的47.34%,和Reformer的46.89%,使它们成为最先进的时间序列预测。
时间序列预测在现实世界的应用中越来越普遍,如天气预报、能源消耗规划、未来疾病病例估计和财务风险评估。最近,Transformer[32]在广泛的领域取得了渐进式的突破[11,12,10,22]。特别是在时间序列预测中,由于Transformer的堆叠结构和注意力机制的能力,它们可以自然地捕捉到时间点之间的时间依赖性[36,17,20,34],从而完美地拟合序列预测任务。
尽管《Transformer》有着卓越的架构设计,但由于数据的非平稳性,要预测真实世界的时间序列仍然是一个挑战。非平稳时间序列的特征是统计性质和联合分布[6,14]随时间的连续变化。从数据上看,非平稳性使得时间序列的可预测性降低[6,14]。从深度学习的角度来看,使深度模型在变化的分布上很好地泛化是一个基本但具有挑战性的问题[26,19,5]。因此,对时间序列进行消去非平稳性预处理已被普遍认可,相关研究也成为热点[24,27,15]。这些研究减弱了现实世界时间序列的非平稳性,从而获得更可预测的序列,为深度模型提供相对稳定的数据分布。
//这个地方用可视化的方式的来形象的描述问题非常值得学习
然而,非平稳性是现实世界时间序列的构成属性,可以与预测的基本时间相关性纠缠在一起。通过实验,我们观察到,在平稳序列上的训练将削弱Transformer学到的注意力的区别。如图1(b)所示,即使输入序列是明显不同的,但是训练在平稳序列上的Transformer[32]仍然倾向于引起相当类似的关注,这就是我们所说的过度平稳化的原因。意想不到的副作用将使Transformer无法捕获事件的时间依赖性,限制模型的预测能力,甚至诱导模型产生与Ground truth值直接的巨大非平稳性偏差的输出。因此,如何在提高序列平稳性的同时,减轻模型能力的过度平稳化问题,是进一步提高预测性能的关键问题。
在本文中,我们探讨了平稳化在时间序列预测中的作用,并提出非平稳transformer作为一个通用框架,使transformer[32]及其高效变式[17,36,34]具有对真实世界时间序列的强大预测能力。提出的框架涉及两个相互依赖的模块:增加非平稳序列可预测性的Series Stationarization和缓解过度平稳化的De-stationary Attention。在技术上,级数平稳化采用一种简单而有效的归一化策略,不需要额外的参数就可以统一各个级数的统计量。而去平稳注意近似于非平稳数据的注意,恢复原始序列的固有非平稳性。得益于上述设计,非平稳transformer可以利用平稳序列的巨大可预测性,以及从原始非平稳数据中发现的关键时间相关性。
我们的方法在六个真实世界的基准测试中达到了最先进的性能,并且可以推广到各种transformer,以便在基本模型上进一步改进。其贡献有三个方面:
•我们提炼出非平稳序列的预测能力在现实世界的预测中是必不可少的。通过详细的分析,我们发现目前的平稳化方法会导致过度平稳的问题,限制transformer的预测能力。
•我们提出非平稳transformer作为一个通用框架,包括系列平稳化,使系列更可预测,去平稳注意,通过重新合并原始系列的非平稳性来避免过度平稳化问题。
•非平稳transformer持续大幅提升四款主流transformer的性能,并在六款真实世界的基准测试中达到最先进的性能
2.1 Deep Models for Time Series Forecasting
近年来,深度模型和精心设计的架构在时间序列预测方面取得了很大的进展。基于rnn的模型[33,35,23,29,30]被提出以自回归的方式应用于序列建模,但循环结构可能会受到建模长期依赖性的影响。不久之后,Transformer[32]出现了,并在序列建模中显示出强大的能力。为了克服序列长度上的二次计算增长,后续工作旨在降低Self-Attention的复杂度。特别是在时间序列预测中,Informer[36]利用KL-divergence准则扩展了Self-Attention来选择优势查询。重构器[17]引入了局部敏感哈希(LSH),通过分配类似的查询来近似关注。
以下模型不仅通过降低复杂性而得到改进,而且进一步开发了时间序列预测的精细构件。Autoformer[34]将分解块融合到一个规范的结构中,并开发Auto-Correlation来发现按序列的连接。Pyraformer[21]设计了金字塔注意模块(PAM)来捕获不同层次的时间依赖关系。其他深度但无变压器的型号也取得了显著的性能。N-BEA TS[25]提出趋势项和季节项的显式分解,具有较强的可解释性。N-HiTS[9]引入了分层布局和多速率采样来处理不同频段的时间序列。与以往专注于建筑设计的研究不同,本文从基本的平稳性角度来分析序列预测任务,而平稳性是时间序列的本质属性[6,14]。值得注意的是,作为一个通用框架,我们提出的非平稳变压器可以很容易地应用于各种基于变压器的模型。
2.2 Stationarization for Time Series Forecasting
平稳性是时间序列可预测性的关键[6,14],而现实世界的序列总是呈现非平稳性。为了解决这个问题,经典的统计方法ARIMA[7,8]通过差分将时间序列平稳化。对于深度模型,由于分布变化问题伴随非平稳性使得深度预测更加困难,因此平稳化方法被广泛探索,并一直被用作深度模型输入的预处理。
自适应Norm[24]通过采样集的全局统计对每个系列片段应用z-score归一化。DAIN[27]采用一种非线性神经网络自适应平稳时间序列,具有可观察的训练分布。RevIN[15]引入了两阶段实例归一化[31],分别对模型的输入和输出进行转换,以减少每个序列的差异。相反,我们发现直接将时间序列平稳化会损害模型对特定时间依赖性建模的能力。因此,与以往的方法不同的是,非平稳transformer除了平稳化外,还进一步发展了去平稳注意(De-stationary Attention),将原始序列固有的非平稳性重新带回给注意力。//这部分工作竟然都没了解过,真的赶紧补起来
如上所述,平稳性是时间序列可预测性的关键。然而,以往的“抹去非平稳性”设计显然忽略了真实序列的固有性质,导致了图1所示的过平稳化问题。为了解决这一困境,我们超越了之前的作品,提出了非平稳transformer作为一个通用框架。非平稳transformer涉及到两个互补的部分:序列平稳化,增强时间序列的平稳性,提高可预测性;去平稳注意,重新合并原始序列的非平稳信息,防止过度平稳化。通过这些设计,非平稳transformer可以同时提高数据的可预测性和建模能力。//打一巴掌揉三揉
3.1 Series Stationarization
非平稳时间序列使得深度模型难以很好地推广到统计量变化的序列,尤其是平均值和标准差变化的时间序列。试点工作,RevIN[15]对每个输入应用实例归一化和可学习的仿射参数,并恢复统计到相应的输出,使每个系列遵循一个统一的分布。通过实验,我们发现这种设计在没有可学习参数的情况下也能很好地工作。因此,我们提出了一种更直接但有效的设计,将transformer封装为基本模型,不需要额外的参数,命名为系列平稳化。如图2所示,它包含两个对应的操作:首先是归一化模块,用于处理均值和标准差变化导致的非平稳序列;最后是去归一化模块,用于将模型输出与原始统计数据进行转换。这里是细节。
//这里的归一化和反归一化都是最基础的公式,而且讲的也很清楚
//还是建议读原作
虽然将每个时间序列的统计量显式恢复到相应的预测值,但仅通过去归一化不能完全恢复原始序列的非平稳性。例如,序列平稳化可以使不同的时间序列x1、x2(即x2 = αx1 + β)产生相同的平稳化输入x0,而基本模型将获得相同的注意,但无法捕获与非平稳化纠缠的关键时间依赖(图1)。也就是说,过度平稳化所造成的破坏作用发生在深度模型内部,尤其是在注意的计算方面。此外,由于非平稳时间序列被碎片化并归一化为每个输入序列遵循相同的分布,模型更容易产生过平稳和平淡的输出,这与原始序列的自然非平稳是不可调和的。
为了解决序列平稳化引起的注意力琐碎问题,提出了一种新的去平稳化注意力机制,该机制可以近似不平稳化得到的注意力,并从原始的非平稳数据中发现特定的时间依赖性。
整体框架在最下面给出,在原论文最后一页的伪代码体现
过度平稳化问题说明//这很重要,如何描述(用什么指标)过度平稳化是证明De-stationary module work的基础
为了从统计的角度验证过平稳化问题,我们分别用上述方法训练Transformer,将所有预测的时间序列按时间顺序排列,并将其平稳性与地面真实值进行比较(图4)。单独采用平稳化方法的模型输出的序列平稳性较高,而采用destationary Attention辅助的结果接近实际值(相对平稳性∈[97%,103%])。
此外,随着时间序列平稳性的增加,过平稳化问题也变得更加明显。巨大的平稳性差异可以解释仅采用平稳性的Transformer性能较差的原因。同时也证明了作为变形金刚内部改造的去静止注意力(De-stationary Attention)可以缓解过度静止。
图4:预测的相对稳定性。对于所有6个数据集,我们计算相对平稳性,这是预测平稳性(由ADF检验统计量测量)与地面真实值的比率。//这里的ADF我不了解,查找了文献
(189条消息) 时间序列分析之ADF检验_敲代码的quant的博客-CSDN博客_adf检验
整体模型流程伪代码
De-stationary Attention是通过分析self-attention推导出来的,这可能不是高级注意机制的最佳解决方案。projector也有进一步发展的潜力,包括更多的归纳偏置。此外,所提出的框架仅限于基于transformer的模型,而任何深度时间预测模型如果使用不适当的平稳化方法都可能出现过平稳问题。因此,对过平稳问题的模型不可知的解决方法将是我们今后的探索方向
参考资料
Non-stationary Transformers: Rethinking the Stationarity in Time Series Forecasting - 知乎 (zhihu.com)