Autoformer(NeurIPS 2021)
Autoformer: 具有自动相关的分解变压器用于长期时间序列预测
时间序列预测是现实应用中的一个关键需求。受到经典时间序列分析和随机过程理论的启发,我们提出了Autoformer作为一个通用的时间序列预测模型【论文】。 Autoformer超越了Transformer家族,并首次实现了序列级的连接。
在长期预测中,Autoformer在六个基准测试上实现了SOTA,相对改进38%,涵盖了能源、交通、经济、天气和疾病五个实际应用。
:triangular_flag_on_post:新闻(2023.08)Autoformer已被收录至Hugging Face。参见博客。
:triangular_flag_on_post:新闻(2023.06)Autoformer的扩展版本【适用于全球站点的统一深度模型的可解释天气预报】已在《自然机器智能》上作为封面文章发表。
:triangular_flag_on_post:新闻(2023.02)Autoformer已被收录至我们【时间序列库】,涵盖了长期和短期预测、插值、异常检测和分类。
:triangular_flag_on_post:新闻(2022.02-2022.03)Autoformer已在2022年冬季奥运会中部署,用于为竞赛场地提供天气预报,包括风速和温度。
Autoformer vs. Transformers
1. 深层分解架构
我们将Transformer革新为一种深层分解架构,可以在预测过程中逐步分解趋势和季节成分。
图1. Autoformer的整体架构。
2. 序列级自动相关机制
受随机过程理论的启发,我们设计了自动相关机制,可以发现基于周期的依赖关系并在序列级聚合信息。这使得模型具有内在的对数线性复杂性。与之前的自注意家族相比,这种序列级的连接显然不同。
图2. 自动相关机制。
开始
- 安装Python 3.6, PyTorch 1.9.0。
- 下载数据。你可以从Google Drive获取所有六个基准测试。所有数据集都已进行了预处理,可以轻松使用。
- 训练模型。我们在文件夹
./scripts
中提供了所有基准测试的实验脚本。你可以通过以下命令复现实验结果:
bash ./scripts/ETT_script/Autoformer_ETTm1.sh
bash ./scripts/ECL_script/Autoformer.sh
bash ./scripts/Exchange_script/Autoformer.sh
bash ./scripts/Traffic_script/Autoformer.sh
bash ./scripts/Weather_script/Autoformer.sh
bash ./scripts/ILI_script/Autoformer.sh
- 特别设计的实现
-
**加速自动相关:**我们将自动相关机制建立为批量归一化风格的块,使其更具内存访问友好性。详细信息请参见论文。
-
**没有位置嵌入:**由于序列级连接将固有地保持顺序信息,Autoformer不需要位置嵌入,这一点不同于Transformers。
使用Docker复现
为了方便使用Docker、conda和Make复现结果,你可以按照以下步骤:
- 使用命令
make init
初始化Docker镜像。 - 使用命令
make get_dataset
下载数据集。 - 使用
make run_module module="bash scripts/ETT_script/Autoformer_ETTm1.sh"
运行每个脚本。 - 或者,一次运行所有脚本:
for file in `ls scripts`; do make run_module module="bash scripts/$script"; done
一个简单的示例
请参见predict.ipynb
获取工作流程(中文)。
主要结果
我们在六个基准测试上进行了实验,涵盖了五个主流应用。我们将我们的模型与包括Informer、N-BEATS在内的十个基线模型进行了比较。一般来说,对于长期预测设置,Autoformer相对于之前的基线改进了38%,实现了SOTA。
基线
我们将继续添加时间序列预测模型,以扩展此仓库:
- Autoformer
- Informer
- Transformer
- Reformer
- LogTrans
- N-BEATS
引用
如果你觉得这个仓库有用,请引用我们的论文。
@inproceedings{wu2021autoformer,
title={Autoformer: Decomposition Transformers with {Auto-Correlation} for Long-Term Series Forecasting},
author={Haixu Wu and Jiehui Xu and Jianmin Wang and Mingsheng Long},
booktitle={Advances in Neural Information Processing Systems},
year={2021}
}
联系方式
如果你有任何问题或想使用代码,请联系wuhx23@mails.tsinghua.edu.cn。
致谢
我们非常感谢以下GitHub仓库提供的宝贵代码库或数据集:
https://github.com/zhouhaoyi/Informer2020