00 导读
图片来自电视剧《繁花》
编辑
在导演王家卫看来,《繁花》“表面是饮食男女,里面是山河岁月,时代变迁”。剧中主角阿宝凭借精准的投资预判和灵活的操作策略,在资本市场的博弈中完成了从散户到“宝总”的华丽转身。而宝总起家的背后,便是抓住了A先生股票投资失败的契机,这一戏剧性转折生动揭示了股市风险无处不在,即便是实力雄厚的大户也可能面临惨痛损失。
在现实世界里,股票市场的不确定性让每一位参与者都如同剧中的人物般步步为营。如果宝总生在现代,在大数据、人工智能等前沿技术日新月异的今天,一定会通过科学的方法和智能工具来洞悉市场动态、分析趋势变化。
接下来我们要介绍的论文就提出了一种新颖的分层多关系动态图框架来建模GuPiao投资预测。本论文MDGNN: Multi-relational Dynamic Graph Neural Network for Comprehensive and Dynamic Stock Investment Prediction已经被AAAI 2024接收。
01 背景
股票市场是金融体系的重要组成部分,为投资者提供了交易各种资产股票的市场。然而,由于各方面之间存在动态且错综复杂的关系,预测股票价格的变动具有挑战性。投资者的买入、卖出等活跃交易行为推动股票价格的波动。
此外,股市还受到多种因素的影响,包括经济指标、财务报告、全球新闻、政治事件、投资者情绪等。因此,要准确捕捉GS动态,就必须整合多方面的关系。
为了解决上述问题,我们引入了一个新颖的多关系动态图神经网络(MDGNN)框架来强调股票关系的多面性和时序性。具体来说,我们利用离散动态图框架来解决股票投资预测,为了全面捕捉股票的多面性,我们用每日股票信息和关系数据构建每个图快照,然后使用多关系图嵌入层进行分析。
多关系图生成的表示为股票和关联实体之间的相互关系提供了彻底和完整的视角。此外,我们利用 Transformer 结构的强大功能来编码多重关系的时间演化,为预测股票投资提供动态且有效的方法。
02 模型方案
问题定义
对于股票之间关系是多方面的而且每天都在不断变化,我们提出了一个动态图神经网络来刻画他们。令表示MDGNN,其中是第t个交易日的多关系图快照,T表示总的多关系图快照数量。对于一个股票节点,他在第t个交易日的收盘价是。我们预测的标签是在连续两个交易日该股票的收益率相比大盘收益的超额收益,也就是
我们将股票收益率预测任务定义为回归任务,利用MDGNN网络来学习一个参数网络,该网络通过最小化损失函数来优化:
其中是训练样本集,是根据每个样本计算的损失。
MDGNN股票收益率预测方案
接下来我们将介绍如图 1 所示的 MDGNN 模型的架构,其中包括日内层、日间时序提取层和预测层。
图1: MDGNN网络结构图
日内图网络快照
这个模块包含了多关系图构建和层次化多关系图表征两个部分。
多关系图构建
由于单只股票的表现除了受到其个体特征之外,还受到多种因素的影响。由于股票市场复杂多面,单一关系不足以描述错综复杂的关系。因此,从综合关系的角度考虑股票之间的相关性非常重要,这样才能更准确地描绘股票市场的整体表现。
为了解决股票市场的复杂性,我们整合了行业、投资银行和股票对的关系,建立了一个多元关系图。这种方法使我们能够揭示这些复杂的联系,并更深入地了解金融体系的潜在动态。下面具体介绍包涵的多元关系:
行业图关系:公司及其相应股票的业绩与其所处行业密切相关。例如,随着一个行业的快速发展,该行业的公司可能会对其产品或服务的需求增加,这将导致更高的收入和利润。因此,这些公司的股价很可能会上涨。此外,一家公司生产的产品要么可以作为另一个行业的原材料,要么依赖于另一个行业生产的原材料。因此,原材料成本的任何增加都会导致公司费用的增加。此外,政府针对行业的法规和政策也会对关联公司产生重大影响。具体来说,我们将股票表示为行业表示为,它们之间的联系表示,这种联系包含对上述供应、需求、竞争和监管联系进行编码的特征,以解释行业的影响传递。
投资银行图关系:投资银行对股票影响很大,因为它们提供与股票市场相关的广泛服务。投资银行通常充当股票做市商的角色,这意味着它们通过定期买卖股票为市场提供流动性。此外,投资银行还提供有关公司财务业绩、行业趋势和其他因素的股票研究报告。这些关系使投资银行能够对股票价格产生影响。我们从投资银行中提取购买、出售、研究和咨询关系,以捕捉对股票价格的重大影响力。我们将投资银行表示,将其与股票之间的联系表示为,其中包含了上述错综复杂的关系。
股票对图关系:由于股票市场的相互关联性以及影响股票价格的各种因素,股票对其他股票具有很大的影响。公司的盈利可能会导致对其股票以及同一行业或部门的其他公司的股票需求增加或减少。在某些情况下,公司可以由同一所有者持有,其中共同持股关系提供了衡量股票之间相关性的一种手段。此外,普通股股东可以在特定时间段内同时买卖公司股票。因此,股票的表现可以彼此呈正相关或负相关。为了捕捉股票市场的相互关联性,我们根据行业、所有权和共同持股关系等因素来确定股票之间的关系。这些关系被表示为编辑
层次化多关系图表征
如上所述,我们根据与股票相关的不同关系构建了一个多关系图。这使我们能够捕获股票之间关系的复杂表示,从而更全面地理解股票投资模型。具体来说,我们定义了一些从股票节点开始的元路径,例如“股票-股票()”,“股票-银行-股票()”和“股票-行业-行业-股票()”。
由于节点和边对库存节点都有不同的影响,因此我们提出了一个可以聚合和传播信息的层次化图嵌入层。此外,边特征在基于图的模型中至关重要,因为它们编码有关节点之间关系的基本信息。例如,在股票市场预测的背景下,编码行业与其相应股票之间的供给、需求、竞争和监管联系的特征可以为股票的未来趋势提供有价值的见解。
具体来说,我们在聚合来自邻域节点的信息时利用注意力机制,使模型能够关注边及其连接的节点的独特属性。如GAT中所示,在图注意力机制中使用多头注意力是有利的。由此,聚合目标节点的邻居时第个头的注意力权重如下:
其中表示目标节点的邻域节点,|| 表示串联操作,W是共享投影矩阵。
此外,我们聚合来自多个头的表示,并使用平均池化来更新目标节点的表示,如下所示:
其中是共享投影矩阵,K是头总数。我们将从元路径中得到的表示股票节点表征分别定义为
然而,有效地组合这些表示可能是一项具有挑战性的任务。注意力机制提供了一种解决方案,允许模型有选择地关注目标节点最相关的表示。通过为每个表示分配不同的注意力权重,模型可以有效地组合和聚合来自多个元路径的信息。这个过程不仅捕获最关键的信息,还有助于减少表示中的噪声和冗余。
具体来说,我们设计了一个关系感知图模块,它以自适应方式聚合多关系图中的节点和关系特征,如下所示:
其中 W 是一个可学习的矩阵,是节点在合并股票节点之间的多种关系后的表示。通过为每个表示分配不同的注意力权重,模型可以优先考虑信息最丰富的表示,从而增强模型捕获重要模式和关系的能力。此外,分析这些权重可以了解最终预测中每个关系或元路径的重要性。这种可解释性对于理解模型决策过程背后的推理至关重要。
为了增强股票节点的表示,我们堆叠了多个分层多关系图嵌入层。第一层捕获局部信息,而后续层捕获越来越多的全局信息。因此,当我们堆叠多个图形层时,远离原始节点的节点将受到影响。这有助于对股票信息传输中涉及的复杂关系进行建模。这还使模型能够学习图中的复杂模式和关系,从而提高性能。具体来说,我们堆叠L个GNN层,使用最终的 GNN 层获得每个股票节点在交易日t的表示,记为。
日间时序提取层
尽管股票节点表示是通过图嵌入层从每个图快照获得的,但股票的语义以及它们之间的关系在不断发展。例如,证券公司每天都会通过卖出前一天买入的公司股票来调整头寸,同时买入未买入的公司股票。此外,股票的特征(如动量、波动性、收益率因素)也因每天市场变化的影响而发生变化。因此,有必要捕获节点的动态性质以及图快照之间按时间顺序演变的关系。
为了解决上述挑战,我们开发了一个采用 Transformer 结构的时序提取模块。该模块通过获取时间窗口内目标节点的表示来提取图快照传播的时间演化。具体来说,令
作为从交易日t往前回溯个交易日的股票序列表征。为了方便计算,我们先通服务器托管网过简单的线性变化将映射为矩阵。
此外,图快照的时间依赖性对于对节点表示中的依赖关系进行建模至关重要。随着时间的推移,股票与当前价格变化之间的历史关系将会减弱,使得股票价格更容易受到近期事件的影响。因此,我们利用 ALIBI 中提出的相对位置方法,为查询键点积添加静态、不可学习的偏差。它引入了有利于最近事件的归纳偏差,因为它对遥远的查询位置对之间的注意力分数施加了惩罚。
此外,惩罚随着键和查询之间的距离成比例地增加了。我们还使用前向掩码来防止输入序列中的位置在自注意力机制期间关注后续位置。它应用于注意力机制的softmax操作中,以屏蔽未来的位置,确保每个位置只能关注之前的位置。我们计算查询和关键向量的点积,以通过自注意力网络捕获任何节点对之间的信息,其中乘法运算有效地服务器托管网捕获复杂的特征交互。然后我们应用softmax函数来缩放注意力权重,然后将其与相应的值向量相乘,具体操作如下:
其中是斜率参数,是由ALIBI引入的位置偏差,为前向位置掩码矩阵。表示从时间段到 t之间的股票节点的表征,这里我们采用表示股票节点在交易日 t的表示。
预测层
在股票投资预测中,我们的目标是根据股票的表示来估计给定股票在交易日 t产生正回报的概率
其中和是训练参数,是激活函数。
03 实验结果
在本节中,我们在沪深100和沪深300两个公开数据上测试MDGNN相比其他SOTA方法的效果,以证明其有效性和稳健性。此外,我们进行消融研究以分析MDGNN中子模块和超参数的影响。为了评估模型的效果,在评价指标上使用了IC、IR、CR(累计收益),Precision@k等指标。
整体效果
如下表2所示,我们先分析时间序列建模和静态图方法:传统的时间序列建模方法,如MLP,主要依赖于GuPiao的内在节点特征,而LSTM/-Transformer则更注重时间特征。然而,基于同质图的方法,例如 GAT 和 GCN,只考虑节点特征和库存连接。尽管这些方法在 CSI100 数据集上的性能较差,但在更大的 CSI300 数据集上优于 Transformer。这一观察强调了在股票之间建立联系的重要性。
异构和动态图:在算法中包含不同的异构图信息,例如 RGCN、HAN 和 HGT,与之前的方法相比,性能显着增强。此外,我们还比较了基于时间序列异构图的方法,例如 EvolveGCN 和 HTGNN,它们分别是为时间图和多关系图设计的。我们的研究结果表明,时间和多关系图信息的结合可以进一步提高性能。
我们提出的方法:我们提出的 MDGNN 算法利用增强的模块从股票独特的多关系图结构中捕获信息,在两个数据集上都超越了之前基于时间序列异构图的算法。此外,与 CSI100 数据集相比,CSI300 数据集的性能提升更为明显。这一结果可归因于纳入了额外的机构和行业节点,从而产生了更大的训练图并实现了更有效的信息传播。这些发现进一步证明了构建股票趋势预测图表的有效性。
消融实验
不同模块的影响
为了验证我们提出的框架中的设计合理性,我们通过单独删除四个模块来执行消融实验:边缘权重(w/o edge)、元路径(w/o meta-path)、分层聚合(w/o aggregation) ,和时间提取层(w/o temporal))。实验在CSI300数据集上进行,结果如表3所示。我们观察到,删除元路径模块导致性能下降最显着,从而证实了多路径方法的有效性。我们框架中的关系图。
多关系的影响
为了进一步证实我们的多元关系图中每个关系的有效性,我们将结果呈现在表4中。这里,是指股票与股票、股票与投资银行、股票和行业、以及行业和行业的关系。不同节点类型之间的默认连接是双向的,如果元路径中所需的边被删除,相应的元路径也将被删除。我们的研究结果表明,当仅使用同质图中边时,性能与 EvolveGCN 相当。引入和边后,性能得到了一定程度的提升,从而证实了我们构建多元关系图的基本假设,即同一投行持有或属于同一行业的股票的股价变化呈现出 一定程度的一致性。而且,引入边后,验证了连接相似行业的意义,因为它更有利于属于相似行业的股票之间的信息传递。此外,引入投行之间的联系比行业之间的联系产生更显着的效果,因为前者在多家投行持有一只股票时带来的信息差异更大,而这只股票只能属于一个行业。
超参数实验
我们还设计了一些实验来检查超参数的敏感性。在图 3(a) 中,描述了不同窗口大小的累积回报的变化。看来增加窗口大小可以改善效果,但对于信息捕获来说只能达到一定的限制。同样,随着图3(b)中GNN层数的增加,效果也逐渐提高,但过高的复杂度会导致性能下降。
04 总结
在这项工作中,我们首次通过实证分析正式定义了股票的多方面性和时间模式,并提出了一种新颖的分层多关系动态图框架来建模股票投资预测。我们的方法包括为每个交易日构建一个多关系图,并在指定的回溯窗口大小内生成一组离散图快照。就日内图快照而言,我们设计了一个分层多关系图嵌入层,首先聚合特定元路径内的邻居节点,然后自适应地集成来自不同元路径的股票表示。
此外,我们结合了变压器结构来聚合股票的时间演变模式。我们通过广泛的实验证明了我们提出的框架的有效性和稳健性。未来,我们希望通过对比学习方法来研究 MDGNN 来进行股票投资预测,并进一步提高性能。
05 作者简介
钱浩是这篇论文的主要作者,也是蚂蚁集团算法专家,主要研究方向是图算法,推荐算法,大模型和知识图谱的应用。他的研究成果曾多次发表于主流机器学习相关会议(AAAI/WSDM/CIKM)。最近一年团队的主要工作聚焦于大语言模型与知识图谱的交叉方向,在AAAI’24发表了多关系动态图神经网络做股票收益率预测的方法“MDGNN”一篇论文。
关注我们,收获更多技术干货
- 大模型驱动的知识图谱OpenSPG: https://github.com/OpenSPG/openspg
- 大规模图学习系统OpenAGL:https://github.com/TuGraph-family/TuGraph-AntGraphLearning
- 分布式全链路因果学习系统OpenASCE: https://github.com/Open-All-Scale-Causal-Engine/OpenASCE
服务器托管,北京服务器托管,服务器租用 http://www.fwqtg.net
机房租用,北京机房租用,IDC机房托管, http://www.fwqtg.net
寻找TPS性能拐点1、准备脚本①在本地电脑调试Jmeter压测脚本 ②上传到压测机Jmeter所在的服务器 2、执行压力测试①执行压测脚本 jmeter –n –t xianchengzuse.jmx ②记录业务压测数据 3、监控服务器性能指标 ①监控CPU输…