劉玉玲,趙國龍,鄒自然,吳升婷
(1.湖南大學信息科學與工程學院,湖南長沙 410082;2.湖南大學工商管理學院,湖南長沙 410082)
隨著深度學習技術的不斷發(fā)展,許多學者提出了新的網(wǎng)絡模型算法來完成序列數(shù)據(jù)生成任務,其中以Goodfellow 提出的生成對抗網(wǎng)絡(GAN)最為引人注目[1],該算法在圖像生成方面取得顯著成果[2].金融領域相關學者也開始嘗試利用GAN 生成股票數(shù)據(jù),并取得了初步成果.但是這些方法忽略了投資者情感對交易市場波動的影響.為了解決上述問題,本文采用基于詞典的情感分析方法量化投資者情感傾向;然后構建用于股票價格預測的生成對抗網(wǎng)絡框架,將量化的情感指數(shù)作為數(shù)據(jù)特征的一部分來訓練網(wǎng)絡;最后使用GAN 的股票價格預測框架對上證A 股指數(shù)進行實證檢驗,驗證該方法的有效性.
本節(jié)首先介紹基于詞典的情感分析方法,然后簡要介紹面向股票預測的GAN模型.
基于詞典的情感分析方法主要利用情感詞典庫來統(tǒng)計待分析文本中正、負情感詞的總權值,從而判斷句子情感極性,相比于基于機器學習的情感分析方法,該方法有著很好的可解釋性.目前國內外開源情感詞典主要包括:知網(wǎng)(Hownet)[3]、大連理工大學中文情感詞匯本體庫(DLUTSD)[4]、臺灣大學中文情感極性詞典(NTUSD)[5]和普林斯頓大學的WordNet[6].通用領域的情感詞匯只能表達一般心理情感,不包括“看漲/看跌”情感詞,因此金融領域通常會通過加入領域詞典來進行情感分析.例如:Li等人通過融合Harvard 心理情感詞典和Loughran–McDonald 金融情感詞典,探索財經(jīng)新聞對股票價格上漲的影響[7].隨后,UhrP等人將詞匯量與情感詞典資源相結合,增加了人類對常用詞匯量的分析方法[8].Tan 等人隨后針對財經(jīng)新聞文章,提出了基于規(guī)則的情感分析方法.具體為:首先用先驗極性詞典把新聞劃分為不同類別(正面和負面),然后用句子極性比率(正面/負面)來計算整篇文章情感值,在二分類情況下,能達到75.6% 的F值[9].Day 和Lee根據(jù)4種數(shù)據(jù)集(NowNews、Apple-Daily、LTN 和MoneyDJ)構建情感詞庫,并采用Suffix Array 算法為情感詞庫擴充新詞,針對不同新聞提供商提供的文本信息進行情感分析.實驗結果表明,使用金融領域詞典庫的情感分析方法,能使投資者獲得較高投資回報率[10].Zhang 等人在基本情感詞典庫、程度副詞詞庫、表情符號詞庫等6 種詞庫的基礎上構建了微博情感詞庫,并基于情感詞庫對微博文本進行情感分析[11].文獻[12]和[13]建立心理情感詞典庫,使用基于詞典的方法分析Twitter 信息對股票市場的影響.在此基礎上,Jiawei等人提出了一種基于詞典的情感分析方法,根據(jù)情感詞和句子詞向量計算相似度,進行情感極性分析,并通過提取股票特征進一步預測股市走勢[14].此外,傅魁等人還結合知網(wǎng)和金融領域的兩大情感詞典,建立了一套特定金融領域詞典庫[15].
生成對抗網(wǎng)絡(GAN)是由Goodfellow 在2014 年提出的機器學習架構,模型訓練中生成器和判別器相互博弈.生成器生成假樣本,而判別器區(qū)分真實樣本和假樣本.在達到一個理想點時判別器無法區(qū)分兩種樣本,此時生成器就能更好地捕獲真實樣本數(shù)據(jù)分布.目前,生成對抗網(wǎng)絡被廣泛應用于金融領域預測股票價格、優(yōu)化投資組合和交易執(zhí)行策略等.Zhang 等人提出了一種以多層感知器(MLP)作為判別器,以長短期記憶模型(LSTM)作為生成器來預測股票收盤價的GAN 體系結構,并嘗試預測每日收盤價[16].Zhou等人提出了一種股票預測模型GAN-FD,采用13 個技術指標作為輸入數(shù)據(jù),以LSTM 作為生成器,而卷積神經(jīng)網(wǎng)絡(CNN)作為判別器,用于對抗訓練以預測股票價格方向[17].王靜等人結合了經(jīng)驗模態(tài)股票數(shù)據(jù)分解方法,解決了傳統(tǒng)GAN 預測模型不穩(wěn)定的問題,并在現(xiàn)有股票數(shù)據(jù)集中取得較好的預測效果[18].Faraz 等人在GAN 模型的基礎上,使用最小二乘損失函數(shù),并采用小波變換預處理數(shù)據(jù),減少股市噪聲對模型性能的影響,該模型(LSGAN)在S&P500指數(shù)上性能優(yōu)于GAN[19].
現(xiàn)有面向股票預測的GAN 模型都借鑒了其捕獲股票交易數(shù)據(jù)隱藏深層次特征的能力,但忽略了投資者情感因素,因此,本文提出一種基于情感分析和GAN 的股票預測方法,并結合基于詞典的情感分析方法,計算投資者情感指數(shù),將其作為GAN 預測股票收盤價的一個輔助特征.
如圖1 所示,整個股票價格預測的框架包括兩個部分:1)基于詞典的金融文本情感分析,2)基于情感分析和GAN 的股票價格預測.下面詳細介紹這兩個部分.

圖1 基于情感分析和GAN的股票價格預測框架Fig.1 Stock price prediction framework based on sentiment analysis and GAN
股票投資者往往借助所獲取的股市相關新聞、網(wǎng)絡平臺言論等信息來輔助其決策.股市相關新聞的情感傾向分析對后續(xù)預測方法研究有指導意義.
CNN 情感分析方法容易造成標簽分布不均.而基于詞典的情感分析方法,根據(jù)各種新聞信息、政策文件和情感詞典的匹配結果來確定金融文本數(shù)據(jù)情感極性,能避免標簽分布不均等問題.基于詞典的情感分析方法首先通過Jieba 分詞算法對文本數(shù)據(jù)進行分詞,并去除停用詞.積極的情感詞初始權值設定為1,而消極的情感詞初始權值設定為-1.若情感詞中存在否定詞,將其權值設定為-1.若有程度副詞,則其權值為情感詞權值乘程度副詞權值.最后,計算句子中積極詞總權值和消極詞總權值之和來判斷句子情感極性.該算法偽代碼描述如表1所示.
2.1.1 面向金融領域情感詞典的構建
情感詞典的構建是否恰當將直接影響情感分析結果.本文使用的詞匯規(guī)模如表2 所示.包括通用領域的3 個情感詞典,分別是HowNet(知網(wǎng)),DLUTSD(大連理工大學中文情感詞庫),NTUSD(臺灣大學中文情感極性詞典).此外還加入了程度副詞和否定詞詞典庫.由于這些通用領域詞典都與金融領域無關,根據(jù)這些詞典將文本進行分類時,效果并不理想.因此,需要將通用詞典與金融領域情感詞典整合.具體步驟為:合并通用詞庫中積極詞集和消極詞集,刪除重復詞;然后構建金融領域情感詞典.詳細流程如下:使用TF-IDF(詞頻-反向文檔頻率)算法選取1 000 個與金融領域相關的詞,并判斷極性;從中手動選擇50 個積極情感詞匯、50 個消極情感詞匯,并將其作為種子詞,如表3所示;然后使用PMI計算出每個詞與種子詞的相關性,作為擴展詞;手動添加金融領域的積極情感詞匯和消極情感詞匯;最后基于K-means特征選擇方法,選擇表3中積極情感詞匯作為初始質心,將所有詞語使用Word2vec 方法映射成單詞向量,映射之后的單詞向量包括語法和語義信息,通過計算語料庫中的詞語單詞向量與質心單詞向量之間的距離來計算兩個詞語的相似性,不斷迭代,直到語料庫中所有詞語都被歸為正確類別,選擇10個類別中與每一個類別相似度排在前100名的詞匯加入情感詞典中,消極情感詞匯的操作類似.使用式(1)計算語料庫中情感詞與質心種子詞的距離,其中m和n是語料庫詞向量矩陣和質心詞向量矩陣的行號,j為詞向量維度,然后基于式(2)計算這些距離的平均值.基于K-means的情感詞匯的選擇算法在表4中詳細描述.面向金融領域的情感詞典構建流程和算法分別如圖2和表5所示.

圖2 面向金融領域的情感詞典構建流程Fig.2 Construction flow of emotional dictionary for financial field

表2 3個通用領域詞匯規(guī)模Tab.2 Size of vocabulary in three general fields

表3 金融領域情感種子詞Tab.3 Emotional seed words in financial field

表4 基于K-means的情感詞匯的選擇Tab.4 Emotional vocabulary selection based on K-means

表5 面向金融領域的情感詞典構建算法Tab.5 Construction algorithm of emotional dictionary for financial field

2.1.2 情感指數(shù)的計算
基于詞典的情感分析方法只是判斷每一篇新聞或者政策文件的情感極性,而股票歷史數(shù)據(jù)是隨時間變化的序列數(shù)據(jù),所以也需要計算每一天情緒的波動趨勢.情感指數(shù)就是計算事件和公眾情緒的整體走向趨勢,計算方式如式(3)所示.

式中:numtpos是第t天的積極新聞、論壇帖子和政策文件總數(shù),而numtneg是第t天的消極新聞、論壇帖子和政策文件總數(shù).情感指數(shù)范圍在-0.5~0.5 之間,且情感指數(shù)低于0表示在第t天情感極性消極.
本文主要利用GAN 生成股票波動曲線.不同時段的股票模式和行為或多或少會有相同之處,因此,生成數(shù)據(jù)與已有數(shù)據(jù)有相似分布.由于循環(huán)門控單元(GRU)神經(jīng)網(wǎng)絡對于時間序列數(shù)據(jù)擬合度較高,收斂速度快,本文采用GRU 作為生成器,依據(jù)真實數(shù)據(jù)X1,X2,…,Xt,生成與真實數(shù)據(jù)相似的數(shù)據(jù),而判別器采用CNN,對輸入的序列:真實數(shù)據(jù)X1,X2,…,Xt,Xt+1和生成數(shù)據(jù)X1,X2,…,Xt,進行分類.基于GAN的股票價格預測模型如圖3所示.

圖3 基于GAN的股票價格預測模型Fig.3 Stock price prediction model based on GAN
2.2.1 生成器
本文選擇GRU 神經(jīng)網(wǎng)絡作為生成器.使用9 個變量來預測股票未來收盤價,這幾個變量分別為開盤價,最高價,最低價,收盤價,成交量,K%(隨機指標),R%(威廉指標),RSI(相對強弱指標),情感指數(shù),其中K%、R%和RSI 三個技術指標,計算方式分別如式(4)、式(5)、式(6)和式(7)所示.生成器的輸入為其中,i∈(1,2,…,t)表示的是一個向量,由9個特征組成,如下所示.


式中:以t天為單位,t值在本文實驗中設置為5,C為收盤價,Ht和Lt分別表示最近t天的最高價和最低價.RS 是t天內收盤價上漲總和的平均值與收盤價下跌平均值的比值.
生成器有兩個隱藏層輸出h1t和h2t,分別表示2層的GRU 隱藏層的輸出,最后一個隱藏層的輸出會輸入到具有9 個神經(jīng)元的完全連接層中,生成第t+1天的數(shù)據(jù),即第t+1 天的預測收盤價.生成器輸出計算公式如(8)所示.?表示全連接的激活函數(shù)“LeakyReLu”,Wf和bf分別表示全連接層的權重和偏置.

2.2.2 判別器
判別器的目的是對輸入數(shù)據(jù)進行分類.本文選擇CNN 神經(jīng)網(wǎng)絡作為分類器,主要由輸入層、3 個卷積層、池化層、全連接層和輸出層組成,卷積層激活函數(shù)都為“LeakyReLu”,而輸出層是一個全連接層,激活函數(shù)為“Sigmoid”,所以輸出為0 和1,當輸入為生成數(shù)據(jù)時,輸出為0,而當輸入為真實數(shù)據(jù)時,輸出為1.同時采用交叉熵損失優(yōu)化判別器的損失函數(shù).
2.2.3 GAN模型的訓練
F(G,D)表示GAN模型的優(yōu)化過程,G表示GAN網(wǎng)絡中的生成器,D 表示判別器,損失函數(shù)如式(9)所示:

式中:XR為真實數(shù)據(jù),XF為生成數(shù)據(jù),生成器在使用其損失函數(shù)實現(xiàn)優(yōu)化的同時,還結合了生成的第t+1天數(shù)據(jù)與真實的t+1天數(shù)的均方誤差(MSE).
本文采用的生成器由2 個GRU 隱藏層單元組成,神經(jīng)元的個數(shù)分別為512 和256,隱藏層的激活函數(shù)采用“LeakyReLu”,學習率為0.000 1.判別器為CNN 模型,其中卷積層和全連接層的激活函數(shù)為“LeakyReLu”,而輸出層的激活函數(shù)為“Sigmoid”,學習率為0.000 6.在GAN 訓練過程中,生成器采用隨機梯度優(yōu)化算法,判別器采用Adam 算法.本文使用上證A 股指數(shù)作為實驗數(shù)據(jù)集,對比不同股票價格預測方法.實驗結果表明,本文提出的方法具有較好的預測效果.
本文包含兩個數(shù)據(jù)集:1)2015 年3 月至2021 年3月期間來自東方財富網(wǎng)的上證指數(shù)吧的互動帖,以及從白鹿數(shù)據(jù)網(wǎng)站獲得的政策文件.2)同時期的每日上證A股綜合指數(shù)股票價格從Yahoo Finance 下載獲得.表6 是2021 年3 月31 日這個交易日內的股票和文本數(shù)據(jù)示例.

表6 交易日內的股票和文本數(shù)據(jù)示例Tab.6 Example of stock and text data during trading day
本文預測股票的收盤價采用的評估指標有平均絕對誤差(MAE),均方誤差(MSE)和均方根誤差(RMSE),分別由式(10)、式(11)和式(12)表示,其中fi是第i天的預測收盤價,yi是第i天的真實收盤價.


在訓練期間,GAN 網(wǎng)絡兩個模型的損失變化如圖4 所示.最開始生成器損失由自身損失值結合生成數(shù)據(jù)與真實數(shù)據(jù)誤差值組成,而隨著迭代次數(shù)不斷增加,GAN網(wǎng)絡捕獲到的特征數(shù)也會增加,損失就會不斷減小.生成器和判別器在對抗過程中不斷實現(xiàn)優(yōu)化直到收斂.

圖4 生成器和判別器的損失變化Fig.4 Loss variation of generator and discriminator
3.3.1 不同模型預測結果對比
為了比較不同模型的預測結果,本文選擇在標準化的上證A 股綜合指數(shù)數(shù)據(jù)集上計算MAE、MSE和RMSE 的平均值,并作為評估指標.同時選擇常用于股票預測的經(jīng)典模型ANN(人工神經(jīng)網(wǎng)絡)[20]、LSTM 和WGAN-GP[21]作為基線模型,與本文提出的基于GAN 的預測模型進行比較.預測結果如表7 所示,字體中加粗部分表示最佳預測結果.低MAE、MSE 和RMSE 表示預測的收盤價接近真實數(shù)據(jù).從表7 中可以看到本文所提出的模型與其他模型相比具有競爭優(yōu)勢.從圖5中也可以看出,基于GAN模型的預測收盤價更加接近真實收盤價的波動趨勢.

圖5 多種模型預測結果對比Fig.5 Comparison of prediction results of various models

表7 不同模型的預測結果對比Tab.7 Comparison of prediction results of different models
3.3.2 不同情感詞典方法的比較
針對情感詞典的不同,股市收盤價預測結果如表8 所示.從表中可以看出,加入金融領域自己構建的情感詞典庫之后,模型的預測性能得到較好的提升,實驗結果證明了采用金融領域情感詞典庫能夠提高股票價格的預測性能.

表8 采用不同情感詞典預測股票價格的結果對比Tab.8 Comparison of stock price prediction results using different emotional dictionaries
3.3.3 加入多源情感特征對股票價格的影響
實驗也驗證了投資者情感因素對于股票價格有影響,選取的金融文本數(shù)據(jù)包括公司財經(jīng)新聞、論壇帖子和國家發(fā)布的政策文件,探究這些金融文本對投資者情感的影響,作為多源情感特征.我們將股票歷史數(shù)據(jù)作為基線進行結果對比.當加入了3 個技術指標之后,評價指標都有一定程度的降低.這說明3個技術指標反映了平均波動方向,可以作為股票預測的一個輔助特征.當在分析股票歷史數(shù)據(jù)基礎上加入多源情感特征之后,使用GAN 模型來預測股票收盤價,預測誤差結果有較大的減少,投資者情感會影響股票波動,多源情感特征可以作為股票預測的一個輔助特征,進一步提升預測效果.而當結合技術特征和多源情感特征時,預測結果又稍微比只加入一個特征的效果有所提升,這也證實了股票波動受到多因素影響,需要從多個方面考慮,從而獲得更好的效果.表9 為選取不同特征預測股票價格的結果對比.

表9 選取不同特征預測股票價格的結果對比Tab.9 Comparison of results of predicting stock price by selecting different feature
3.3.4 所提方法的穩(wěn)定性
本文繪制了股票收盤價對比圖,如圖6 所示.最開始的預測中,預測的價格與真實價格很接近,說明在模型的訓練期間,預測模型在生成股票數(shù)據(jù)時,充分提取了金融文本數(shù)據(jù)的股票交易數(shù)據(jù)的特征,并且能夠很好地學習參數(shù).部分預測的收盤價有較大的出入,整體上,股票大致上漲和下跌趨勢還是比較明顯,充分證明了GAN 用于預測股票收盤價的穩(wěn)定性.

圖6 上證A股綜合指數(shù)收盤價預測結果Fig.6 Prediction results of closing price of SSE A-share composite index
本文提出了一種基于情感分析和GAN 的股票價格預測方法.通過構建金融領域的情感詞典庫,采用基于詞典的方法對金融文本數(shù)據(jù)進行情感分析.同時,本文將GAN 應用到股票數(shù)據(jù)生成中,在上證A股指數(shù)的數(shù)據(jù)集上進行實驗驗證.本文結合投資者情感指數(shù)的GAN 預測模型具有更好的穩(wěn)定性和較小的誤差值.未來的研究工作可在如下2 個方面展開:
1)在多源數(shù)據(jù)中添加金融報表數(shù)據(jù)和股票波動折線圖,通過處理跨模態(tài)數(shù)據(jù),更好地捕獲特征,提高最終預測效果;
2)本文提出的方法是根據(jù)前幾天數(shù)據(jù)來預測后一天數(shù)據(jù),整體時間周期較長,粒度也較大,可以采取某天中開市期間數(shù)據(jù),研究當天收盤價,進一步比較多源數(shù)據(jù)對于股票市場波動的持久度影響.