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