11.时间序列预测入门到实战:时序专用 Transformer:Informer / Autoformer

📅 2026/7/18 4:21:31
11.时间序列预测入门到实战:时序专用 Transformer:Informer / Autoformer
时间序列预测入门到实战十一· 时序专用 TransformerInformer / Autoformer本文是「码海寻道」《时间序列预测入门到实战》系列的第 11 篇。上一篇留下一个硬伤原版 Transformer 的注意力是O(L²)吃不下长序列。这一篇看学术界怎么驯服它——Informer把注意力变稀疏Autoformer把序列分解嵌进网络。它们一度是长序列预测的 SOTA。但文末我会给你埋一个即将在下一篇引爆的反转。一、先说清楚长序列预测LSTF难在哪LSTFLong Sequence Time-series Forecasting指的是要预测很长的未来——96、336 甚至 720 步。原版 Transformer 在这里三个问题集中爆发注意力矩阵O(L²)序列一长显存和算力平方级爆炸解码器逐步生成预测 720 步就要串行 720 次慢长序列堆叠多层内存吃不消。Informer 和 Autoformer就是奔着这三个问题来的。二、Informer注意力其实很稀疏InformerAAAI 2021 最佳论文的关键观察是注意力权重的分布极不均匀——少数几个 Query 贡献了绝大部分注意力大部分 Query 其实没在认真看。既然如此何必把每个 Query 都算一遍三招组合拳ProbSparse 注意力只挑出最重要的少数 Query来算注意力复杂度从 O(L²) 降到O(L·log L)自注意力蒸馏逐层把序列缩短越往上越精炼省内存生成式解码一次性吐出整个预测序列不再逐步串行长预测也快。怎么判断哪个 Query “重要”Informer 的判据很直白一个 Query 如果对所有位置的注意力平摊得差不多接近均匀分布说明它没主见、可有可无反之如果它的注意力明显偏向某几个位置分布尖锐才是真在认真看。于是它用这个 Query 的注意力分布离均匀分布有多远来打分只保留得分高的少数 Query 精算其余的用平均值糊弄过去。省掉的正是那些本就没在贡献信息的计算——近似而不太掉精度这是 ProbSparse 的底气。这三招让 Transformer 第一次能舒服地吃下长序列。三、Autoformer把分解焊进网络AutoformerNeurIPS 2021换了个思路它把第 2 篇的时序分解直接做成了网络的内置组件深度分解架构在网络的每一层都做一次趋势 季节分解让模型边预测边把趋势和季节理清楚自相关机制(Auto-Correlation)不再算逐点注意力而是基于周期去发现长得像的子序列把它们对齐聚合——复杂度同样是O(L·log L)而且天生契合有周期的数据。比起 Informer 的让注意力变稀疏Autoformer 更像是用周期性重新定义了注意力。对季节性强的序列它往往更稳。自相关到底在干嘛逐点注意力问的是哪个时刻和我像自相关问的是隔多久会重复。它先算序列和自己平移若干步后的版本有多吻合这就是第 2 篇的自相关可用 FFT 快速一次算完吻合度高的那几个平移量就是数据的主周期——比如 24、168。然后它把相隔一个周期的那些片段对齐、加权求和既然每 24 小时重演一次那预测下一段就多参考历史上每个’昨天此刻’开始的片段。所以它不是在孤立的点之间连线而是在以周期为单位的片段之间做聚合天然踩在时序的节拍上。顺带一提FEDformer它更进一步把注意力搬到傅里叶频域里做用少数低频分量就能表示序列又快又稳。四、怎么用别手写用库这些模型结构复杂实务中不建议自己手写直接用成熟库如neuralforecast、Time-Series-Library# pip install neuralforecastfromneuralforecastimportNeuralForecastfromneuralforecast.modelsimportAutoformer,Informer nfNeuralForecast(models[Autoformer(h96,input_size336,max_steps300)],freqh)nf.fit(df_long)# df: 列为 unique_id / ds / yprednf.predict()五、埋个反转重点参考结论Informer、Autoformer、FEDformer 在长序列 benchmark含 ETT上曾一个接一个刷新 SOTA风头无两。但是——2022 年一篇标题极具挑衅的论文出现了《Are Transformers Effective for Time Series Forecasting?》。作者用一个简单到只有一层线性的模型 DLinear在这些长序列 benchmark 上把上面这一众复杂 Transformer打得很难看。这记重拳让整个领域停下来反思我们是不是把问题复杂化了这个反转就是下一篇的主题。小结LSTF长序列预测三大痛点O(L²) 注意力、逐步解码慢、内存爆InformerProbSparse 稀疏注意力 蒸馏 生成式解码把复杂度降到 O(L·log L)Autoformer深度分解 自相关机制用周期性重构注意力契合季节数据它们曾是 SOTA但一个简单线性模型即将掀翻这一切——下一篇见分晓。思考题Informer 假设注意力是稀疏的、少数 Query 占主导。什么样的时序数据会违反这个假设让 ProbSparse 的近似失效高效注意力这条路走到这里。关注公众号「码海寻道」下一篇是全系列最有争议的一篇——简单线性模型如何吊打复杂 Transformer。