iTransformer 项目介绍
项目背景
iTransformer是一个用于时间序列预测的开创性工具,它基于研究论文《iTransformer: Inverted Transformers Are Effective for Time Series Forecasting》进行开发。该项目主要应对多变量时间序列(Multivariate Time Series Forecasting,MTSF)中的传统挑战并提供创新的解决方案。
项目概述
与传统的Transformer结构不同,iTransformer通过不改变Transformer模块而改变其使用方式,即采用反向Transformer(Inverted Transformer)来处理问题。这种方法被证实在复杂的多变量预测任务中表现优异,并能有效解决Transformer在处理大规模时间序列数据时的诸多痛点。
项目结构
iTransformer的核心在于将独立的时间序列视作变量令牌,利用注意力机制(Attention)捕捉多变量之间的相关性,并通过层归一化(Layernorm)和前馈网络来学习序列的表示。
使用方法
-
安装Pytorch及必要的依赖库:
pip install -r requirements.txt
-
数据集可通过Google Drive或百度云盘获取。
-
使用提供的脚本训练和评估iTransformer模型。项目中有多个脚本用于不同任务的重现测试:
bash ./scripts/multivariate_forecasting/Traffic/iTransformer.sh bash ./scripts/boost_performance/Weather/iTransformer.sh bash ./scripts/variate_generalization/ECL/iTransformer.sh bash ./scripts/increasing_lookback/Traffic/iTransformer.sh bash ./scripts/efficient_attentions/iFlashTransformer.sh
主要成果
iTransformer通过在挑战性多变量预测基准测试中的应用,展现出全面而优异的性能。这些基准测试通常涉及数百个变量,并需要精确的性能评估(例如MSE/MAE指标的下降)。
在线交易负载预测
项目特定应用于支付宝交易平台的在线交易负载预测,结果表明iTransformer取得了十分优异的平均性能。
通用性能提升
iTransformer不仅提升了Transformer及其变体的性能,还展示了这种方法的普适性和高效注意力机制的优势。
零样本变量泛化
iTransformer还具备对任意变量数量进行预测的能力。通过对部分变量进行训练,其在未见过的数据变量中仍能保持良好的泛化效果。
模型分析
使用反向Transformer模块的iTransformer能够:
- 学习更好的时间序列表示。
- 在自注意力模块中学到可解释的多变量相关性。
致谢与联系方式
该项目在开发过程中受益于多个GitHub仓库的贡献,并得到了蚂蚁集团通过CCF-蚂蚁基金的支持。如果对项目有任何疑问或希望使用代码,欢迎联系项目成员。