文章

Autoformer:用分解与自相关重写长序列预测

Autoformer 把序列分解嵌入网络内部,再用基于周期的自相关机制代替逐点注意力,为长期时间序列预测提供了一条结构化路线。

2025/06/145 min read论文笔记#Autoformer#time-series#decomposition#auto-correlation
Autoformer:用分解与自相关重写长序列预测

一句话总结

Autoformer 的关键不是给 Transformer 换一个注意力模块,而是先把趋势与周期逐层拆开,再按时间延迟聚合相似子序列:它把长期预测从“哪些时间点彼此相关”改写成“哪些周期中的变化过程彼此相似”。

研究问题

长期时间序列预测要用一段有限历史直接预测更长的未来。能源规划、交通调度和天气预警都需要这种能力,但预测跨度越长,序列中的趋势、周期、局部变化和噪声就越容易纠缠在一起,数值相似的两个时间点也未必处在相同的变化阶段。比如“今天上午十点”和“昨日上午十点”可能属于相似子过程,可逐点注意力并不知道它们恰好相差一个完整周期;序列越长,这种真正有用的依赖越容易淹没在局部噪声中。

计算量是另一个问题。长度为 L 的标准注意力需要建立 L × L 的连接,时间和空间复杂度都是 O(L²)。Informer、LogTrans 等方法用稀疏注意力降低成本,却仍然是在做点对点选择,连接减少的同时也可能损失完整的序列信息。

Autoformer 因此没有继续优化“该选哪些点”,而是换了两个问题:能否在预测过程中持续分离趋势和周期,而不是只做一次固定预处理;能否直接连接形状相似的子序列,按周期聚合信息,而不是只挑选少量时间点。这两个问题分别对应渐进式分解架构和 Auto-Correlation。

核心方法

Autoformer 保留编码器—解码器框架,但把 Transformer 内部的基本操作换成了两个更符合时间序列特性的模块。

渐进式分解

传统做法常在训练前把序列分成趋势项和季节项,再分别建模。问题是未来序列不可见,预处理得到的固定分解无法根据预测误差继续调整,也忽略了不同组分在未来的相互影响。Autoformer 将移动平均分解嵌入每一层:对隐藏变量 X,先得到平滑趋势,再把残差作为季节部分。

X_trend    = AvgPool(Padding(X))
X_seasonal = X - X_trend

这不是一次性清洗数据,而是让模型在层与层之间反复执行“预测、分解、再预测”。封面图展示了完整数据流:Encoder 逐层消除趋势干扰,主要保留季节信息;Decoder 一边用 Auto-Correlation 细化季节部分,一边累加每层提取出的趋势,最终把两条路径重新相加。随着网络加深,趋势与周期不是被提前固定,而是在预测过程中逐步成形。

自相关与时延聚合

分解让周期结构变得更清晰,Auto-Correlation 再利用这种结构寻找可信的时间延迟 τ。论文不让每个时间点与所有位置逐一比较,而是对 Q 与 K 做频域计算,借助 Wiener–Khinchin 定理一次得到所有延迟下的相关性,复杂度为 O(L log L)

R_Q,K(τ) = IFFT(FFT(Q) · Conj(FFT(K)))

Auto-Correlation 与时延聚合

模型从中保留最可信的 k = floor(c log L) 个延迟,每个延迟对应一个候选周期,然后完成三步聚合:

  1. Roll(V, τ) 把相同相位的子序列对齐。
  2. 用相关性经过 Softmax 得到不同延迟的权重。
  3. 对对齐后的完整子序列做加权求和。

自注意力是在许多散落的时间点中挑信息,Auto-Correlation 则是先找周期,再把不同周期中形状相似的整段变化搬到一起。分解负责把纠缠模式拆开,自相关负责利用被凸显出来的周期,两者在网络内部交替进行,因此 Autoformer 并不是“移动平均 + FFT”的简单拼装。

实验与结论

论文在六个真实数据集上测试,覆盖能源、交通、经济、天气和疾病五类应用。除 ILI 外,主要设置固定输入长度为 96,再把预测长度依次增加到 96、192、336 和 720,并同时报告 MSE 与 MAE。这种设置直接检验模型在预测跨度不断拉长时是否仍然稳定。

在论文当时采用的基线与实验协议下,Autoformer 在六个长期预测基准上取得了最优结果。作者选取代表性设置统计,报告平均 38% 的 MSE 相对下降;这个数字只适用于论文定义的数据集、基线和预测长度,不能理解成所有时间序列任务都会提升 38%。比单个数字更重要的是,随着预测长度增加,Autoformer 的误差通常增长得更稳定,这与“长预测更需要显式处理趋势和周期”的判断一致。

消融实验进一步说明,收益并不只来自最终模型规模。论文把渐进式分解接入 Transformer、Informer、LogTrans 和 Reformer,多数长期预测设置都得到改善,并且通常优于“预先分解,再用两个独立模型预测”的方案;把 Auto-Correlation 与 Full Attention、ProbSparse Attention 等机制单独比较时,它也保持了竞争优势和 O(L log L) 的复杂度。可视化中,层数增加后累积趋势逐渐接近真实趋势,季节部分则更集中地描述局部波动。

这些结果共同支持论文的核心结论:Autoformer 的优势不是单独来自一个更大的模块,而是来自适合长期时间序列的归纳偏置——先逐步分解,再按周期连接整段子序列。

我的理解

我认为 Autoformer 最有价值的地方,是它没有继续把时间序列强行解释成普通 token 序列。它先承认数据里存在趋势、周期和相位,再围绕这些结构设计连接方式。当预测跨度明显长于短期波动尺度、数据包含相对稳定的趋势或重复周期、业务需要一次产生整段未来时,这条路线尤其值得考虑。

它的边界也来自同一个假设。Auto-Correlation 依赖可发现的时间延迟;如果周期极弱,变化主要由突发外生事件驱动,或者训练期与预测期发生严重概念漂移,那么“历史中的相似周期会重复”就可能失效。此时,更复杂的周期聚合未必优于简单移动平均、线性模型或显式加入外生变量的方案。

Autoformer 的实验结论属于 2021 年的比较环境,后续 DLinear 等工作又强调了强线性基线的重要性。所以今天使用它时,我更关心三个判断是否成立:数据里确实存在可复用的周期结构;渐进分解相对简单基线有稳定增益;长预测收益足以抵消模型复杂度。只有这三点得到验证,Autoformer 的结构才真正有价值。

对我来说,这篇论文最终留下的不是一个必须照搬的模型,而是一套建模顺序:先识别结构,再设计连接,最后才比较模型规模。

参考资料

下面先列原论文,再保留用于辅助理解的中文解读;论文事实以 arXiv 与 NeurIPS 官方记录为准。