Transformer时间序列预测架构
解释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。