使用 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)$。
- 機制:模型使用基於實際查詢分佈與均勻分佈之 KL 散度的查詢稀疏度測量 $M(q_i, K)$。
- 實作:實務上,該測量以查詢對隨機抽樣子集鍵的最大點積與平均點積之差來計算。僅使用前 $u$ 個活躍查詢(其中 $u = c \cdot \log L_Q$)來計算注意力權重。
蒸餾操作
為了降低堆疊層時的記憶體瓶頸,Informer 採用蒸餾操作,使編碼器層之間的輸入尺寸減半。此做法透過在每個編碼器層之間加入 1D 卷積層再接最大池化,將總記憶體使用量降低至 $O(N \cdot T \log T)$。
多變量概率預測
Informer 支援多變量概率預測,即預測未來時間序列目標值向量的分佈,而非單一 1D 分佈。
- 建模方法:對於多變量資料,核心的 Transformer/Informer 架構保持不變,修改僅發生在輸出(發射)端。
- 分佈處理:為了降低高維聯合條件分佈的計算成本,實作使用獨立(對角)發射,並由 Transformers 套件中實作的分佈族支援。
實務實作與訓練
使用 InformerForPrediction 模型,使用者可以在多變量資料集上進行訓練,例如來自 Monash Time Series Forecasting 資料庫的 traffic_hourly 資料集。主要實作細節包括:
- 特徵工程:模型利用「滯後」(回顧機制)與時間特徵(例如每日小時、每週天數)提供位置編碼與上下文資訊。
- 資料管線:結合 GluonTS 後,可使用
MultivariateGrouper將單一序列轉換為 2D 矩陣,並使用InstanceSplitter抽樣上下文與預測窗口。 - 推論:自回歸生成透過
generate()方法處理,該方法從預測分佈中抽樣數值以產生預測結果。
效能與基準測試
在 Traffic Hourly 資料集上測試時,多變量 Informer 實作達到了平均絕對比例誤差(MASE)1.191 與對稱平均絕對百分比誤差(sMAPE)0.532。
將此結果與 Monash Time Series Repository 上的其他模型比較時,作者指出多變量預測有時會因難以估計跨序列相關性以及可能學習到虛假相關性而較單變量預測不準確。以 Traffic Hourly 資料集為例,原始單變量 Transformer 表現最佳,MASE 為 0.821。
多變量模型在大量資料訓練時往往表現良好。
資源
- 模型文件: Informer docs
- 範例 Notebook: Multivariate Informer Notebook