

我们在先前的一篇文章中已经总结了直接把Transformer应用到时间序列数据存在的问题,其中序列平稳化是transformer也是其他很多模型都未解决好的一个不足。实际上,序列平稳和非平稳是矛盾的存在,这篇文章探索了:原始数据-->平稳化-->建模-->去平稳化-->输出结果的方式。期望通过改进Attention计算,在两者之间达到平衡。
首先,让我们简要说明一下什么是平稳和非平稳序列,这是两种不同的数据模式。
非平稳序列(Non-stationary Series)
如前所述,非平稳数据难以预测,而平稳序列序列统计性质稳定,许多时间序列模型都首先对数据进行normalization等转换,以使其变得平稳,然后再建模进行分析和预测。

但是,经过平稳化处理后,序列会丧失很多固有的特征,如子图b中,虽然左侧attention权重更明显,但右侧很多特征直接就被丢掉,对于真实世界中的突发事件预测可能不够有指导性。这个问题在这篇论文中被称为"过度平稳化"。
为了兼顾序列可预测性(平稳)和模型能力(非平稳),作者提出Non-stationary Transformer框架,包含两个核心模块:(a)序列平稳化和(b)去平稳化模块。是的没错,先进行Normalization平稳化,然后去平稳化恢复统计特性,使其转换为更具有可预测性的特征表示。

序列平稳化过程没有需要特别讲解的,就是图中的Normalization,假设原序列为 ,则按照如下公式处理后的平稳化序列计作 , 同时 为均值, 为方差。

序列去平稳化则有两部分,第一是:对上述平稳化统计指标 均值, 方差的回加。

但是,仅通过以上步骤显然并不能完全恢复原始序列的非平稳性。举例来说,不同的时间序列是可以生成相同的平稳化输入 。然后,模型会得到相同的注意力权重,这样就无法捕捉与非平稳性纠缠在一起的重要时间依赖关系。换句话说,由过度平稳化引起的削弱效应发生在深度模型内部,特别是在注意力计算中。
这就到了本篇文章最核心的部分,去平稳注意力机制(De-stationary Attention),我手工推导了整个过程。而要理解这个过程,你首先得知道transformer的注意力机制是如何计算的,如下公式所示。





至此,就全部推理结束了,这篇文章我看了几遍,以上是我的笔记,有错误请大家指正。
由于时序相关论文太多,刚刚入坑的同学(包括我自己)往往不知道该读哪些论文,这时候,理清整体发展脉络,找到重点论文,并跟踪到最新的研究进展就极其重要。
我前期已经整理阅读了一些论文(Transformer、Informer、Autoformer、Pyraformer、FEDformer,PatchTST、Non-stationary Transformers、LTSF-Linear),这些几乎都是时序必读的baseline,这个账号会同步记录自己的论文的笔记。
我希望在这笔记有个很好的总结,并进行长期的更新,如能帮助大家则是更好,请大家关注一下吧!
参考链接: [1]Liu, Yong, et al. "Non-stationary transformers: Exploring the stationarity in time series forecasting." Advances in Neural Information Processing Systems 35 (2022): 9881-9893.