使用 Informer 的多变量概率时间序列预测

Hugging Face 已将 Informer 模型集成到 Transformers 库中,实现了高效的多变量概率时间序列预测。Informer 模型通过降低时间和空间复杂度,解决了原始 Transformer 在处理长序列时间序列预测(LSTF)时的可扩展性问题。

解决长序列 Transformer 的可扩展性问题

原始 Transformer 在对长度为 $T$ 的序列堆叠 $N$ 层时,面临二次计算复杂度 $O(T^2 D)$ 和内存使用 $O(N T^2)$ 的问题。Informer 引入了两种主要机制来缓解这些瓶颈:

ProbSparse 注意力

ProbSparse 注意力通过识别对注意力机制贡献显著的“活跃”查询并忽略产生微不足道注意力的“惰性”查询,将时间和空间复杂度降低至 $O(T \log T)$。

  • Mechanism: 模型使用基于实际查询分布与均匀分布之间 KL 散度的查询稀疏度测量 $M(q_i, K)$。
  • Implementation: 实际上,该测量通过查询与随机抽样子集键的最大点积与平均点积之差来计算。仅使用前 $u$ 个活跃查询(其中 $u = c \cdot \log L_Q$)来计算注意力权重。

蒸馏操作

为降低堆叠层时的内存瓶颈,Informer 使用蒸馏操作将编码器层之间的输入尺寸减半。这通过在每个编码器层之间应用 1D 卷积层随后进行最大池化实现,使总内存使用降低至 $O(N \cdot T \log T)$。

多变量概率预测

Informer 支持多变量概率预测,即预测未来时间序列目标值向量的分布,而非单一的 1D 分布。

  • Modeling Approach: 对于多变量数据,核心的 Transformer/Informer 架构保持不变;修改发生在输出(发射)端。
  • Distribution Handling: 为处理高维联合条件分布的计算开销,实现采用独立(对角)发射方式,得益于 Transformers 库中实现的分布族。

实际实现与训练

使用 InformerForPrediction 模型,用户可以在多变量数据集上进行训练,例如来自 Monash Time Series Forecasting 仓库的 traffic_hourly 数据集。关键实现细节包括:

  • Feature Engineering: 模型利用 “lags”(回溯机制)和时间特征(例如一天中的小时、星期几)提供位置编码和上下文信息。
  • Data Pipeline: 与 GluonTS 的集成使得可以使用 MultivariateGrouper 将单个序列转换为二维矩阵,并使用 InstanceSplitter 对上下文和预测窗口进行采样。
  • Inference: 自回归生成通过 generate() 方法处理,该方法从预测分布中采样值以生成预测。

性能与基准测试

在 Traffic Hourly 数据集上测试时,多变量 Informer 实现达到了 1.191 的平均绝对缩放误差(MASE)和 0.532 的对称平均绝对百分比误差(sMAPE)。

将这些结果与 Monash Time Series Repository 上的其他模型进行比较,作者指出,由于估计跨序列相关性困难以及学习虚假相关性的风险,多变量预测有时不如单变量预测准确。在 Traffic Hourly 数据集的具体案例中,原始单变量 Transformer 表现最佳,MASE 为 0.821。

多变量模型在大量数据训练时往往表现良好。

资源

Sources