基于深度学习的事件驱动型股票预测[论文研读笔记]

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