李克文 于明洋
(中國(guó)石油大學(xué)(華東)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院 山東 青島 266580)
在預(yù)測(cè)任務(wù)中有一類數(shù)據(jù)以時(shí)間為索引按照發(fā)生先后順序進(jìn)行排列,被稱為時(shí)序數(shù)據(jù),以時(shí)序數(shù)據(jù)為輸入進(jìn)行預(yù)測(cè)可以更好地利用現(xiàn)有信息進(jìn)行分析和決策。時(shí)間序列預(yù)測(cè)廣泛地應(yīng)用在包括但不限于,臨床醫(yī)學(xué)[1]、金融預(yù)測(cè)[2]、交通流量預(yù)測(cè)[3]和人類行為預(yù)測(cè)[4]等領(lǐng)域。不同于其他預(yù)測(cè)建模任務(wù),時(shí)間序列數(shù)據(jù)間的序列依賴性增加了其復(fù)雜程度,因此如何充分利用復(fù)雜的序列依賴關(guān)系,為實(shí)際序列預(yù)測(cè)任務(wù)建立合適的預(yù)測(cè)模型是一個(gè)關(guān)鍵問(wèn)題。
近年來(lái),深度學(xué)習(xí)的方法和技術(shù)已經(jīng)成功地應(yīng)用于現(xiàn)實(shí)世界中各種具有挑戰(zhàn)性的預(yù)測(cè)問(wèn)題,其中就包括時(shí)間序列預(yù)測(cè)[5-8]。對(duì)于時(shí)間序列預(yù)測(cè)問(wèn)題中的噪聲和混亂性質(zhì),深度學(xué)習(xí)可以有效處理并實(shí)現(xiàn)更精確的預(yù)測(cè)。其中長(zhǎng)短期記憶(LSTM)網(wǎng)絡(luò)是目前最流行、最有效、應(yīng)用最廣泛的深度學(xué)習(xí)技術(shù)[9],它所具有的長(zhǎng)短期記憶能力使其在時(shí)間序列預(yù)測(cè)領(lǐng)域中預(yù)測(cè)精度獲得了顯著提高,與傳統(tǒng)統(tǒng)計(jì)方法、機(jī)器學(xué)習(xí)方法甚至其他深度學(xué)習(xí)方法相比,LSTM都表現(xiàn)出最優(yōu)的預(yù)測(cè)性能[10-13]。盡管如此LSTM也有它的弊端,例如,大量的權(quán)重和偏置參數(shù)需要優(yōu)化,當(dāng)輸入的時(shí)間序列較長(zhǎng)時(shí),LSTM容易出現(xiàn)訓(xùn)練緩慢、難收斂等問(wèn)題。
近年來(lái),注意力模型越來(lái)越多地應(yīng)用于深度學(xué)習(xí)的各個(gè)領(lǐng)域。注意力機(jī)制可以通俗地解釋為,人類通過(guò)視覺(jué)獲取的信息往往不會(huì)獲得同等的關(guān)注度,正相反會(huì)選擇性地將注意力集中在某些部分,這是由于人類對(duì)信息的處理能力有限,因此會(huì)優(yōu)先關(guān)注有吸引力的部分而忽略掉其余部分,這有助于在有限的信息處理能力下,快速有效地獲取有用信息。注意力機(jī)制的加入可以大大減少高維輸入帶來(lái)的計(jì)算負(fù)擔(dān),同時(shí)也有助于模型快速找到和學(xué)習(xí)關(guān)鍵特征,進(jìn)而提升模型性能[14]。其在直觀性、通用性以及可解釋性上的優(yōu)秀表現(xiàn)使得注意力機(jī)制的相關(guān)研究十分活躍,廣泛應(yīng)用于機(jī)器翻譯、圖像描述生成等領(lǐng)域。
針對(duì)LSTM存在的訓(xùn)練速度較慢、難收斂的問(wèn)題,受認(rèn)知神經(jīng)科學(xué)的啟發(fā),本文將注意力機(jī)制引入LSTM,提出了一種基于雙重注意力機(jī)制改進(jìn)的DA-LSTM時(shí)間序列預(yù)測(cè)模型。通過(guò)添加注意力門和自注意力層來(lái)加快訓(xùn)練速度,提高預(yù)測(cè)精度。最后通過(guò)實(shí)驗(yàn)對(duì)所提出模型進(jìn)行驗(yàn)證。
關(guān)于時(shí)間序列預(yù)測(cè)的研究最早開(kāi)始于基于回歸的方法,Yule[15]利用回歸方程通過(guò)數(shù)據(jù)分析預(yù)測(cè)了一年中太陽(yáng)黑子的數(shù)量;直至自回歸移動(dòng)平均模型(ARMA)和自回歸綜合移動(dòng)平均模型(ARIMA)被提出,標(biāo)志著基于回歸方法的時(shí)間序列預(yù)測(cè)建模走向成熟,同時(shí)也成為了時(shí)間序列預(yù)測(cè)中最基本、最重要的模型。事實(shí)上受限于實(shí)際數(shù)據(jù)的高度復(fù)雜性、不規(guī)則性、隨機(jī)性和非線性等特點(diǎn),基于回歸方法很難實(shí)現(xiàn)高精度的時(shí)間序列預(yù)測(cè)建模。
機(jī)器學(xué)習(xí)方法的應(yīng)用為解決時(shí)間序列預(yù)測(cè)問(wèn)題提供了新思路,相比基于回歸的方法,它可以建立基于大量歷史數(shù)據(jù)的非線性預(yù)測(cè)模型,通過(guò)重復(fù)訓(xùn)練迭代和學(xué)習(xí)近似,從而獲得比傳統(tǒng)的基于回歸的模型更精確的預(yù)測(cè)。常見(jiàn)的方法有如下幾類:支持向量回歸(SVR)[16]、具有強(qiáng)非線性函數(shù)逼近的人工神經(jīng)網(wǎng)絡(luò)(ANN)[17],以及基于樹(shù)的集成學(xué)習(xí)方法,如梯度強(qiáng)回歸(GBRT)和提升決策樹(shù)(GBDT)[18-19]。然而上述方法由于缺乏對(duì)輸入數(shù)據(jù)間序列依賴關(guān)系的有效處理,在時(shí)間序列預(yù)測(cè)任務(wù)中效果有限[20]。
隨著深度學(xué)習(xí)的不斷發(fā)展和應(yīng)用越發(fā)普及,越來(lái)越多的實(shí)際問(wèn)題通過(guò)深度學(xué)習(xí)找到了更好的解決方案。在時(shí)序預(yù)測(cè)任務(wù)中,很多時(shí)候循環(huán)神經(jīng)網(wǎng)絡(luò)即RNN[21]被認(rèn)為是最有效的方法,但在某些時(shí)序預(yù)測(cè)任務(wù)中,伴隨輸入時(shí)間序列長(zhǎng)度的增加,RNN極易出現(xiàn)梯度爆炸和梯度消失等問(wèn)題,導(dǎo)致預(yù)測(cè)精度降低。為了解決上述問(wèn)題,1997年Hochreiter等[22]提出了長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM),其本質(zhì)上是一個(gè)簡(jiǎn)單的RNN,通過(guò)添加一些多閾值門來(lái)解決記憶和遺忘問(wèn)題。隨后它和它的變體門控循環(huán)單元(GRU)[23]被證明在一定程度上解決了長(zhǎng)期依賴問(wèn)題。
為了進(jìn)一步提高LSTM的訓(xùn)練速度和預(yù)測(cè)精度,本文提出了一種基于雙重注意力機(jī)制改進(jìn)的DA-LSTM時(shí)間序列預(yù)測(cè)模型,在新型變體A-LSTM的基礎(chǔ)上,通過(guò)自注意力層對(duì)各時(shí)間步上的隱層輸出計(jì)算自注意力權(quán)重,充分利用細(xì)胞的記憶信息,減少信息損失。
LSTM提出的目的是解決RNN由于長(zhǎng)期依賴所帶來(lái)的梯度消失和爆炸的問(wèn)題,具體的,LSTM的一個(gè)神經(jīng)元細(xì)胞包括三個(gè)門即輸入門i、遺忘門f和輸出門o,以及隱層狀態(tài)ht和記憶細(xì)胞狀態(tài)c。
it=σ(Wi[ht-1;xt]+bi)
(1)
ft=σ(Wf[ht-1;xt]+bf)
(2)
ot=σ(Wo[ht-1;xt]+bo)
(3)
(4)
(5)
ht=ot°tanh(ct)
(6)
式中:σ表示sigmoid激活函數(shù);xt是第t個(gè)時(shí)間步的輸入向量;Wi、Wf、Wo、Wc∈Rd×2d;bi、bf、bo、bc∈Rd。LSTM的細(xì)胞結(jié)構(gòu)如圖1所示。
圖1 LSTM細(xì)胞結(jié)構(gòu)
在LSTM被提出以后,學(xué)者們相繼提出了LSTM神經(jīng)網(wǎng)絡(luò)的幾種變體,并應(yīng)用在各種機(jī)器學(xué)習(xí)問(wèn)題中。GREFF等[24]對(duì)已有的LSTM變體進(jìn)行了大規(guī)模分析,證明三個(gè)門與輸出激活神經(jīng)層是LSTM中最關(guān)鍵的組成成分,修改了門控結(jié)構(gòu)的LSTM變體在分類問(wèn)題上表現(xiàn)出了明顯的改善[25]。受認(rèn)知神經(jīng)科學(xué)的啟發(fā),有學(xué)者嘗試將注意力機(jī)制引入門控結(jié)構(gòu)形成A-LSTM,這種新型的LSTM變體改變了傳統(tǒng)LSTM的內(nèi)部門控結(jié)構(gòu),通過(guò)注意力機(jī)制融合遺忘門和輸入門形成注意力門,大大減少模型參數(shù),從而提升模型訓(xùn)練速度。
改進(jìn)之后的注意力門at的計(jì)算方式如下:
at=activation(V·tanh(W·ct-1))
(7)
式中:activation(·)為激活函數(shù),其值域應(yīng)滿足在0和1之間。
同時(shí)細(xì)胞狀態(tài)ct的更新方式如下:
(8)
基于注意力機(jī)制改進(jìn)后的A-LSTM的細(xì)胞結(jié)構(gòu)如圖2所示。
基于上述分析,增大直流電容可改善系統(tǒng)穩(wěn)定性,從控制上引入虛擬電容,在不改變?cè)娐返幕A(chǔ)上起到等效電容增大的效果[13-14]。
圖2 A-LSTM細(xì)胞結(jié)構(gòu)
值得注意的是,這里注意力門取代了原來(lái)的輸入門和遺忘門,直接對(duì)細(xì)胞狀態(tài)做自注意力來(lái)確定要保留和遺忘哪些信息,所以模型參數(shù)大大減少,使得訓(xùn)練速度提高。
基于注意力機(jī)制的模型[26]可以在全局信息中快速捕獲關(guān)鍵區(qū)域,并將注意力的焦點(diǎn)放在這片區(qū)域,從而更多地獲取有用信息。為有效利用LSTM歷史時(shí)刻輸出的信息,Bahdanau等[27]將軟注意力機(jī)制引入了LSTM模型中并在機(jī)器翻譯領(lǐng)域中取得了成功應(yīng)用。近年來(lái),自注意力機(jī)制被廣泛地應(yīng)用于各種NLP任務(wù)上,成為了學(xué)者們研究和關(guān)注的熱點(diǎn),Lin等[28]對(duì)LSTM的輸出計(jì)算自注意力,對(duì)不同的時(shí)間步數(shù)計(jì)算出多個(gè)分?jǐn)?shù),從而提出新的LSTM模型。其計(jì)算公式如式(9)-式(11)所示。
ut=tanh(Wtht)
(9)
(10)
(11)
式中:Wt、Vt是自注意力層參數(shù);ht是第t個(gè)時(shí)間步的隱層狀態(tài)輸出;ut是第t個(gè)時(shí)間步隱層狀態(tài)的注意力得分;αt是第t個(gè)時(shí)間步隱層狀態(tài)的注意力權(quán)重;s為最終的自注意力層輸出。
本文提出的DA-LSTM模型具體實(shí)現(xiàn)包括兩部分:第一部分是基于注意力機(jī)制改進(jìn)的A-LSTM網(wǎng)絡(luò)層,通過(guò)注意力門學(xué)習(xí)上一時(shí)刻細(xì)胞狀態(tài)需要注意的特征;第二部分是基于自注意力機(jī)制的自注意力層,它以不同時(shí)間步的隱層輸出作為輸入,計(jì)算自注意力權(quán)重并輸出最終的結(jié)果。模型整體框架如圖3所示。
圖3 DA-LSTM模型框架
首先,時(shí)序數(shù)據(jù)輸入到A-LSTM層并輸出每個(gè)時(shí)間步的隱層狀態(tài)ht,與LSTM使用最后一個(gè)隱層狀態(tài)計(jì)算預(yù)測(cè)結(jié)果不同,DA-LSTM會(huì)將每個(gè)時(shí)間步的隱層狀態(tài)輸入到自注意力層,通過(guò)注意力打分函數(shù)計(jì)算其注意力分布α,最后綜合考慮每一個(gè)時(shí)間步的隱層狀態(tài)計(jì)算最終預(yù)測(cè)結(jié)果。
本節(jié)首先將介紹實(shí)驗(yàn)的環(huán)境配置和數(shù)據(jù)集的描述,然后給出實(shí)驗(yàn)的參數(shù)設(shè)置以及評(píng)價(jià)指標(biāo),最后將提出的模型與SVR、RNN、LSTM、GRU、A-BiLSTM和A-LSTM進(jìn)行對(duì)比,來(lái)驗(yàn)證本文提出模型的有效性。
本文實(shí)驗(yàn)在Windows 10 64位系統(tǒng)下進(jìn)行,硬件設(shè)備CPU型號(hào)為Intel(R) Core(TM) i7- 4790 CPU @ 3.60 GHz,內(nèi)存大小8 GB,實(shí)驗(yàn)環(huán)境為Python 3.7,借助Keras 2.2.4搭建神經(jīng)網(wǎng)絡(luò),后端使用TensorFlow 1.14.0。
Beijing PM2.5Data(PM2.5)數(shù)據(jù)集包含自2010年1月1日至2014年12月31日每小時(shí)采集的PM2.5數(shù)據(jù),同時(shí)還包括北京首都國(guó)際機(jī)場(chǎng)氣象資料。實(shí)驗(yàn)中把PM2.5濃度作為預(yù)測(cè)的目標(biāo)值。
SML2010(SML)是用于室內(nèi)溫度預(yù)測(cè)的UCI開(kāi)放數(shù)據(jù)集,數(shù)據(jù)從安裝在室內(nèi)里的監(jiān)控系統(tǒng)中采集。它包括大約40天的監(jiān)測(cè)數(shù)據(jù),數(shù)據(jù)每分鐘采樣一次,計(jì)算和上傳時(shí)間為15分鐘。實(shí)驗(yàn)中把室溫作為預(yù)測(cè)的目標(biāo)值。
PM2.5和SML的詳細(xì)數(shù)據(jù)集設(shè)置見(jiàn)表1。
表1 數(shù)據(jù)集設(shè)置
在LSTM中共有三個(gè)參數(shù)需要設(shè)置,它們分別是時(shí)間步長(zhǎng)L,每個(gè)隱藏層的神經(jīng)單元數(shù)m以及訓(xùn)練的批大小b。通過(guò)搜索法分別確定PM2.5和SML的最佳參數(shù)組合,如表2所示。
表2 模型超參設(shè)置
均方根誤差(RMSE):
(12)
平均絕對(duì)誤差(MAE):
(13)
平均絕對(duì)百分比誤差(MAPE):
(14)
為了評(píng)價(jià)本文所提出的模型在時(shí)間序列預(yù)測(cè)任務(wù)中的性能,分別與傳統(tǒng)的機(jī)器學(xué)習(xí)和深度學(xué)習(xí)方法的基線模型進(jìn)行了對(duì)比實(shí)驗(yàn),在實(shí)驗(yàn)中分別對(duì)SVR、RNN、LSTM、GRU、A-LSTM、A-BiLSTM和DA-LSTM進(jìn)行5次訓(xùn)練和測(cè)試取最佳結(jié)果對(duì)比,最終的預(yù)測(cè)結(jié)果如表3所示。
表3 兩組數(shù)據(jù)集下不同模型的實(shí)驗(yàn)結(jié)果
可以看出,機(jī)器學(xué)習(xí)方法SVR的誤差要遠(yuǎn)大于其他深度學(xué)習(xí)方法,這是因?yàn)槠淙狈?duì)輸入變量之間序列依賴關(guān)系的有效處理,所以在時(shí)序預(yù)測(cè)任務(wù)中表現(xiàn)遠(yuǎn)不如其他時(shí)序模型;RNN則是由于其本身存在長(zhǎng)期依賴的問(wèn)題,表現(xiàn)不如LSTM及其變體;對(duì)比LSTM、GRU以及基于注意力門改進(jìn)的A-LSTM,可以發(fā)現(xiàn)LSTM和GRU、A-LSTM差異不大,其中A-LSTM要略優(yōu)于前兩者,但是A-LSTM通過(guò)引入注意力機(jī)制優(yōu)化了門控結(jié)構(gòu),大大減少了訓(xùn)練參數(shù),提高訓(xùn)練速度的同時(shí),在性能上也有略微提升。隨著時(shí)間步長(zhǎng)增加,僅依靠最后一個(gè)隱層狀態(tài)進(jìn)行預(yù)測(cè)顯然會(huì)損失一部分信息,從而影響最終的預(yù)測(cè)精度。為了進(jìn)一步提高模型的準(zhǔn)確性,本文在A-LSTM的基礎(chǔ)上添加了自注意力層,對(duì)不同時(shí)間步的隱層輸出做自注意力,最大程度上降低信息損失,并與同樣添加自注意力層的A-BiLSTM進(jìn)行對(duì)比,實(shí)驗(yàn)結(jié)果DA-LSTM性能更優(yōu)。最終本文提出的DA-LSTM算法的各個(gè)誤差評(píng)價(jià)指標(biāo)均優(yōu)于其他對(duì)比算法,在Beijing PM2.5數(shù)據(jù)集上RMSE較標(biāo)準(zhǔn)LSTM降低了4%,MAE降低了4.5%,MAPE降低了4.5%;在SML2010數(shù)據(jù)集上RMSE較標(biāo)準(zhǔn)LSTM降低了25.4%,MAE降低了38.3%,MAPE降低了37.5%。
為了驗(yàn)證基于雙重注意力機(jī)制改進(jìn)后的DA-LSTM相較標(biāo)準(zhǔn)的LSTM擁有更優(yōu)的性能,接下來(lái)分別從模型和實(shí)驗(yàn)兩個(gè)角度進(jìn)行說(shuō)明:首先從模型參數(shù)角度,以輸入維度為256,輸出維度為128的一層LSTM為例,不考慮偏置參數(shù),則需要維度為[256+128,128×4]的權(quán)重,而DA-LSTM使用注意力門替換了輸入門和遺忘門,所以僅需要[256+128,128×2]的門結(jié)構(gòu)權(quán)重和3×[128,128]的自注意力權(quán)重,對(duì)于一層LSTM來(lái)說(shuō)參數(shù)降低了25.0%,模型參數(shù)減少自然會(huì)帶來(lái)訓(xùn)練速度上的提升;其次從實(shí)驗(yàn)角度,本文對(duì)兩者同時(shí)訓(xùn)練1 000輪次所用的時(shí)間進(jìn)行統(tǒng)計(jì),如圖4所示。
圖4 1 000輪次實(shí)驗(yàn)對(duì)比
可以看出,DA-LSTM各輪次的訓(xùn)練速度明顯快于LSTM,同時(shí)訓(xùn)練1 000個(gè)輪次,LSTM用時(shí)2 051 s,而DA-LSTM僅用時(shí)1 760 s。同時(shí)本文還通過(guò)實(shí)驗(yàn)對(duì)比了兩者的收斂速度以及預(yù)測(cè)誤差,如圖5和圖6所示,無(wú)論是在訓(xùn)練集還是測(cè)試集,DA-LSTM都要比LSTM更快收斂并且預(yù)測(cè)誤差更低,并且在測(cè)試集上提升更為明顯,這也從側(cè)面說(shuō)明DA-LSTM的泛化能力要強(qiáng)于LSTM。通過(guò)上述對(duì)比,可以發(fā)現(xiàn)基于雙重注意力機(jī)制改進(jìn)的DA-LSTM在收斂速度以及預(yù)測(cè)精度上較LSTM確有所提升,進(jìn)一步驗(yàn)證了模型的有效性。
圖5 訓(xùn)練集結(jié)果對(duì)比
圖6 測(cè)試集結(jié)果對(duì)比
為了進(jìn)一步探究DA-LSTM在多步輸入和多步輸出下的性能表現(xiàn),實(shí)驗(yàn)分別對(duì)比了LSTM、GRU、A-LSTM、A-BiLSTM和DA-LSTM在PM2.5和SML2010數(shù)據(jù)集上不同時(shí)間步輸出的預(yù)測(cè)情況。在PM2.5數(shù)據(jù)集上設(shè)定輸入步長(zhǎng)為18,在SML2010數(shù)據(jù)集上設(shè)定輸入步長(zhǎng)為8,分別對(duì)比1到4輸出步長(zhǎng)上的RMSE。
從圖7和圖8可以看出,隨著輸出步長(zhǎng)的增加,各對(duì)比算法的RMSE普遍升高,這是由于輸出步長(zhǎng)越長(zhǎng)則距離輸入越遠(yuǎn),相關(guān)性也就越低。在PM2.5數(shù)據(jù)集上,各對(duì)比算法差異不大,其中本文提出的DA-LSTM效果稍好一些;在SML2010數(shù)據(jù)集上,各對(duì)比算法的差異較為明顯,同樣也是本文提出的DA-LSTM效果最好。
圖7 PM2.5數(shù)據(jù)集實(shí)驗(yàn)對(duì)比
圖8 SML2010數(shù)據(jù)集實(shí)驗(yàn)對(duì)比
為了提高LSTM在時(shí)間序列預(yù)測(cè)上的精度,本文提出了一種基于雙重自注意力機(jī)制改進(jìn)的DA-LSTM時(shí)序預(yù)測(cè)模型。與其他模型相比,該模型主要有以下兩個(gè)優(yōu)點(diǎn):首先在標(biāo)準(zhǔn)LSTM中引入注意力機(jī)制,對(duì)隱層細(xì)胞狀態(tài)做自注意力,融合輸入門和遺忘門形成注意力門,在不損失預(yù)測(cè)精度的情況下,減少了模型參數(shù)并提高了訓(xùn)練速度;其次,隨著時(shí)間序列長(zhǎng)度增加,僅依靠最后一個(gè)隱層的輸出進(jìn)行預(yù)測(cè)會(huì)造成信息損失,DA-LSTM通過(guò)自注意力層對(duì)不同時(shí)間步的隱層輸出做自注意力,綜合考慮各時(shí)間步上的輸出,充分利用細(xì)胞記憶信息,提高了預(yù)測(cè)精度。實(shí)驗(yàn)表明,本文提出的模型較標(biāo)準(zhǔn)的LSTM有著較為全面的提升,在時(shí)間序列預(yù)測(cè)任務(wù)上具有良好的應(yīng)用前景。
面對(duì)多步輸出時(shí)間序列預(yù)測(cè)時(shí),本文模型仍有進(jìn)一步提升空間,如引入深度注意力門、修改注意力打分函數(shù)等。如何進(jìn)一步結(jié)合注意力機(jī)制提高多步輸出預(yù)測(cè)精度,將是本文接下來(lái)的研究重點(diǎn)。