时间序列预测问题是指在给定过去长度为 I I I 的序列的情况下,预测最有可能的未来长度为 O O O 的序列,即输入-I-预测-O的问题。长期预测设置是指预测长期未来,即更大的 O O O。如前所述,我们强调了长期序列预测的困难:处理复杂的时间模式和突破计算效率及信息利用的瓶颈。为了解决这两个挑战,我们将分解作为深度预测模型的内置模块,并提出了 Autoformer 作为分解架构。此外,我们设计了自动相关机制(Auto-Correlation mechanism)来发现基于周期的依赖关系并聚合来自底层周期的相似子序列。
Autoformer 的详细解释
Autoformer 是一种用于时间序列预测的深度学习架构,通过引入分解机制和自动相关机制来应对长期预测中的复杂性和效率问题。以下是 Autoformer 的核心组件及其工作原理:
1. 分解模块
Autoformer 中的分解模块旨在将时间序列分解为趋势和季节性成分,以便更好地捕捉时间序列的底层模式。具体来说,分解模块包括以下步骤:
- 趋势分解:通过滑动窗口或其他方法,提取时间序列的长期趋势。
- 季节性分解:使用傅里叶变换或其他技术,识别并提取时间序列的周期性模式。
分解后的时间序列可以更容易地进行建模和预测,因为去除了复杂的混合模式。
2. 自动相关机制
自动相关机制用于发现时间序列中的周期性依赖关系,并聚合相似的子序列。具体步骤包括:
- 周期检测:通过自相关分析或其他方法,检测时间序列中的周期性。
- 子序列聚合:将检测到的周期性片段聚合,以形成更稳定和可预测的模式。
自动相关机制帮助模型更好地理解和利用时间序列中的周期性信息,从而提高预测的准确性。
具体数据举例
假设我们有一个月度销售数据的时间序列,如下:
- 2019年1月:100
- 2019年2月:120
- 2019年3月:130
- …
- 2020年12月:260
我们的目标是预测2021年1月至12月的销售数据。Autoformer 将如何处理和预测这些数据呢?
1. 分解模块处理
首先,分解模块将时间序列分解为趋势和季节性成分。例如:
- 趋势成分:表示销售数据的长期增长趋势。
- 季节性成分:表示每年重复的季节性模式。
通过分解,我们可能得到以下结果:
- 趋势成分:线性增长,如每月增加 10 千元。
- 季节性成分:每年1月和12月的销售高峰,3月至8月的销售平稳期。
2. 自动相关机制处理
接下来,自动相关机制将检测和聚合周期性依赖关系。例如:
- 周期检测:通过自相关分析,发现每年1月至12月的周期性。
- 子序列聚合:聚合每年的相似模式,例如,将2019年和2020年的1月到12月的数据聚合,形成更强的周期性依赖。
3. 预测
在进行预测时,Autoformer 将利用分解后的趋势和季节性成分,以及聚合后的周期性信息,生成2021年的预测数据。例如:
- 2021年1月:135
- 2021年2月:145
- 2021年3月:165
- …
- 2021年12月:265
总结
Autoformer 通过将分解模块和自动相关机制内置于深度预测模型中,解决了长期时间序列预测中的复杂性和效率问题。分解模块帮助模型提取和利用时间序列的趋势和季节性成分,而自动相关机制帮助模型发现和聚合周期性依赖关系,从而提高预测的准确性和稳定性。这种方法不仅适用于月度销售数据的预测,还可以广泛应用于其他具有复杂时间模式的时间序列预测任务。