写在前面
下面这篇文章的内容主要是来自发表于微软亚洲研究院同中山大学合作的一篇文章《HIST: A Graph-based Framework for Stock Trend Forecasting via Mining Concept-Oriented Shared Information》。这篇文章提出了一种股票趋势预测框架,它能够充分挖掘预定义概念和隐藏概念中的共享信息,并再此基础上实现较好效果的股票趋势预测。来自沪深300和中证100的数据验证了提出的模型具有较好的预测效果以及回测效果。原论文在文末进行获取。
1
摘要
股票趋势预测即是预测股票价格的未来趋势,在投资中起着至关重要的作用。市场上的某些股票之间存在共享信息,因此它们的股价具有相关性。近些年来,提出了一系列的方法,如通过从网络中提取股票概念来挖掘共享信息,以提高预测结果。然而,以往的研究通常假设股票和概念之间的联系是静态的,而忽略了股票和概念之间的动态相关性,限制了预测结果。除此之外,现有的方法忽略了隐含概念中蕴含的共享信息,而隐含概念可以衡量了人工定义的股票概念之外的股票间信息,如下图所示,几家公司的股票通过一些人工定义的概念相关联,然而实际中它们还存在一些隐含关系。因此,为了克服以往工作的不足,这篇文章提出了一种新的股票趋势预测框架,该框架能够充分挖掘预定义概念和隐藏概念中的共享信息,该框架同时利用股票共享信息和个股信息来提高股票趋势预测性能。在实际任务中的实验结果证明了该框架对股票趋势预测的有效性。投资模拟结果表明,该框架能够获得比基准更高的投资回报。
总而言之,这篇论文的主要贡献如下所示:
提出了一种新的股票共享信息挖掘框架,包括预定义概念和隐藏概念之间的共享信息。挖掘得到的共享信息能够反映股票未来趋势以及共性。
该框架利用预定义和隐藏概念的动态共享信息,同时利用每只股票的个体信息,提高了股票趋势预测的性能。
通过提出的框架,可以发现一些有意义和有价值的股票隐藏概念。
通过对真实数据进行了实验评估和投资模拟,结果验证了提出的框架的有效性。
2
模型介绍
基于事件驱动的股票趋势预测是趋势预测方法中的一类,其目的是通过挖掘各种来源的事件信息来预测股票的价格趋势。事件信息的来源包括新闻、社交媒体和讨论板等。这些方法可以从事件信息中发现股价走势的隐含规律。然而,事件驱动方法高度依赖于事件数据。而事件日期的稀疏性和不规则性会降低事件驱动的股票趋势预测模型的灵活性和性能。
预备工作
这章节中将对文中提出的方法进行介绍,首先交代文中的几个概念:
股票概念。预定义的股票概念是对股票的一些人为定义的概念,如股票的部门、行业和主要业务。隐含股票概念是指人类专家没有预先定义的隐含股票概念,在同一个隐含概念下反映出股票之间某种相似的股价走势。
股票价格趋势。之前的许多研究将股票价格趋势定义为股票价格的未来变化率。根据这些设置,文中将𝑖股票在𝑡日的股价走势定义为次日的股价变化率:
在这篇文章中Price指的是股票的收盘价。
模型整体
这篇文章提出的模型HIST(sHared Information for Stock Trend forecasting)的基本架构如下图所示。
模型在 时刻的输入包括 只股票的特征,以及 个预先定义的概念,表示为 ,模型的目标是预测每只股票下一时刻的趋势。
模型的整体流程主要包括三步:
通过一个股票特征编码器来提取每只股票的时序特征,文中用到了一个两层GRU作为特征提取器。
将上一步得到的特征以及预先定义的概念通过下面三个模型进行连续处理,它们包括:1)通过图神经网络构建预定义概念模块,根据预定义概念模块提取股票共享信息。注意,预定义的概念只会在这一步中使用。2)隐藏的概念模块,其重点是挖掘预定义概念所携带的共享信息之外的隐藏信息。3)个体信息模块,处理上述两种模块无法捕获的个体信息。
最后,将上述三种提取的信息输入到一个前馈神经网络中进行预测。
下面针对其中一个编码器以及三个信息提取模块进行具体介绍:
特征编码器
对于 时刻的股票 ,过去一段时间的价格以及成交量数据构成其特征。对于 只股票在 时刻构成的股票特征 ,通过GRU得到的初始embedding可以用矩阵 进行表示,其中每个行向量 表示一只股票的初始embedding。这个过程即:
预定义概念模块
如框架图所示,接下来的三个模块都采用Doubly Residual架构。对于预定义概念模块,输入为 ,输出包括两个部分,一部分是该模块的预测结果 ,即预定义概念模块的收益预测结果,另一部分是回顾输出 ,即预定义概念模块所能解释的信息,将 与 的差值表示为 ,它代表了目前模块所不能解释的信息,用于下一个模块,即隐藏概念模块的输入。
具体地,在这个模块中,首先考虑到一个概念下不同股票的贡献度不同,所以对于一个预定义的概念,文中先计算概念中每个股票的市值,然后按照市值作为每个股票embedding的权重,然后进行加权和得到每个预定义概念的初始特征表示,这个过程表示为:
其中, 表示预定义概念 的初始特征表示, 表示股票市值, 表示权重。接着,考虑到有些概念会缺失等问题,文中进一步对概念的特征表示进行纠正,通过下面的方式得到聚合权重:
然后,通过一个全连接层输出纠正后的概念特征表示:
之后,将股票间共享的概念信息聚合到每只股票中,用于输出每只股票的预测结果。具体地,通过计算输入特征 与概念特征之间的cosine相似度可以得到概念对每个股票的权重,然后通过一个全连接层进行股票间信息聚合得到共享信息特征表示:
上述过程可以通过下图进行表示:
最后,两个全连接层分别用来输出该模块的预测输出 以及回顾输出 ,表示为:
隐藏概念模块
同前面的模块一样采用Doubly Residual架构,对于隐藏概念模块,输入为 上一个模块得到的 ,输出包括两个部分,一部分是该模块的预测结果 ,即隐藏概念模块的收益预测结果,另一部分是回顾输出 ,即隐藏概念模块所能解释的信息,将 与 的差值表示为 ,它代表了目前模块所不能解释的信息,用于下一个模块,即个股信息模块的输入。
具体地,不同于预定义概念,隐藏概念不是人为预先定义的,所以文中采用下面的方式来生成每个隐藏概念的特征表示:
1)用 只股票的embedding 生成 个初始化的隐藏概念 。
2)计算每只股票和所有隐藏概念之间的cosine相似度:
3)将每只股票与其最相邻的隐藏概念进行相连,然后删除所有没有跟任何股票相连的概念。
4)将隶属于同一个隐藏概念的所有股票进行相连。
5)通过cosine相似度聚合同一个隐藏概念下的所有股票信息,从而得到隐藏概念的特征表示:
上述过程可以通过下图进行表示:
得到每个隐藏概念的特征表示之后,同预定义概念模块相同,采用相同的方式将股票间共享的隐藏概念信息聚合到每只股票当中,然后同样用两个全连接层输出这个模块的预测输出 以及回顾输出 。
个股信息模块
前面两个模块所不能解释的信息表示为 ,该模块通过一个全连接层实现,它的预测结果表示为 ,这个过程表示为:
最后,三个模块的收益结果相加,并通过一个全连接层进行预测下一时刻所有股票的趋势,表示为:
模型整体通过最小化MSE loss来实现:
其中, 表示在 时刻的所有股票的集合。
3
实验验证
在实验部分,用到了来自中国A股市场的中证100和沪深300的股票进行实验。每只股票的特征选取了过去60天的开高低收、VWAP以及交易量,即每只股票在 时刻的特征维度是360。训练集从2007/01/01到2014/12/31,验证集从2015/01/01到2016/12/31,测试集从2017/01/01到2020/12/31。预定义概念通过tushare获取的股票行业来确定,其中在CSI100和CSI300每天的平均预定义概念个数为410和1344。
最后,通过IC、Rank IC以及Precision指标证实了提出的HIST具有较好的选股能力,以及预测准确性。实验结果如下表所示。
提出的模型以及对比模型的收益曲线如下图所示:
除此之外,文中还展示了模型中不同模块的作用,通过消融实验可以看出各个模块对预测结果都起到了重要作用。
最后,文中还对某一日部分股票与隐藏概念之间的关系通过热力图的形式进行了可视化,从图中可以看出,隐藏概念可以挖掘出一些概念,如国企概念、航空概念以及高铁概念等。
4
总结
本文提出了一种基于图的股票趋势预测框架HIST,该框架能够有效挖掘股票间概念的共享信息,显著提高股票趋势预测性能。具体地,首先利用GRU提取股票的时间特征,然后依次应用三个模块,分别是预定义概念挖掘模块和隐藏概念挖掘模块,以及个股特征挖掘模块。在真实股票市场上的实验结果证明了所提出的框架的有效性。该模型为股票趋势预测提供了一种新颖的思路,即将股票的收益来源通过三个不同角度进行解释,并通过图神经网络的方式提高了各个模块的可解释性。
参考文献:
Xu, W. , Liu, W. , Wang, L. , Xia, Y. , Bian, J. , & Yin, J. , et al. (2021). Hist: a graph-based framework for stock trend forecasting via mining concept-oriented shared information. Papers.
关注《人工智能量化实验室》公众号,后台发送116可获取原论文。
![3d11237625284f0faaa128c7a11fe4e0.png](https://i-blog.csdnimg.cn/blog_migrate/981d45cd93b9e6030eb97606d99fa9f2.png)
了解更多人工智能与
量化金融知识
<-请扫码关注
让我知道你在看