清華大學最新深度時序模型綜述+5k star開源代碼!
今天給大家介紹一篇清華大學關于深度時序模型的最新綜述性工作。這篇文章的著眼點是深度時間序列模型的模型結構方面,提供了各類時間序列問題的深度學習模型結構發展過程和效果對比,并提供了一套復現各類深度時序模型的開源代碼,目前git上已經5k+個star。
下面整體介紹一下本文的核心內容,包括任務類型、基礎模塊、模型結構、Benchmark、實驗評估等5個部分。其中,開源代碼的代碼解析,已經逐步更新到了知識星球中,感興趣的同學歡迎加入星球,在【代碼解析專欄】獲取相應資料。
論文標題:Deep Time Series Models: A Comprehensive Survey and Benchmark
下載地址:https://arxiv.org/pdf/2407.13278v1
開源代碼:https://github.com/thuml/Time-Series-Library
1.任務類型
本文著眼點是深度時間序列模型的模型結構,面向各個類型的時間序列任務,包括時間序列預測(Forecasting)、時間序列填充(Imputation)、異常值檢測(Anomaly Detection)、分類(Classification)等4種類型。各個類型任務的示意圖如下,對應的在本文的代碼實現中,每個模型也同時兼容4種類型任務。
2.基礎模塊
在介紹模型結構之前,本文重點介紹了深度時間序列相配套的基礎模塊。基礎模塊部分主要是如何處理原始的時間序列數據,讓其更好適配深度時序模型。具體可以分為以下幾個模塊。
平穩性處理:包括ReVIN等的時間序列預處理方法,讓輸入序列具備平穩的均值、方差等統計量;
分解:包括趨勢項、季節項分解,或者類似NBeats中basis擴展、多變量預測中的變量維度/時間維度的矩陣分解等;
傅里葉變換:包括各類的傅里葉變換,將時間序列數據從時域轉換成頻域,在頻域建模這類方法。
3.模型結構
下圖展示了深度時間序列模型的各種結構,以及各個模型的提出時間,涵蓋了深度時序模型的發展歷程。這些模型在知識星球中基本都有詳細解析,此外目前在知識星球持續更新的時間序列預測專題,也按照類似的思路詳細整理了各個模型結構的原理,感興趣的同學可以加入查看相應專欄。
第一類模型是基于MLP的建模方法。這類模型很簡單,以歷史序列作為輸入,通過一個全連接網絡,映射到輸出維度;
第二類模型是基于RNN的建模方法,核心是基于RNN的自回歸建模能力,對歷史規律進行捕捉,并自回歸的逐個解碼出未來每個時間步的預測結果;
第三類模型是基于CNN的建模方法,包括基礎的1D建模,以及在TimesNet中提出的2D建模方法;
第四類模型是基于GNN的建模方法,主要用在多變量時間序列建模中,將各個變量之間的關系,通過圖學習的方式刻畫出來;
第五類模型是基于Transformer的建模方法,也是目前最常見的模型。文中又根據attention的建模維度,進一步分為point-wise、patch-wise、series-wise類型。Point-wise就是最基礎的Transformer,每個時間步之間計算attention score;patch-wise就是PatchTST中的方法,將相鄰幾個時間步的序列聚合成patch,attention作用到patch之間;series-wise指的是iTransformer這種方法,將一個序列作為整體,attention主要用在變量間關系的計算。
4.Benchmark
文中搭建了一套完整的深度時間序列模型Benchmark,整體構造如下圖,包括數據源、模型Layer、整體模型、適配不同任務的head、模型評估等模塊。
在這個benchmark中,將各個深度學習時間序列模型拆分成基礎的組件,也就是Layers中,再基于這些Layers組件,拼湊成各個SOTA的時間序列模型完整結構。同時,通過不同的head輸出設計,適配包括分類、填充、預測、異常檢測等多項任務。
5.實驗評估
基于上述的深度時序模型Benchmark,本文進行了一系列實驗,評估各個模型在各類任務上的效果。下圖是區分CNN、RNN、MLP、Transformer等模型結構在不同任務上的效果。整體來看,Transformer模型在各個任務上都取得了更好的效果,而CNN模型在分類問題、填充問題、異常檢測問題上,可以取得比Transformer更優的效果。
在具體的模型效果上,下圖列舉了不同SOTA模型在各個任務上的效果排名,其中iTransformer、Transformer、PatchTST在時序預測上取得了最優效果了;TimesNet則在剩余的填充任務、分類任務、異常檢測任務中取得了最優效果。
? ?
本文轉載自 ??圓圓的算法筆記??,作者: Fareise
