劉月娟,王 武
(云南民族大學 數學與計算機科學學院,云南 昆明 650500)
隨著現代科技的不斷發(fā)展和人工智能時代的進步,越來越多的機器學習算法,比如邏輯回歸[1]、支持向量機[2]、決策樹[3]等以及深度學習中的一些經典網絡模型已經被廣泛應用于股票預測等金融領域的研究.近年來,深度學習已經發(fā)展成為一門熱門技術[4],并且在各大領域都有所突破,如文本分析、時間序列預測、計算機視覺[5]、股價預測[6~8]等等.此外,研究發(fā)現,在對股票數據進行預測時,深度學習模型往往比傳統(tǒng)的機器學習模型更能取得較好的預測效果[9].
循環(huán)神經網絡(recurrent neural network,RNN)是一類以序列數據為輸入,在序列的演進方向進行遞歸且所有節(jié)點(循環(huán)單元)按鏈式連接的遞歸神經網絡,是一種常見的深度學習模型[10],其被廣泛應用于股票預測模型,但其一直以來都存在著2個極其明顯的技術缺陷,一是梯度爆炸,二是梯度消失.研究表明,RNN 在處理較長的時間序列數據時會忘記之前的狀態(tài)信息,故引入了長短時記憶網絡(LSTM),LSTM 是 RNN 的一種變體,在時間序列學習方面表現出良好的性能[11],LSTM既能保持事件的上下文信息,也能保持事件的時間行為.但是神經網絡模型通常使用原始時間序列作為輸入[12],這使得很難解釋每個輸入特征序列在預測中所起的作用,為了解決上述問題,我們提出了一個注意模型[13]來為每個輸入金融特征序列分配不同的權重來替代原始時間序列,這些權重是預測,從而增加了模型的可解釋性,注意機制的本質是訓練一個模型選擇性地學習輸入,并將輸出序列與其關聯(lián).近期研究發(fā)現,投資者的情感在股票市場投資中可能起著十分重要的作用.比如,Antweiler和Frank[14]通過對電子郵件的內容和道瓊斯指數的實驗發(fā)現電子郵件的內容有助于預測股市的變化,并證實了在線評論與股票交易量之間的相關性.此外,參考文獻[15]也強調了情感在投資者決策中的重要作用.雖然有很多研究表明情感與股票價格之間存在很強的相關性,但是很少有研究將情感分析用于股票預測.
基于上述研究,為了提高股票預測的精度,本文構建了 BiLSTM+Attention模型來對股票次日的收盤價進行預測,輸入特征除了歷史交易數據外,還引入了情感分析特征和語義分析特征.其中,情感分析方面運用了 NLTK 內置的 Vader 情感分析器.首先創(chuàng)建一個情緒強度分析器(SIA)來分類新聞標題,然后使用 polarity_scores 方法來獲得情緒分數.這個模型給出了4個分數:(i)負面情緒得分(ii)正面情緒得分(iii)中立得分(iv)句子的復合情感得分.本實驗中將用復合情感得分這個分數來衡量評論的情緒.通過對比預測結果的擬合圖[16]和評價指標值,來驗證本文提出的模型在股票預測中的可行性和有效性.
因長短時記憶神經網絡(LSTM)是一種特殊的RNN,它可以長時間存儲信息,同時可以忘掉不必要的信息,解決了RNN長期依賴中梯度消失和梯度爆炸和梯度消失的問題,相比普通的RNN,LSTM 在針對較長的時間序列數據進行預測時更有優(yōu)勢.
LSTM主要由記憶細胞、輸入門、輸出門和遺忘門組成,3個門的激活函數均為Sigmoid[17],其關鍵就是細胞狀態(tài),細胞狀態(tài)類似于傳送帶,直接在整個鏈上運行,只有一些少量的線性交互,信息在上面流傳保持不變會很容易.
遺忘門將細胞狀態(tài)中的信息選擇性的遺忘,其決定了上一時刻的單元狀態(tài)Ct-1有多少保留到當前時刻Ct,輸入門將新的信息選擇性的記錄到細胞狀態(tài)中,其決定了當前時刻網絡的輸入Xt有多少保存到單元狀態(tài)Ct,輸出門控制單元狀態(tài)Ct有多少輸出到LSTM的當前輸出值ht,這3個門的目的都是用來保護和控制細胞狀態(tài),LSTM的網絡結構展開圖見圖1,結構圖中Xt表示t時刻的輸入,ht表示t時刻細胞的狀態(tài)值,

圖1 LSTM 網絡結構展開圖
下面是LSTM的計算公式:
輸入門:
it=δ(Wi*[ht-1,Xt]+bi),
(1)
(2)
輸入門用來控制當前輸入新生成的信息Ct中有多少信息可以加入到當前時刻發(fā)細胞狀態(tài)Ct中,tanh層用來產生當前時刻新的信息,δ層用來控制有多少新信息可以傳遞給細胞狀態(tài).
遺忘門:
ft=δ(Wf*[ht-1,Xt]+bf),
(3)
遺忘門決定上一時刻細胞狀態(tài)Ct-1中的多少信息可以傳遞到當前時刻Ct中.
(4)

輸出門:
Ot=δ(Wo*[ht-1,Xt]+bo).
(5)
ht=Ot*tanh(Ct).
(6)
基于更新的細胞狀態(tài),輸出隱藏狀態(tài)ht.式中,Wi、Wc、Wf、Wo分別為輸入門、更新門、遺忘門和輸出門的權值矩陣,bi、bf、bc、bo分別為輸入門、更新門、遺忘門和輸出門的偏置.
雙向LSTM(BiLSTM)是LSTM的一種變體,在近年來的NLP任務中,由于能夠更好地理解上下文,其效果優(yōu)于單向LSTM[18].Bi-LSTM是由前向LSTM與后向LSTM組合而成,按順序分別從左端和右端開始運行正向LSTM和反向LSTM[19].BiLSTM不僅可以保存過去的信息,而且可以捕捉未來的信息,BiLSTM的網絡結構展開圖見圖2,

圖2 BiLSTM網絡結構展開圖
最近幾年,注意力模型在深度學習各個領域被廣泛使用,無論是圖像處理、語音識別還是自然語言處理的各種不同類型的任務中,常常都需要引入注意力模型機制,其是深度學習技術中最值得關注與深入了解的核心技術之一.本質上,注意力模型的核心目標就是從眾多的信息中選擇出對當前任務目標更為關鍵的信息.
本實驗中在BiLSTM模型基礎上引入注意力機制(attention),輸入序列是描述金融市場歷史信息的原始特征時間序列,使用了蘋果從2010-01-04日到2018-12-31日的開盤價(open)、最高價(high)、最低價(low)、調整后的收盤價(adj close)和成交量(volume)數據.注意力機制可以自適應地選擇最相關的輸入特征,并對相應的原始特征序列賦予更高的權重.然后我們將注意力模型的輸出作為BiLSTM深度學習模型的輸入來預測金融市場.即利用先前的信息和關注權重來預測下一個交易日的收盤價[20].
Word2vec是一種流行的序列嵌入方法,它將自然語言轉換為分布式向量表示[21],它可以在多維空間中捕獲上下文的詞到詞的關系,并作為預測模型的初步步驟得到廣泛應用語義和信息檢索任務.Word2vec依賴Skip-gram或連續(xù)詞袋(CBOW)來建立神經詞嵌入[22].本文主要是基于Skip-gram方法進行文本數據進行詞向量處理,因為它可以在大型數據集上產生更加準確的結果.首先將數據進行預處理,切分訓練集與測試集,其次進行分詞處理,然后對每個句子的所有向量取均值來生成一個句子的vector,計算出詞向量,最終用于訓練BiLSTM+Attention模型,Word2vec的2種訓練模式見圖3.

圖3 Word2vec模型
文中用到的股票預測網絡模型是在BiLSTM模塊的基礎上進行搭建的.其中的BiLSTM模塊使用了單層的BiLSTM神經網絡結構學習數據中的時序特征,有200個隱藏神經元,輸出層采用linear激活函數來輸出最終的結果,并選用Adam優(yōu)化器做優(yōu)化.其實驗是在Python3.6.5上配合一系列的依賴庫完成的.表1列出了BiLSTM模型結構用到的主要軟件.基于多特征融合和BiLSTM+Attention的股票預測網絡模型框架見圖4,其中在語義特征提取部分,我們進行了m維語義特征提取,經過不斷的實驗驗證發(fā)現,當m取1時,模型預測效果最好.

表1 BiLSTM模型軟件環(huán)境

圖4 股票預測模型總體設計框圖
3.1.1 數據來源
本文的數據集包括2部分:股票歷史交易數據和金融新聞標題數據.股票歷史交易數據是利用python自帶的Tushare財經接口包下載的,從中選取了影響股票價格波動的5個主要技術指標[23]:最高價(high)、最低價(low)、開盤價(open)、成交量(volume)和調整后的收盤價(adj close),金融新聞標題信息來源于Reddit(社交新聞站點),選用的數據集為蘋果(AAPL.us).
其中蘋果(AAPL.us)選用的股票歷史交易數據和新聞標題日期為2010-01-04至2018-12-31,爬取到的有關蘋果的金融新聞標題內容共2357條.
3.1.2 數據預處理
針對股票歷史交易數據,由于獲取到的原始數據集存在亂序、異常值和缺失值等情況,所以要先對數據集進行數據清洗和排序等操作,最終獲得一個完整且排序準確的數據集.由于不同的指標數量級之間存在著巨大的差異,為了消除這種差異,本文使用Min-Max 歸一化方法,將數據的值壓縮到0到1之間,它是將觀測值減去該組觀測值中的最小值,再除以該組觀測值中的最大值與該組觀測值中的最小值的差值得到的,公式如下:
(7)
針對金融新聞標題文本,需要對一些標點符號、特定術語縮寫等字符串進行處理;然后在百度提供的停用詞表基礎上對文本進行去停用詞處理[24].
3.1.3 時間步數設置
本文為了更好的對比訓練結果,將實驗數據集劃分為訓練集合測試集2部分,將2010-01-04至2016-07-29的數據集作為訓練集,2016-08-01至2018-12-31的數據集作為測試集.在本文提出的股票預測模型中,為了達到好的訓練效果,設置了不同的時間步長,其股票預測效果圖分別如下圖5所示,實驗表明,模型預測結果的準確性與時間步長的設置有很大的關系.
通過觀察圖5可以發(fā)現,當時間步長為5時,由于考慮到的時間步長較短,預測結果有一定誤差.

圖5 不同時間步長下模型預測效果圖
當時間步長設置較長時,如圖5(d),(e)和(f),當時間步長分別為20,25,30時,考慮的時間范圍相對較大,容易忽略掉短時間內金融新聞等因素造成的影響,預測結果誤差較大,準確性偏低.可以發(fā)現,當步長設置為10時,預測結果準確性最高,所以本文將時間步長設置為10,即用前10天的7個屬性的數據特征作為神經單元的輸入層,第11天的收盤價作為標簽進行模型訓練.
模型預測結果如圖6、7、8、9、10所示,紅色曲線代表股票的預測收盤價格,紫色曲線代表股票真實的收盤價格,橫坐標代表時間,縱坐標代表反標準化后的股票價格.
圖6表示用BiLSTM網絡對股票收盤價進行預測,其中模型輸入為股票歷史數據,即最高價(high)、最低價(low)、開盤價(open)、成交量(volume)和調整后的收盤價(adj close),共5個輸入特征.

圖6 BiLSTM
圖7表示用BiLSTM網絡對股票收盤價進行預測,其中模型輸入為股票歷史數據和使用NLTK內置的Vader情感分析器對金融新聞標題文本數據進行情感分析提取出的情感特征,即最高價(high)、最低價(low)、開盤價(open)、成交量(volume)和調整后的收盤價(adj close)和文本情感特征,共6個輸入特征.

圖7 BiLSTM+情感特征
圖8表示用BiLSTM+Attention網絡對股票收盤價進行預測,其中模型輸入為股票歷史數據,即最高價(high)、最低價(low)、開盤價(open)、成交量(volume)和調整后的收盤價(adj close),共5個輸入特征.

圖8 ATT-BiLSTM
圖9表示用BiLSTM+Attention網絡對股票收盤價進行預測,其中模型輸入為股票歷史數據和使用NLTK內置的Vader情感分析器對金融新聞標題文本數據進行情感分析提取出的情感特征,即最高價(high)、最低價(low)、開盤價(open)、成交量(volume)和調整后的收盤價(adj close)和文本情感特征,共6個輸入特征.

圖9 ATT-BiLSTM+情感特征
圖10表示用BiLSTM+Attention網絡對股票收盤價進行預測,其中模型輸入為股票歷史數據和使用NLTK內置的 Vader 情感分析器對金融新聞標題文本數據進行情感分析提取出的情感特征以及運用Word2vec模型最終提取出文本的語義特征,,即最高價(high)、最低價(low)、開盤價(open)、成交量(volume)和調整后的收盤價(adj close)、文本情感特征和文本語義特征,共7個輸入特征.

圖10 ATT-BiLSTM+情感特征+語義特征
通過對圖6~10 的實驗結果觀察對比可以發(fā)現單一的BiLSTM網絡對股票價格的預測最不敏感,圖10是文中新提出的網絡模型,可以發(fā)現預測效果較其他相比預測誤差是最小的,可以較為準確的預測到股票的價格波動趨勢.因此,通過對比試驗結果驗證了文中提出的網絡模型的有效性和可行性.
文中提出的網絡模型最終目標是預測股票未來的收盤價,選用了均方根誤差(RMSE)、平均絕對誤差(MAE)和R2作為模型的評價指標,計算公式如下:
(8)
(9)
(10)

各個模型的評價指標結果對比如表2.
由表2可以看出,7個屬性作為輸入特征進行訓練時,預測結果的準確率最高,也就是我們本文提出的模型,RMSE和MAE 都低于前4種模型,RMSE 和 MAE 越低,說明預測值和真實值越接近,同時可以看出,R2值較于前4個模型更接近于1,R2的值越接近1,說明回歸直線對觀測值的擬合效果越好,并且可以發(fā)現,加入新聞文本的模型預測效果比只用歷史交易數據作為輸入特征的模型預測效果更好.因此可以得出結論,BiLSTM+Attention模型在股票價格預測上有很大的參考價值,并且加入新聞文本數據提取相關特征,可以使預測效果更加準確,文中提出的網絡模型可以為投資者和研究人員提供一定的參考.

表2 網絡模型的預測評價指標對比
為了更好地對股票走勢進行預測,在特征輸入部分考慮到股民的情緒也會對影響到股市的波動,文中Vader情感分析器對文本數據進行情感分析得到情感分數,進行得出股民的情感特征,將情感特征與運用Word2vec模型提取出的文本特征以及股票交易數據特征進行融合,最終使用BiLSTM+Attention模型進行股價預測,通過與只使用股票交易數據作為輸入特征進行股價預測的 BiLSTM和BiLSTM+Attention模型,使用了股票交易數據以及金融新聞標題的情感特征共同作為輸入特征進行股價預測的BiLSTM和BiLSTM+Attention模型的對比實驗可以看出預測效果得到了一定的提升,表明了本文模型的可行性和有效性.
未來的研究中可以增大股票的相關技術指標數據量和影響股票市場波動的文本信息量,將深度學習和機器學習方法結合建立股票預測模型,進一步提升模型的預測效果.