Autoformer – Transformers 對時間序列預測有效

介紹

Hugging Face 宣布 Autoformer 模型現在已在 🤗 Transformers 庫中提供。該貼文展示了基於 Transformer 的模型在時間序列預測方面有效,反駁了簡單線性模型(如 DLinear)優於其他模型的主張。

基準測試 - Transformers 與 DLinear 的比較

在 Traffic、Exchange‑Rate 和 Electricity 數據集上,Autoformer 模型的 MASE 優於 DLinear 模型。具體來說,Autoformer 在 Traffic 上的 MASE 為 0.910,在 Exchange‑Rate 上為 1.087,在 Electricity 上為 0.751;而 DLinear 分別為 0.965、1.690 和 0.831。這表明 Autoformer 在所有三個數據集上均優於 DLinear。

Autoformer - 內部機制

分解層

分解層使用移動平均池化將輸入序列分割為趨勢和季節性分量。對於輸入 $\mathcal{X} \in \mathbb{R}^{L \times d}$,趨勢為 $\mathcal{X}{\text{trend}} = \text{AvgPool}(\text{Padding}(\mathcal{X}))$,季節性部分為 $\mathcal{X}{\text{seasonal}} = \mathcal{X} - \mathcal{X}_{\text{trend}}$。PyTorch 實現會對序列進行填充,應用平均池化,然後返回這兩個分量。

注意力(自相關)機制

Autoformer 使用在頻率域中運行的自相關機制來取代標準的自注意力。查詢和鍵的自相關通過 FFT 計算,得到 $O(L \log L)$ 的複雜度。得到的權重會按照時間延遲進行聚合:選取前 k 個延遲,進行 softmax 歸一化,然後用於加權滾動的值狀態。此機制能捕捉基於週期的依賴關係。

DLinear - 內部機制

DLinear 是一個簡單的前饋網路,它使用與 Autoformer 相同的分解層,然後將季節性和趨勢部分分別傳遞至獨立的線性層,並将它们的輸出相加。在概率設置中,線性層將投影到 prediction-length * hidden 維度,然後概率頭將其映射到分布參數。

範例:Traffic 數據集

Traffic 數據集包含來自 2015‑2016 年的 862 個舊金山高速公路佔有率(範圍 [0,1])的每小時時間序列。在實驗中,預測長度設置為 24,上下文長度為 48,批次大小為 128,並使用小型 Transformer 配置(encoder_layers=2decoder_layers=2d_model=16)訓練模型 50 個 epoch。Autoformer 和其他模型的預訓練檢查點可在 Hugging Face Hub 上獲得。

載入數據集

數據集是透過 `gluonts.dataset.repository.datasets.get_dataset(

Sources