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天的事件按照時間序列排列好,設置一個滑動窗口,在同一個窗口內的事件進行卷積操做。在卷積操做以後將全部卷積層輸出的向量進行最大池化操做,獲得最終的一個長期事件向量。中期事件向量使用相似的操做獲得,中期時間定義的時間爲過去的一週。短時間事件不須要進行卷積池化,直接將昨天的事件加總求平均。最終咱們能夠獲得長中短時間三個事件向量。將三個向量拼接爲一個向量,送入到後續的單隱層前饋神經網絡,最終輸出分類結果。
與前導論文同樣,在本文中使用新聞的標題做爲提取事件的來源。
在文章的最後還增長了模擬交易部分,用來驗證該模型策略的有效性。
(我的總結)
- 事件的提取比較繁瑣,若是可以有更爲智能化的方法來學習到事件中的信息就行了。
- 本文和前導論文同樣,只是使用了新聞中的標題信息,沒有利用新聞中的內容。緣由以下:新聞內容中的信息太多反而帶來了大量的干擾信息;從內容中精確的提取事件比較複雜。
- 本文中針對個股的預測只能是經過個股的新聞來進行預測,若是可以利用股票之間的關聯性,例如所屬母公司相同,相同行業,相同板塊,上下游關係等信息,那麼就能夠利用與該股票關聯性比較強的其它股票信息來預測該股票的漲跌。
- 本文的角度是,從股票自己出發,看新聞對股票的影響。若是咱們重新聞出發,看該新聞可以影響到哪些股票,而且預測對應股票的漲跌狀況,那麼這種系統可能更具備實用性。
- 本文重點在於對具備完整結構的事件的建模,若是事件結構不完整,咱們該如何進行建模?