改进的多层图注意力网络在股价预测中的应用
2022-02-24姜明华
姜明华,陈 赟
武汉纺织大学 数学与计算机学院,武汉 430200
预测股票走势至今仍是一个难题,长期以来,无论是在工业界还是学术界,许多研究人员都对预测股市的未来趋势表现出极大的兴趣。专注于在历史数据中发现盈利模式的研究人员,被称为金融业的量化从业人员,他们越来越多地使用系统的交易算法来自动做出交易决策。尽管在学术界存在不少争议,但大量研究表明,股市在某种程度上是可以近似预测的。价值投资者认为,公司的股票价格应该与公司的内在价值相对应。如果一家公司的目前的股票价格低于其内在价值,投资者应该购买该股票,因为它的价格将上升,并最终与它的内在价值趋同。公司的基本面分析包括对公司业绩和盈利能力的深入分析,公司的内在价值取决于其产品销售情况、员工价值、基础设施和投资盈利能力的影响。对量化研究者来说,股票价格被认为是一种具有复杂模式的典型时间序列数据。通过适当地预处理和建模,可以对模式进行分析,从中提取有用的信息,用于技术分析的信息主要包括收盘价和成交量等,股票价格的波动是随机和非线性的。
技术分析工作的重点是如何从原始数据中提取有意义的特征。在金融行业,从这些数据中提取的特征称为技术指标,包括自适应移动平均数、相对强度指数、随机性、动量振荡等。提取有意义的技术指标相当于特征工程。许多研究表明,基于递归神经网络的股票波动预测模型是有效的。基于文本的股票预测方法试图捕捉投资者对事件的看法,该类研究假设公司的股票价格等价于投资者对该公司意见的总和。近年来,计算机科学界对利用图结构数据非常感兴趣。Agrawal等人[1]提出了利用公司关系数据进行股市预测的方法;Bao等人[2]用LSTM自动编码开发了一个更通用的框架;通过在公共知识数据库中使用多种不同类型的关系,Bollerslev等人[3]还提出了一个能够捕捉股票时间特征的GNN模型;Chen等人[4]建立了一个基于金融投资信息的公司网络,利用构造的邻接矩阵训练了一个GCN模型,并将其预测性能与传统的网络嵌入模型进行了比较。LSTM是时间序列建模中应用最为广泛的一种框架结构,已有文献将LSTM作为特征提取模块,Chen等人[5]详细描述了有关如何从原始价格数据中提取节点特征向量。Hool等人[6]基于一个可以表达节点平均可疑度的全局度量G,提出了Fraudar方法。从现有文献来看,在图表示方面考虑关系网络和节点信息特征的方法并不多。传统的方法首先根据图的网络信息输入矩阵,比如利用经典的PCA进行降维,包括非线性降维LLE[7]、基于流行假设Laplacian算法[8],针对有向图的方法[9]。LLE算法将每个节点表示为邻近的节点线性加权,给定一个邻接矩阵,计算每个节点的重建权值矩阵,再转换为特征值求解。Laplacian算法输入图的邻接矩阵计算特征值,将最小的k个非零特征值对应的特征向量作为图表示,保证图中相邻节点被映射到降维后的空间位置。Gilmer等人[10]基于图的学习视角为相关节点之间的信息进行交换,通过将节点特征嵌入到矩阵分解中,使得节点表示学习过程中融入了关系信息和节点特征。文献[11]则利用半监督的学习方法将节点分类与图表示任务相结合,但是该方法仅针对节点分类任务。目前的方法将关系数据集成到股市预测的模型中,但仍有较大的改进余地。还没有一种研究表明哪种类型的关系数据更有利于股票走势的预测,也没有找到一种有效的方法来选择地聚集不同关系类型的信息,此外,以往的工作主要集中在节点分类上。节点分类和图分类是基于图学习的两个主要任务。在股票市场网络中,单个节点通常表示公司,预测个股未来走势类似于节点分类任务。
本文认为,图分类任务中的模型可以用节点表示更新函数。在股市预测中如何有效利用基于图的学习方法和关系数据,使用不同类型的关系,并探讨它们对公司股价变动的影响具有重要意义,只有包含重要的相关关系数据才对股票预测有用,一些不相关的信息会降低预测的准确性。
本文借鉴文献[12]的思路,采用类似于重新搜索节点分类任务的个股预测方法[13]和注意力分层机制[14],基于Tensorflow[15]平台和维基数据库[16],从融合关系网络信息和节点特征的角度出发,使用meta-path[17]方法,提出了一种新的多层节点图注意网络(FHAN)方法。实验数据表明,本文的FHAN方法在股价预测能力相对于其他神经网络模型以及LSTM-attention[18]效果更好。
1 FHAN股价预测模型
1.1 预测模型总体框架
图1为融合各种模块的FHAN总体框架,可以有选择性地聚合来自不同关系的信息,并将这些信息添加到公司的节点中。FHAN模型从原始节点出发,使用LSTM从特征模块中提取初始特征。本文首次将Fraudar算法嵌入在多层图网络中,目的是为了从公司节点特征之间抽取更精准的关系数据,剔除可疑度较高的那些公司,保留可疑度较低的公司节点数据进入关系建模层,在随机生成的游走路径中,利用截断的随机游走从图中生成大量路径,将相邻节点之间的信息进行交换。同时注意力模块是共享的,注意力分值的计算可以根据节点和元路径并行计算,分层图注意力网络在每一层根据注意力权重打分,选择重要信息后添加输入到特定于任务的个股股价预测层,完成整股价预测过程。
图1 FHAN总体框架图Fig.1 FHAN general framework
1.2 特征提取模块
特征提取模块用于基于历史股价波动模式来表示企业当前的状态。在这项研究中,使用LSTM作为特征提取模块的方法。LSTM模型用来处理时间序列问题,能充分利用整个序列信息,包括各个企业间的相互关系,并将这种关系用于对每个节点处理中。一个LSTM单元包含很多单元,每个单元包含一个输入门、一个输出门、一个遗忘门和一个记忆单元。设c为记忆单元,x为输入门,f为遗忘门,h为输出门。以企业局部特征{x1,x2,…,xn}作为输入,激活记忆单元,获取节点特征值如下:
其中,RELU为激活函数,W代表LSTM权值矩阵,b代表位置偏移向量,α为sigmoid函数,⊙表示逐点乘积。
1.3 Fraudar模块
Fraudar常应用于关系网络反欺诈中,主要用来识别可疑的欺诈用户。该算法定义了一个可以表达节点平均可疑度的全局度量G,在逐步贪心移除可疑度最小节点的迭代过程中,使G达到最大的留存节点组成了可疑度最高的致密子图。定义公司节点集合数S,G(S)=F(S)/S,其中F(S)是节点可疑度的总和,G(S)可以理解为网络结构中每个节点的可疑程度。当网络中增加一个高可疑度的节点时,其带来的F(S)增加百分比大于S带来的增加百分比,G(S)增大;当增加一个低可疑度的节点时,其带来的F(S)增加百分比小于S带来的增加,此时G(S)减小;所以G(S)是全局可疑度的一个有效表达。节点可疑度又是其所连接的边的可疑度的总和。与节点连接的边越多,其可疑度越小,即根据连接数降权。有效的边可疑度计算公式为1/log(x+5),其中x是边的数量,实际含义就是关系网络信息越复杂的公司,其可疑程度较小。目的就是提取这些可疑度较小的公司节点,一般这些公司为知名度较高的上市公司。同时剔除那些可疑度较高,与节点连接的边较少的公司节点,这些节点不利于预测股价,即所谓的噪音。
初始可疑度确定完毕后在模型迭代过程中,Fraudar贪心的逐步移除图所有可疑度最低的节点。但每一步迭代都遍历全部节点来定位最小值,开销非常大,为此构建一棵优先树如图2,让父节点记录其子节点中的最小值,这样从根节点记录的全局最小值出发,可快速定位到该最小值对应的叶节点,然后将其删除,同时更新网络可疑度和优先树,剩余节点的全局平均可疑度G(*)逐步增大。当全部节点迭代移除完毕后,回溯此过程使G(*)达到最大迭代。此时对应的留存节点即目标节点,之间的关系网络是整个网络高致密子图。
图2 优先树Fig.2 Priority tree
1.4 关系建模模块
在给定窗口大小k,在G上随机生成的游走路径中,如果节点v j出现在节点v i的邻居窗口,则互为邻居节点,只要节点v i在k步内达到v j即可。利用截断的随机游走从图中生成大量路径,从路径中获得每个相邻节点,利用图神经网络的主要功能将相邻节点之间的信息进行交换。来自相邻节点的信息被聚合,然后添加到每个节点表示中,对从不同节点和关系类型中收集的信息进行有效地组合。每一层结构网络都是为了捕捉相邻节点和关系类型的重要性而设计的。最终的节点表示将学习到的向量与其自身的节点特征相融合,将学习到的输入向量作为图表示,以下为图表示的算法过程:
算法1节点关系建模算法
输入:图G(V,E)节点特征向量f i,随机游走长度a1,滑动窗口大小a2,每个节点游走的次数a3,节点表示向量维度d,批量大小b,梯度更新步c;
1.5 特定任务模块
在使用关系建模更新节点表示之后,节点表示将被反馈到特定任务模块。节点表示可以用适当的模型在不同的任务中使用,在本研究中,对基于图的学习任务进行了实验:个股预测。
FHAN:将特征提取模块中的公司i在时间t上的f维特征向量表示为e ti∈Rf。可以在不同类型的关系之间定义边。对于图神经网络,需要从每种关系型中知道目标节点i和相邻节点集。将关系型m中的邻节点i表示为,同时将关系型m的嵌入向量表示为e r m∈Rd。d是关系型嵌入向量的维数。希望模型能够过滤掉一些噪音,因为公司有很多不同类型的关系,有些信息与股价变动预测无关。
1.6 注意力机制层
注意力机制被广泛应用于对选择的信息进行权重分配。通过分层设计的注意力机制,本文的股票预测分层注意力网络(FHAN)只在每个层次上选择有价值的信息。如图3所示,在第一层,FHAN从相邻的节点中选择相同关系类型的重要信息。注意力机制用于计算邻节点当前的不同权重。为了计算这些注意力的分值,将关系型嵌入向量e r m和节点表示i,j连接到一个向量中,将这个向量表示为,注意力分值的计算公式为:
图3 多层节点图注意力网络结构Fig.3 Network of FHAN
其中,Ws和b s是用于计算注意力得分的可学习参数。利用此公式计算注意力权重值,将所有加权节点表示结合起来计算出公司的关系向量表示m,计算公式如下:
Wr和b r是可学习参数,每个关系型权重向量累计汇总成关系状态表示如下:
1.7 个股预测层
将股价变动按以下两种类型的标签进行分类:上涨和下跌。对于个股预选任务,添加了一个线性转换层:
其中,Zu表示数据集中的所有公司,Yic代表具有股价变动的公司。
算法2基于FHAN模型的股价预测算法
输入:个股代码和初始价格
输出:股价相对于初始价格是否上涨或下跌(1表示上涨,0表示下跌)
算法流程:
1.read data //个股代码和初始价格
3.通过Fraudar算法剔除可疑度低的节点
4.从目标公司相邻节点中选择相同关系类型的信息
5.连接关系型嵌入向量和节点表示为一个向量
6.计算注意力分值和相邻节点的权重
8.将关系型嵌入向量输入到第二个注意力层
9.累加节点表示和权重
10.通过交叉熵损失模型训练模型
2 实验
2.1 实验环境及数据集
本文所有实验均基于Tensorflow平台库实现,使用的CPU为英特尔I7处理器,GPU为NVIDIA RTX1080处理器,内存16 GB,操作系统为Ubuntu。
本文以标准普尔500成分股为研究对象,从雅虎财经网爬取这些目标公司近六年股价的数据集,时间从2013/05/21至2019/05/20。本文采用金融行业常用的股价对数收益率作为原始特征输入到特征提取模块,公司的历史股价对数收益率就是时间序列。从维基数据库中收集美股公司自有的关联数据,如果公司实体之间有关联,就可以看作一条边,单个公司实体就是一个节点。维基数据库可以看作是一个拥有大量边和节点的层次图。一些公司之间联系并不是十分紧密,使用层次图中广泛使用的meta-path方法,将这些公司节点连接起来,去除无关联的公司后剩余430家公司,发现这些公司间有71种主要的关联关系。研究目的就是探索这些目标公司间的关联数据在股价预测中是否起显著的作用。
2.2 评估指标
股价变动预测是一种特殊分类任务,分别对每期的个股股价进行预测,这里采用准确率Acc和F1值两个指标来评估预测模型的性能,分值最后取平均数。表1根据FHAN预测类别组合划分为真正例(TP)、假正例(FP)、真负例(TN)、假负例(FN)四种类型。计算公式如下:
表1 评估指标Table 1 Evaluation index
2.3 实验结果与分析
为验证FHAN模型的性能,将四种基线模型MLP、CNN、LSTM、GCN以及LSTM-attention模型与FHAN进行比较。模型参数经过多次实验设置为表2,表3根据图关系信息得到前五类关系型公司的F1分值,可见关系信息公开透明的大公司股价更能准确地被预测。
表2 模型参数设置Table 2 Parameter setting
表3 关系类型的F1分值Table 3 F1 score of relation
为了保证实验数据的准确性和客观性,将每个模型在同一训练集和测试集上分别运行10次,求得精确率和F1值作为模型最终结果如表4所示。从表4可以看出,FHAN由于融入Fraudar算法,嵌入了图结构和节点特征信息,以及多层attention模块,与其他模型相比,准确率提升了约4%,最高提高约24%。但与目前较流行的LSTM-attention模型相比,精确度和F1分数在测试集上仅小幅提升,主要原因在于两者的注意力机制模块都是共享的,在模型效果提升方面起到重要作用,本文虽嵌入Fraudar算法,但由于无法完全剔除噪音的干扰导致稳定性还不够高,因此对比模型效果后发现仅小幅提升。
表4 对比实验结果Table 4 Comparative experiment
2.4 交易回测结果分析
实验所设初始资金100万元,从回测的结果图4中表明,同期以黑色线标准普尔500指数为基准,FHAN、CNN、LSTM-attention策略均显著高于该水平,超额收益阿尔法值均在20%以上。而FHAN策略不仅在年化收益率上高于CNN和LSTM-attention,而且在夏普比率等主要指标上均优于其他策略,说明在相关性很强的股票数据中,FHAN模型要比其他深度神经网络模型效果更好。
图4 回测结果Fig.4 Result of return
3 结束语
FHAN模型的优点如下:由于结合了Fraudar算法,可以处理网络中多类型节点和关系信息,信息可以通过不同的关系从一种节点转移到另一种节点,利用FHAN可以使不同类型的节点相互融合,相互促进和升级。注意力分值的计算可以基于节点和元路径并行计算,总的复杂度与节点数量和基于元路径节点的数量呈线性关系。Attention模块是共享的,参数的数量不取决于层次图的规模。模型对于学习节点具有较好的可解释性。基于注意力分数,可以查看哪些节点或元路径的贡献度,有助于分析和解释实验结果。
从模型有效性来讲,Fraudar模块有和其他无监督算法如聚类共同的缺点,即稳定性较差,需要结合统计性指标作出二次判断。但专家判断需要大量的人工干预,且不具备泛化能力。例如当从关系网络中捕获一些关键信息时,一些无关的信息也会被提取出来。当然,为了增强模型输出的可信度,可以先对图做预剪枝处理,可以有效减少数据运算量和时间。如本文中预先把所有无关信息网络节点的公司剔除,只保留含有关系信息的节点集。
鉴于目前图关系数据网络方法运用在股价预测中的不足,本文首次结合Fraudar算法提出改进的多层图注意力网络模型。该模型在个股预测上效果明显好于其他神经网络模型,实验结果也证明了关系数据在股价预测中的重要性。但该模型仍有较大的改进空间,本文是在整个上市公司数据的基础上研究分类模型,针对性不够,对具体行业的分析是未来的研究方向。本文只利用了单一的数据库进行研究,未来有兴趣的读者可以将新闻文本信息及多种数据库融入关系网络,同时也可以尝试对中国股市和大盘指数进行深入研究,对我国金融行业深入研究具有借鉴意义。