PatchTST 在 Hugging Face 中的集成

Hugging Face 已集成 PatchTST,这是一种针对长期时间序列预测设计的基于 Transformer 的模型。通过将时间序列划分为子序列级别的补丁并采用通道独立的架构,PatchTST 在保留局部语义信息的同时降低了计算开销,并扩展了模型的历史上下文窗口。

PatchTST 架构与核心机制

PatchTST 通过两个主要技术组件改进了传统 Transformer 在时间序列预测中的应用:

时间序列分块

PatchTST 不再将单个时间点视为 token,而是将时间序列向量化为一定大小的补丁。此设计提供了三个具体优势:

  • 局部语义保留: 局部模式在嵌入中得以保留。
  • 计算效率: 由于在补丁之间使用步幅,注意力图的内存和计算需求相对于回溯窗口呈二次方下降。
  • 扩展上下文: 通过平衡补丁长度(向量大小)和上下文长度(序列数量),模型能够关注更长的历史序列。

通道独立性

PatchTST 将每个通道视为单一的单变量时间序列。所有单变量序列共享相同的嵌入和 Transformer 权重,实际上作为一个全局单变量模型运行。

模型能力与训练策略

PatchTST 采用模块化设计,支持监督预测和自监督掩码时间序列预训练两种方式。

直接预测

在监督设置下,模型使用补丁向量输出特定预测长度的预测。当在 Electricity 数据集上训练时,模型实现了均方误差(MSE)为 0.131,符合原始研究论文中报告的结果。

迁移学习与零样本性能

PatchTST 展示了强大的迁移学习能力,能够将一个在源域预训练的模型应用到目标域。在从 Electricity 数据集迁移到 ETTh1 数据集的测试中,观察到以下性能层级:

  • Zero-Shot Forecasting: 在目标域上直接评估预训练模型(无需额外训练),MSE 为 0.370。
  • Linear Probing: 仅在冻结的预训练主干上训练一个线性层,将 MSE 降至 0.357。
  • Full Fine-Tuning: 对目标数据进行完整模型微调,MSE 为 0.354。

实现与集成

PatchTST 可通过 Hugging Face Transformers 库获取。数据预处理方面,实现使用了 IBM tsfm 包。

PatchTSTConfig 的关键配置参数包括:

  • context_length: 用作输入的历史数据量。
  • patch_length: 从上下文窗口中提取的补丁长度。
  • patch_stride: 提取补丁时使用的步幅。
  • d_model: Transformer 层的维度。
  • num_attention_heads: 每层的注意力头数量。

Sources