時間序列Transformer模型中靈活引入不同類型外部特征的方法
今天給大家介紹一篇關于如何在深度模型中引入外部變量的時間序列預測工作,通過cross-attention靈活引入多種類型的外部變量補充信息,提升時序預測效果。
論文標題:CITRAS: Covariate-Informed Transformer for Time Series Forecasting
下載地址:https://arxiv.org/pdf/2503.24007
1.研究背景
現有的時間序列預測模型,大多數都是在優化待預測變量的關系建模方式上。例如一些transformer模型,核心都是通過不同的attention方式建模每個時間步和其他時間步目標序列的關系。這些方法忽略了外部變量的重要性。
外部變量,指的是那些非預測目標的變量序列,類似特征的概念。這其中又可以分為2種類型。一種是只知道歷史每個時刻取值的變量,另一種是同時知道歷史和未來每個時刻取值的變量。
本文針對這兩種類型變量的靈活引入,提出了一種cross-attention結構,并通過attention score的平滑提升離散型變量的建模能力。在多個數據集上都取得了顯著的效果提升。
2.建模方法
本文的核心模型結構如下圖所示,整體基于Transformer結構,每次遞歸預測下一個時間步的值,對原始序列分patch處理后,先進行目標變量、各個外部變量獨立的self-attention,再通過cross-attention將外部變量信息引入目標變量,并通過KV Shift讓未來已知變量的信息引入到歷史目標變量中。
Embedding部分:對目標變量、歷史已知變量、歷史未知變量都采用類似PatchTST的方法進行不重疊patch劃分和MLP映射,生成embedding,輸入到后續模型中。
Cross-Time Attention:這部分就是基礎的self-attention,對待預測序列以及各個外部變量,都獨立的分別做self-attention生成表征。
Cross-Variate Attention:這部分是本文的核心模塊,用來進行外部變量信息引入待預測變量。其中目標變量表征為Query,目標變量、未來已知變量、未來位置變量拼接到一起作為Key和Value。由于未來已知變量涉及到未來時間步的值,沒有對應的目標變量embedding,無法進行信息引入,因此文中引入了KV Shift的方法,將未來已知變量回移一個時間步,實現對齊拼接。在遞歸進行下一個時間步預測時再逐步引入未來時間步未來已知變量的表征。
Attention Score Smoothing:一些外部變量是離散型的,在一個patch內可能一直是同一個值,而時間序列在patch內可能出現比較大的波動,導致這種變量在attention時無法刻畫全局信息。因此文中引入了attention平滑的方法,當前patch的attention值是歷史patch的attention值的滑動平均。計算方式如下,每次使用上一個時刻的平滑attention值和當前時刻的attention值做加權求和。
3.實驗效果
整體的實驗效果如下表所示,文本提出的方法在多個數據集中取得了顯著的效果提升。
? ?
本文轉載自???圓圓的算法筆記??,作者:Fareise
