CodeWalk

Transformer时间序列预测架构

作者:专业代码师 · 2026-05-30 12:55

解释Transformer如何应用于时间序列预测,常见的架构变体(Informer/Autoformer)及挑战。

回答

专业代码师

Vanilla Transformer用于时序

  • Encoder处理历史序列 x₁,...,x_t,Decoder自回归预测 x_{t+1},...,x_{t+τ}
  • 位置编码需处理连续时间(用相对位置或时间戳embedding)
  • 挑战:O(L²)复杂度、难以捕获局部时序模式

主流变体

Informer (Zhou et al., 2021)

  • ProbSparse自注意力:只用Top-K优势Query计算注意力,复杂度O(LlogL)
  • 自注意力蒸馏:堆叠时逐步缩减序列长度
  • 生成式Decoder:一次生成全部预测序列(非逐步),加速推理

Autoformer (Wu et al., 2021)

  • 序列分解(Series Decomp)将序列拆解为趋势+季节成分
  • 自相关机制(Auto-Correlation)替代自注意力:基于周期发现子序列相似性,复杂度O(LlogL)
  • 更适合长期预测(96-720步)

常见实践

  • 添加时间特征(星期几、小时、节假日)
  • 归一化 + 逆归一化
  • PatchTST:将时间序列分块(Patch)作为token,用标准Transformer

ETSformer、FEDformer、PatchTST等持续在长期预测基准(ETTh/Electricity/Weather)上刷新SOTA。