范 輝,朱勇丞,李晉江
(山東工商學(xué)院 a.計(jì)算機(jī)學(xué)院 ;b.山東省未來智能金融工程實(shí)驗(yàn)室,山東 煙臺(tái) 264005)
在一定程度上,股票市場(chǎng)可以反映金融市場(chǎng)的變化情況,是國(guó)家經(jīng)濟(jì)發(fā)展的重要指標(biāo)之一。提升股票預(yù)測(cè)的準(zhǔn)確性,有助于投資者制定策略并獲得回報(bào)。因此,股票預(yù)測(cè)一直是從業(yè)者和學(xué)者的熱門研究課題。然而,由于股票市場(chǎng)本質(zhì)上的復(fù)雜性和外部因素的不確定性,股票曲線的走勢(shì)表現(xiàn)出非線性和高波動(dòng)性,這使得股票預(yù)測(cè)成為一項(xiàng)具有挑戰(zhàn)性的工作。
隨著計(jì)算機(jī)技術(shù)在金融領(lǐng)域的應(yīng)用,股票預(yù)測(cè)受到了經(jīng)濟(jì)學(xué)家和計(jì)算機(jī)科研人員的共同關(guān)注。早期的股票預(yù)測(cè)研究主要是基于統(tǒng)計(jì)學(xué)的線性預(yù)測(cè)方法,例如自回歸移動(dòng)平均模型(ARMA)、差分整合移動(dòng)平均自回歸模型(ARIMA)等。這些方法在預(yù)測(cè)平穩(wěn)時(shí)間序列的時(shí)候通常表現(xiàn)良好。然而,股票序列實(shí)際上是非線性、非平穩(wěn)的,這導(dǎo)致線性預(yù)測(cè)方法在捕捉股票數(shù)據(jù)的非線性規(guī)律時(shí)效果不佳。
機(jī)器學(xué)習(xí)的發(fā)展為股票預(yù)測(cè)提供了新的工具,支持向量機(jī)(SVM)、隱馬爾可夫模型(HMM)等方法有效地彌補(bǔ)了統(tǒng)計(jì)學(xué)方法的不足,被成功應(yīng)用于股票預(yù)測(cè)。作為機(jī)器學(xué)習(xí)中的新興方法,深度學(xué)習(xí)具有記憶性、參數(shù)共享和圖靈完備性等優(yōu)點(diǎn)。這些優(yōu)點(diǎn)有利于分析股票數(shù)據(jù),深度學(xué)習(xí)因此被廣泛應(yīng)用于股票預(yù)測(cè)。具體而言,反向傳播神經(jīng)網(wǎng)絡(luò)(BPNN)、卷積神經(jīng)網(wǎng)絡(luò)(CNN)、循環(huán)神經(jīng)網(wǎng)絡(luò)(RNN)[1]和其它深度學(xué)習(xí)方法已經(jīng)有了大量的研究進(jìn)展,在股票預(yù)測(cè)中取得了良好的效果。
在眾多深度學(xué)習(xí)方法中,RNN尤其適用于股票預(yù)測(cè),因?yàn)樗軌虿蹲角昂筝斎胫g的關(guān)聯(lián)。1997年,Hochreiter等人基于RNN的原理提出了長(zhǎng)短期記憶網(wǎng)絡(luò)(LSTM)[2]。LSTM不但解決了原始RNN存在的長(zhǎng)期依賴問題,而且緩解了梯度消失問題,所以成為了股票預(yù)測(cè)領(lǐng)域的熱門。此后,對(duì)LSTM的改進(jìn)出現(xiàn)了許多成果,例如門控循環(huán)單元(GRU)、簡(jiǎn)單循環(huán)單元(SRU)等。這些方法在進(jìn)行股票預(yù)測(cè)時(shí)同樣具有良好的預(yù)測(cè)效果。
盡管傳統(tǒng)的神經(jīng)網(wǎng)絡(luò)架構(gòu)在股票預(yù)測(cè)中有著成功的應(yīng)用,但仍然具有一定的局限性。事實(shí)上,神經(jīng)網(wǎng)絡(luò)在擬合數(shù)據(jù)的過程中,會(huì)不同程度地忽略一部分有價(jià)值的信息。為了應(yīng)對(duì)這種情況,Ashish等人于2017年提出了一種以注意力機(jī)制為核心的全新深度學(xué)習(xí)架構(gòu),并在自然語(yǔ)言處理領(lǐng)域中取得了巨大成功。與之前的深度學(xué)習(xí)方法相比,注意力機(jī)制可以并行地處理數(shù)據(jù),因此能夠更好地獲取全局信息。鑒于注意力機(jī)制在自然語(yǔ)言處理領(lǐng)域的成功,使用注意力機(jī)制分析與股票市場(chǎng)相關(guān)的金融新聞和媒體評(píng)論,于是成為了一種實(shí)用的股票預(yù)測(cè)方法。同時(shí),在對(duì)注意力機(jī)制進(jìn)行研究的過程中,證明其不僅適用于自然語(yǔ)言處理,而且對(duì)數(shù)據(jù)的擬合和預(yù)測(cè)也具有可行性。目前,注意力機(jī)制已經(jīng)發(fā)展出了多種應(yīng)用方式,為股票預(yù)測(cè)提供了豐富的選擇。
考慮到上述股票預(yù)測(cè)方法的特性,為了獲得更準(zhǔn)確的股票預(yù)測(cè)曲線,本文提出了一種基于注意力機(jī)制和特征融合的股票預(yù)測(cè)方法,稱為AFG。該方法首先對(duì)每一條股票數(shù)據(jù)進(jìn)行位置編碼和時(shí)間編碼,以便于后續(xù)模塊獲取股票數(shù)據(jù)的位置信息和時(shí)間信息。然后,將經(jīng)過預(yù)處理的股票數(shù)據(jù)分別輸入到門控循環(huán)單元和注意力機(jī)制中,門控循環(huán)單元和注意力機(jī)制會(huì)對(duì)股票數(shù)據(jù)進(jìn)行特征提取,得到股票數(shù)據(jù)在不同維度中的特征。最后,將門控循環(huán)單元和注意力機(jī)制的股票特征進(jìn)行融合,得到更全面的股票特征。為了將股票特征轉(zhuǎn)換為可理解的、具體的股票數(shù)據(jù),還需要將股票特征通過全連接層改變維度來實(shí)現(xiàn)解碼,從而獲得最終的股票預(yù)測(cè)結(jié)果。AFG的整體結(jié)構(gòu)如下頁(yè)圖1所示。本文使用真實(shí)的股票數(shù)據(jù)進(jìn)行了相關(guān)測(cè)試,測(cè)試結(jié)果驗(yàn)證了所提出方法的有效性。綜上,本文的主要貢獻(xiàn)如下:
圖1 AFG的整體結(jié)構(gòu)圖
(1)基于注意力機(jī)制和特征融合,設(shè)計(jì)了一種用于股票預(yù)測(cè)的深度學(xué)習(xí)方法,并通過相關(guān)實(shí)驗(yàn)論證了該方法的有效性。
(2)為了更好地兼顧門控循環(huán)單元和注意力機(jī)制兩類方法的優(yōu)點(diǎn),將兩類方法的股票特征進(jìn)行融合,并自適應(yīng)地導(dǎo)出股票預(yù)測(cè)曲線。
(3)在股票預(yù)測(cè)中使用注意力機(jī)制時(shí),不是結(jié)合文字?jǐn)?shù)據(jù)進(jìn)行預(yù)測(cè),而是將多頭自注意力機(jī)制直接作用于股票數(shù)據(jù)。
直接使用股票市場(chǎng)的歷史數(shù)據(jù)進(jìn)行預(yù)測(cè)是主要的股票預(yù)測(cè)方法之一,統(tǒng)計(jì)學(xué)方法、機(jī)器學(xué)習(xí)、深度學(xué)習(xí)以及各種衍生方法都能有效地?cái)M合和預(yù)測(cè)股票數(shù)據(jù)。Zhou等人[3]組合了多種神經(jīng)網(wǎng)絡(luò)進(jìn)行預(yù)測(cè),并設(shè)計(jì)了一種多目標(biāo)優(yōu)化算法來尋找最優(yōu)的神經(jīng)網(wǎng)絡(luò)。Mehdi等人組合了差分自回歸移動(dòng)平均模型和多層感知器,并嘗試了不同的組合方式來盡可能提升最終模型的預(yù)測(cè)準(zhǔn)確性。Feng等人首先使用前饋神經(jīng)網(wǎng)絡(luò)處理股票數(shù)據(jù),然后使用LSTM對(duì)經(jīng)過處理的股票數(shù)據(jù)進(jìn)行預(yù)測(cè),最后使用注意力機(jī)制優(yōu)化LSTM的預(yù)測(cè)結(jié)果并得出最終預(yù)測(cè)結(jié)果。Liu等人[4]首先使用雙向GRU處理股票數(shù)據(jù),然后使用層次互補(bǔ)注意力網(wǎng)絡(luò)量化股票數(shù)據(jù),最后使用膠囊網(wǎng)絡(luò)輸出股票預(yù)測(cè)結(jié)果。Bisoi等人[5]首先使用變分模態(tài)分解算法處理股票數(shù)據(jù),然后使用魯棒核極限學(xué)習(xí)機(jī)對(duì)分解后的股票數(shù)據(jù)進(jìn)行預(yù)測(cè),還使用差分進(jìn)化算法優(yōu)化了核函數(shù)參數(shù)。Niu等人[6]首先使用變分模態(tài)分解算法處理股票數(shù)據(jù),然后使用LSTM對(duì)分解后的股票數(shù)據(jù)進(jìn)行預(yù)測(cè),最后將每組數(shù)據(jù)的預(yù)測(cè)結(jié)果合并。Zhou等人[7]首先使用經(jīng)驗(yàn)?zāi)B(tài)分解算法處理股票數(shù)據(jù),然后使用因子分解機(jī)神經(jīng)網(wǎng)絡(luò)對(duì)分解后的股票數(shù)據(jù)進(jìn)行預(yù)測(cè)。他們將所有數(shù)據(jù)一起輸入預(yù)測(cè)模塊,直接輸出最終預(yù)測(cè)結(jié)果,而不需要做合并操作。
一部分研究人員認(rèn)為,直接使用股票市場(chǎng)的歷史數(shù)據(jù)進(jìn)行預(yù)測(cè)能夠達(dá)到的準(zhǔn)確性是有限的。除了基本的股票數(shù)據(jù)以外,使用與股票市場(chǎng)相關(guān)的金融新聞和媒體評(píng)論作為輔助,同樣是一種重要的股票預(yù)測(cè)方法。Thien等人[8]提出了一種利用社交媒體信息預(yù)測(cè)股價(jià)走勢(shì)的方法,并通過一個(gè)大型實(shí)驗(yàn)評(píng)估了所提出方法的有效性,進(jìn)而證明了對(duì)社交媒體信息進(jìn)行分析確實(shí)可以提高股票預(yù)測(cè)的準(zhǔn)確性。Lorenzo等人[9]研究了社會(huì)輿論對(duì)金融市場(chǎng)的影響,通過從紐約證券交易所收集民眾看法和股票數(shù)據(jù)用于測(cè)試,證明了所提出方法的有效性。另外,他們還發(fā)現(xiàn),相比于機(jī)器學(xué)習(xí)算法,基于深度學(xué)習(xí)的LSTM更適合金融時(shí)間序列。Sahar等人使用LSTM、doc2vec和CNN分別分析發(fā)表在StockTwits上的股票信息,證明了深度學(xué)習(xí)方法可以有效地進(jìn)行金融信息分析。Andrea等人[10]將股票數(shù)據(jù)和新聞文字結(jié)合起來預(yù)測(cè)股票走勢(shì),通過選取納斯達(dá)克中的20只股票進(jìn)行預(yù)測(cè)并用于高頻交易模擬測(cè)試,證明了所提出方法為開發(fā)新的交易策略提供了起點(diǎn)。
由于注意力機(jī)制在自然語(yǔ)言處理領(lǐng)域的優(yōu)異表現(xiàn),啟發(fā)了結(jié)合文字?jǐn)?shù)據(jù)的股票預(yù)測(cè)中注意力機(jī)制的嘗試,涌現(xiàn)了不同形式的研究成果。Jin等人[11]將投資者的傾向和股票價(jià)格數(shù)據(jù)結(jié)合起來進(jìn)行股票預(yù)測(cè),先采用經(jīng)驗(yàn)?zāi)B(tài)分解算法處理股票價(jià)格數(shù)據(jù),然后使用注意力機(jī)制為核心預(yù)測(cè)模塊提取關(guān)鍵性輔助信息,最后采用LSTM作為核心預(yù)測(cè)模塊輸出最終結(jié)果。Abdullatif等人提出了一個(gè)源自Twitter的土耳其社交評(píng)論數(shù)據(jù)集,并針對(duì)這個(gè)數(shù)據(jù)集測(cè)試了多個(gè)基于注意力機(jī)制的預(yù)測(cè)方法,證明了注意力機(jī)制在結(jié)合文字?jǐn)?shù)據(jù)的預(yù)測(cè)中確實(shí)有效。Arthur等人[12]基于巴西的金融新聞數(shù)據(jù)確定了最適合股票預(yù)測(cè)的神經(jīng)網(wǎng)絡(luò)架構(gòu),并根據(jù)實(shí)驗(yàn)結(jié)果提出了一種新的投資策略。
在本文中,基于注意力機(jī)制和特征融合,設(shè)計(jì)了一種新的股票預(yù)測(cè)方法AFG,由三個(gè)模塊組成,如圖1所示。在該方法的“數(shù)據(jù)處理”模塊中,使用了位置編碼和時(shí)間編碼對(duì)股票數(shù)據(jù)進(jìn)行處理,有利于后續(xù)模塊獲取股票數(shù)據(jù)的位置信息和時(shí)間信息。為了得到更全面的股票信息用以提升方法的預(yù)測(cè)準(zhǔn)確性,在“特征提取”模塊中使用了門控循環(huán)單元和多頭自注意力機(jī)制對(duì)經(jīng)過預(yù)處理的股票數(shù)據(jù)分別進(jìn)行特征提取。然后,在“特征融合”模塊中將兩類不同維度的特征融合,并通過全連接層對(duì)股票特征進(jìn)行維度轉(zhuǎn)換和數(shù)據(jù)解碼,從而導(dǎo)出最終的股票預(yù)測(cè)曲線。在本節(jié)中,主要對(duì)所提出的方法進(jìn)行了詳細(xì)介紹,同時(shí)還對(duì)實(shí)驗(yàn)中涉及的一些方法做了相關(guān)介紹。
在將股票數(shù)據(jù)輸入到“特征提取”模塊時(shí),一般是以順序方式輸入的。事實(shí)上,各個(gè)時(shí)間步之間的股票數(shù)據(jù)并不是簡(jiǎn)單的順序關(guān)系,每個(gè)時(shí)間步的股票數(shù)據(jù)都可能與多個(gè)時(shí)間步的股票數(shù)據(jù)相互影響。為了更準(zhǔn)確地對(duì)股票數(shù)據(jù)進(jìn)行特征提取,需要標(biāo)記每個(gè)時(shí)間步的相對(duì)位置??紤]到上述原因,在“數(shù)據(jù)處理”模塊中使用位置編碼技術(shù)對(duì)股票數(shù)據(jù)進(jìn)行了處理。位置編碼技術(shù)使用不同頻率的正弦函數(shù)和余弦函數(shù)編碼股票數(shù)據(jù)的位置,具體公式如下:
PE(pos,2i)=sin(pos/100002i/d),
PE(pos,2i+1)=cos(pos/100002i/d)。
其中1≤2i≤d,pos表示股票數(shù)據(jù)的位置,i表示股票數(shù)據(jù)的第i維,PE表示股票數(shù)據(jù)的位置編碼結(jié)果,d表示股票數(shù)據(jù)的完整維度。這個(gè)公式表明,位置編碼的每個(gè)維度對(duì)應(yīng)于一個(gè)正弦曲線,且波長(zhǎng)構(gòu)成了一個(gè)從2π到10000·2i的幾何級(jí)數(shù)。這種編碼方法能夠讓股票數(shù)據(jù)的相對(duì)位置更加突出,編碼結(jié)果通過對(duì)應(yīng)相加的矩陣運(yùn)算嵌入到股票數(shù)據(jù)中。
除了原本的位置信息,股票數(shù)據(jù)還受到時(shí)間信息的影響。每個(gè)時(shí)間步的股票數(shù)據(jù)都有對(duì)應(yīng)的真實(shí)時(shí)間,因此股票數(shù)據(jù)與真實(shí)時(shí)間有極強(qiáng)的關(guān)聯(lián)性,結(jié)合時(shí)間信息進(jìn)行股票預(yù)測(cè)是很有必要的。為了將真實(shí)時(shí)間嵌入到股票數(shù)據(jù)中用于預(yù)測(cè),需要先對(duì)股票數(shù)據(jù)的真實(shí)時(shí)間進(jìn)行時(shí)間編碼。時(shí)間編碼技術(shù)根據(jù)時(shí)間單位的不同分別對(duì)股票的真實(shí)時(shí)間數(shù)據(jù)進(jìn)行編碼,然后將各種時(shí)間單位的編碼結(jié)果合并為最終的時(shí)間編碼結(jié)果,相關(guān)公式如下:
E=W·D+b,
Et=Ey+Em+Ed。
其D中表示股票的真實(shí)時(shí)間數(shù)據(jù),E表示時(shí)間數(shù)據(jù)的編碼結(jié)果,W表示編碼時(shí)的權(quán)重矩陣,b表示編碼時(shí)的偏置向量,Ey表示年份數(shù)據(jù)的編碼結(jié)果,Em表示月份數(shù)據(jù)的編碼結(jié)果,Ed表示日期數(shù)據(jù)的編碼結(jié)果,Et表示最終的時(shí)間編碼結(jié)果。與位置編碼類似,時(shí)間編碼的結(jié)果通過對(duì)應(yīng)相加的矩陣運(yùn)算嵌入到股票數(shù)據(jù)中。
對(duì)于股票預(yù)測(cè)問題,要解決的最大難點(diǎn)是如何對(duì)上下文中相互依賴的信息進(jìn)行建模。早期常用的方法是RNN,通過引入記憶單元存儲(chǔ)和傳遞過去的信息來解決這個(gè)問題。RNN成功地完成了上下文中數(shù)據(jù)的順序鏈接,但是也具有相應(yīng)的缺點(diǎn),即這種鏈接會(huì)隨著單元距離的增加而變得不夠可靠。
不同于原始RNN的輸出僅由權(quán)重、偏置和激活函數(shù)決定,LSTM對(duì)原始RNN的單元做了替換,引入了“門”機(jī)制用于控制信息的流通和損失。在每個(gè)單元內(nèi)部,信息通過遺忘門、輸入門和輸出門進(jìn)行更新。LSTM的結(jié)構(gòu)如圖2所示。
圖2 LSTM的結(jié)構(gòu)圖
圖3中的ft、it和ot依次為遺忘門、輸入門和輸出門。遺忘門控制上一單元信息ht-1和新輸入信息xt的放棄,計(jì)算公式如下:
圖3 GRU的結(jié)構(gòu)圖
ft=σ(Wf·[ht-1,xt]+bf)。
輸入門控制上一單元信息ht-1和新輸入信息xt的輸入,計(jì)算公式如下:
it=σ(Wi·[ht-1,xt]+bi)。
LSTM單元中還有一個(gè)重要部件Ct,貫穿LSTM的整個(gè)鏈?zhǔn)较到y(tǒng),稱為單元狀態(tài),相關(guān)公式如下:
ot=σ(Wo·[ht-1,xt]+bo),
ht=ot°tanh(Ct)。
以上公式中,Wf、Wi、WC和Wo表示權(quán)重矩陣,bf、bi、bC和bo表示偏置向量, °表示矩陣的哈達(dá)瑪積,σ和tanh分別表示Sigmoid函數(shù)和雙曲正切函數(shù),表達(dá)式如下:
根據(jù)LSTM的原理,可以發(fā)現(xiàn)遺忘門和輸入門發(fā)揮了相似的作用。GRU將遺忘門和輸入門合并為“更新門”,簡(jiǎn)化了單元內(nèi)部的信息通路。此外,它移除了單元狀態(tài)這一設(shè)計(jì),并加入了“重置門”等其它改動(dòng)。在保證神經(jīng)網(wǎng)絡(luò)能力不下降的同時(shí),這些改動(dòng)加快了計(jì)算速度,獲得了更高的效率。
GRU的結(jié)構(gòu)如圖3所示。
圖3中的rt和zt依次為重置門和更新門。重置門決定了如何將新的輸入信息xt與上一單元的信息ht-1相結(jié)合,計(jì)算公式如下:
rt=σ(Wr·[ht-1,xt]+br)。
更新門控制上一單元信息ht-1和新輸入信息xt的放棄與保留,計(jì)算公式如下:
zt=σ(Wz·[ht-1,xt]+bz)。
GRU能夠僅用一個(gè)更新門發(fā)揮兩個(gè)門(遺忘門和輸入門)的作用,依賴于對(duì)zt的精妙使用,相關(guān)公式如下:
注意力機(jī)制是深度學(xué)習(xí)方法不斷發(fā)展和適應(yīng)現(xiàn)實(shí)需求而產(chǎn)生的創(chuàng)新,相比于過去的深度學(xué)習(xí)方法,注意力機(jī)制可以并行地處理數(shù)據(jù)同時(shí)將數(shù)據(jù)中重要的局部區(qū)域凸顯出來,因此能夠節(jié)省計(jì)算資源并快速獲取最有用的信息。一般而言,注意力機(jī)制是一種根據(jù)重要程度對(duì)輸入的數(shù)據(jù)進(jìn)行加權(quán)處理的機(jī)制,加權(quán)處理的權(quán)重通常來源于歸一化指數(shù)函數(shù)的結(jié)果。最初,注意力機(jī)制往往與CNN和RNN配合使用,Ashish等人擺脫了傳統(tǒng)的設(shè)計(jì)思維,提出了僅使用自注意力機(jī)制的深度學(xué)習(xí)方法,稱為Transformer。作為這一方法的核心,自注意力機(jī)制的公式定義如下:
其中Q是查詢矩陣,K是鍵矩陣,V是值矩陣,d是矩陣內(nèi)數(shù)據(jù)的維度。查詢矩陣、鍵矩陣和值矩陣是由相同的輸入分別與三個(gè)不同的權(quán)重矩陣相乘而得到的,圖4展示了自注意力機(jī)制的結(jié)構(gòu)。
圖4 GRU的結(jié)構(gòu)圖
自注意力機(jī)制能夠關(guān)注到重要的信息,為數(shù)據(jù)分析提供了一種新的選擇。為了發(fā)揮自注意力機(jī)制的全部能力,進(jìn)一步提出了多頭自注意力機(jī)制。在多頭自注意力機(jī)制中,每個(gè)自注意力機(jī)制與查詢矩陣、鍵矩陣和值矩陣的不同投影矩陣并行運(yùn)算。然后,將所有自注意力機(jī)制的輸出連接到一起并通過一個(gè)前饋神經(jīng)網(wǎng)絡(luò)產(chǎn)生多頭自注意力機(jī)制的結(jié)果。多頭自注意力機(jī)制的公式定義如下:
MultiHead(Q,K,V)=Concat(head1,head2,…,headh)Wo,
正如上一小節(jié)所述,多頭自注意力機(jī)制以其特有的全面性,相對(duì)于其它深度學(xué)習(xí)方法展現(xiàn)出更優(yōu)越的性能。然而,在一些特定的應(yīng)用場(chǎng)景中,多頭自注意力機(jī)制的全面性可能會(huì)對(duì)預(yù)測(cè)結(jié)果產(chǎn)生負(fù)面作用。Zhou等人研究了自注意力機(jī)制的特征分布圖,發(fā)現(xiàn)并不是每個(gè)查詢矩陣和鍵矩陣的乘積都是有效值,因此沒有必要對(duì)這些數(shù)據(jù)進(jìn)行計(jì)算??陀^來說,一個(gè)數(shù)據(jù)大概率只與幾個(gè)數(shù)據(jù)有高度的關(guān)聯(lián)性,而對(duì)于其它數(shù)據(jù)則沒有顯著的關(guān)聯(lián)性。多頭自注意力機(jī)制在全面關(guān)注數(shù)據(jù)的同時(shí),也使得一些關(guān)聯(lián)性不強(qiáng)的數(shù)據(jù)之間產(chǎn)生了相互干擾,從而影響了最終的預(yù)測(cè)結(jié)果??紤]到多頭自注意力機(jī)制的不足,Zhou等人提出了稀疏自注意力機(jī)制(ProbSparse Self-Attention):在對(duì)數(shù)據(jù)進(jìn)行加權(quán)處理之前,先通過稀疏性度量確定哪些查詢矩陣和鍵矩陣有必要計(jì)算并生成相應(yīng)的稀疏矩陣,然后使用得到的稀疏矩陣輸出注意力機(jī)制的結(jié)果。稀疏性度量和稀疏自注意力機(jī)制的計(jì)算公式如下:
本節(jié)進(jìn)行了若干組實(shí)驗(yàn)來論證所提出方法的有效性。本節(jié)首先介紹實(shí)驗(yàn)的數(shù)據(jù)集、參數(shù)設(shè)置和評(píng)價(jià)指標(biāo),然后結(jié)合實(shí)驗(yàn)結(jié)果和圖表進(jìn)行說明和討論。
1.數(shù)據(jù)集。為了驗(yàn)證AFG在不同情況下的有效性,實(shí)驗(yàn)數(shù)據(jù)集由2018年1月2日至2020年12月31日中國(guó)股票市場(chǎng)和美國(guó)股票市場(chǎng)的數(shù)據(jù)組成,包括SSE數(shù)據(jù)集和DJI數(shù)據(jù)集。SSE數(shù)據(jù)集來源于中國(guó)股票市場(chǎng)上證50指數(shù)中的股票,DJI數(shù)據(jù)集來源于美國(guó)股票市場(chǎng)道瓊斯工業(yè)指數(shù)中的股票。在刪除兩個(gè)數(shù)據(jù)集中存在數(shù)值異常的股票之后,實(shí)際得到70支股票的數(shù)據(jù)。
SSE數(shù)據(jù)集中包括41支股票,代碼為:600000,600015,600016,600018,600028,600036,600048,600050,600104,600111,600585,600637,600795,600837,600887,600958,601006,601088,601166,601169,601186,601211,601288,601318,601328,601336,601398,601601,601628,601668,601669,601688,601766,601800,601818,601857,601901,601985,601988,601989,601998。DJI數(shù)據(jù)集中包括29支股票,代碼為:AAPL,AMGN,AXP,BA,CAT,CRM,CSCO,CVX,DIS,GS,HD,HON,IBM,INTC,JNJ,JPM,KO,MCD,MMM,MRK,MSFT,NKE,PG,TRV,UNH,V,VZ,WBA,WMT。
SSE數(shù)據(jù)集中的具體數(shù)據(jù)來源于Tushare,DJI數(shù)據(jù)集中的具體數(shù)據(jù)來源于Yahoo Finance。兩個(gè)數(shù)據(jù)集的股票數(shù)據(jù)按照4∶1∶1的比例被劃分為訓(xùn)練集、驗(yàn)證集和測(cè)試集。為了減輕噪聲數(shù)據(jù)的影響,根據(jù)以下公式對(duì)每個(gè)數(shù)據(jù)進(jìn)行了歸一化處理:
其中x表示歸一化處理前的數(shù)據(jù),x′表示歸一化處理后的數(shù)據(jù),xmin表示一支股票中數(shù)據(jù)的最小值,xmax表示一支股票中數(shù)據(jù)的最大值。
2.參數(shù)設(shè)置。整個(gè)實(shí)驗(yàn)過程使用Pytorch框架實(shí)現(xiàn),實(shí)驗(yàn)時(shí)每個(gè)訓(xùn)練批次的批量大小設(shè)置為16,訓(xùn)練時(shí)使用的優(yōu)化器為Adam,訓(xùn)練過程中的學(xué)習(xí)率設(shè)置為0.01,總的訓(xùn)練輪次設(shè)置為100以保證訓(xùn)練結(jié)果的收斂性。為了避免過擬合問題,在實(shí)驗(yàn)中還使用了dropout技術(shù),dropout的相關(guān)參數(shù)設(shè)置為0.1。在輸入數(shù)據(jù)時(shí),每次的輸入長(zhǎng)度設(shè)置為10,經(jīng)過位置編碼和時(shí)間編碼后的輸入維度設(shè)置為512。對(duì)于多頭自注意力機(jī)制,表示子空間的數(shù)量設(shè)置為8。對(duì)于門控循環(huán)單元,隱藏神經(jīng)元的數(shù)量設(shè)置為512。
3.評(píng)價(jià)指標(biāo)。為了全面評(píng)估方法的預(yù)測(cè)性能,使用基于預(yù)測(cè)精度和交易表現(xiàn)的兩類指標(biāo)進(jìn)行評(píng)價(jià)?;陬A(yù)測(cè)精度的評(píng)價(jià)指標(biāo)是均方誤差(MSE)、平均絕對(duì)誤差(MAE)和平均絕對(duì)百分比誤差(MAPE),計(jì)算公式如下:
其中Xi表示真實(shí)值,Yi表示預(yù)測(cè)值,N表示樣本數(shù)。相比于MAE,MSE對(duì)異常值產(chǎn)生的誤差更敏感,通常能更好地反映方法的預(yù)測(cè)穩(wěn)定性。MAPE反映了預(yù)測(cè)值與真實(shí)值之間的相對(duì)誤差,相比于MSE和MAE,在不同類型的數(shù)據(jù)集上具有更好的普遍性。MSE、MAE和MAPE的數(shù)值越小表明方法的預(yù)測(cè)精度越高。
基于交易表現(xiàn)的評(píng)價(jià)指標(biāo)是回報(bào)率(RR)和夏普比率(SR),計(jì)算公式如下:
其中X0表示每次交易開始時(shí)的股票數(shù)據(jù),Xp表示p天后的股票數(shù)據(jù),E(Rp)表示平均回報(bào),Rf表示無風(fēng)險(xiǎn)利率,σp表示超額回報(bào)的標(biāo)準(zhǔn)差。一般來說,回報(bào)率和夏普比率的數(shù)值越大表明股票預(yù)測(cè)方法的交易表現(xiàn)越好。
為了展現(xiàn)AFG的預(yù)測(cè)性能,將其與一些熱門方法進(jìn)行了比較,包括ARIMA、Transformer和PF-LSTM。這些方法的介紹如下:
ARIMA是由Box和Jenkins于20世紀(jì)70年代提出的一種時(shí)間序列預(yù)測(cè)方法[13]。由于ARIMA在平穩(wěn)時(shí)間序列上的良好表現(xiàn),成為了統(tǒng)計(jì)學(xué)中的熱門方法。在面對(duì)非平穩(wěn)的、復(fù)雜的股票序列時(shí),ARIMA通常存在局限性。
Transformer是由Ashish等人提出的一種以注意力機(jī)制為核心的全新深度學(xué)習(xí)方法。該方法不僅在自然語(yǔ)言處理領(lǐng)域中取得了巨大成功,而且為模式識(shí)別、數(shù)據(jù)預(yù)測(cè)等其它領(lǐng)域提供了寶貴的借鑒經(jīng)驗(yàn)。
PF-LSTM[14]是由Liu等人提出的一種股票預(yù)測(cè)方法。該方法作為粒子濾波循環(huán)神經(jīng)網(wǎng)絡(luò)的替代方法,被用于股票預(yù)測(cè)的實(shí)驗(yàn)測(cè)試中。股票預(yù)測(cè)的測(cè)試結(jié)果表明,PF-LSTM在真實(shí)的股票數(shù)據(jù)集上具有良好的預(yù)測(cè)能力。
表1展示了ARIMA、Transformer、PF-LSTM和AFG四種方法在SSE和DJI兩個(gè)數(shù)據(jù)集的測(cè)試集上的MSE、MAE和MAPE。表中的最優(yōu)指標(biāo)使用粗體凸顯。從表中可以看出,AFG的MSE、MAE和MAPE在兩個(gè)數(shù)據(jù)集上均取得了最優(yōu),這證明了所提出方法的有效性。
表1 四種方法在SSE和DJI上的預(yù)測(cè)精度
此外,為了更直觀地展示所提出方法的股票預(yù)測(cè)能力,本文繪制了SSE數(shù)據(jù)集中中國(guó)石化公司(股票代碼:600028)的股票預(yù)測(cè)曲線和DJI數(shù)據(jù)集中波音公司(股票代碼:BA)的股票預(yù)測(cè)曲線,如圖5和圖6所示。兩支股票皆依據(jù)2018年1月至2020年6月的股票數(shù)據(jù),對(duì)之后120天的股票數(shù)據(jù)進(jìn)行預(yù)測(cè)。從圖中可以看出,兩支股票的預(yù)測(cè)曲線均能夠與真實(shí)變化曲線高度吻合,這證明了所提出方法的有效性。
圖5 中國(guó)石化公司的股票預(yù)測(cè)曲線
圖6 波音公司的股票預(yù)測(cè)曲線
為了論證所提出方法的合理性,本節(jié)將比較一些其它方法的實(shí)驗(yàn)結(jié)果,這些方法基于AFG做了改變:(1)不進(jìn)行數(shù)據(jù)處理,直接進(jìn)行特征提取和特征融合,命名為AFG-1;(2)不進(jìn)行特征融合,只使用門控循環(huán)單元進(jìn)行特征提取,命名為AFG-2;(3)不進(jìn)行特征融合,只使用多頭自注意力機(jī)制進(jìn)行特征提取,命名為AFG-3;(4)使用長(zhǎng)短期記憶網(wǎng)絡(luò)替換門控循環(huán)單元進(jìn)行特征融合,命名為AFG-4;(5)使用稀疏自注意力機(jī)制替換多頭自注意力機(jī)制進(jìn)行特征融合,命名為AFG-5。
表2定量地展示了AFG-1、AFG-2、AFG-3、AFG-4、AFG-5和AFG六種方法在SSE和DJI兩個(gè)數(shù)據(jù)集的測(cè)試集上的MSE、MAE和MAPE。表中的最優(yōu)指標(biāo)使用粗體凸顯。從表中可以看出,AFG的預(yù)測(cè)精度顯著優(yōu)于其它方法。AFG-1的預(yù)測(cè)精度低于AFG,說明對(duì)股票數(shù)據(jù)進(jìn)行位置編碼和時(shí)間編碼是必要的。AFG-2和AFG-3的預(yù)測(cè)精度均低于AFG,說明對(duì)兩類股票特征進(jìn)行融合確實(shí)能夠提高股票預(yù)測(cè)的準(zhǔn)確性。AFG-4的預(yù)測(cè)精度低于AFG,說明門控循環(huán)單元比長(zhǎng)短期記憶網(wǎng)絡(luò)更適合基于特征融合的股票預(yù)測(cè)。AFG-5的預(yù)測(cè)精度低于AFG,說明多頭自注意力機(jī)制比稀疏自注意力機(jī)制更適合基于特征融合的股票預(yù)測(cè)。
表2 核心作者及其發(fā)文量
事實(shí)上,預(yù)測(cè)精度僅能反映股票預(yù)測(cè)方法的理論性能,實(shí)際的交易表現(xiàn)才是更受關(guān)注的指標(biāo)。為了保證交易表現(xiàn)完全取決于所提出方法,計(jì)算時(shí)選擇簡(jiǎn)單的多空交易策略。多空交易策略的解釋如下:如果預(yù)測(cè)到股票將要上漲,則買入股票并持有,直至預(yù)測(cè)到股票將要下跌。本節(jié)根據(jù)AFG的預(yù)測(cè)結(jié)果使用多空交易策略進(jìn)行測(cè)試,并與事后交易策略和買入持有策略進(jìn)行比較。事后交易策略假定股票的變化是完全已知的,是一種前瞻策略。買入持有策略作為交易表現(xiàn)的基線,其含義是在開始時(shí)買入股票并持有到結(jié)束。事后交易策略雖然在實(shí)踐中無法實(shí)現(xiàn),但可以作為交易表現(xiàn)的上限。交易時(shí)假定三個(gè)條件:(1)市場(chǎng)總是有足夠的流動(dòng)性;(2)買賣的價(jià)格為當(dāng)日的收盤價(jià)格;(3)不考慮交易成本。
表3定量地展示了AFG和兩種特殊策略在SSE和DJI兩個(gè)數(shù)據(jù)集的測(cè)試集上的回報(bào)率和夏普比率。由于已知未來,事后交易策略在兩個(gè)數(shù)據(jù)集上具有最高的回報(bào)率和夏普比率。相反地,買入持有策略在兩個(gè)數(shù)據(jù)集上具有最低的回報(bào)率和夏普比率。從表中可以看出,AFG在兩個(gè)數(shù)據(jù)集上的回報(bào)率和夏普比率顯著高于買入持有策略,這說明所提出的方法能夠收獲良好的投資回報(bào)。
表3 在SSE和DJI上的交易表現(xiàn)
此外,為了更直觀地展示交易回報(bào)的累積過程,在圖7和圖8繪制了AFG和兩種特殊策略在SSE和DJI兩個(gè)數(shù)據(jù)集的測(cè)試集上的回報(bào)率變化曲線。從圖中可以看出,買入持有策略的曲線一直在震蕩,沒有上升的趨勢(shì)。這是因?yàn)樵撉€的變化僅取決于股票的漲跌。事后交易策略的曲線一直在上升,這是因?yàn)樵撉€能夠理想地規(guī)避所有的下跌。AFG的曲線雖然存在震蕩,但是整體呈上升趨勢(shì),這證明了AFG能夠有效地進(jìn)行股票預(yù)測(cè)。
圖7 在SSE上的回報(bào)率變化曲線
圖8 在SSE上的回報(bào)率變化曲線
在本文中,提出了一種基于注意力機(jī)制和特征融合的股票預(yù)測(cè)方法AFG?!皵?shù)據(jù)處理”模塊使用位置編碼和時(shí)間編碼獲取股票數(shù)據(jù)的位置信息和時(shí)間信息,“特征提取”模塊使用門控循環(huán)單元和多頭自注意力機(jī)制對(duì)股票數(shù)據(jù)分別進(jìn)行特征提取以得到更全面的股票信息。最后,“特征融合”模塊通過全連接層對(duì)融合后的股票特征進(jìn)行維度轉(zhuǎn)換和數(shù)據(jù)解碼,產(chǎn)生了相對(duì)準(zhǔn)確的股票預(yù)測(cè)曲線。此外,在中國(guó)股票市場(chǎng)和美國(guó)股票市場(chǎng)的交易實(shí)驗(yàn)證明了AFG的有效性,這說明本文所提出的方法能夠預(yù)測(cè)微觀經(jīng)濟(jì)的變化,從而為宏觀經(jīng)濟(jì)的發(fā)展提供重要的參考價(jià)值。
隨著經(jīng)濟(jì)和科技的不斷進(jìn)步,金融行業(yè)正在逐漸地意識(shí)到人工智能的作用,因此作為人工智能方法之一的AFG對(duì)金融經(jīng)濟(jì)領(lǐng)域具有一定指導(dǎo)意義??傊?由人工智能和金融行業(yè)結(jié)合而來的智能金融,未來將成為經(jīng)濟(jì)研究領(lǐng)域的重要方向之一??紤]到智能金融的現(xiàn)狀,下一步的研究方向可以著眼于將所提出的方法應(yīng)用于更多的經(jīng)濟(jì)場(chǎng)景,例如匯率預(yù)測(cè)、風(fēng)險(xiǎn)預(yù)測(cè)等。