基于时序超图卷积神经网络的股票趋势预测方法
2022-04-12李晓杰崔超然宋广乐苏雅茜吴天泽张春云
李晓杰,崔超然*,宋广乐,苏雅茜,吴天泽,张春云
(1.山东财经大学计算机科学与技术学院,济南 250014;2.山东省人工智能学会,济南 250101;3.齐鲁工业大学(山东省科学院)计算机科学与技术学院,济南 250353)
0 引言
股票趋势预测问题已经被研究了数十年,因为它在寻求股票投资收益最大化方面有巨大的价值,但股票市场错综复杂,除自身波动外,还受国家政策、突发事件等影响。因此预测股价走势是金融领域的一大难题。
近年来,深度学习[1]发展迅猛,越来越多的学者开始使用深度神经网络进行股票等时序数据分析;但传统的神经网络层各节点之间无连接,各时刻样本相互独立,时序关系表示能力不足。循环神经网络(Recurrent Neural Network,RNN)[2]可在一定程度上缓解上述问题,RNN 在每个时间步将输入特征和隐藏状态特征输入到相同的结构,从而捕捉输入特征的长期依赖。最为著名的RNN 变体是长短期记忆(Long Short-Term Memory,LSTM)网络[3]和门控循环单元(Gated Recurrent Unit,GRU)网络[4]。尽管以上模型可从时序相关性的角度建模,但它们通常将各股票视为相互独立,忽略了金融市场的许多可解释因素。随着金融市场的发展,企业之间存在着广泛的联系,使得目标公司的股价变动可能会受相关公司的影响。
最近,伴随图卷积神经网络(Graph Convolutional Neural Network,GCN)[5]与图表示学习[6]兴起,研究人员利用关系数据建模股票之间的显式关联进行股市预测[7-8]。研究表明,股票间丰富的关系包含着有利于趋势预测的有价值信号,但是基于GCN 的股票间关系建模仍处于初级阶段,且当前工作仅考虑股票之间的成对连接,忽略了股票实体之间的高阶复杂关系,例如各行业板块包含多支股票,基金经理同时选择投资多支股票构建主动型基金,以上关系均超出了成对连接。如图1(a)展示了平安银行(000001.SZ)、宁波银行(002142.SZ)、招商银行(600036.SH)三支同属银行类板块股票的每日收盘价格走势图;图1(b)展示了2019 年基金持仓规模前三名的股票,即贵州茅台(600519.SH)、中国平安(601318.SH)、格力电器(000651.SZ)的每日收盘价格走势图。可以看到,这些股票均具有相似的涨跌趋势,因而也说明充分利用股票间的高阶关系信息对于有效进行股票价格趋势预测至关重要。
图1 2020年三支银行类板块股票、2019年基金持仓规模前三名股票每日收盘价走势Fig.1 Daily closing price trends of three stocks in bank industry in 2020,top three stocks held by fund in 2019
由于传统的简单图在对高阶关系建模时存在局限性,超图(Hypergraph)模型被提出。超图是对传统图论中简单图的扩展,其区别在于超图的一条边可以连接2 个及以上的顶点,称为超边(Hyperedge)。任一超边都是若干顶点的集合,能够对上述非成对关系建模。为了更有效地学习高阶图结构数据的深度嵌入,文献[9]中提出了超图卷积算子,利用该算子,图神经网络可轻易地扩展到其他模型,并应用于处理各种非成对关系。
受此启发,本文主要研究金融市场中高阶关系的抽取方法,以及提出基于GRU 网络[4]与超图卷积神经网络(HyperGraph Convolutional neural Network,HGCN)[9]的联合预测模型。该模型一方面通过GRU 网络对历史数据进行时间序列建模,另一方面利用HGCN 建模多元关系数据,进行股票趋势预测。
本文在中国A 股市场真实数据集上对所提模型进行了实验验证和模拟回测,并与已有的股票预测模型进行充分对比,实验结果表明本文模型具有更好的预测性能,鲁棒性更强,投资回报率更高。
本文的主要贡献包括3 个方面:
1)提出了将超图学习用于股票预测,其中股票为节点,股票之间的多元关系为超边构建超图,通过超图卷积聚合邻居节点信息。
2)提出了基于GRU 网络和超图卷积神经网络的级联模型,其中GRU 用于时间建模,超图卷积进行高阶关系建模。将原始金融交易数据和关系数据作为输入,同时考虑两种建模,进行端到端的趋势预测。
3)不同于以往的几十支股票的数据训练量,本文构建了一个大型A 股数据集,包括2013 年到2019 年的日线行情数据,以及将所属行业分类和基金投资组合报告等非结构化数据转化为结构化数据,探索基于真实市场信息的公司关系模型。基于预测分类和模拟回测的实验结果表明,与基线模型(如LSTM、GRU、GCN 等)相比,本文模型能够得到更加理想的预测效果,且具有更强的盈利能力。
1 相关工作
早期的股票预测方法主要是基于历史股价序列,使用整合移动平均自回归(AutoRegressive Integrated Moving Average,ARIMA)等自回归模型的传统统计学方法[10];然而这类方法对于高度非线性、不平稳的金融数据等拟合能力较差。
近些年,以支持向量机(Support Vector Machine,SVM)[11]、随机森林[12]等为主的机器学习方法在股票预测方面取得了不错的进展。随着深度学习与时间序列传统模型的融合发展,通过利用大量数据在整个时间序列中估计全局模型参数,使得传统的建模方法得到了实质性的改进。RNN 由于隐藏层之间特有的有向循环连接使其具备对时序数据的记忆功能,在自然语言处理和时序数据分析上得到了广泛的应用[13]。RNN 模型是基于梯度的算法,处理长时间序列数据可能会有梯度消失或者梯度爆炸问题,因此更常用的是LSTM、GRU 这些衍生变体。Akita 等[14]利用LSTM 结合历史数据和文本信息来预测价格;Zhang 等[15]提出了基于状态频率内存(State Frequency Memory,SFM)方法,将LSTM 存储单元的隐藏状态分解为多个频率分量,以发现多频交易模式;黎镭等[16]利用GRU 网络解决时间序列数据的预测问题。以上基于时序建模的方法使得股票价格预测精度有所提升,但这些方法仅对时序相关性建模,忽略了股票市场的动态联动关系。
最近,基于图结构数据的深度学习方法[5]引起了研究者的广泛关注,与传统的卷积神经网络(Convolutional Neural Network,CNN)不同,GCN 能够对不同输入数据的关系图结构进行编码,从而利用公司关系数据进行股市预测。Feng等[8]提出时间图卷积组件,结合行业和维基百科关系修改股票序列嵌入来执行关系股票排名(Relational Stock Ranking,RSR)方案;Chen 等[7]利用相关公司持股信息构建图结构,基于GCN 模型进行股价涨跌预测。然而,在实际金融市场中,股票实体之间的关系往往会超出成对连接,而普通图结构只能表达两点之间的关系,利用图模型对高阶关系提取具有局限性。
为了描述以上高阶关系,研究者们开始采用超图模型来提取关系信息,其超边可和任意个数顶点连接,使其能够更好地体现对象间的拓扑结构。近年来,超图日益为研究者所关注,其应用体现在诸多方面,例如在计算机视觉中,超图可描述视觉特征之间的关系,实现视觉分类[17]、图像检索[18]等任务;在社交媒体方面,多模态超图学习(Multimodal Hypergraph Learning,MHG)[19]和双层多模态超图学习(Bilayer Multimodal Hypergraph Learning,Bi-MHG)[20]被提出,以处理多模态数据。Feng 等[9]提出一种用于数据表示学习的超图卷积神经网络框架,在考虑高阶数据结构的情况下学习隐层表示;Bai 等[21]从数学上证明当非成对关系退化为成对关系时,图卷积即为超图卷积的一个特例。
由此,本文提出一种基于GRU 网络和HGCN 的股票趋势预测模型,其中GRU 单元作为时间序列建模模块,HGCN 用于建模金融市场中的股票实体之间的多元关系,学习股票内在关系属性,将实体间的关系信息引入到传统的时间序列建模中,进行端到端的趋势预测。
2 算法介绍
2.1 GRU门控循环单元
GRU 是RNN 的变体之一,通过引入门控结构,解决了RNN 难以处理长距离信息捕获的问题[4]。GRU 相较于LSTM的门结构做了简化,只引入了重置门rt和更新门zt:重置门rt用于控制忽略前一时刻的状态信息的程度,rt值越小,说明忽略前一时刻的信息越多;更新门zt用于控制前一时刻状态信息流入当前状态中的程度,zt值越大,说明保留前一时刻的信息越少。GRU 的前向传播公式如下:
其中:xt是当前时刻的输入,ht-1是前一时刻的状态值,Wr、Wz分别为重置门和更新门的权重矩阵,σ和tanh 为激活函数。是GRU 单元当前时刻的候选状态,为候选状态的权值矩阵,ht是最终输出状态。
由于GRU 相较于LSTM,网络结构简单、参数少、收敛速度快,且能达到相似的性能,因此本文采用GRU 单元作为时间建模的基础组件,以捕获顺序依赖关系并学习股票序列嵌入;另一方面,现有方法对金融市场数据的关系提取仍有不完全的问题,本文考虑使用超图模型进行关系建模。
2.2 超图模型简介
超图可以表示各实体间的多元关系且不丢失信息,既可以表示一对多的关系,也可以表示多对多的关系。
2.2.1 超图的定义及概念
定义1超图。定义为G=(V,E,W),包括顶点集V,超边集E,每条超边ε∈E都被赋予一个正的权值Wεε,所有的权值都存储在对角矩阵W∈RM×M中(M是超边个数)。当且仅当每条超边关联2 个顶点v时,超图退化为普通图。
定义2关联矩阵。简单图可以用邻接矩阵来表示,超图G也可以用关联矩阵H∈R|V|×|E|表示。H中的项定义为:
那么,顶点度矩阵D中的项定义为:
超边度矩阵B中的项定义为:
本文由股票实体和关系数据构建超图模型,其中节点代表股票,超边则代表股票间的多元关系。如前所述,本文主要基于行业板块关系和主动型基金投资组合季度报告数据生成超图。对于行业板块关系,任一行业内的股票作为一条超边内的节点集合,由于股票所属行业唯一,该超图顶点度矩阵为单位矩阵;对于基金组合关系,季度内各个基金投资多支股票,各支股票亦可能被多个基金投资,类似地,任一基金投资的股票作为一条超边内的节点集合。通过超图生成模块拟合股票间的多元关系,在考虑高阶数据结构的情况下学习隐层表示。
2.2.2 超图卷积
Feng 等[9]提出超图卷积神经网络框架(HGCN),利用超图拉普拉斯算子从谱卷积角度进行表示学习。HGCN 旨在基于超图G学习一个特征函数,输入:1)特征矩阵X∈RN×dim,其中N表示节点个数,dim表示输入特征的维度;2)关联矩阵H∈R|V|×|E|,由定义2 可得到对应的顶点度矩阵D∈R|V|×|V|和超边度矩阵B∈R|E|×|E|。HGCN 传播规则如式(8)所示:
其中:l为卷积层数,X(0)=X,Θ∈RC1×C2是训练过程中需要学习的参数。超边卷积层通过node-hyperedge-node 变换有效地提取超图上节点之间的高阶相关性。
2.3 股票预测联合模型
由以上两部分基础组件,本文提出基于GRU 和HGCN 的联合预测模型,整体结构如图2 所示。
图2 联合预测模型总体框架Fig.2 Overall framework of joint prediction model
由过去T天时间步的输入特征矩阵{X1,X2,…,XT}先经过GRU 网络进行时间序列编码,得到聚合历史序列信息的表示{h1,h2,…,hT};然后输入到两层HGCN 关系建模模块;最后输入到全连接层得到股票涨跌分类。记g=D-1/2HWB-1HTD-1/2,整个过程的节点更新如式(9)所示:
最终输出未来1 日节点标签概率矩阵YT+1∈RN×C,其中C表示类别数,Θ(0)∈RD×H表示输入层到隐藏层之间的H维权重矩阵;Θ(1)∈RH×C表示隐藏层到输出层之间的C维权重矩阵。本文使用交叉熵作为损失函数。
3 实验与结果分析
3.1 数据集
现有研究大多是对几十支股票进行预测,缺乏大型公开数据集进行广泛的评价,因此,本文考虑构建大型A 股数据集。具体来说,本文使用开源的Python 财经数据接口包——Tushare(https://tushare.pro/)获取2013 年1 月4 日至2019 年12 月31 日期间A 股市场有交易记录的股票,共2 433 支。然后通过保留交易日超过98%的条件进行筛选,得到最终用于实验的758 支股票。
对于这些股票,进一步收集3 种类型数据:1)历史价格数据,2)所属行业,3)季度基金持仓数据。
3.1.1 序列数据及预处理
本文选取影响股票价格波动的主要的6 个技术指标,包括开盘价(Open)、最高价(High)、最低价(Low)、收盘价(Close)、交易量(Volume)、交易额(Amount)。由于股票市场常常会受到诸如政策、突发事件等因素干扰而出现停盘,造成数据缺失,本文使用停盘前一日的数据填充;然后计算收盘价的4 个序列特征:5、10、20 和30 日移动平均线(Moving Average,MA),分别代表每周和每月趋势;最后将每支股票的特征除以整个数据集期间的最大值进行标准化。最终得到10 维特征作为输入。
本文将序列数据按6∶2∶2 的比例分为训练集、验证集和测试集,然后按照文献[22]中的设置,根据收盘价的移动百分比(closei+1-closei)/closei得到标签,将移动百分比≥0.55%的标记为“up”,≤-0.5%的为“down”,其余为“remain”。本文在股票涨跌预测上选择如上三分类预测,能够更好地实现区分小范围涨跌幅、大涨和大跌的情况,更具有实际意义。详细的统计数据如表1 所示。
表1 序列数据统计Tab.1 Statistics of sequential data
3.1.2 行业关系
同一行业内股票价格可能会呈现相似的趋势,因为它们往往会受到类似外部事件的影响。因此本文收集了758 支股票的所属行业分类,共104 个行业。表2 列出了部分股票所属行业情况。
表2 部分股票和所属行业Tab.2 Part of stock and industry
3.1.3 基金季度持仓数据
本文还收集了公募基金季度持仓数据,本文选择2013—2019 年均有投资组合公告的61 支主动型基金,得到28 个季度的关联矩阵H。表3 是该数据集中华夏大盘精选基金(000011.OF)在2013 年4 个季度的持股列表示例。
表3 000011.OF 2013年持股列表Tab.3 000011.OF Shareholding list in 2013
3.2 评价指标
本文选用准确率(Accuracy,Acc)、精确率(Precision,P)、召回率(Recall,R)和F1-score(精确率和召回率之间的调和平均值),作为模型预测的评价指标。根据真正性(true positives,tp)、真负性(true negatives,tn)、假正性(false positives,fp)、假负性(false negatives,fn)计算,具体定义如下:
以上指标仅用于衡量模型基于分类的预测能力,而在真实市场中真正重要的是盈利能力。以下利用金融业广泛使用的回报率(Return,R)、年回报率(Annual Return,AR)和夏普比率(Sharpe Ratio,SR)、最大回撤率(Max DrawDown,MDD)作为度量指标。
具体来说,模拟期T时累计收益记为ProfitT,ProfitT=PortfolioT-Portfoliot0,其中PortfolioT表示模拟期T时资产总值,Portfoliot0表示模拟期开始时t0总值,回报率(R)和年回报率(AR)计算为:
其中:Ts是模拟期总时间跨度(单位:d),244 是一年的平均交易日数。
此外,夏普比率(SR)同时对收益与风险加以考虑,SR定义为平均超额收益与风险波动的比率:
其中:Rt表示t日回报率,Rf表示无风险利率(官方的无风险利率选择一年期定期存款利率,本文实验选择2019 年的央行年利率1.5%),σ 表示收益标准差。注意,SR不应作为绝对值,而应被视为与基准相比的性能指标。
同样,最大回撤率(MDD)是另一重要的风险衡量指标,用于描述投资可能面临的最大亏损,计算为:
其中:Pt为第t日资产总值;Pt+i则是t之后i日资产总值,该指标衡量某一段时期内资产总值从最高点回落到最低点的幅度。
3.3 实验结果及分析
为了评估本文模型,本文进行一系列对比实验。具体来说,使用过去10 d的历史数据来预测未来1 d的涨跌情况。对于每种方法,重复三次并报告平均性能,以消除由不同初始化引起的波动,其中“_industry”表示使用行业关系,“_fund”表示使用基金关系,“_hybrid”则表示同时使用两种关系。
3.3.1 建模关系信息方法比较
本文研究在加入关系信息之后,超图卷积神经网络(HGCN)与图卷积神经网络(GCN)的性能比较,以验证利用超图建模股票间高阶关系的有效性,实验结果如表4 所示。
表4 图学习与超图学习方法的性能比较 单位:%Tab.4 Performance comparison of graph learning and hypergraph learning methods unit:%
与基于图学习的关系建模方法GCN 相比,基于超图学习的HGCN 有所改进。HGCN_industry 和HGCN_fund 相对于GCN_industry 和GCN_fund,在Precision 指标上分别提高了9.59%和9.84%,说明HGCN 能够更有效利用高阶相关性来学习数据表示,体现了利用超图建模股票间多元关系的优势。其中,HGCN_industry 表现优于HGCN_fund,分析原因可能是,行业关系反映的是股票之间的长期关联性,较为稳定;而基金关系更加复杂,波动性较大,且随季度动态变化。因此,本文认为利用动态的基金关系融合相关股票之间的特征具有一定的可行性,但效果欠佳,需要进一步的研究。
此外,本研究通过将行业关系和基金关系的邻接矩阵(A_industry 和A_fund)相 加,关联矩阵(H_industry 和H_fund)相拼接,得到融合两种关系的表示,进行实验“_hybrid”。从结果可看出结合两者关系之后性能有所提升,“GRU+HGCN_hybrid”表现最好,说明两种关系具有一定的互补性,结合多源关系信息进行高阶关系建模有利于股票预测。
3.3.2 不同模型性能比较
进一步,本文将所提模型“GRU+HGCN_hybrid”与现有股票预测模型LSTM、GRU、SFM[15]、RSR[8]进行对比,实验结果如表5 所示。可以看出,考虑股票间关系的方法均显著优于LSTM、GRU、SFM。由于这些方法都以LSTM 或GRU 单元为基础,说明编码股票间关系有利于提高预测精度。本文模型“GRU+HGCN_hybrid”相较于GRU 网络在Accuracy 和F1_score 指标上的增幅分别为9.74%和8.13%。
表5 与现有股票预测模型的性能比较Tab.5 Performance comparison with existing stock prediction models
最后,从表5 中各模型的标准差可以看出,本文提出的级联模型相对于其他已有模型,标准差更小,鲁棒性更强。
3.3.3 回测结果分析
为了进一步评估所提模型在股票市场上的表现,本文基于预测模拟交易者行为,以检验模型是否能够获利。交易决策如下:如果模型在第i日预测股票价格上涨,则以收盘价closei向每支股票投资10 000 元人民币。买入后,若预测价格上涨或者持平,则持仓;若在第j日预测价格下跌,则以收盘价closej卖出(收益=closej−closei)。财务结果是在考虑万分之三的交易手续费的情况下,在测试集模拟期间操作全部股票得出。各模型的累计收益曲线如图3 所示(注意为便于观察,此处截取模拟期后半段累计收益)。其中“Buy-and-hold”策略是在测试集第1天买入,第i天卖出(收益=closei−close1)。
图3 测试集期间市场模拟的累计收益曲线Fig.3 Accumulated profit curves of market simulation during test set
由收益曲线可看出,基于预测的策略比“Buy-and-hold”收益更高,且最大回撤更小,说明利用模型预测结果进行交易的有效性。此外,本文模型在测试集内累计回报最高,特别是本文模型在不同的市场环境下是稳健的,例如10 月之前的熊市,本文方法的损失比其他已有方法低得多。表6 展示了各模型盈利能力的实验结果,并对前述指标进行定量分析。
表6 各模型盈利能力实验结果Tab.6 Experimental results of profitability of each model
首先,基于本文模型预测的模拟在盈利能力上显著优于其他模型,例如回报率(R)、年回报率(AR)分别高出基线模型中表现最好的LSTM 网络6.23、5.34 个百分点,说明本文模型可以更好地捕捉合适的交易时间点来获利。
同时,图3 收益曲线的波动性表明股票市场的不稳定性,但本文模型在风险控制、投资波动性等方面仍具有较好表现,其中夏普比率(SR)高于其他基线模型,在单位风险下,较大的SR 对应较高的收益。此外,从收益曲线也可以看出在2019-04-15 到2019-11-15 大盘下跌时,本文模型仍然能够获得较高的回报。此外,SFM 方法最大回撤率最小,且除本文模型外,夏普比率最高。从图3 也可看出,该方法收益曲线波动较小,说明SFM 方法获得收益更稳定一些。但这也是一种保守策略,可能会产生更少的回报。
4 结语
本文提出一种基于时序超图卷积神经网络的股票趋势预测模型:GRU+HGCN。GRU 作为时间序列建模模块,引入股票间关系数据后,通过HGCN 建模股票实体之间的高阶相关性进行端到端的股价趋势预测。在A 股数据集上,使用已有股票预测模型进行对比实验,且进行模拟回测。结果表明,所提模型预测性能有所提升,累计收益更高,且更具有鲁棒性,证明了利用超图建模股票间高阶关系的优越性和本文联合模型的有效性。未来工作会尝试研究更多关系类型数据,以及研究如何融合多信源信息进行预测。