Deep Learning for Event-Driven Stock Prediction
[Xiao Ding, Yue Zhang, Ting Liu, Junwen Duan] 2015, IJCAI
前導論文:使用結構化的事件來預測股價運動(http://www.cnblogs.com/yinzm/p/8507920.html)
研究目標:美股,標普500
簡介:使用深度學習模型來對股票進行預測,首先將新聞事件提取出來,然后將其表示為稠密向量,使用神經張量網絡(Neural Tensor Network)來訓練事件。然后使用深度卷積神經網絡(deep convolutional neural network)對事件的短期長期影響進行建模。
對比於前導論文中的方法,提取事件的方法類似,都是使用Open IE提取事件,但是不使用WordNet,VerbNet。前述論文中將事件表示為向量的時候用的是TFIDF方法,這樣暴力的將詞變成向量會導致稀疏性問題。所以本文提出一種事件嵌入(event embedding)方法,使用Neural Tensor Network 能夠將事件變成稠密向量。
之前論文中的方法只量化了短期事件的影響(前導論文中只討論了新聞發生之后一天的影響,因為短期影響是最大的),在本文中使用CNN將短期、長期的事件作為事件序列輸入,這樣可以將長短期的事件影響組合起來。
提取事件的方法:本文從新聞內容中提取事件,利用Open IE,ReVerb,ZPar提取事件。
event embedding:對比於前導論文中使用TFIDF的方法,本文使用神經張量網絡來實現該功能。

事件的表示與前導論文一致:E=(O1, P, O2)
神經張量網絡的輸入是向量,所以首先將O1, P, O2當成單獨的詞,然后進行word embedding(事先用skip-gram算法針對金融語料庫進行詞嵌入訓練得到模型,該模型可以將one-hot表示的詞轉化成詞向量。如果O1,P,O2中含有多個詞,那么將多個詞向量取平均得到最終的詞向量表示)。
在進行word embedding之后按照上述的結構搭建模型,開始訓練。訓練的方法如下:


訓練得到的模型可以用於做event embedding。
結合長中短期的事件向量:使用過去30天的所有的事件,如果某一天有若干條事件,那么將這一天的事件取平均值,得到的事件作為該天的事件代表。然后將這30天的事件按照時間序列排列好,設置一個滑動窗口,在同一個窗口內的事件進行卷積操作。在卷積操作之后將所有卷積層輸出的向量進行最大池化操作,得到最終的一個長期事件向量。中期事件向量使用類似的操作得到,中期時間定義的時間為過去的一周。短期事件不需要進行卷積池化,直接將昨天的事件加總求平均。最終我們可以得到長中短期三個事件向量。將三個向量拼接為一個向量,送入到后續的單隱層前饋神經網絡,最終輸出分類結果。


與前導論文一樣,在本文中使用新聞的標題作為提取事件的來源。
在文章的最后還增加了模擬交易部分,用來驗證該模型策略的有效性。
(個人總結)
- 事件的提取比較繁瑣,如果能夠有更為智能化的方法來學習到事件中的信息就好了。
- 本文和前導論文一樣,只是使用了新聞中的標題信息,沒有利用新聞中的內容。原因如下:新聞內容中的信息太多反而帶來了大量的干擾信息;從內容中精確的提取事件比較復雜。
- 本文中針對個股的預測只能是通過個股的新聞來進行預測,如果能夠利用股票之間的關聯性,例如所屬母公司相同,相同行業,相同板塊,上下游關系等信息,那么就可以利用與該股票關聯性比較強的其它股票信息來預測該股票的漲跌。
- 本文的角度是,從股票本身出發,看新聞對股票的影響。如果我們從新聞出發,看該新聞能夠影響到哪些股票,並且預測對應股票的漲跌情況,那么這種系統可能更具有實用性。
- 本文重點在於對具有完整結構的事件的建模,如果事件結構不完整,我們該如何進行建模?