【Exploring Graph Neural Networks for Stock Market Predictions with Rolling Window Analysis】
这里指的是分析公司的在资本市场网络之中的特征来对于公司的股价进行一定的分析。而这里的关系指的是资本市场上的公司之间的联系,文中使用了七种不同的关系进行抽取特征
分别是,是否是供应商,是否是客户,是否是合伙企业,有无股权的控制,是否有相同的供应商,是不是有相同的客户,是不是在相同的行业之中。文中选择了日经225市场指数之中的176家公司,对于一个Company X来说,他的关系图如下所示
而总共有12473个节点和38252条边,平均的Degree是6.13。自己倒不知道在这里是怎么获得这些数据的,因为我从国泰安数据库里面搞到的数据虽然也有蛮多的,不过经过我自己瞎处理之后似乎得到的数据并没有那么多,可能是自己砍掉太多的边了吧。不过自己的小MacBook处理那些数据就已经够呛了,要是处理几十万的数据可能电脑内存就受不了了。
Approach
通过上面的方法就可以组成一个知识图谱了,不过根据我的经验来说,其实模型的Average Degree的表示是一个非常不能够表达图的性质的特征,在公司这种网络结构之中,并非是一个Average或者是一个平等的图,一些大公司往往会有几千个与之连接的节点,但是对于那些小公司,比如说是那些大公司的客户来说,他们可能在网络之中存在的意义就是为那些大公司做一个出边,所以这种平均数对于网络的特征的表达并不是一个非常有效和精准的量。所以我感觉应该可以用一个非社交网络的方法来处理这个网络。不过现在应该也没有这种方法吧,更多的还是使用社交网络的挖掘的方式。
所以在文中使用更多是Graph Convolutional Network(GCN)算法来处理,这个算法我们应该都蛮熟悉的,不过还是再说一遍吧。这里有两个输入,分别是每一个节点的输入特征以及连接矩阵。然后通过邻接矩阵更新节点的特征。
其中的$A\in R^{N\times N\times K}$,表示一个邻接矩阵,这里的$e_j$应该就是其周围的节点的向量表示了。而这里目标则是将股票的历史的数据传入RNN之中得到的一个表示,也就是说
$$e_{i} = RNN(\chi_{i})$$
应该意思是利用这个作为一个向量的初始化,这里的记号也混用的非常的厉害啊,唉。然后这个向量后面再接一个神经网络,比如说RNN或者是LSTM就可以对于股票的价格进行预测啦。
或者这里同样也可以使用Attention的机制的
这里的点乘就是一个Attention的机制的完美的体现。
而文章之中的训练的过程也是非常的有意思,是通过一个Time Rolling的方式进行训练,具体的来说就是通过处理之前的数据然后预测之后的数据,就像是一个时间框进行滑动的感觉。
Comments
这个模型和自己的做的一个模型基本上是一个意思,只不过自己是使用矩阵分解的方法来做,而这里是使用神经网络的方法来做罢了,两种方法的优劣之处自己也还没有到可以分辨的水平,但是我感觉不管是对于神经网络还是对于矩阵分解来说,在刚刚被发明出来解决这里的问题的时候,应该想的都是网络之中的节点的特征还是比较均匀的情况,不会说这里的网络之中绝大多数的节点都仅仅是作为一个出度的节点。虽然在社交网络之中还是会有这种现象发生,比如说那种透明的小号也会被作为分析样本里面,但事实上在社交网络里面,很多的小号也会去关注很多的大V,这些小号的出度是非常大的,比如微博里面一个人关注几十个人是常有的事情,在公司的网络结构之中则不会出现这种现象因为一个子公司很有可能建立起来就是为了帮助母公司处理某一部分的业务,也就是说这个子公司在网络之中的唯一的联系就是和母公司之间发生交易。这个网络的现象也和共同写文章的网络(忘了名字,就是两个人一起写过文章)之中的现象非常的类似,在共写网络之中,很多的刚刚开始的研究者都仅仅是和某一个人,比如说他的Mentor一起Co-Worker写了一篇文章,而并没有和其他的人一起发过Paper,但是对于这种情况的话,他的Mentor所发的文章的数量也是非常有限的,就算是世界上的Top的科学家的话,他所写的Paper也估计就一百左右,但是在公司的网络之中,一家公司的商业往来的公司的数量到几百家是常有的事情。所以我感觉要分析公司的特征的话,不能够对于其他人的网络直接的照搬而是应该对于网络之中的结构做出一定程度上的修改和适配。
Reference
Exploring Graph Neural Networks for Stock Market Predictions with Rolling Window Analysis
Comments
Leave a Comment