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天的事件按照时间序列排列好,设置一个滑动窗口,在同一个窗口内的事件进行卷积操做。在卷积操做以后将全部卷积层输出的向量进行最大池化操做,获得最终的一个长期事件向量。中期事件向量使用相似的操做获得,中期时间定义的时间为过去的一周。短时间事件不须要进行卷积池化,直接将昨天的事件加总求平均。最终咱们能够获得长中短时间三个事件向量。将三个向量拼接为一个向量,送入到后续的单隐层前馈神经网络,最终输出分类结果。
与前导论文同样,在本文中使用新闻的标题做为提取事件的来源。
在文章的最后还增长了模拟交易部分,用来验证该模型策略的有效性。
(我的总结)
- 事件的提取比较繁琐,若是可以有更为智能化的方法来学习到事件中的信息就行了。
- 本文和前导论文同样,只是使用了新闻中的标题信息,没有利用新闻中的内容。缘由以下:新闻内容中的信息太多反而带来了大量的干扰信息;从内容中精确的提取事件比较复杂。
- 本文中针对个股的预测只能是经过个股的新闻来进行预测,若是可以利用股票之间的关联性,例如所属母公司相同,相同行业,相同板块,上下游关系等信息,那么就能够利用与该股票关联性比较强的其它股票信息来预测该股票的涨跌。
- 本文的角度是,从股票自己出发,看新闻对股票的影响。若是咱们重新闻出发,看该新闻可以影响到哪些股票,而且预测对应股票的涨跌状况,那么这种系统可能更具备实用性。
- 本文重点在于对具备完整结构的事件的建模,若是事件结构不完整,咱们该如何进行建模?