時序預測Decoder中的時間步依賴問題
今天跟大家聊聊一個近期相對冷門的研究點:Decoder中的預測時間步依賴問題。
目前主流的時間序列預測模型,Decoder一般采用一個簡單的MLP網絡,輸入Encoder的表征,映射到預測結果。但是,這種建模方法并沒有考慮到各個預測時間步之間的關系,可能導致在預測階段不滿足時間序列的平滑性。
在更早的深度學習時間序列預測工作中,一般會將上一個時刻的預測結果或者真實結作為下一個時刻的輸入,自回歸的逐步進行預測。這種建模方法,可以建立起各個預測時間步之間的關系,但同時也會引入諸如誤差累積、訓練和預測階段不一致等問題。
今天這篇文章,就帶大家了解一些Decoder這種考慮預測結果依賴的建模方法,并介紹2篇近期的工作,針對預測時間步依賴問題進行優化。
1.Decoder中的預測時間步依賴
在Decoder中考慮預測時間步依賴的建模方法中,可以分成2種類型,分別是Free Running和Teacher Forcing。
Free Running:Free Running在訓練階段輸入真實值,在預測階段由于無法獲取到真實值,就輸入上一個時刻的預測值代替。這種方法的問題在于,訓練和預測存在不一致問題。為了解決這個問題,一些方法在訓練階段以一定比例輸入預測值,一定比例輸入真實值,縮小訓練和預測的gap?;蛘呤褂靡粋€權重,對預測值和真實值加權,或者加入噪聲。
Teacher Forcing:另一種是在訓練階段輸入上一個時刻側預測值。這種方法在訓練階段和預測階段是一致的,但是問題在于會存在誤差累積問題。預測結果隨著時間步的增長越來越不準確,引入預測結果會逐步累積誤差,使模型效果變差。
針對建模Decoder時間步關系依賴的問題,業內也有很多研究工作。下面給大家介紹2篇近期發表的相關文章。第一篇文章引入輔助模型,緩解Teacher Forcing中的誤差累積問題;第二篇文章直接優化目前主流的MLP Decoder模型,引入輔助loss讓其考慮到各個時間步的依賴。
2.引入輔助模型緩解誤差累積
為了緩解Teacher Forcing方法的誤差累積問題,Reinforced Decoder: Towards Training Recurrent Neural Networks for Time Series Forecasting(2024)提出引入一個輔助模型庫,用輔助模型庫的預測結果,代替原來Teacher Forcing中正在訓練模型的預測結果。通過這種方式,每個時間步的預測結果由外部模型產生,避免一直引入目標模型,隨著時間步的增長,誤差逐漸累積的問題。
具體實現方法上,文中引入一個model pool,這個model pool內都是一些訓練好的時間序列預測模型,使用這個model pool中模型的預測結果作為輸入,而非正在訓練的模型本身,這樣就可以正在訓練模型引入上一個時刻預測結果帶來的誤差累積問題。同時為了進一步提升效果,文中采用了一個強化學習的方法,每個時刻從model pool中選擇最合適的預測結果作為輸入,以預測效果為reward進行強化學習網絡的訓練,以此實現讓目標模型效果最優的預測結果的選擇。
3.直接解碼中引入差分輔助loss
相比于依賴上一個時刻的預估結果的遞歸解碼方法,直接解碼方法,即直接使用一個MLP將Encoder表征映射到預測結果,目前應用更加廣泛,并且十分簡潔高效。那么,能否在這種建模方法中,讓模型建立起Decoder各個時間步之間的依賴呢?
TDT Loss Takes It All: Integrating Temporal Dependencies among Targets into Non-Autoregressive Time Series Forecasting(2024)中就提出了這樣一種建模方法。整體實現非常簡單,在原始的base模型基礎上引入了一個損失函數度量預測結果之間的關系。文中引入的這個度量是差分結果,比如一階差分結果,就是t時刻的預測結果減去t-1時刻的預測結果。這個度量的是相鄰兩個預測窗口值之間的大小關系。文中通過計算這個預測值的差分結果,和真實值的差分結果之間的誤差,巧妙的將變量間的關系引入到模型的優化目標中,實現了在Non-autogressive的基礎預估框架下,考慮了預測結果之間的關系。同時,文中采用了動態權重,控制原始模型優化loss和新增loss之間的權重。
