量化投资与机器学习公众号独家解读
量化投资与机器学公众号 QIML Insight——深度研读系列 是公众号今年全力打造的一档深度、前沿、高水准栏目。

公众号遴选了各大期刊前沿论文,按照理解和提炼的方式为读者呈现每篇论文最精华的部分。QIML希望大家能够读到可以成长的量化文章,愿与你共同进步!
前言
传统的股价预测的时许模型,对于收益率的假设往往不切实际,而最近兴起的机器学习模型,特别是深度学习模型对于股价的预测也存在着明显的问题:
  • 大多数文献中,都直接预测股价或者是收益率,并没有考虑股票之间的排序。
  • 每只股票的序列单独输入模型中,并不能考虑股票或公司间多维度的信息:比如供应关系和产业关系。
为了解决以上问题,作者提出了一个新的框架:Relational Stock Ranking(RSR)。这个框架主要由两个创新:
  • 损失函数新增了关系股票收益排序的惩罚项,使模型能够顾及股票收益间的排序(Rank)。
  • 结合了时间图神经网络,使模型能够结合股票间的关系型数据,如行业属性、上下游、股权信息等。
RELATIONAL STOCK RANKING(RSR)
RSR总共包含三层,分别是基于序列数据应用序列神经网络模型的Sequential Embedding Layer, 基于关系型数据应用图神经网络的Relational Embedding Layer, 和最终给出收益预测结果的Prediction Layer。如下图所示:
Sequential Embedding Layer
股票过去的价格变动对于未来的变化有明显的影响,所以整个框架的第一层采用序列模型去捕获股价序列间的依赖信息。RNN在最近的文献中,都有出色的表现。所以作者选用的RNN最为第一层的模型。更具体的,作者采用了LSTM,因为它能保留序列的长期记忆。并以LSTM的模型结果作为下一层的输入。(LSTM的输入为股价的历史序列X_t)
Relational Embedding Layer
这一层主要考虑股票之间的关系型数据,作者在模型中加入了两类关系型数据:
行业属性:两个公司是否属于同一个行业或板块,如果属于同一行业,那么两个公司之间的基本业务应该类似,股价的表现也应该有相似的趋势,如图2a中,MSFT和GOOGL的股价。
供应链关系:如果两家公司属于供应链的上下游,即一家公司是另一家的客户(或供应商),那么他们之间的股价的变动应该有传导效应。如图2b中,Apple的供应商LENS在AAPL发布iphone8之后,股价开始上涨。
为了使RSR能够加入这些关系型的数据,作者采用了Temporal Graph Convolution(TGC)算法,将关系型的图谱数据与第一层的输出进行结合,作为第三层的输入。关于TGC,下一节会详细介绍。
Prediction Layer
最终将第二层的输入用于股票收益率的预测,这里的损失函数定义为:
其中 分别是股票的预测收益率和实际收益率。这个损失函数中,第一项为了是预测的收益误差越小越好理解。第二项,为了股票间的相对顺序与真实情况比,误差越小越好。
Temporal Graph Convolution
给定N个股票的序列特征(sequential embeddings) 和多维度的二元关系 ,TGC的主要任务是基于二元关系,重新学习N个股票的序列特征。传统的图神经网络没有考虑关系的动态变化,对于所有时间中,每个点(Vertex)的影响性都用固定的方式计算,比如如下考虑关系重要性作为权重的特征计算:
其中, 为股票 ,使用网络关系,整合其他与之相关的股票,而重新生成的特征, 为A关系张量中与股票i有关系的股票的数量, 为股票 与股票 的关系,函数 用于度量关系的强弱。可以看到,这里的函数 是固定不变的,并没有考虑不同时间的序列特征,作者做了如下改进,将t时刻的股票的序列特征也考虑在关系强度函数 中:
此时,关系强弱函数g的定义就关系到了TGC的具体表现,作者给出了显性模型和隐性模型两种定义:
显性,其中 为激活函数, 为参数。也就是说,关系的强弱,取决于第一项,两个股票当前时间的相似性,和第二项两者关系的重要。这两项的乘积决定了关系强弱。因为这两项都能清楚的解释,所以称为显性模型。
隐性,如果把序列特征及关系都放到激活函数内部,则称为隐性模型。
实证
作者选取了NASDAQ和NYSE从2013年1月2日至2017年12月8日的数据,经过以下条件的过滤:
  • 在此区间,98%的时间正常交易
  • 股价从未低于5美元
分别在NASDAQ选取了1026只股票,在NYSE选取了1737只股票,获取了日度价格数据。并把测试时间分为了3个不同的阶段,如下表所示:
除了价格数据,还有股票的关系数据,包括行业属性数据及关系数据(总计42中关系),覆盖度如下:
关系型数据,主要分为,如图4表示:
  • 一阶关系:两者直接相关
  • 二阶关系:两者分别和第三者相关
回测设定
在2017/01/03至2017/12/08的测试区间,回测的设定如下:
  • 买入预测收益最高的股票,日度换仓,收盘买卖
  • 每次固定50,000美元的持仓规模
  • 交易成本为0,假设全部成交
用于对比的其他模型
  • SFM:首先将历史价格数据进行离散傅里叶变换,再输入到LSTM模型中进行预测。参考Liheng 2017;
  • LSTM:基于历史收盘价及5、10、20和30均线的LSTM模型;
  • RANK_LSTM:RSR中去除Relational Embedding Layer后的模型;
  • Graph-base Ranking(GBR):RANK_LSTM的损失函数增加图惩罚项;
  • GCN:RSR的第二层采用GCN;
  • RSR_E:RSR中的关系强弱函数g,用显性模型;
  • RSR_I:RSR中的关系强弱函数g,用隐性模型。
衡量模型效果的指标有:
  • Mean Square Error (MSE),越小越好;
  • Mean Reciprocal Rank(MRR):是一个国际上通用的对搜索算法进行评价的机制,即第一个结果匹配,分数为1,第二个匹配分数为0.5,第n个匹配分数为1/n,如果没有匹配的句子分数为0。总之,越大越好。
  • the cumulative investment return ratio (IRR):越大越好。
最关心的问题
1、将股票的价格预测问题变成一个收益预测的任务,效果怎么样?相比当下热门的算法,RSR有没有优势?
  • 以IRR指标衡量,Rank_LSTM的效果比SFM和LSTM好很多,说明基于股票排序的学习比直接预测收益率,效果更优。这对我们研究更先进的排序学习算法(Learning-to-rank)有了信心。
  • 但在MRR指标上,在NYSE市场,Rank_LSTM的表现差于SFM,可能是因为损失函数及考虑了绝对预测的准确性,又考虑了相对排序的准确性,从而降低了模型的稳定性。
  • 图5给出了三个模型的累计收益曲线,可以看出仅仅买入一只股票的收益波动还是很大的,模型的表现不够稳定。
2、股票间的关系数据能否提高神经网络模型的效果?文中提出的TGC与卷积图神经网络算法GCN相比有效性怎么样?
表6的测试中,关系型数据仅仅使用了行业属性数据:
  • 加入行业属性的数据后,在NYSE的表现比NASDAQ的表现更好,可能是因为NASDAQ的股票波动更大,更受短期因素的影响;
  • 在NYSE,所有加入图关系数据的模型的IRR都比Rank_LSTM来的好,说明关系型数据能增强模型的表现;
  • RSR_E,RSR_I的表现优于GCN和GBR。说明,TGC相比GCN的效果更佳。
如表7所示,在考虑Wiki关系型数据后,RSR_E和RSR_I在两个市场的IRR都是最高的。下表展示了,Wiki关系型数据中最重要的5个关系,其中P1056_P1056表示两个公司是否生产同一种产品,这个关系是最重要的,也是公司的产业链关系,可以用产业图谱表示。
总结
  • 前段时间,JPM有很多文章介绍Learning-to-rank的算法,本篇文章虽然没有之间采用Learning-to-rank的算法,但在损失函数设计中巧妙的考虑了股票间的排序。
  • 产业链、供应链等图谱型数据,日益成为大家关注的数据类型,但很多机构并没有想好怎么用这类数据?传统基于量价的深度学习模型,结合基于图谱类数据的图神经网络,给这类数据的应用指明了一条可探索的道路。
资源
作者在github上开源了论文的代码,心急的小伙伴尽快尝鲜:
https://github.com/fulifeng/Temporal_Relational_Stock_Ranking
量化投资与机器学习微信公众号,是业内垂直于量化投资、对冲基金、Fintech、人工智能、大数据领域的主流自媒体公众号拥有来自公募、私募、券商、期货、银行、保险、高校等行业20W+关注者,连续2年被腾讯云+社区评选为“年度最佳作者”。
继续阅读
阅读原文