康瑞雪,牛保寧,李 顯,苗雨欣
(太原理工大學(xué) 信息與計(jì)算機(jī)學(xué)院,山西 晉中 030600)
股票市場(chǎng)被視為一個(gè)國家或地區(qū)經(jīng)濟(jì)和金融活動(dòng)的晴雨表,預(yù)測(cè)股票價(jià)格的走勢(shì),把握股票市場(chǎng)的變化規(guī)律,一直是研究的熱點(diǎn).
現(xiàn)有股票價(jià)格預(yù)測(cè)方法的研究集中于利用股票數(shù)據(jù)的時(shí)間序列信息,建立深度學(xué)習(xí)網(wǎng)絡(luò)模型,提高預(yù)測(cè)的性能.長(zhǎng)短期記憶(LSTM,Long Short-Term Memory)神經(jīng)網(wǎng)絡(luò)在序列預(yù)測(cè)問題中表現(xiàn)出良好的性能[1],是股票價(jià)格預(yù)測(cè)模型的首選.目前使用該模型預(yù)測(cè)股票價(jià)格主要存在兩方面的問題.一方面,LSTM模型利用其鏈狀的網(wǎng)絡(luò)結(jié)構(gòu)從前往后順序捕獲交易數(shù)據(jù)的時(shí)間序列信息,當(dāng)時(shí)間跨度比較大時(shí),前面單元傳遞的信息多次經(jīng)過遺忘門,致使模型捕獲長(zhǎng)距離依賴的效率逐漸變低.除時(shí)間序列關(guān)系外,該模型對(duì)數(shù)據(jù)非序列性的內(nèi)部關(guān)聯(lián)提取能力弱,無法準(zhǔn)確捕獲對(duì)預(yù)測(cè)目標(biāo)重要的特征組合,限制了模型的預(yù)測(cè)精度.另一方面,在輸入數(shù)據(jù)源的選擇上,現(xiàn)有方法以股票市場(chǎng)公開的最直觀、最具參考價(jià)值的歷史交易數(shù)據(jù)為主,嘗試性地融合其他影響股票價(jià)格變動(dòng)的數(shù)據(jù),例如,從新聞、股票評(píng)論網(wǎng)站獲得的與目標(biāo)公司相關(guān)的文本類數(shù)據(jù),對(duì)于應(yīng)該融合何種數(shù)據(jù),沒有統(tǒng)一的規(guī)則或依據(jù).
針對(duì)目前預(yù)測(cè)方法在預(yù)測(cè)模型和輸入數(shù)據(jù)方面存在的問題,本文提出一種融合多源數(shù)據(jù)輸入、具有自注意力機(jī)制的長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(SA-LSTM,Long Short-Term Memory with Self-attention)股票價(jià)格預(yù)測(cè)方法,提高股票價(jià)格預(yù)測(cè)的精度.在預(yù)測(cè)模型方面,本文提出在LSTM模型基礎(chǔ)上,加入自注意力機(jī)制,增強(qiáng)模型提取數(shù)據(jù)內(nèi)部相關(guān)性的能力,在捕獲序列信息的基礎(chǔ)上,進(jìn)一步捕獲對(duì)輸出目標(biāo)重要的特征組合.在輸入數(shù)據(jù)方面,本文在使用歷史交易數(shù)據(jù)的基礎(chǔ)上,把其他數(shù)據(jù)分類為直接相關(guān)數(shù)據(jù)和間接相關(guān)數(shù)據(jù),直接數(shù)據(jù)源決定股票的內(nèi)在價(jià)值,如該公司的輿論新聞導(dǎo)向、公司自身發(fā)展?fàn)顩r、財(cái)務(wù)狀況等.間接相關(guān)數(shù)據(jù)與股票的內(nèi)在價(jià)值沒有關(guān)系,但是影響股票價(jià)格波動(dòng),如宏觀經(jīng)濟(jì)數(shù)據(jù)、關(guān)聯(lián)股票數(shù)據(jù)等.同時(shí)融合兩類數(shù)據(jù),增強(qiáng)輸入數(shù)據(jù)的多源性,提高預(yù)測(cè)精度.
本文的創(chuàng)新點(diǎn)如下:
1)提出SA-LSTM神經(jīng)網(wǎng)絡(luò)股價(jià)預(yù)測(cè)模型,解決LSTM模型捕獲輸入數(shù)據(jù)長(zhǎng)距離依賴效率低且難以學(xué)習(xí)到輸入交易日信息之間的關(guān)聯(lián)等問題.
2)聯(lián)合使用股票直接相關(guān)數(shù)據(jù)和間接相關(guān)數(shù)據(jù)作為模型輸入,提高預(yù)測(cè)準(zhǔn)確度.
目前基于LSTM模型提高股票價(jià)格預(yù)測(cè)性能的研究主要集中于對(duì)模型的改進(jìn)及輸入數(shù)據(jù)的選擇兩方面,本節(jié)從這兩方面說明LSTM股票預(yù)測(cè)的現(xiàn)狀,并簡(jiǎn)要介紹本文的方法用到的LSTM模型和自注意力機(jī)制.
近年來,隨著近年來大數(shù)據(jù)技術(shù)的發(fā)展以及計(jì)算機(jī)運(yùn)算能力的提升,卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)等深度學(xué)習(xí)方法被應(yīng)用到股票價(jià)格預(yù)測(cè)領(lǐng)域.本質(zhì)上,股票數(shù)據(jù)是時(shí)間序列多維向量,LSTM神經(jīng)網(wǎng)絡(luò)作為一種新型網(wǎng)絡(luò),是對(duì)傳統(tǒng)RNN模型的改進(jìn),不僅含有時(shí)序概念,且其內(nèi)部特殊的門結(jié)構(gòu)解決了傳統(tǒng)RNN梯度消失的問題,在時(shí)間序列預(yù)測(cè)問題中表現(xiàn)出比較好的性能.閆等人對(duì)比LSTM、多層感知機(jī)、支持向量機(jī)與K近鄰算法等多種模型用于股票價(jià)格預(yù)測(cè)的性能,實(shí)驗(yàn)結(jié)果表明LSTM模型表現(xiàn)出最佳預(yù)測(cè)效果[2],成為目前解決股票問題的主流預(yù)測(cè)模型.周等人使用LSTM模型,利用前15日收盤價(jià)等6個(gè)屬性的數(shù)據(jù)來預(yù)測(cè)下一個(gè)工作日的開盤價(jià),并將LSTM與Adam方法結(jié)合,證明了LSTM網(wǎng)絡(luò)模型的預(yù)測(cè)效果優(yōu)于BP神經(jīng)網(wǎng)絡(luò)模型和傳統(tǒng)RNN網(wǎng)絡(luò)模型[3].之后,大量的研究集中在對(duì)LSTM模型的改進(jìn).為了解決高維數(shù)據(jù)冗余,計(jì)算過程復(fù)雜的問題,龐等人在LSTM模型的基礎(chǔ)上加入對(duì)輸入數(shù)據(jù)的降維過程,提出具有嵌入式層以及帶自動(dòng)編碼器的LSTM網(wǎng)絡(luò)以預(yù)測(cè)股票市場(chǎng)[4].張等人在LSTM只考慮時(shí)序信息的基礎(chǔ)上加入了頻率信息,將多頻分析和對(duì)長(zhǎng)期依賴建模相結(jié)合共同捕獲序列信息,提出了SFM(狀態(tài)頻率記憶網(wǎng)絡(luò))[5].其他改進(jìn)包括使用GA(基因遺傳算法)對(duì)LSTM模型進(jìn)行改進(jìn)[6]以及使用GRU(門控循環(huán)單元,屬于LSTM的變體)對(duì)股市進(jìn)行預(yù)測(cè)[7].這些改進(jìn)還存在的一個(gè)共同問題是:在輸入序列數(shù)據(jù)比較長(zhǎng)時(shí)LSTM模型本身記憶能力不高,對(duì)數(shù)據(jù)內(nèi)部關(guān)系的提取能力不強(qiáng),模型自身很難學(xué)習(xí)到對(duì)預(yù)測(cè)結(jié)果重要的特征組合.
從眾多輸入中快速篩選出重要特征組合需要網(wǎng)絡(luò)具備對(duì)關(guān)鍵信息分配足夠的注意來突出重要的局部信息,即注意力機(jī)制.2017年,Google Brain團(tuán)隊(duì)在“Attention is all you need”一文中提出了一種特殊的注意力機(jī)制——自注意力機(jī)制[8].自注意力機(jī)制是對(duì)注意力機(jī)制的改進(jìn),減少對(duì)外部信息的依賴,具有很強(qiáng)的提取數(shù)據(jù)內(nèi)部自身相關(guān)性的能力,可以更好地捕獲長(zhǎng)距離依賴關(guān)系,展現(xiàn)出比一般注意力機(jī)制更好的效果.自注意力機(jī)制在機(jī)器翻譯[8]和自然語言理解[9]中均表現(xiàn)的非常出色,已成為神經(jīng)網(wǎng)絡(luò)注意力機(jī)制的研究熱點(diǎn).受自注意力機(jī)制的啟發(fā),本文在預(yù)測(cè)模型上與其它用LSTM模型預(yù)測(cè)股票價(jià)格方法的不同在于引入自注意力機(jī)制捕獲輸入數(shù)據(jù)內(nèi)部的依賴關(guān)系并學(xué)習(xí)重要的特征以提高預(yù)測(cè)精度.
在為模型選擇輸入數(shù)據(jù)時(shí),多數(shù)研究中使用直觀的歷史交易數(shù)據(jù)以及加入其它與目標(biāo)股票直接相關(guān)的數(shù)據(jù),如與該股票相關(guān)的財(cái)經(jīng)新聞、社交網(wǎng)絡(luò)評(píng)論等數(shù)據(jù).陳等人將基本交易數(shù)作為輸入使用LSTM模型預(yù)測(cè)股票回報(bào),相比隨機(jī)預(yù)測(cè)其準(zhǔn)確性提高了14.3%[10].丁等人利用前20天的收盤價(jià)等7個(gè)基本屬性提出了一種基于LSTM網(wǎng)絡(luò)具有多個(gè)輸入和多個(gè)輸出的關(guān)聯(lián)深度遞歸神經(jīng)網(wǎng)絡(luò)模型對(duì)股價(jià)進(jìn)行預(yù)測(cè)[11].王等人的研究中使用交易數(shù)據(jù)及構(gòu)造的技術(shù)指標(biāo)進(jìn)行預(yù)測(cè),并將預(yù)測(cè)結(jié)果用于投資組合管理中,幫助投資者做出投資決策[12].Jin等人根據(jù)社交評(píng)論網(wǎng)站的信息對(duì)投資者情緒進(jìn)行分析并將計(jì)算得到的情緒指數(shù)用作輸入變量[13].孫等人在使用技術(shù)指標(biāo)的基礎(chǔ)上根據(jù)雪球網(wǎng)收集的評(píng)論數(shù)據(jù)構(gòu)建投資者關(guān)注度指數(shù)預(yù)測(cè)股票價(jià)格并用于投資組合風(fēng)險(xiǎn)管理[14].還有一些研究從在線新聞數(shù)據(jù)中提取一些公共事件的影響用作輸入特征[15].此外,股票并不是相互獨(dú)立的,股票間的關(guān)聯(lián)關(guān)系也是影響其價(jià)格變化的重要因素,最近的研究開始提出了根據(jù)公司之間的關(guān)系加入關(guān)聯(lián)股票數(shù)據(jù)這類與其間接相關(guān)數(shù)據(jù)進(jìn)行股票市場(chǎng)預(yù)測(cè).在馮等人的研究中首次提出利用不同類型的關(guān)系數(shù)據(jù)構(gòu)建時(shí)間圖卷積神經(jīng)網(wǎng)絡(luò)用于股票市場(chǎng)選擇預(yù)期收益高的股票組合[16].隨后kim等人的研究中為尋求一種更有效的方法來選擇性地聚合不同關(guān)系類型的信息,提出了層次圖注意力網(wǎng)絡(luò),利用關(guān)系數(shù)據(jù)預(yù)測(cè)股票走勢(shì)[17].使用交易數(shù)據(jù)的基礎(chǔ)上融合直接或間接數(shù)據(jù)預(yù)測(cè)性能都有所提升,但是并未同時(shí)融合.因此,本文的創(chuàng)新點(diǎn)是構(gòu)建具有自注意力機(jī)制的LSTM網(wǎng)絡(luò)作為預(yù)測(cè)模型,使用歷史交易數(shù)據(jù)、與公司估值相關(guān)的財(cái)務(wù)價(jià)格關(guān)聯(lián)指標(biāo)作為直接相關(guān)數(shù)據(jù)并融合相關(guān)股票數(shù)據(jù)作為間接相關(guān)數(shù)據(jù)進(jìn)行股票價(jià)格預(yù)測(cè),在融合多源數(shù)據(jù)時(shí),現(xiàn)有方法采用圖神經(jīng)網(wǎng)絡(luò)進(jìn)行關(guān)系提取,而本文兼顧LSTM模型在處理時(shí)序問題具有的獨(dú)特優(yōu)勢(shì),通過計(jì)算股票之間的相關(guān)性在輸入數(shù)據(jù)中加入相關(guān)股票數(shù)據(jù).市場(chǎng)交易數(shù)據(jù)、財(cái)務(wù)價(jià)格關(guān)聯(lián)指標(biāo)與相關(guān)股票數(shù)據(jù)等多源數(shù)據(jù)的融合,以及自注意力機(jī)制與LSTM的合理整合,將進(jìn)一步提高預(yù)測(cè)性能.
LSTM是一種特殊形式的循環(huán)神經(jīng)網(wǎng)絡(luò)模型[18].LSTM單元包括3個(gè)門結(jié)構(gòu):遺忘門、輸入門和輸出門,如圖1所示.
圖1 LSTM單元結(jié)構(gòu)Fig.1 Cell structure of LSTM
LSTM 的具體訓(xùn)練過程如下:
第1步.決定從單元狀態(tài)中舍棄哪些信息.當(dāng)前時(shí)刻輸入xt和前一時(shí)刻輸出ht-1通過遺忘門輸出ft(見公式(1)).
ft=σ(Wf·[ht-1,xt]+bf)
(1)
it=σ(Wi·[ht-1,xt]+bi)
(2)
(3)
第3步.把舊的單元狀態(tài)Ct-1更新為新的單元狀態(tài)Ct(見公式(4)).
(4)
第4步.決定輸出的信息.新的單元狀態(tài)經(jīng)輸出門Ot(見公式(5))過濾,得到本時(shí)刻的輸出ht(見公式(6)).
Ot=σ(Wo·[ht-1,xt]+bo)
(5)
ht=Ot×φ(Ct)
(6)
其中,參數(shù)集合{Wf,Wi,Wc,Wo}對(duì)應(yīng)不同門的權(quán)重矩陣,{bf,bi,bc,bo}表示相應(yīng)的偏移項(xiàng),σ和φ分別表示sigmoid和tanh激活函數(shù).
脫離Encoder-Decoder框架,注意力機(jī)制的本質(zhì)思想為一個(gè)查詢Query到一系列鍵值對(duì)(Key-Value)的映射.假設(shè)Source(原始輸入)中的構(gòu)成元素是由一系列的
圖2 注意力機(jī)制原理Fig.2 Attention mechanism principle
第1階段計(jì)算每一個(gè)Query(Q)和各個(gè)Key(K)的相似度,得到每個(gè)Key對(duì)應(yīng)Value(V)的權(quán)值;第2階段是使用Softmax函數(shù)將權(quán)值進(jìn)行歸一化,得到直接可用的權(quán)重系數(shù);第3階段把權(quán)重系數(shù)和相應(yīng)的鍵值Value進(jìn)行加權(quán)求和得到最終的注意力數(shù)值.其計(jì)算公式如公式(7)所示:
(7)
其中Q∈n×dk,K∈m×dk,V∈n×dv.
作為注意力機(jī)制的一種特例,自注意力機(jī)制也被稱為內(nèi)部注意力機(jī)制.一般的注意力機(jī)制中Source和Target是不一樣的,比如在機(jī)器翻譯中,Source是需要翻譯的英文句子,而Target是翻譯之后的中文句子,注意力機(jī)制發(fā)生在Target的Query和Source的所有元素之間.而自注意力機(jī)制則是發(fā)生在Source或者Target的內(nèi)部元素之間,可以理解為公式(7)中Q、K、V3個(gè)矩陣均來自同一個(gè)輸入,此時(shí)模型變成了自注意力機(jī)制.自注意力機(jī)制減少了對(duì)外部信息的依賴,能夠把輸入序列中不同位置的信息聯(lián)系起來,更擅長(zhǎng)捕捉數(shù)據(jù)或特征的內(nèi)部相關(guān)性.
本節(jié)給出擬采用的預(yù)測(cè)模型,詳細(xì)說明模型的輸入數(shù)據(jù)以及對(duì)數(shù)據(jù)的處理過程.
本文的目標(biāo)是預(yù)測(cè)股票的次日收盤價(jià),使用過去的股票特征數(shù)據(jù)預(yù)測(cè)未來價(jià)格,屬于時(shí)間序列預(yù)測(cè)問題,因此,本文使用LSTM單元構(gòu)建LSTM網(wǎng)絡(luò)作為基礎(chǔ)預(yù)測(cè)模型,順序捕捉股票數(shù)據(jù)的時(shí)間依賴特征,同時(shí)在模型中增加自注意力機(jī)制,形成本文構(gòu)建的SA-LSTM預(yù)測(cè)模型,如圖3所示.
圖3 SA-LSTM預(yù)測(cè)模型Fig.3 SA-LSTM prediction model
SA-LSTM模型整體結(jié)構(gòu)由LSTM層、Dropout層、自注意力層以及全連接層組成.輸入T天的目標(biāo)股票特征數(shù)據(jù),先經(jīng)過LSTM層順序提取T天股票數(shù)據(jù)的時(shí)間序列特征,其中LSTM的層數(shù)K通過實(shí)驗(yàn)調(diào)參確定.每層后面加入Dropout層,通過隨機(jī)刪除一些神經(jīng)元,可以防止模型過擬合.自注意力層進(jìn)行序列間潛在關(guān)系的學(xué)習(xí),通過對(duì)輸入的滯后交易日數(shù)據(jù)之間的比較計(jì)算注意力分布概率,捕獲數(shù)據(jù)之間的聯(lián)系,突出輸入中重要交易日特征數(shù)據(jù)的影響作用.需要注意的是,自注意力機(jī)制可以進(jìn)行并行運(yùn)算,加快運(yùn)算速度.最后添加全連接層輸出預(yù)測(cè)值.
預(yù)測(cè)股票價(jià)格的第1步是收集適當(dāng)?shù)臄?shù)據(jù)作為輸入變量.根據(jù)引言中的分析,為了解決輸入數(shù)據(jù)不全面的問題,進(jìn)行多源數(shù)據(jù)融合時(shí)既要考慮與目標(biāo)股票直接相關(guān)的數(shù)據(jù),也要考慮與其間接相關(guān)的數(shù)據(jù).其中直接相關(guān)數(shù)據(jù)選擇目標(biāo)股票公司的財(cái)務(wù)價(jià)格關(guān)聯(lián)估值指標(biāo).上市公司的財(cái)務(wù)數(shù)據(jù)是自身發(fā)展情況最直觀的體現(xiàn),而財(cái)務(wù)價(jià)格關(guān)聯(lián)估值指標(biāo)可以反映公司的投資價(jià)值,是投資者進(jìn)行投資決策的重要依據(jù),也在很大程度上影響股票價(jià)格的變動(dòng).由于本文是對(duì)目標(biāo)股票次日收盤價(jià)進(jìn)行預(yù)測(cè),屬于每日預(yù)測(cè),因此本文在輸入變量中加入日頻公司估值指標(biāo).另一方面,股票并不是獨(dú)立的,研究表明股票之間是存在相關(guān)關(guān)系的,特別是在行業(yè)板塊內(nèi),股票的價(jià)格波動(dòng)受到其他股票的影響,因此本文選擇相關(guān)股票數(shù)據(jù)作為間接數(shù)據(jù).在輸入中加入與目標(biāo)股票關(guān)聯(lián)密切的股票數(shù)據(jù)集合的具體做法是:由于是對(duì)收盤價(jià)進(jìn)行預(yù)測(cè),本文認(rèn)為如果兩個(gè)公司在一段時(shí)間內(nèi)收盤價(jià)序列變動(dòng)方向一致性越高,這段時(shí)間內(nèi)公司關(guān)聯(lián)性越密切,股票的相關(guān)性也越強(qiáng).假設(shè)公司之間的關(guān)系短期內(nèi)不會(huì)發(fā)生劇烈的變化.首先,收集某一證券交易所內(nèi)一定數(shù)量的股票過去15年的市場(chǎng)交易數(shù)據(jù)并選擇其中一支作為目標(biāo)預(yù)測(cè)股票;然后,將各股票的歷史收盤價(jià)序列分為n期,在每一期內(nèi)使用斯皮爾曼相關(guān)系數(shù)分別計(jì)算目標(biāo)股票收盤價(jià)序列與其他股票的相關(guān)性,相關(guān)系數(shù)越大表明序列相關(guān)性越強(qiáng),相關(guān)股票對(duì)目標(biāo)股票的股價(jià)影響越大;最后,各時(shí)期分別選擇本期相關(guān)性系數(shù)排名前五的股票,根據(jù)計(jì)算的相關(guān)性系數(shù)進(jìn)行歸一化作為權(quán)重將相關(guān)股票的特征加權(quán)相加,并與目標(biāo)股票特征數(shù)據(jù)結(jié)合,共同作為輸入變量進(jìn)行預(yù)測(cè).具體來說,本文選擇的輸入數(shù)據(jù)包括:
1)目標(biāo)股票的歷史基本交易數(shù)據(jù)及技術(shù)指標(biāo):
a)基本市場(chǎng)交易數(shù)據(jù):開盤價(jià)、最高價(jià)、最低價(jià)、收盤價(jià)、交易量、成交額等.
b)技術(shù)指標(biāo):每一個(gè)技術(shù)指標(biāo)都是從一個(gè)特定的方面對(duì)股價(jià)進(jìn)行觀察,運(yùn)用技術(shù)指標(biāo)相當(dāng)于對(duì)股票原始價(jià)格序列進(jìn)行了特征提取,本文選擇技術(shù)指標(biāo)時(shí)以趨勢(shì)類指標(biāo)及反映股票波動(dòng)情況的震蕩類指標(biāo)為主.
c)目標(biāo)股票的換手率、漲跌幅指標(biāo).
2)財(cái)務(wù)價(jià)格關(guān)聯(lián)日頻估值指標(biāo):市盈率、市現(xiàn)率、市凈率、市銷率.
其中,市盈率是某支股票每股市價(jià)與每股盈利的比率,股價(jià)選取最新收盤價(jià),一般來說市盈率越低,投資者投資回本的速度越快,投資者越看好;市現(xiàn)率是每股市價(jià)與每股現(xiàn)金流量的比率,市現(xiàn)率可用于評(píng)價(jià)股票的價(jià)格水平和風(fēng)險(xiǎn)水平,市現(xiàn)率越小,表明上市公司的每股現(xiàn)金增加額越多,經(jīng)營壓力越小;市凈率是每股股價(jià)與每股凈資產(chǎn)的比率,一般來說市凈率較低的股票,投資價(jià)值較高;市售率是每股市價(jià)與每股銷售收入之比,可以理解為如果獲得公司1元的銷售收入需要投入多少錢,一般來說市銷率越小的公司越值得投資,因?yàn)檫@意味著投資者賺錢的成本更低.
3)相關(guān)股票數(shù)據(jù):根據(jù)本文提出的方法,使用與目標(biāo)股票相關(guān)性最強(qiáng)的5支股票的加權(quán)特征數(shù)據(jù)作為相關(guān)股票數(shù)據(jù),與目標(biāo)股票特征數(shù)據(jù)結(jié)合.
即模型輸入數(shù)據(jù)包括3大部分,將上述各數(shù)據(jù)依次拼接形成36維的目標(biāo)股票每日特征數(shù)據(jù).
X=[X1,X2,X3]
X1=[Po,Ph,Pl,Pc,V,Pa,T,Chg,MA5,MA10,EMA12,EMA26,MACD,ROC,CCI,RSI,MOM,WILLR]
X2=[PE,PB,PS,PCF]
ROC′,CCI′,RSI′,MOM′,WILLR′]
其中,向量X1中的各分量依次表示開盤價(jià)、最高價(jià)、最低價(jià)、收盤價(jià)、交易量、成交額、換手率、漲跌幅指標(biāo)、5日和10日移動(dòng)平均線指標(biāo)、12日和26日指數(shù)移動(dòng)平均值指標(biāo)、平滑異同移動(dòng)平均線指標(biāo)、變動(dòng)率指標(biāo)、順勢(shì)指標(biāo)、相對(duì)強(qiáng)弱指標(biāo)、動(dòng)量線指標(biāo)及威廉指標(biāo);向量X2中的各分量依次表示市盈率、市凈率、市銷率、市現(xiàn)率;向量X3中的各分量則表示相關(guān)股票的加權(quán)開盤價(jià)、最高價(jià)、最低價(jià)、收盤價(jià)、5日和10日移動(dòng)平均線指標(biāo)、12日和26日指數(shù)移動(dòng)平均值指標(biāo)、平滑異同移動(dòng)平均線指標(biāo)、變動(dòng)率指標(biāo)、順勢(shì)指標(biāo)、相對(duì)強(qiáng)弱指標(biāo)、動(dòng)量線指標(biāo)及威廉指標(biāo).
數(shù)據(jù)預(yù)處理包括數(shù)據(jù)清洗,特征提取和歸一化處理.
第1步.數(shù)據(jù)清洗.清洗獲取的原始股票數(shù)據(jù)中與預(yù)測(cè)無關(guān)的數(shù)據(jù),并使用前向填充的方法對(duì)數(shù)據(jù)中的缺失值進(jìn)行填充,調(diào)整數(shù)據(jù)中亂序排列的數(shù)據(jù),將股票交易日期作為時(shí)間特征便于查詢數(shù)據(jù)索引以及融合相關(guān)股票特征時(shí)進(jìn)行時(shí)間對(duì)齊.
第2步.對(duì)原始數(shù)據(jù)進(jìn)行特征提取.通過構(gòu)造技術(shù)指標(biāo)的方法分別對(duì)目標(biāo)股票和相關(guān)股票的收盤價(jià)進(jìn)行特征提取.對(duì)于最前面缺失的技術(shù)指標(biāo)值采用后向填充的方法進(jìn)行填充.
第3步.對(duì)數(shù)據(jù)進(jìn)行歸一化處理.原始股票的不同特征數(shù)據(jù)具有不同的量綱和量綱單位,如果直接使用未處理的原始數(shù)據(jù)輸入預(yù)測(cè)模型會(huì)給整個(gè)模型帶來負(fù)面影響,為了讓這些數(shù)據(jù)具備可比性,需要采用歸一化方法來消除這些差異.將原始各指標(biāo)數(shù)據(jù)按比例縮放,去除數(shù)據(jù)的單位限制,便于不同單位或量級(jí)的指標(biāo)能夠進(jìn)行比較和加權(quán),同時(shí)加速模型的訓(xùn)練過程.本文將原始數(shù)據(jù)歸一化到[0,1]之間,歸一化的表達(dá)式如式(8)所示:
(8)
式中,min、max分別為歸一化后股價(jià)特征數(shù)據(jù)中的最小值和最大值.
最后,根據(jù)交易日期將目標(biāo)股票自身和相關(guān)股票的特征數(shù)據(jù)進(jìn)行拼接共同作為目標(biāo)股票第t天的輸入特征數(shù)據(jù),本文選定的輸入是滯后10天目標(biāo)股票的全部特征數(shù)據(jù),輸出第t天的收盤價(jià).
本節(jié)通過實(shí)驗(yàn)分析SA-LSTM模型預(yù)測(cè)股票次日收盤價(jià)的性能.
1)實(shí)驗(yàn)環(huán)境
本文采用目前流行的深度學(xué)習(xí)框架Keras進(jìn)行實(shí)驗(yàn),采用GPU加速,具體實(shí)驗(yàn)環(huán)境配置如表 1所示.
表1 實(shí)驗(yàn)環(huán)境配置Table 1 Experimental environment configuration
2)實(shí)驗(yàn)數(shù)據(jù)集
本文的實(shí)驗(yàn)數(shù)據(jù)來源于BaoStock這一開源的數(shù)據(jù)接口包.為了驗(yàn)證所提方案的有效性,本文隨機(jī)選擇滬深300指數(shù)(HS 300)中600016(民生銀行)、600028(中國石化)、600019(寶鋼股份)、600030(中信證券)、600009(上海機(jī)場(chǎng))這五支大盤股票以及中證500指數(shù)(CSI 500)中600131(國網(wǎng)通信)、600158(中體產(chǎn)業(yè))、600216(浙江醫(yī)藥)、600259(廣晟有色)、600315(上海家化)這5支中小盤股票為目標(biāo)股票,并根據(jù)接口獲取的滬深300和中證500成分股中各自前100支股票作為相關(guān)股票的選取范圍進(jìn)行實(shí)驗(yàn).
3)評(píng)價(jià)指標(biāo)
本文通過建立模型對(duì)目標(biāo)股票的次日收盤價(jià)進(jìn)行預(yù)測(cè),屬于回歸問題的范疇.因此選擇均方誤差(MSE)、根均方誤差(RMSE)、平均絕對(duì)誤差(MAE)和決定系數(shù)(R2)作為評(píng)估模型性能的評(píng)價(jià)指標(biāo).它們的計(jì)算公式如式(9)~式(12)所示.
(9)
(10)
(11)
(12)
4)模型參數(shù)設(shè)置與訓(xùn)練
本文采用Keras框架構(gòu)建股價(jià)預(yù)測(cè)模型,通過使用不同LSTM層數(shù)進(jìn)行的多次實(shí)驗(yàn)確定層數(shù)K為2,由于LSTM順序捕捉序列信息,很難進(jìn)行并行優(yōu)化,更深的層數(shù)不僅會(huì)帶來內(nèi)存開銷及時(shí)間開銷的增加,同時(shí)也會(huì)降低模型泛化能力.即網(wǎng)絡(luò)結(jié)構(gòu)自上而下為雙層LSTM、自注意力層和全連接層,LSTM層的維度分別設(shè)置64和128,使用softsign激活函數(shù)(LSTM中使用softsign激活函數(shù)不容易出現(xiàn)飽和),自注意力層使用softmax激活函數(shù),全連接層使用relu激活函數(shù),由于最終輸出次日收盤價(jià),故全連接層的維度設(shè)置為1.
在模型訓(xùn)練方面,實(shí)驗(yàn)采用隨機(jī)梯度下降法,數(shù)據(jù)被分批輸入模型,批量樣本大小設(shè)置為64,輸入數(shù)據(jù)的時(shí)間步長(zhǎng)設(shè)置為10,迭代次數(shù)設(shè)置為1000進(jìn)行訓(xùn)練,并采用RmsProp優(yōu)化器,初始學(xué)習(xí)率設(shè)置為0.001,為防止過擬合加入Dropout機(jī)制,Dropout參數(shù)設(shè)置為0.2.
5)對(duì)比實(shí)驗(yàn)
為了驗(yàn)證本文提出的融合多源數(shù)據(jù)輸入具有自注意力機(jī)制的長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(SA-LSTM-MS)股價(jià)預(yù)測(cè)模型的有效性,實(shí)驗(yàn)設(shè)計(jì)如下:
實(shí)驗(yàn)1.驗(yàn)證加入自注意力機(jī)制后的長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)模型的預(yù)測(cè)性能.將最基本的股票市場(chǎng)交易數(shù)據(jù)作為輸入,分別使用全連接神經(jīng)網(wǎng)絡(luò)(ANN-B)、長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(LSTM-B)以及加入自注意力機(jī)制的長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)(SA-LSTM-B)作為預(yù)測(cè)模型進(jìn)行實(shí)驗(yàn),通過比較實(shí)驗(yàn)結(jié)果中各項(xiàng)評(píng)價(jià)指標(biāo)值,驗(yàn)證本文提出的改進(jìn)后預(yù)測(cè)模型的效果.
實(shí)驗(yàn)2.對(duì)多源數(shù)據(jù)輸入的有效性進(jìn)行驗(yàn)證.采用本文提出的具有自注意力機(jī)制的長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)模型作為預(yù)測(cè)模型,在使用基本市場(chǎng)交易數(shù)據(jù)(SA-LSTM-B)的基礎(chǔ)上分別單獨(dú)加入財(cái)務(wù)數(shù)據(jù)(SA-LSTM-BF)、相關(guān)股票數(shù)據(jù)(SA-LSTM-BR)以及將兩方面數(shù)據(jù)同時(shí)加入(SA-LSTM-MS)進(jìn)行實(shí)驗(yàn)對(duì)比,驗(yàn)證同時(shí)融合與股票直接相關(guān)及間接相關(guān)的數(shù)據(jù)源作為輸入對(duì)模型預(yù)測(cè)性能的提升效果.
本文在HS 300大盤股及CSI 500中小盤股隨機(jī)選取的不同目標(biāo)股票上分別使用實(shí)驗(yàn)1中的模型(圖4、圖5中的3個(gè)模型)和實(shí)驗(yàn)2中的模型(圖6、圖7中的4個(gè)模型)進(jìn)行股票價(jià)格預(yù)測(cè),各模型在超參數(shù)的選取方面盡量與本文提出的模型(SA-LSTM-MS)設(shè)置一致,比較在不同股票指數(shù)上多個(gè)數(shù)據(jù)集使用不同模型預(yù)測(cè)各項(xiàng)評(píng)價(jià)指標(biāo)值的變化趨勢(shì),并計(jì)算了不同股票指數(shù)上總體平均值在不同模型下的各項(xiàng)評(píng)價(jià)指標(biāo)值.實(shí)驗(yàn)1使用不同模型在不同股票數(shù)據(jù)集上的預(yù)測(cè)結(jié)果如圖4、圖5所示,各項(xiàng)評(píng)價(jià)指標(biāo)平均值如表2、表3所示.
表2 HS300使用不同模型各項(xiàng)評(píng)價(jià)指標(biāo)平均值Table 2 Average value of various evaluation index values using different models on the HS300 index data set
表3 CSI500使用不同模型各項(xiàng)評(píng)價(jià)指標(biāo)平均值Table 3 Average value of various evaluation index values using different models on the CSI500 index data set
圖4 HS300使用不同模型各項(xiàng)評(píng)價(jià)指標(biāo)值的變化Fig.4 Changes of various evaluation index values using different models on the HS 300 index data set
圖5 CSI500使用不同模型各項(xiàng)評(píng)價(jià)指標(biāo)值的變化Fig.5 Changes of various evaluation index values using different models on the CSI 500 index data set
根據(jù)實(shí)驗(yàn)1的結(jié)果可以發(fā)現(xiàn),在預(yù)測(cè)模型方面,使用相同數(shù)據(jù)作為輸入,本文提出的融合自注意力機(jī)制的LSTM模型(SA-LSTM-B)相比使用LSTM模型(LSTM-B)以及使用ANN模型(ANN-B),在大盤股和中小盤股的不同數(shù)據(jù)集上的預(yù)測(cè)誤差指標(biāo)值MAE、MSE和RMSE均有所下降,而決定系數(shù)R2則有所提高,且其總體平均值也呈現(xiàn)這樣的趨勢(shì),即具有更小的預(yù)測(cè)誤差和較高的擬合程度.
基于自注意力機(jī)制的LSTM模型可以有效學(xué)習(xí)到輸入中各交易日股票特征數(shù)據(jù)之間的關(guān)聯(lián)性,捕獲關(guān)鍵信息,因而自注意力機(jī)制的加入在提升模型整體性能時(shí)發(fā)揮著重要的作用.
實(shí)驗(yàn)2使用不同模型在不同股票數(shù)據(jù)集上的預(yù)測(cè)結(jié)果如圖6、圖7所示,各項(xiàng)評(píng)價(jià)指標(biāo)平均值如表4、表5所示.
圖6 HS300使用不同輸入各項(xiàng)評(píng)價(jià)指標(biāo)值的變化Fig.6 Change of various evaluation index values using different inputs on the HS 300 index data set
圖7 CSI500使用不同輸入各項(xiàng)評(píng)價(jià)指標(biāo)值的變化Fig.7 Change of various evaluation index values using different inputs on the CSI 500 index data set
表4 HS300使用不同模型各項(xiàng)評(píng)價(jià)指標(biāo)平均值Table 4 Average value of various evaluation index values using different models on the HS300 index data set
表5 CSI500使用不同模型各項(xiàng)評(píng)價(jià)指標(biāo)平均值Table 5 Average value of various evaluation index values using different models on the CSI500 index data set
根據(jù)實(shí)驗(yàn)2的結(jié)果可以發(fā)現(xiàn),在輸入數(shù)據(jù)方面,本文同時(shí)融合與其直接相關(guān)的財(cái)務(wù)數(shù)據(jù)以及間接相關(guān)的關(guān)聯(lián)股票數(shù)據(jù)作為輸入,通過對(duì)比大盤股及中小盤股指數(shù)中多個(gè)數(shù)據(jù)集上融合多源數(shù)據(jù)(SA-LSTM-MS)與使用市場(chǎng)交易數(shù)據(jù)(SA-LSTM-B)在相同預(yù)測(cè)模型上各項(xiàng)評(píng)價(jià)指標(biāo)值的變化, 多源數(shù)數(shù)據(jù)(SA-LSTM-BF、SA-LSTM-BR)股票預(yù)測(cè)精度均有不同程度的小幅提升,說明本文加入的變量均為提升模型性能的有效輸入變量,但更全面的輸入數(shù)據(jù)可以更有效的提升預(yù)測(cè)性能.
為了更直觀地展示自注意力機(jī)制的加入以及多源數(shù)據(jù)的融合兩方面改進(jìn)對(duì)LSTM模型預(yù)測(cè)性能的提升效果,本文對(duì)比了使用SA-LSTM-MS模型與LSTM-B模型在實(shí)驗(yàn)選取的所有股票數(shù)據(jù)測(cè)試集上的預(yù)測(cè)曲線,如圖8所示.
綜合上述兩個(gè)實(shí)驗(yàn)及圖8的結(jié)果表明,本文提出的融合多源數(shù)據(jù)輸入具有自注意力機(jī)制的長(zhǎng)短期記憶神經(jīng)網(wǎng)絡(luò)股價(jià)預(yù)測(cè)模型對(duì)股票次日收盤價(jià)的預(yù)測(cè)值與實(shí)際值更加接近,股價(jià)趨勢(shì)也更加擬合,在多個(gè)數(shù)據(jù)集上均展現(xiàn)出最優(yōu)的預(yù)測(cè)效果.
圖8 模型改進(jìn)前后股票價(jià)格預(yù)測(cè)結(jié)果對(duì)比圖Fig.8 Comparison chart of the real price prediction results of the basic model and the improved model
本文在LSTM神經(jīng)網(wǎng)絡(luò)模型的基礎(chǔ)上,提出融合多源數(shù)據(jù)輸入具有自注意力機(jī)制的LSTM神經(jīng)網(wǎng)絡(luò)股價(jià)預(yù)測(cè)模型,對(duì)股票次日收盤價(jià)進(jìn)行預(yù)測(cè).在預(yù)測(cè)模型中加入自注意力機(jī)制提升模型捕獲數(shù)據(jù)長(zhǎng)距離依賴的效率,有效學(xué)習(xí)數(shù)據(jù)內(nèi)部相關(guān)性.為了豐富輸入數(shù)據(jù)源,本文在使用基本市場(chǎng)交易數(shù)據(jù)作為輸入變量的基礎(chǔ)上同時(shí)融合與股票直接相關(guān)和間接相關(guān)的數(shù)據(jù),得到更全面的股票特征表示方式.通過在不同股票數(shù)據(jù)集上與多個(gè)基準(zhǔn)模型進(jìn)行對(duì)比實(shí)驗(yàn)與分析,結(jié)果表明本文提出的模型具有更小的預(yù)測(cè)誤差和更好的擬合效果.因此,該模型具有廣闊的應(yīng)用前景,與現(xiàn)有模型有很強(qiáng)的競(jìng)爭(zhēng)力.
模型的改進(jìn)可以從以下兩個(gè)方面進(jìn)行改進(jìn):一方面,在資源允許的情況下可以在更廣泛的范圍尋找相關(guān)股票,以及考慮使用其它更有效的方式加入相關(guān)股票數(shù)據(jù);另一方面,融合更全面的直接相關(guān)及間接相關(guān)數(shù)據(jù),以進(jìn)一步提高預(yù)測(cè)性能.