詹 熙,潘志松,黎 維,張艷艷,白 瑋,王彩玲
中國人民解放軍陸軍工程大學 指揮控制工程學院,南京 210007
股票市場被認為是一個國家或地區經濟和金融活動的晴雨表,研究股票預測可以引導投資者進行有益的投資,這不僅可以為個人提供利潤,還能對國民經濟的發展做出貢獻。然而,由于股票市場具有噪聲和波動性的特點,準確地預測股價漲跌通常被認為是時間序列預測中最具挑戰性的問題之一[1]。
近年來,金融領域廣泛應用機器學習模型進行時間序列預測,支持向量回歸(support vector regression,SVR)[2]和人工神經網絡(artificial neural network,ANN)[3]在該領域取得了一定的效果。隨著計算能力的發展,深度學習(deep learning,DL)技術成為了許多問題的最流行的解決方法。隨著深度學習在計算機視覺[4-5]、語音識別[6-7]、自然語言處理[8-9]等領域取得的巨大成功,將深度學習運用在時間序列預測[10-11]等領域也逐漸受到關注。不像傳統的基于統計的模型只能建模數據中的線性關系,深度神經網絡在映射復雜的非線性特征交互方面有著巨大的潛力[12]。在過去的十幾年里,計算能力的增加使得創建更深層次的模型成為可能。與淺層網絡相比,模型層次的加深能提高它們的學習能力。與傳統方法相比,深度學習方法無需任何預先假設就能直接適應數據,在處理只有少量統計信息的時間序列數據時具有顯著優勢,因此,深度學習與金融的結合具有非常廣闊的前景。
長短時記憶(LSTM)網絡和卷積神經網絡(CNN)是當前最廣泛使用的深度學習技術,LSTM模型的特殊結構設計使其可以有效地捕獲序列模式信息,CNN 模型的特性使可以過濾掉輸入數據中的噪聲,提取對最終預測有價值的特征。因此,利用這兩種深度學習技術優點的時間序列模型可以提高金融時間序列的預測性能。已經有研究表明,混合CNN 和LSTM 模型比單獨使用CNN和LSTM更好[13],但缺點是隨著序列長度的增加,它們變得不再魯棒,因為LSTM 難以捕捉長期依賴關系。金融時間序列預測面臨的另一個問題是,在動態多變的環境下,當前存在的方法所提取的特征尺度較為單一,而在金融市場中,股價既會受到短期波動的影響,也會受到中期和長期趨勢的影響,因此,僅使用單時間尺度的特征進行預測,會限制模型生成更加準確的預測結果。
為了解決上述問題,提高金融時間序列的預測精度,本文提出了一種新的融合擴張卷積網絡DCNN和帶注意力機制AT的基于長短期記憶網絡LSTM的混合模型DCNN_LSTM_AT,該模型通過DCNN 和LSTM 從多時間序列中提取多尺度特征,并在此基礎上使用注意力機制使模型聚焦于更重要的特征以提高預測精度。為了證明本文提出的DCNN_LSTM_AT模型的有效性,在來自國內外的多個股指數據集和個股數據集上進行了實驗。實驗結果表明,該模型能夠有效提取和利用來自金融時間序列不同尺度的信息,從而達到提高金融時間序列預測精度的目的。
自回歸(auto-regression,AR)模型是由英國統計學家尤勒(Yule)提出的一個經典的時間序列預測模型,其輸出值與歷史值以及隨機條件線性相關。后來,人們在這一經典模型的基礎上,提出了其他改進的AR模型,如移動平均模型(moving average,MA)和自回歸移動平均模型(auto-regression moving average,ARMA),雖然MA 和ARMA 模型有效地提高了在序列平穩假設條件下模型的預測精度,但由于現實世界中存在的時間序列主要是非平穩的,而上述模型不適用于非平穩時間序列數據,因此Box 等人[14]提出了差分自回歸移動平均模型(auto-regression integrated moving average,ARIMA)。ARIMA通過差分使時間序列數據變得平穩,但差分運算通常會放大時間序列數據中的高頻噪聲,從而影響預測精度,為了緩解這一缺陷,Peter 等人[15]基于ARIMA 提出了具有外部輸入的ARIMA 模型來處理時間序列數據,以達到提高時間序列預測精度的目的。
另一些流行的時間序列預測模型是基于神經網絡的模型,根據通用逼近定理,神經網絡可以以任意精度將任意波雷爾(Borel)可測函數從一個有限維空間逼近到另一個有限維空間[16],因而神經網絡模型在解決非線性問題方面具有很大的優勢。Hamza?ebi 等人[17]提出了一種基于神經網絡的時間序列預測方法,取得了比ARIMA 等模型更好的效果,但精度仍有待提高。Naduvil 等人[18]提出了一種ARIMA 模型與神經網絡相結合的混合時間序列預測模型,該混合模型利用ARIMA 模型對線性數據的優秀擬合能力和神經網絡對非線性數據的優秀擬合能力,使其在時間序列數據上獲得了較好的預測精度。
近年來,隨著計算能力的提升,深度模型逐漸被用于時間序列預測任務中,Connor等人[19]提出了遞歸神經網絡(recurrent neural network,RNN),它利用時間序列的歷史信息來預測未來的結果,但隨著序列的增長,其在訓練的過程中會遇到梯度消失和爆炸的問題。Hochreiter等人[20]提出了一種改進的RNN模型LSTM用于時間序列預測,通過多個門機制緩解梯度消失和爆炸問題,使其成為了時間序列預測中最常見的基礎模型之一。在此基礎上,Yan 等人[21]建立了基于LSTM 深度神經網絡的金融市場時間序列高精度短期預測模型,并與神經網絡、傳統RNN 和改進的LSTM 深度神經網絡進行了比較,實驗結果表明,LSTM 深度神經網絡具有較高的預測精度,能夠有效預測股票市場的時間序列。卷積神經網絡(convolutional neural network,CNN)最初是為計算機視覺任務而設計的網絡結構,CNN 使用卷積運算從原始數據中提取有意義的特征,卷積運算是一種滑動濾波器,用于創建特征映射,旨在捕獲數據不同區域的重復模式,這種特征提取過程為CNN 提供了一種重要的特性,即失真不變性,這意味著無論特征在數據中的位置如何,都可以提取特征。這些特性使得CNN同樣適合處理時序數據。Shen等人[22]利用CNN對金融時間序列進行預測,通過實驗證明了CNN 也可以預測時間序列。Lu等人[23]結合CNN和LSTM提出了一種混合模型對金融時間序列進行預測,相比于單個模型,其預測精度有一定的提升,但該方法主要提取時間序列中相對單一的尺度特征進行預測,而在金融市場中,股價既會受到短期波動的影響,也會受到中期和長期趨勢的影響,因此,僅使用單時間尺度的特征進行預測,會限制模型生成更加準確的預測結果。
與上述方法相比,本文所提方法不使用固定的時間間隔來建模時間序列,相反,該方法使用LSTM 和DCNN從時間序列中提取具有不同時間尺度的特征,并基于注意力機制使模型聚焦于重要特征,通過充分利用金融時間序列中的有效特征,達到提高模型的預測精度的目的。
在具體的介紹DCNN_LSTM_AT模型之前,本文首先形式化地介紹所研究的股指收盤價預測問題,接著系統地介紹一下DCNN_LSTM_AT 模型,最后再介紹DCNN_LSTM_AT模型所包含的各個組成部分。

本文所提出的DCNN_LSTM_AT 模型如圖1 所示,從功能上,該模型可以分為兩部分:第一部分是擴張卷積網DCNN 與LSTM 組成的Encoder,其功能在于提取時間序列不同尺度的信息;第二部分是基于LSTM和注意力機制AT的Decoder,其功能在于有效利用第一部分提取的信息進行預測。從結構上看,該模型可以分為三個部分:第一部分是擴張卷積模塊;第二部分是LSTM編碼模塊;第三部分由注意力機制AT 和LSTM 解碼器構成解碼模塊。
由圖1 可以看出,對于給定的序列數據x1,x2,…,xt-1,xt,其分別被輸入到基于DCNN 的編碼器和基于LSTM的編碼器中,提取來自原始時間序列數據不同時間尺度的隱藏特征H1 和H2,接著H1 和H2 被合并為H,以備后續基于注意力機制和LSTM 的解碼過程使用。接下來本文從結構上詳細介紹DCNN_LSTM_AT模型。

圖1 DCNN_LSTM_AT模型的整體結構圖Fig.1 Overall structure of DCNN_LSTM_AT model
2.3.1 擴張卷積神經網絡模塊(DCNN)
DCNN模塊是由多個擴張卷積網絡堆疊而成的,擴張卷積是文獻[24]中提出的卷積模塊。有研究表明,在處理時間序列預測任務時,使用了池化操作的CNN 會降低預測的性能[25],這是因為在池化操作的過程中,雖然擴大了對于原始輸入序列數據的感受野,但與此同時也會導致相當一部分特征的損失。而對于普通的CNN來說,倘若其不使用池化層,其想要達到感受野大小與使用了池化層的CNN 的相同,需要更多的卷積層或者擴大卷積核,這樣勢必會造成計算負擔,同時前者也將更容易導致梯度消失或梯度爆炸等問題。因此為了能夠增加感受野的同時不損失信息,擴張卷積是一個很好的選擇。擴張卷積通過增加擴張率來擴大感受野,感受野隨著擴張率的增加而增大的示意圖如圖2所示。

圖2 擴張卷積在不同卷積率下的示意圖Fig.2 Schematic diagram of dilated convolution at different convolution rates
本文中使用的DCNN模塊的具體結構如圖3所示,由圖3可以看出DCNN由K個殘差塊連接而成,其中每個殘差塊都包括了一個擴張卷積層和一個1×1卷積層,在每個殘差塊中,加入了Batch Norm層,目的是為了加快模型的收斂速度,此外還使用了殘差連接和跳躍連接;在網絡構建過程中,本文通過堆疊殘差塊和增加擴張卷積的擴張率使得模型逐漸擁有更大的感受野,其中對于第K個殘差塊而言,其擴張率為2K-1,這樣每個殘差塊將能提取不同時間尺度的序列特征,圖3所示的模型最終將提取K條具有不同時間尺度的序列特征,最后合并成H1。

圖3 擴張卷積網絡模塊的具體結構圖Fig.3 Specific structure diagram of dilated convolutional network module
2.3.2 LSTM編碼模塊
與傳統的人工神經網絡相比,遞歸神經網絡可以利用時間序列數據的歷史信息來構造特殊的網絡結構。RNN 能夠根據當前和過去的輸入生成輸出數據。然而,當使用梯度下降算法來訓練RNN 網絡時,容易出現梯度消失或梯度爆炸現象[26]。序列越長,可能性越大,這使得很難對RNN 進行長時間間隔的有效訓練。為了解決這個問題,人們提出了遞歸神經網絡的其他變體,以便容易地捕獲長期依賴性,如LSTM和GRU。
LSTM 是學習原始時間序列數據的長時間相關性特征的一種流行的RNN變體,LSTM的單元結構如圖4所示。

圖4 LSTM Cell內部結構圖Fig.4 Internal structure diagram of LSTM Cell
LSTM 單元使用3 個門:遺忘門、輸入門和輸出門,來控制隱藏層存儲的歷史信息,LSTM 單元在時間點t的公式如下所示:

本文結合LSTM 對序列數據建模和捕獲長期依賴性的優點,使用LSTM為基本單元構成的編碼器提取輸入序列的整體特征。
2.3.3 注意力機制和LSTM解碼器構成的解碼模塊
注意力機制是從認知心理學中引入的一種模擬人腦注意的模型,從概念上講,注意力機制在原理上與人類的視覺注意機制非常相似,是一種從海量信息中快速鎖定關鍵信息,消除無用信息,更高效地完成任務的方法。如圖5所示,注意力機制主要通過計算輸入和目標狀態之間的相似性來完成上述功能,相似度越高,當前輸入的權重就越大。在圖5 中,Z是目標狀態,ht是LSTM單元的隱藏狀態,at定義為每個輸出應考慮多少輸入狀態的權重。Match是一個函數,用于計算向量Z和ht之間的相似性,Match可以使用任何理論上計算相似性的方法,例如余弦相似性,或矩陣變換at=ht*W*Z,或以ht作為輸入,at作為輸出的簡單神經網絡。

圖5 注意力機制示意圖Fig.5 Schematic diagram of attention mechanism
具體的,本文所使用的注意力機制如圖1中的綠色區域所示,在本文所使用的注意力機制中,通過將擴張卷積網絡模塊所提取的多尺度特征H1 同基于LSTM的編碼器所提取的整體特征H2 合并成H后,將H同基于LSTM 的解碼器第i個單元所輸出的第i條特征Si,i=1,2,…,k進行乘積運算得到重要性得分Score,接著對得到的Score 使用Softmax 函數進行歸一化得到歸一化后的重要性權重α,然后令α與H相乘之后按列求和,再將得到的結果同Si合并,一同送入到全連接層中,最后輸出預測結果,上述過程的公式化描述如下所示:

其中,式(9)中的Concat代表合并操作,sum(αH,dim=1)代表對αH在維度1上進行求和,式(10)中的σ、Wi和bi分別代表全連接層的激活函數、權重向量以及偏置值。
為了評估所提模型的性能,本文分別在滬深300、標普500 以及富時100 等指數數據集,以及茅臺、Apple 和中信銀行等國內外上市公司的個股數據集上進行了實驗,其中股指數據集包含了截止到2021 年5 月10 日為止的2 500 個交易日的數據,個股數據集包含了截止到2021年5月28日為止的2 500個交易日的數據,此外,本文選取了開盤價、最高價、最低價、交易量和收盤價這5個指標作為模型的輸入特征,并使用包含這5個特征的歷史數據來預測未來的收盤價。
為了評估本文所提出的模型,將所有數據集分為訓練集和測試集,其中訓練集包含2 200個交易日的數據,測試集包含300 個交易日的數據。不同數據集劃分情況如表1所示。

表1 不同數據集中訓練集和測試集的時間范圍Table 1 Time range of train and test sets in different datasets
需要說明的是,由于各個國家的節假日不相同,這會導致股市的開市時間不一致,因此相同數量交易日的間隔日期也不一樣。時間序列劃分被為訓練集和測試集之后,將執行以下預處理操作:首先,使用滑動窗口法將時間序列分割為一個個的訓練樣本以供模型訓練,這個過程通過滑動一個固定大小的窗口,滑動窗移動的過程中在每個位置產生一個輸入-輸出樣本;其次,使用MinMax歸一化法,將劃窗后訓練集中的每個輸入-輸出樣本對的值映射到0 和1 之間,這樣有助于加快網絡的收斂速度。
如圖6展示了滑動窗口確定輸入-輸出樣本的過程,這里取4作為輸出窗口的長度,也就是預測范圍,取5作為輸入窗口的長度,這樣截取下來的輸入輸出窗口對就成了一個帶標簽的樣本對,輸出窗口中的值為標簽,輸入窗口中的值為輸入特征。

圖6 樣本滑窗示意圖Fig.6 Schematic diagram of sample sliding window
本文使用了3 個評價指標來評估本文所提出的模型,分別是平均絕對誤差(mean absolute error,MAE)和平均絕對百分比誤差(mean absolute percentage error,MAPE)和決定系數(coefficient of determination,R2),其中MAPE因其在尺度獨立性上的優勢,是預測精度最廣泛使用的指標之一[25];MAE 是相對較經典的一種度量指標,該指標對于預測的離群值比較敏感,能夠有效衡量模型的穩定性;R2 反映了因變量的全部變異能通過回歸關系被自變量解釋的比例,是回歸任務中常見的一種評價指標。上述3種指標的公式如下所示:

DCNN_LSTM_AT 模型在訓練過程中,batch_size、殘差塊的數量以及學習率分別被設置為64、8 以及0.001,本文選擇使用Adam優化器對網絡參數進行優化和均方誤差損失函數訓練模型,均方誤差損失函數公式如下所示:

為了驗證本文所提模型DCNN_LSTM_AT的性能,本文在滬深300、標普500 以及富時100 等股指數據集和茅臺、Apple以及中信銀行等個股數據集上測試了DCNN_LSTM_AT模型,并與LSTM、ESN[27]、CNN、Transformer[28]、LSTNet[29]等基準模型在上述6 個金融時間序列數據集上進行了對比實驗,其中LSTM、ESN、CNN等模型的參數設置參考了文獻[25]中總結的各個模型在相同數據集上表現最好的參數設置,Transformer 和LSTNet 模型的參數設置分別參考了文獻[28]和[29]中的設置,上述基準模型的訓練輪數、學習率等超參數的設置均與DCNN_LSTM_AT 模型的設置保持一致。各個模型的對比實驗效果如圖7~12 所示,相關評價指標的詳細結果見表2和表3所示。從預測效果的對比圖和評價指標可以看出,本文所提模型DCNN_LSTM_AT 的表現在6個數據集中均超過了其他方法,整體上預測誤差最小、預測值與真實值最為接近,這表明本文所提方法有效提高了金融時間序列的預測精度,且DCNN_LSTM_AT模型在金融時間序列領域具有一定的可擴展性。

表2 DCNN_LSTM_AT與其他基準模型在股指數據集上的表現Table 2 Performance of DCNN_LSTM_AT and other benchmark models on stock index datasets

表3 DCNN_LSTM_AT與其他基準模型在個股數據集上的表現Table 3 Performance of DCNN_LSTM_AT and other benchmark models on datasets of individual stocks

圖7 在滬深300數據集上的實驗結果Fig.7 Experimental results on CSI 300 dataset
為了驗證本文提出的模型DCNN_LSTM_AT 所使用的擴張卷積神經網絡的有效性,本文構造了LSTM_AT模型,與DCNN_LSTM_AT 模型的不同之處在于沒有使用DCNN 提取時間序列的多尺度特征;為了驗證所提出模型使用的注意力機制的有效性,本文構造了DCNN_LSTM模型,與DCNN_LSTM_AT的不同之處在于,其沒有使用注意力機制;為了驗證本文所提出的使用不同卷積率的擴張卷積的有效性,本文構造了模型CNN_LSTM_AT,其與DCNN_LSTM_AT的不同之處在于其在每個殘差塊中使用了同一大小的卷積核。隨后本文分別比較了DCNN_LSTM_AT 與其他三個模型在滬深300、標普500 以及富時100 股指數據集上的預測表現,在實驗過程中,所有對比模型的超參數均與DCNN_LSTM_AT模型的設置保持一致,最終的實驗結果如圖13~15所示。

圖8 在標普500數據集上的實驗結果Fig.8 Experimental results on S&P 500 dataset

圖9 在富時100數據集上的結果Fig.9 Experimental results on FTSE 100 dataset

圖10 在茅臺數據集上的實驗結果Fig.10 Experimental results on Maotai dataset

圖11 在Apple數據集上的實驗結果Fig.11 Experimental results on Apple dataset

圖12 在中信銀行數據集上的實驗結果Fig.12 Experimental results on CITIC Bank dataset

圖13 構造模型在滬深300數據集上的實驗結果Fig.13 Experimental results of constructed model on CSI 300 dataset

圖14 構造模型在標普500數據集上的實驗結果Fig.14 Experimental results of constructed model on S&P 500 dataset

圖15 構造模型在富時100數據集上的實驗結果Fig.15 Experimental results of constructed model on FTSE 100 dataset
表4給出了上述4個模型在滬深300、標普500以及富時100 等3 個股指數據集上評價指標的詳細結果。根據實驗結果可以發現:相比于前文使用單一模型對時間序列進行預測,混合的模型使用有效提高了模型的預測表現,這與前人的研究結論一致;相比于未使用擴張卷積神經網絡的對比方法而言,擴張卷積神經網絡的使用的確有效提高了模型的預測表現;使用了注意力機制的模型較未使用注意力機制的模型擁有更高的預測精度,且提升效果較為明顯,這表明雖然使用擴張卷積神經網絡有利于提取多時間尺度的序列信息,但是其提取的信息有一定的冗余性,注意力機制的使用能讓模型去除冗余信息和提取有效信息,從而提高模型的預測精度。

表4 DCNN_LSTM_AT與本文構造的基準模型在股指數據集上的表現Table 4 Performance of DCNN_LSTM_AT and benchmark model constructed in this paper on stock index datasets
為了提高金融時間序列的預測精度,本文設計了一種新的時間序列預測模型DCNN_LSTM_AT。該模型先通過使用基于擴張卷積和LSTM 的編碼器提取原始序列數據中不同尺度的有效信息,再通過使用帶注意力機制的LSTM解碼器有效利用提取的信息進行預測,從而達到提高模型的預測精度的目的,在多個股指數據集和個股數據集上的實驗結果表明,該模型具有較好的預測精度和穩定性。由于本文模型的輸入數據只考慮了歷史數據中的開盤價、收盤價、交易量、交易金額、最高價、最低價等特征,而金融市場的表現實際上會受到很多因素的影響,故本文模型的性能還有進一步提升的空間。未來的工作將從這一方面入手,考慮將更多可能影響股票指數的影響因素如市場上股民的情緒、不同股市股指的表現,以及個股對應企業的財務指標等特征加入到模型的預測中,從而提高模型的精度。