趙浩博 李錫祚



摘要:本文提出了一種利用股票價格和相關新聞數據,基于卷積和循環神經網絡模型融合的股票開盤價預測研究方法。針對股票開盤價預測的問題,考慮到股票相關信息的時序性以及新聞影響的持續性特點后,首先使用向量表示方法將新聞數據轉換成向量,再利用卷積神經網絡模型提取出股票相關的新聞文本特征,同時使用循環神經網絡模型對股票價格數據進行訓練,最后將新聞特征向量和價格訓練后得到的向量合并,得到股票信息的低維向量表示并輸入到深度神經網絡中,利用深度神經網絡對股票開盤價進行預測。本文實驗中使用的數據是美股道瓊斯指數與相關新聞,實驗結果表明,本文所提出的方法在股票開盤價預測上具有明顯的優越性。
關鍵詞:股票開盤價預測;卷積神經網絡;循環神經網絡;深度學習
0引言
金融市場是國家金融體系的重要部分,對于一、二級市場的參與者來說股票價格的分析預測是其做出正確判斷與決定的重要參考,因此預測其價格也讓大量的專家學者為之著迷。在全球化的股票市場中,市場的行情與國家經濟大環境、法律法規、企業經營情況、投資者信心、新聞輿情等都有所關聯,股市行情具有高度的波動性與不確定性,使其成為金融與計算機領域研究中的一大難題。
由于公司報表、報刊和輿論媒體等文本信息的快速增長與積累,可用于分析的數據樣本也在逐漸豐富,數據數量也在不斷地增加。在股票價格的預測中,如何使用文本數據來讓模型的表現得到提升,在近些年的股市預測中一直是關注的熱點。資本市場相關的數據信息通??梢苑磻善眱r格波動,并且數據信息分析相比傳統的K線分析更具有廣度和深度。同時,隨著AI領域的持續發展,機器學習和深度學習等人工智能技術在眾多研究領域和實際場景中得到了廣泛的應用,自然語言處理領域也因為深度學習的興起得到了發展和進步,這些技術上的突破均使得股票預測模型的建立有了更大的上升空間。
在過往的研究中,線性回歸、遺傳算法、SVM、決策樹這些機器學習算法以及深度學習網絡模型都被大量用在股票預測的研究之中。在文獻中作者將多種機器學習算法與卷積神經網絡(CNN)在股票預測中的表現進行了比較,證明了卷積神經網絡模型在股票預測上的準確率優于傳統的機器學習算法。而在文獻中,作者利用tensorflow框架搭建了多層神經網絡(MLP)來對股票的價格進行預測,最終通過與傳統的BP神經網絡方法對比,說明了合適的神經網絡結構有利于提高網絡模型預測的準確率,同時還能有效減少預測耗時。
基于深度學習在股票預測中的優良表現和循環神經網絡在序列數據預測中的特殊性,本文提出了一種基于卷積和循環神經網絡模型融合的股票開盤價預測研究方法。在股票的數據選取方面包含了歷史價格和相關新聞,新聞的特征提取用到了word2vec和CNN方法。在訓練模型上,由于股票價格是時間序列數據,具有時序性,同時新聞對股價的影響具有持續性,所以本文采用的訓練模型是卷積神經網絡和循環神經網絡。
1相關技術
1.1Word2Vector
在神經網絡等機器學習和深度學習模型中,無法直接處理字符串類型的數據,因此需要將其轉換為純數字信息。在轉換過程中,應盡可能保留數據原始信息。
Word2Vector與One-hot類似,是一種將文本數據轉換為矢量的模型,廣泛用于自然語言處理(NLP)中。One-hot對文本中的所有單詞進行計數,然后對于每個詞匯表編號,為每個單詞創建N維向量。向量的每個維度代表一個單詞,因此對應的數字位置中的維度值為1.其它維度均為0。雖然此方法保留原始單詞信息,但在文本數量多的情況下維度太高,而且不能反映兩個詞之間的關系。例如,貓和小貓明顯比貓和珊瑚更接近,但其卻在單詞向量表示中無法得到體現。相比于One-hot的編碼方式,Word2Vector通過學習文本,使用單詞向量來表示單詞的語義信息,通過將單詞向量“嵌入空間”(嵌入就是將原始單詞所在的空間映射到新空間),達到語義相似的單詞之間距離接近的目的。這樣便可以降低維度并反映單詞和單詞之間的關系。
在Word2Vector方法中,主要有Skip-Gram和CBOW兩種模型。從直觀上理解,CBOW的做法是,將一個詞所在的上下文中的詞作為輸入,而詞本身作為輸出。Skip-Gram的做法和CBOW剛好相反,其將一個詞所在的上下文中的詞作為輸出,而詞本身作為輸入。具體情況如圖1所示。
1.2卷積神經網絡(CNN)
卷積神經網絡(CNN)在計算機視覺領域取得了極大的進展,與此同時,CNN開始應用于自然語言處理(Natural Language Processing)的各種任務,也逐漸在自然語言處理領域占有了重要的地位。
之所以用CNN來進行自然語言處理的工作,是因為其解決了傳統詞袋模型和連續詞袋模型句子中詞語的順序被忽略、訓練參數非常大的問題。在圖像中卷積核通常是對圖像的一小塊區域進行計算,而在文本中,一句話所構成的詞向量作為輸入。每一行代表一個詞的詞向量,所以在處理文本時,卷積核通常覆蓋上下幾行的詞,所以此時卷積核的寬度與輸入的寬度相同。通過這樣的方式,就能夠捕捉到多個連續詞之間的特征,并且能夠在同一類特征計算時共享權重。
1.3循環神經網絡
循環神經網絡(RNN)提出后,被廣泛用于分析預測序列數據,但經過大多數學者研究發現,隨著時間的推移RNN模型會存在忘記之前狀態信息的問題,之后便提出了長短期記憶循環神經網絡(LSTM)。LSTM是一種時間遞歸的神經網絡,由于其特殊的模型結構,使得LSTM具有適合處理和預測時間序列中間隔和延遲較長的重要事件的特性。LSTM的網絡結構采取控制門的機制,其核心結構是由3個門構成,分別是遺忘門、輸入門和輸出門。LSTM的關鍵在于運行在上方的細胞狀態,這是其能保留記憶的原因。具體結構如圖2所示。
LSTM模型的計算原理如下:
得到了新的細胞狀態之后,就可以進行輸出門值的計算,公式如下:
2模型構建
本文所使用的模型是基于CNN和LSTM的融合模型。因為股票歷史交易信息具有時序性,是屬于時間序列數據,同時相關新聞對股票價格的影響具有持續性。綜合考慮以上幾點,本文采用CNN和LSTM作為訓練數據的主要模型。模型框架如圖3所示。
2.1輸入層
該模型的輸入層由兩部分組成:每天的新聞標題(News),以及過去連續T天的交易信息(Price)。
2.2隱層
模型的隱層分為2部分:首先將清洗后的新聞標題進行詞向量嵌入,將得到的新聞數據輸入到CNN模型中并進行2次卷積和池化的操作,之后經過Flatten層壓平,再進行全連接的計算,從而得到新聞數據的特征向量。同時,另一邊的LSTM模型接收股票價格的數據,經歷3個隱藏層的計算之后把數據輸入到全連接層,最終得到價格的特征向量。最后,將兩個模型得到的特征向量進行合并輸入到新的全連接網絡模型中,并使用Dropout方法來防止模型出現過擬合問題,
2.3輸出層
因為本文研究的目標是股票每日的開盤價格,屬于回歸問題,所以最后網絡模型的輸出結果為一維向量,
3實驗
3.1數據集
本文所選用的數據是美股道瓊斯指數和相關新聞的數據集,包括從2008年8月8日到2016年7月1日近八年的股票交易信息和相關新聞數據,其中新聞數據共有73609條。實驗中將股票的數據按照交易時間排序,其中前70%的股票數據作為訓練集,后30%的數據作為測試集。
3.2模型實現
本實驗在Windows系統環境下,使用Python3.6作為編程語言,開發工具使用JetBrains PyCharm和Anaconda3.運用Keras構建網絡模型結構,底層應用Tensorflow框架。實驗相關參數設置見表1。
3.3實驗流程
使用卷積和循環神經網絡融合模型進行股票開盤價預測的實驗具體如下:
(1)對新聞文本進行預處理操作,如:分詞、去除停用詞等:
(2)應用Word2Vec模型生成16維度的向量矩陣(詞向量嵌入);
(3)將向量輸入到CNN模型中,進行特征提取操作:
(4)將股票價格數據輸入到LSTM模型中,進行特征提取操作:
(5)將新聞特征向量和價格特征向量進行合并;
(6)利用深度神經網絡訓練合并后的向量;
(7)生成股票開盤價的真實值和預測值之間的對比圖像,計算出模型預測的誤差值。
3.4實驗結果
(1)首先進行的是僅用股票價格數據作為唯一輸入特征的實驗。其實驗數據、訓練集、測試集劃分方式和所有的實驗參數都與之后進行的實驗相同。本實驗主要是探索單一的股票價格數據輸入到LSTM模型中的預測表現情況。具體結果如圖4所示。
從圖4的結果可以直觀看出:模型的預測值和真實值存在一定的差距,并非十分理想,預測值普遍低于真實值:
(2)其次就是本文所提出的方法:利用股票價格和相關新聞數據,基于深度學習的股票開盤價預測。本實驗主要是探索在添加相關新聞的情況下,LSTM模型的預測情況是否優于單一的價格預測。具體結果如圖5所示,
由實驗結果可以看出,利用股票價格和相關新聞的數據進行股票開盤價預測時,模型的精準度得到了很大地提升。其中RMSE與MAE分別減少了近60和65不等,MAPE也有所下降,說明本文的方法對股票開盤價的預測準確度更高。因此可以說明,股票歷史交易信息和相關新聞同時決定了股票的開盤價格。在模型計算復雜度上,CNN和LSTM網絡采用權重共享的方式,大大減少了網絡中需要學習的參數個數,使其計算復雜度也隨之下降。
4結束語
對于股票投資者來說,如果能夠知道未來的大盤價格和走勢,就能為其股票選擇提供有意義的參考價值。本文提出了一種利用股票價格和相關新聞數據,基于深度學習的股票開盤價預測方法。通過對股票相關新聞進行處理并利用卷積神經網絡模型對新聞特征進行提取,充分利用所獲取的數據信息,最后再將新聞特征和價格特征進行合并、拼接,共同對股票的開盤價進行預測。通過與單一的價格作為輸入進行預測的實驗進行分析和比較,證明本文所提出的股票開盤價預測方法有明顯的優越性。
在今后的工作中,還會考慮到以下幾個方面的改進:首先本文用到的數據是美股道瓊斯指數和相關新聞數據,道瓊斯指數是大盤指數,今后會考慮用各支股票的數據進行學習和訓練并進行開盤價的預測:其次,本文的重點是對新聞特征進行建模,下一階段嘗試融入更多金融專業知識對股價做特征提取與計算,讓NLP技術和金融市場更好地銜接起來。