許飛飛,胡 月,汪召兵
(浙江科技學院 理學院,杭州 310023)
股票市場預測一直是量化金融投資的一個重要研究課題,然而股票市場是一個十分復雜的系統(tǒng),其非線性、不平穩(wěn)性、復雜性等特點導致準確預測股票價格十分困難。來自不同領(lǐng)域的研究人員對金融時間序列數(shù)據(jù)進行了大量研究,希望能從海量數(shù)據(jù)中找到規(guī)律,從而對股票價格進行精確預測。隨著人工智能技術(shù)的不斷深入,機器學習和深度學習等技術(shù)被引入金融預測。深度學習的非參數(shù)性及非線性能夠為擬合復雜的、動態(tài)的、不確定性的股票市場提供很大幫助,成了當下熱門的研究方法。張晨希等[1]利用支持向量機(supper vector machine,SVM)對上市公司股票未來趨勢進行預測,結(jié)果發(fā)現(xiàn)該模型預測精度高于傳統(tǒng)神經(jīng)網(wǎng)絡(luò)分類方法。Akita等[2]對長短期記憶網(wǎng)絡(luò)(long-short-term memory,LSTM)和傳統(tǒng)神經(jīng)網(wǎng)絡(luò)做比較,發(fā)現(xiàn)LSTM對股票序列數(shù)據(jù)具有良好的擬合性能。彭燕等[3]在LSTM網(wǎng)絡(luò)的基礎(chǔ)上,在數(shù)據(jù)預處理時進行小波降噪,預測效果得到提升。史建楠等[4]提出了基于動態(tài)模態(tài)分解的LSTM股價預測方法,此方法較傳統(tǒng)預測方法在特定市場背景下價格預測精度更高。趙紅蕊等[5]使用LSTM提取數(shù)據(jù)時序特征,并利用卷積神經(jīng)網(wǎng)絡(luò)(convolutional neural network,CNN)挖掘深層特征,發(fā)現(xiàn)該聯(lián)合模型特征提取性能優(yōu)于單一模型。為了篩選影響股市變化規(guī)律的相關(guān)特征,Rahman等[6-8]從媒體新聞中提取投資者情緒進行建模預測,發(fā)現(xiàn)將投資者情緒量化可以幫助模型更好地預測金融數(shù)據(jù)變化趨勢。
由于LSTM網(wǎng)絡(luò)無法深層刻畫股市復雜的變化規(guī)律,研究人員開始聚焦生成式對抗網(wǎng)絡(luò)(generative adversarial networks,GAN)的應(yīng)用。GAN最初被用于圖像生成、目標檢測等計算機視覺[9]領(lǐng)域。Hensman等[10]隨后提出了條件對抗網(wǎng)絡(luò),即在GAN中添加約束條件,從而有效地避免模型訓練崩潰。羅會蘭等[11]結(jié)合部分卷積網(wǎng)絡(luò)與GAN提出了一種圖像修復模型,提高了圖像修復質(zhì)量。近年來GAN在股價預測中也得到了應(yīng)用。Zhou等[12]首次將GAN應(yīng)用到高頻量化股票市場中,通過對高頻股票市場股價趨勢的預測,GAN的預測效果最好,從而驗證了GAN網(wǎng)絡(luò)的優(yōu)越性。Zhang等[13]使用多層感知機作為GAN的判別器對標準普爾500指數(shù)進行預測,結(jié)果證明GAN模型的預測效果優(yōu)于其他模型。雖然GAN的博弈對抗機制使得股價預測準確率得到進一步提升,但是模型本身還存在訓練不穩(wěn)定、不易收斂等問題,并且在特征工程上并沒有考慮到股民情緒對股票價格的影響。
針對上述問題,本研究提出了一種基于金融雙向編碼器表征和瓦瑟斯坦距離的生成式對抗網(wǎng)絡(luò)(financial bidirectional encoder representation from transformers and Wasserstein generative adversarial networks,FWGAN)股價預測模型。本模型從股民評論、交易數(shù)據(jù)和技術(shù)指標中動態(tài)捕捉股票市場的潛在規(guī)律,使用自然語言處理技術(shù)中的預訓練模型提取文本數(shù)據(jù)情感特征,并通過優(yōu)化分布度量距離的瓦瑟斯坦距離生成式對抗網(wǎng)絡(luò)(Wassersteingenerative adversarial networks,WGAN)進行博弈對抗來生成真實數(shù)據(jù),在個股數(shù)據(jù)集進行對比試驗,驗證模型的有效性。
循環(huán)神經(jīng)網(wǎng)絡(luò)(recurrent neural network,RNN)是深度神經(jīng)網(wǎng)絡(luò)的一種,它通過對過往信息進行不同權(quán)重的分配來實現(xiàn)記憶功能,因其能夠較好地處理長距離依賴關(guān)系而被廣泛用于時間序列預測任務(wù)中。傳統(tǒng)RNN在反向傳播過程中容易產(chǎn)生“梯度爆炸”和“梯度消失”問題,針對此問題,Hochreiter等[14]在1997年提出了LSTM網(wǎng)絡(luò),引入門控方法來避免輸入和輸出之間的權(quán)重沖突,并采用特定的學習機制來遺忘和更新信息,這更有助于長距離的信息傳輸。由于LSTM有效地解決了RNN難以收斂的問題,因此現(xiàn)已被廣泛用于處理時間序列數(shù)據(jù),如命名實體識別、機器翻譯等。
LSTM網(wǎng)絡(luò)通過采用門控機制賦予神經(jīng)單元衡量信息價值的能力。門控機制的3個“門”分別為輸入門、輸出門和遺忘門,其表達式如下:
(1)
式(1)中:ft為遺忘門輸出;δ為sigmoid函數(shù);Uf、Ui、Uu、Uo和Wf、Wi、Wu、Wo均為權(quán)重矩陣;xt為當前時刻輸入;ht-1為上一時刻隱藏狀態(tài);bf、bi、bu、bo均為偏置系數(shù);it為輸入門輸出;ut為候選狀態(tài);ct為內(nèi)部狀態(tài);ct-1為上一時刻狀態(tài);ot為輸出門輸出;ht為外部狀態(tài)。首先利用ht-1與xt來計算ft、it和ot這3個門輸出及ut的值;然后結(jié)合遺忘門ft和輸入門it更新內(nèi)部狀態(tài)ct,這是LSTM網(wǎng)絡(luò)結(jié)構(gòu)的核心部分;最后通過輸出門ot,得到當前時刻的外部狀態(tài)ht。通過以上計算,LSTM可以有效利用輸入數(shù)據(jù)使其具備長序列的記憶功能。
CNN也是深度神經(jīng)網(wǎng)絡(luò)的一種,最早被應(yīng)用于圖像處理中,近些年開始被用于自然語言序列處理任務(wù)中,并取得了較好的效果。例如,利用膨脹卷積網(wǎng)絡(luò)進行命名實體識別任務(wù)。常見的CNN網(wǎng)絡(luò)是由卷積層、池化層和全連接層構(gòu)成。卷積層通過卷積運算來提取數(shù)據(jù)的特征,池化層通過特征選擇與過濾來降低數(shù)據(jù)維度,全連接層是傳統(tǒng)的前饋神經(jīng)網(wǎng)絡(luò)中的隱藏層,一般是和輸出層進行連接,實現(xiàn)最后的分類。
GAN是由Goodfellow等[15]在2014年受博弈論中的二人零和博弈最終達到納什均衡思想的啟發(fā)而提出的一種生成式神經(jīng)網(wǎng)絡(luò)。其網(wǎng)路結(jié)構(gòu)由生成器(generative model)和判別器(discriminative model)兩部分組成。生成器的作用是通過對真實數(shù)據(jù)的學習訓練從而產(chǎn)生逼近真實樣本數(shù)據(jù)的分布;判別器的作用是分辨輸入數(shù)據(jù)是真實數(shù)據(jù)還是生成器的輸出數(shù)據(jù)。生成器想要產(chǎn)生更接近真實的數(shù)據(jù),判別器想要更完美地區(qū)分真實數(shù)據(jù)和生成的數(shù)據(jù)。由此兩個網(wǎng)絡(luò)在對抗中彼此互相提高,在提高中又相互對抗,最終到達納什均衡。GAN網(wǎng)絡(luò)一提出便引起轟動,受到工業(yè)界和學術(shù)界的重視,并在圖像處理、語音識別等領(lǐng)域得到廣泛應(yīng)用,近年也開始被用于金融領(lǐng)域。GAN的基本結(jié)構(gòu)如圖1所示。
圖1 GAN的基本結(jié)構(gòu)
圖1中隨機噪聲一般符合均勻分布或高斯分布。輸入數(shù)據(jù)從高斯分布中采樣,通過生成器會輸出生成的“偽”數(shù)據(jù),隨后將真實數(shù)據(jù)和生成數(shù)據(jù)一同送入判別器,經(jīng)過sigmoid函數(shù),最后輸出判別類型。生成器和判別器不斷博弈,提高各自的網(wǎng)絡(luò)特征提取性能。當生成器通過訓練完全掌握到真實數(shù)據(jù)的分布時,判別器已無法精確辨認數(shù)據(jù)的來源,這樣就達到用生成數(shù)據(jù)來代替原始數(shù)據(jù)的效果。GAN的目標函數(shù)如下:
(2)
式(2)中:V為目標函數(shù);E為期望;D(x)為判別器判斷真實數(shù)據(jù)是否真實的概率,判別器的能力越強,D(x)越大,則目標函數(shù)值越大;D(G(z))為判別器判斷生成的數(shù)據(jù)是否真實的概率,生成器G(z)不斷接近真實樣本數(shù)據(jù)分布,D(G(z))會變大,則目標函數(shù)則會變小。這樣一個極大值、極小值的博弈交替循環(huán)來提高生成器和判別器的能力,最終生成器產(chǎn)生的數(shù)據(jù)與真實數(shù)據(jù)無限接近,達到納什均衡。
GAN在最優(yōu)判別器下生成器的損失值存在梯度不穩(wěn)定、梯度消失,或準確性與多樣性懲罰不平衡,從而導致模型崩潰的問題。產(chǎn)生這些問題的主要原因是等價優(yōu)化的距離度量方式不合理。為了有效地解決這些問題,Gulrajani等[16]于2017年首次提出了WGAN,用Wasserstein距離代替GAN計算損失值散度,將其轉(zhuǎn)化為一個線性規(guī)劃問題來更好地度量2個分布之間的距離。Wasserstein距離又稱為地動(earth-mover,EM)距離,常用于衡量2個分布之間的距離,其數(shù)學表達式為
(3)
L=Ex~Prfw(x)-Ez~Pgfw(g(z))。
(4)
式(4)中:fw(x)和fw(g(z))為滿足利普希茨限制的函數(shù),將所需優(yōu)化目標函數(shù)轉(zhuǎn)化為對偶問題進行求解。WGAN通過最小化距離L使生成數(shù)據(jù)與真實數(shù)據(jù)之間的距離縮小,可以高效地解決傳統(tǒng)GAN存在的多樣性不足和模型崩潰等問題。
預訓練技術(shù)通過預先設(shè)計網(wǎng)絡(luò)結(jié)構(gòu)并將編碼后的數(shù)據(jù)輸入網(wǎng)絡(luò)結(jié)構(gòu)中進行訓練來提高模型的泛化能力[17]。預訓練技術(shù)最初被應(yīng)用于圖像領(lǐng)域,因其效果良好,開始應(yīng)用于自然語言處理任務(wù)中。預訓練后的模型可以根據(jù)下游具體任務(wù)進行微調(diào),從而避免從零開始搭建模型,并且結(jié)果證實預訓練技術(shù)可以顯著提高模型性能。雙向編碼器表征(bidirectional encoder representation from transformers,BERT)[18]模型是近年提出來的一種預訓練語言模型,它是由轉(zhuǎn)換器(Transformer)[19]的編碼器堆疊構(gòu)成。Transformer是由用于接收文本的編碼器和進行結(jié)果預測的解碼器組成,并且由于在網(wǎng)絡(luò)中融入了注意力機制,所以可以更好地進行文本上下文關(guān)系推理。傳統(tǒng)詞向量技術(shù)(word to vector,Word2Vec)是一種靜態(tài)的方式,無法充分表征上下文間語義信息,有一定不足。而BERT通過采用注意力機制可以學習到上下文中的潛在聯(lián)系,從而提高詞向量模型的泛化能力,可以充分表征詞意和句意。BERT模型結(jié)構(gòu)如圖2所示。
圖2 BERT模型結(jié)構(gòu)
BERT是針對通用文本語料進行大規(guī)模訓練的預訓練模型,所以針對特定下游任務(wù)如金融領(lǐng)域上的訓練效果并不理想,隨后又有研究者將BERT應(yīng)用于金融領(lǐng)域,提出了金融雙向編碼器表征模型(financial bidirectional encoder representation from transformers,FinBERT)[20]。FinBERT是在大量的金融財經(jīng)類新聞、上市公司公告和金融類百科詞條文本中預訓練得到的語言模型,相比BERT,在金融數(shù)據(jù)集下游任務(wù)的預測準確率中大大提升。本文采用的股民評論是含有大量的金融專業(yè)術(shù)語的金融文本數(shù)據(jù),且上下文間聯(lián)系緊密,因此使用FinBERT預訓練模型可以有效提取股民評論數(shù)據(jù)的情感特征。
為了進一步提升股價預測模型的性能,本研究使用優(yōu)化分布度量距離的WGAN進行對抗博弈,以LSTM為生成器,CNN為判別器,并結(jié)合自然語言處理技術(shù)構(gòu)建多特征結(jié)合的生成式對抗網(wǎng)絡(luò)模型進行股價預測。首先爬取股民評論數(shù)據(jù),并進行數(shù)據(jù)清洗,人工標注部分數(shù)據(jù)用于FinBERT預訓練模型的微調(diào)訓練;其次通過微調(diào)的FinBERT模型將由評論數(shù)據(jù)轉(zhuǎn)化而來的情緒值作為股價預測的特征之一;最后將股票交易數(shù)據(jù)、技術(shù)指標數(shù)據(jù)和獲得的情緒值3個維度的特征輸入WGAN進行訓練。FWGAN模型結(jié)構(gòu)如圖3所示。
圖3 FWGAN模型結(jié)構(gòu)
為了提高模型預測的準確率,采用的數(shù)據(jù)集包含股票交易數(shù)據(jù)、技術(shù)指標數(shù)據(jù)及股評信息3部分。股票交易數(shù)據(jù)選用2010年7月1日至2020年7月1日山西汾酒開盤價、最高價、最低價、收盤價、成交量、成交額等歷史交易數(shù)據(jù)和與山西汾酒同屬釀酒板塊具有聯(lián)動關(guān)系的貴州茅臺、五糧液、瀘州老窖的收盤價[21]。技術(shù)指標數(shù)據(jù)包括移動平均線、布林線、指數(shù)平滑移動平均線(moving average convergence and divergence,MACD)和經(jīng)過傅里葉變換的趨勢線。股票評論信息來自東方財富網(wǎng)股吧中關(guān)于山西汾酒股票每日的股評,選取當日閱讀量較高的股評,共爬取70 794條股評數(shù)據(jù)。將爬取的股評信息經(jīng)過處理之后,轉(zhuǎn)化成0~1之間的情感值,計算出當日情感均值。將數(shù)據(jù)集分為70%的訓練集和30%的測試集,訓練集用于模型訓練,測試集用于模型測試。
從東方財富網(wǎng)爬取的原始股票評論數(shù)據(jù)進行數(shù)據(jù)清洗并除噪得到高質(zhì)量數(shù)據(jù),通過微調(diào)的FinBERT模型將文本數(shù)據(jù)轉(zhuǎn)化為0~1之間的情緒值,隨機選取交易日開盤一小時內(nèi)的部分評論文本,其情緒值見表1。
表1 股民評論情緒分析
傅里葉變換[22]是通過特殊正交基實現(xiàn)從時域到頻域的變換,傅里葉原理揭示任何一個連續(xù)時序或信號,都可以表示為不同頻率的正弦波信號的無限疊加,其表達式為
(5)
式(5)中:g(t)為時域函數(shù),通過傅里葉變換提取局部和整體趨勢后,創(chuàng)建真實股票運動的近似值,并經(jīng)過降噪作為模型的輸入可以使模型預測更準確。使用分別具有3、6、9個成分進行變換來提取短期和長期趨勢。傅里葉變換趨勢如圖4所示。由圖4可知,使用的傅里葉變換成分越多,函數(shù)值越接近實際值。這表明傅里葉變換可以有效提取股價趨勢,從而幫助模型進行預測。
圖4 傅里葉變換趨勢
為了評估FWGAN模型對股價的預測性能,使用平均絕對誤差(mean absolute error,MAE)、平均絕對百分比誤差(mean absolute percentage error,MAPE)、均方誤差(mean square error,MSE)和均方根誤差(root mean square error,RMSE)作為模型評價指標,計算公式如下:
(6)
試驗中計算機操作系統(tǒng)為64位Windows10,處理器為英特爾i5 2.4 GHz,運行內(nèi)存為16 GB,使用框架為Tensorflow1.14,編程語言為Python3.6.5,優(yōu)化器的學習率為0.000 14。FWGAN訓練損失函數(shù)變化如圖5所示。
圖5 FWGAN訓練損失函數(shù)變化
從圖5中可以看出,隨著迭代訓練次數(shù)的增加,損失值減小并趨于穩(wěn)定,生成樣本和真實樣本之間的差距逐漸變小。
為了驗證我們提出的多特征結(jié)合的生成式對抗網(wǎng)絡(luò)股價預測模型的性能,對山西汾酒股票每日收盤價進行預測,用前5日的指標數(shù)據(jù)來預測第6日收盤價并與LSTM、門控神經(jīng)網(wǎng)絡(luò)(gated recurrent units,GRU)和GAN進行對比,觀察4種模型在訓練集和測試集上的表現(xiàn)。各模型的試驗結(jié)果指標對比見表2。
表2 各模型的試驗結(jié)果指標對比
表2中的試驗結(jié)果表明,對比LSTM模型與GRU模型,GRU模型在訓練數(shù)據(jù)和測試數(shù)據(jù)上的MSE、RMSE、MAE、MAPE的值更小,說明GRU模型的預測值更接近真實值,預測性能更好。這主要是因為GRU網(wǎng)絡(luò)是將LSTM網(wǎng)絡(luò)中的更新門和遺忘門合并為重置門,將需要進行訓練的參數(shù)變小從而防止過擬合,提高預測準確率。因此相比LSTM模型,GRU模型更適合股票時間序列數(shù)據(jù)。相比LSTM模型和GRU模型,GAN模型在訓練集和測試集上的RMSE值均有所下降,說明經(jīng)過生成器和判別器的博弈對抗,模型能較好地學習真實數(shù)據(jù)分布,更好地進行股票價格預測。FWGAN作為本研究提出的新模型,在融合了歷史數(shù)據(jù)、技術(shù)指標和情緒值指標之后,在測試集上的MSE、RMSE和MAE均達到最小,驗證了使用Wassertein距離代替GAN計算損失值散度之后,預測能力更強,從而也證明了本研究提出的模型的有效性。為了更清楚地對比FWGAN模型與各模型之間的預測效果差異,將不同模型在測試集上的預測結(jié)果進行了可視化處理,如圖6~9所示。
圖6 LSTM模型預測結(jié)果
從圖6中可以看出,LSTM模型的RMSE值為5.129,該模型的整體預測值低于實際值,預測值與真實值之間的偏差較大,模型可能存在過擬合現(xiàn)象。圖7 GRU模型的RMSE值為4.787,相比LSTM模型,GRU模型的預測值與實際值差距變小,預測性能上升,但GRU的預測值在整體上偏高于實際值。GAN模型的RMSE值為3.950,預測誤差值比LSTM和GRU更小,但是從圖8中可以發(fā)現(xiàn),GAN模型對股票上升趨勢的捕捉能力不夠強,當股價大幅度上升時,預測值與真實值之間仍有較大的差距。從圖9中可以看出,經(jīng)過優(yōu)化的FWGAN模型在測試集上RMSE值為2.572,其預測值與真實值間的差距最小;同時模型能較好地捕捉股價上升、下降地趨勢信息,預測性能最好。其原因如下:1) GAN網(wǎng)絡(luò)的對抗博弈機制能很好地捕捉原始數(shù)據(jù)分布信息,使生成的數(shù)據(jù)能很好地擬合原始分布;2) Wassertein距離作為一種新的距離衡量方式,能有效地解決等價距離不合理的問題,從而有利于模型訓練中的參數(shù)更新。
圖7 GRU模型預測結(jié)果
圖8 GAN模型預測結(jié)果
圖9 FWGAN模型預測結(jié)果
本研究提出了基于生成式對抗網(wǎng)絡(luò)的股價預測方法,首先運用自然語言處理中的FinBERT預訓練模型進行股民情感分析,將股民情緒值轉(zhuǎn)化為0~1之間的數(shù)值;然后將股民情緒值結(jié)合股票交易數(shù)據(jù)和技術(shù)指標數(shù)據(jù)作為模型的輸入,采用以LSTM為生成器器、CNN為判別器并優(yōu)化度量距離WGAN網(wǎng)絡(luò)進行股價預測;最后采用山西汾酒的十年股票數(shù)據(jù)進行試驗,相比LSTM、GRU和GAN模型,優(yōu)化后的模型預測性能得到了提升。本研究采用的模型雖然具有較好的預測性能,但是對股價數(shù)據(jù)具有較強的依賴性,下一步我們將考慮在醫(yī)療、科技其他板塊股票數(shù)據(jù)上進行試驗,在特征工程上考慮加入公司財務(wù)指標數(shù)據(jù)等基本面指標數(shù)據(jù),并結(jié)合更先進的自然語言處理技術(shù),提取細粒度的情感值以幫助模型進行預測。