MCI-GRU:基于多头交叉注意力和改进型GRU的股市预测模型

本文提出了一种基于多头交叉注意力机制和改进型GRU(门控循环单元)的股市预测模型MCI-GRU。该模型旨在解决金融市场复杂性和大数据时代下准确股市预测的挑战,特别是在灵活选择和有效利用关键历史信息方面。传统时间序列模型如GRU在股市预测中广泛应用,但在处理市场错综复杂的非线性动态时存在局限性。MCI-GRU模型通过替换GRU中的重置门为注意力机制,增强了模型在选择和利用历史信息的灵活性。同时,设计了多头交叉注意力机制以学习不可观测的潜在市场状态表示,并通过与时间特征和横截面特征的交互进一步丰富这些表示。实验结果表明,该方法在中美股市数据集上的表现优于当前最先进的方法,并且在实际金融环境中得到了应用验证。

1. 引言

随着大数据时代和全球经济的快速发展,金融市场的复杂性显著增加,这对股市的波动性和不可预测性提出了前所未有的挑战。准确的股市预测对于投资者、金融机构以及政策制定者都至关重要。时间序列模型如GRU和LSTM因其在捕获序列数据中的时间依赖性方面的优势而被广泛用于股市预测。然而,这些模型在处理金融市场中的长期依赖性时存在局限性。金融市场的非线性特征和由投资者情绪、意外事件等因素驱动的市场行为的快速变化,使得这些模型在处理此类非线性和突发事件时缺乏足够的敏感性和灵活性。此外,它们在灵活选择和有效利用关键历史信息方面面临挑战。

2. 相关工作

股市预测是一个长期存在的金融领域挑战,解决方案包括传统和机器学习方法、深度和强化学习方法以及图神经网络等最新方法。

2.1 传统和机器学习方法

传统方法如自回归(AR)、ARIMA和指数平滑在股市预测中被广泛使用,主要用于建模线性趋势。随着计算技术的进步,机器学习方法如隐马尔可夫模型(HMM)、支持向量机(SVM)、K最近邻(KNN)、决策树和神经网络等因其能够建模股票数据中的复杂模式而受到关注。

2.2 深度学习和强化学习方法

深度学习技术在金融市场的股市预测中得到了广泛应用。循环神经网络(RNN)在这一领域表现出色,能够有效建模时间序列数据中的长期依赖性。强化学习方法因其适应性和持续学习能力而受到关注。

2.3 图神经网络和最新方法

图神经网络因其能够捕捉金融数据中的复杂相互依赖性而在股市预测中受到关注。最近,大型语言模型(LLMs)在股市预测中的应用引起了学术界的兴趣。

3. 方法

本节详细介绍了本文提出的MCI-GRU模型及其结构。整个模型分为四个模块:使用改进GRU捕获时间特征、使用GAT捕获横截面特征、使用多头交叉注意力捕获潜在状态特征和模型预测与损失计算层。

3.1 预定义

考虑一个由S = {s1, s2, …, sN}表示的股票集合,其中每个si代表一个个股,N是数据集中股票的总数。对于任何股票si,第t个交易日的数据由向量xit = (xopen_it, xclose_it, xhigh_it, xlow_it, xvolume_it, xturnover_it)表示,分别对应当日的开盘价、收盘价、最高价、最低价、交易量和成交额。dx表示用于描述每只股票每日的特征数。股票s在t天内的时间序列数据被封装在集合xi = {xi1, xi2, …, xit}中。所有股票的数据集表示为X = {x1, x2, …, xN}。

3.2 使用改进GRU捕获时间特征

GRU模型因其在捕获序列数据中的时间依赖性方面的有效性而被广泛使用。然而,传统GRU模型在捕获复杂时间关系,特别是在处理长期依赖性时存在局限性。为了解决这个问题,本文使用了一个增强的GRU模型,该模型通过替换重置门为注意力机制,从而提高了模型表示和学习时间数据的能力。

3.2.1 GRU的基本结构

在经典的GRU模型中,隐藏状态ht通过更新门zt和重置门rt两个门控机制更新。zt = σ(Wzxt + Uzht−1 + bz)和rt = σ(Wrxt + Urht−1 + br),其中xt是当前时间步的股票输入,ht−1是前一时间步的隐藏状态,Wz、Uz、Wr、Ur是权重矩阵,bz、br是偏置项,σ通常是sigmoid函数。zt和rt用于调节前一时间步的隐藏状态ht−1对当前时间步候选隐藏状态˜ht的影响。

3.2.2 改进GRU的引入

为了克服传统GRU的局限性,本文提出的模型引入了注意力机制来替换传统的重置门r。注意力机制通过动态分配不同时间步的权重,更精确地捕获时间序列数据中的关键信息。具体来说,传统的重置门rt被替换为基于注意力的权重系数α,计算如下:αt = Attention(ht−1, xt)。

3.2.3 隐藏状态的更新

使用新的重置门r’t,GRU隐藏状态的更新公式调整如下:˜h’t = tanh(Whxt + r’t ⊙ (Utht−1) + bh)和ht = (1 − zt) ⊙ ht−1 + zt ⊙ ˜h’t。这使得模型能够更好地提取长期依赖信息和关键特征。

3.2.4 最终输出

通过多时间步的递归计算,增强的GRU模型生成最终的隐藏状态序列H = [h1, h2, …, ht],每个ht都包含了过去时间步的信息,并由于注意力机制而更加关注重要时间步。最终的隐藏状态ht被用作整个序列的表示向量A1,用于后续处理阶段的输入。

3.3 使用GAT捕获横截面特征

图注意力网络(GAT)是模型架构的关键组成部分,负责通过捕获数据中不同股票之间的关系来提取横截面特征。GAT通过引入注意力机制扩展了传统的图卷积网络,允许模型根据它们的关系为图中的不同节点(股票)分配不同的重要性。

3.3.1 输入表示

GAT层的输入是一个表示特定时间步所有股票特征的矩阵。输入矩阵的尺寸为(N, dx),N是代表图中节点的股票数量,dx是每个股票的特征向量维度。这个输入表示是从原始股票数据中派生出来的,因此GAT层特别关注捕获股票之间的横截面依赖性。

3.3.2 图构建

GAT层中的图构建,每个节点代表一个股票,节点之间的边代表这些股票之间的关系。边的权重或关系强度由过去一年股票回报的历史相关性决定。这些相关性通常使用皮尔逊相关性或其他统计度量计算得出。

3.3.3 GAT中的注意力机制

GAT层的核心在于其注意力机制,该机制动态计算每个节点的邻居在聚合信息时的重要性(注意力系数)。对于图中的每个节点i,GAT层执行以下操作:

  • 线性变换:每个节点的特征向量xit使用可学习的权重矩阵Wg进行线性变换。

  • 注意力系数计算:使用以下公式计算股票i和其邻居j之间的注意力系数:eij = LeakyReLU(a⊤[h’i||h’j])。

  • 归一化:然后使用softmax函数对节点i的所有邻居的注意力系数进行归一化。

  • 特征聚合:最后,节点的更新表示被计算为邻居的变换特征的加权和,由归一化的注意力系数σij加权。

3.3.4 GAT层的输出

GAT层的最终输出是一个矩阵A2 ∈ RN×dg,其中每一行对应于股票的更新特征向量,现在包含了来自其邻居的信息。这个输出捕获了股票之间的横截面依赖性,并作为模型下一阶段的输入,市场潜在状态学习层进一步处理这些特征。

3.4 使用多头交叉注意力捕获潜在状态特征

市场潜在状态学习层是模型的关键组成部分,旨在捕获和表示原始数据中不可直接观测的市场的潜在状态。这一层专门设计用于模拟影响股票行为的底层市场条件,使模型能够通过利用这些隐藏状态更好地理解和预测股票动向。

3.4.1 市场潜在状态的初始化

该过程以一组可学习的市场潜在状态向量的初始化开始。这些向量旨在代表可能推动股票价格的不同潜在市场条件或因素。初始化如下:

  • 潜在状态的数量(dr):模型初始化了dr个潜在状态向量。dr是一个超参数,可以根据被建模市场的复杂性进行调整。较大的dr允许模型捕获更多种类的潜在因素。

  • 维度(di):每个潜在状态向量的维度为d,应与模型迄今为止学到的股票特征的维度相匹配。这确保了这些潜在状态与前一层输出的兼容性。

3.4.2 多头交叉注意力机制

市场潜在状态学习过程的核心涉及一个多头交叉注意力机制。这种机制允许潜在状态向量与改进型GRU和GAT层的输出进行交互,有效地吸收这些输出中的相关信息,并完善潜在状态表示。多头交叉注意力在R1和A1之间:在多头交叉注意力机制中,A1用作查询,R1用作键和值。计算如下:

  • 线性变换:对于每个注意力头i,我们如下计算A1(查询)和R1(键和值)之间的注意力分数:

  • 缩放点积注意力:对于每个头i,我们如下计算查询A1和键R1之间的注意力分数:

  • 注意力头的拼接:在计算了所有头之后,所有头的输出被拼接起来:

  • 市场潜在状态的整合:在应用多头交叉注意力机制后,输出B1和B2被认为是丰富的潜在状态表示。这些向量现在捕获了市场的时间序列和横截面特征,使其成为后续任务的强大表示,如预测股票动向或识别市场状态。

3.5 模型预测和损失计算层

损失计算层是模型的最后阶段,负责综合前一层的输出并生成预测。该层还通过计算模型预测的股票回报与实际值之间的差异来定义如何训练模型。

3.5.1 输入组合

损失计算层的输入来自模型的三个关键组件的输出:时间序列表示A1、横截面表示A2和潜在市场状态表示B1和B2。时间序列表示A1来自改进型GRU层,捕获股票数据中的时间序列依赖性。横截面表示A2来自GAT层,基于股票之间的相互关系对股票进行建模。潜在市场状态表示B1和B2来自市场潜在状态学习层,代表从时间序列和横截面数据中学习到的隐藏市场因素。为了准备最终预测,模型将这些输出连接起来形成一个综合特征向量Z,该向量整合了所有相关信息。Z ∈ RN×dz是用于最终预测的综合特征向量,dz = 2dh + 2dg取决于A1、A2、B1和B2的各个维度。

3.5.2 最终预测与GAT层

一旦获得特征向量Z,它就会通过额外的GAT层进行最终预测。这些层的目的是通过对图结构中的股票(节点)之间的关系进行精细化处理,从而完善连接的特征。这部分模型中的GAT层与早期的GAT层功能相似,但现在它们操作的是更全面的特征集,结合了时间和关系信息以及潜在市场状态表示。GAT层的结构如下:

  • 图构建:图的结构与早期的GAT层相同。节点代表个股,边代表股票之间的关系,基于过去一年的历史相关性。这些相关性使用可调参数judge value阈值进行过滤,以确定在训练期间包含哪些关系。

  • 注意力机制:注意力机制使用以下公式计算每个股票的邻居的重要性:eij = LeakyReLU(a′⊤)[WzZi||WzZj]。

  • 特征聚合:每个股票的最终输出被计算为邻居特征的加权和,由注意力权重σ’ij决定。

  • 降维:将第一层GAT的输出Z’i放入第二层GAT以降低维度。计算方法与上述相同,最终输出Z’'i作为每只股票的预测结果。

3.5.3 损失函数

在从GAT层获得最终预测后,下一步是计算损失,该损失测量模型预测的股票回报与实际值之间的差异。损失函数的选择至关重要,因为它指导模型的训练过程并影响其性能。在本文中,我们对股票预测任务使用均方误差(MSE)作为损失函数。损失函数定义为:Loss = 1/N ∑(Z’‘i − yi)^2,其中Z’'i是股票i的预测值,yi是实际值。在训练过程中,模型参数被优化以最小化所选的损失函数,从而随着时间的推移提高预测性能。我们使用Adam作为基于梯度的优化算法来更新模型的参数。

4. 实验

本节详细讨论了实验设计,包括实验设置、基线模型、结果、参数敏感性分析、消融研究和案例分析。实验设置部分特别涵盖了数据集、评估指标和模型参数。

4.1 实验设置

实验使用了四个不同的股票市场数据集,以严格评估模型在不同市场条件下的鲁棒性和泛化能力。这些数据集包括中国的沪深300和中证500指数,以及美国的纳斯达克100和标普500指数。这些数据集提供了对不同市场行为和地理区域的全面视图,从而支持对模型预测能力的全面评估。

4.1.1 数据集

数据集分为训练(2018年1月1日至2021年12月31日)、验证(2022年1月1日至2022年12月31日)和测试(2023年1月1日至2023年12月31日)三个阶段。预测方法采用过去60个交易日的特征来预测未来21个交易日的股票回报排名。

4.1.2 评估指标

模型的交易策略如下:在第t个交易日结束时,模型为每只股票生成预测分数,根据预期回报进行排名。在第t+1个交易日开盘时,交易者清算第t天购买的股票,并购买预期回报排名前k的股票。如果一只股票持续排名在预期回报最高的股票中,它将保留在交易者的组合中。本模拟不考虑交易成本。为了提高评估的可靠性,我们对每种方法进行了十次训练和预测,将十次的平均结果作为最终预测结果,然后进行交易。

4.1.3 参数设置

模型架构包括四个主要组件,每个组件旨在捕获金融时间序列中的独特模式。在“使用改进GRU捕获时间特征”模块中,我们引入了注意力机制来替换GRU框架中的常规重置门。该模块由两层组成,第一层包含32个神经元,第二层包含10个神经元。该模块的输出A1负责从历史窗口中提取股票数据的时间依赖性。“使用GAT捕获横截面特征”模块由两层组成,每层都有可调参数。初始GAT层由32个神经元组成,使用4个注意力头,而第二层GAT层将特征维度降低到4个神经元。图中节点之间的关系,代表股票,是基于过去一年股票回报的相关性来定义的。在训练期间,应用0.8的阈值来过滤具有显著相关性的股票对。GAT层的输出A2捕获了股票相关图结构依赖性。在“使用多头交叉注意力捕获潜在状态特征”中,初始化了两个可学习的市场隐藏状态向量R1和R2,每个向量的维度为32。采用了多头交叉注意力机制,其中R1与A1交互,R2与A2交互,分别得到表示向量B1和B2。多头交叉注意力的头数为4。这些表示向量通过利用股票数据的时间和结构特征来封装潜在市场状态。“模型预测和损失计算层”将A1、A2、B1和B2的输出连接起来,通过两层GAT进行最终预测。这个最终模块负责通过融合时间和关系信息来预测未来的股票趋势。模型的批量大小为32。均方误差(MSE)被用作损失函数,Adam优化器用于更新模型参数,初始学习率为0.0002。在实际应用中,每个交易日构建一个虚拟投资组合,包括模型预测回报最高的前10只股票。

4.2 基线模型

我们对提出的MCI-GRU模型与一系列基线模型进行了比较分析,这些模型包括传统机器学习和深度学习方法中的时间序列预测方法,以及用于投资组合管理的强化学习方法。

4.3 实验结果

实验结果表明,MCI-GRU模型在所有数据集上的表现优于传统、深度学习和强化学习基准,在捕获金融数据的长期和短期依赖性方面具有显著优势。实验结果强调了整合关系数据和时间信息在股票预测模型中的关键作用。

4.4 参数敏感性

对模型的关键超参数进行了深入分析,包括judge value、label t、his t、hidden size、gat heads和num hidden states,结果表明模型在不同参数设置下保持了高度的一致性和有效性。

4.5 消融研究

消融研究结果表明,模型的不同组件不仅互补,而且它们的整合显著提高了预测性能,强调了利用时间和关系信息以及潜在市场状态进行精确可靠的财务预测的重要性。

4.6 案例研究

案例研究提供了模型在EMoney Inc.的实际算法交易平台中的部署情况,展示了模型在动态金融环境中的强大适应性。模型每月训练一次,每个交易时段结束后立即生成每日预测。这些预测作为下一个交易日最初半小时内执行交易策略的基础。

5. 结论

本文提出的MCI-GRU模型通过整合多头交叉注意力机制和改进型GRU架构,解决了捕获股票数据中复杂时间和关系依赖性的挑战。通过替换传统GRU中的重置门为注意力机制,模型显著提高了选择性利用历史时间序列数据的能力。此外,GAT的引入使得模型能够提取横截面特征,而多头交叉注意力机制则捕获了影响股票行为的潜在市场状态。广泛的实验表明,MCI-GRU在多个性能指标上优于现有的最先进方法,并且已成功应用于实际的基金管理公司,展示了其在实际金融环境中的实际适用性。

如何学习大模型 AI ?

由于新岗位的生产效率,要优于被取代岗位的生产效率,所以实际上整个社会的生产效率是提升的。

但是具体到个人,只能说是:

“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。

这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段(10天):初阶应用

该阶段让大家对大模型 AI有一个最前沿的认识,对大模型 AI 的理解超过 95% 的人,可以在相关讨论时发表高级、不跟风、又接地气的见解,别人只会和 AI 聊天,而你能调教 AI,并能用代码将大模型和业务衔接。

  • 大模型 AI 能干什么?
  • 大模型是怎样获得「智能」的?
  • 用好 AI 的核心心法
  • 大模型应用业务架构
  • 大模型应用技术架构
  • 代码示例:向 GPT-3.5 灌入新知识
  • 提示工程的意义和核心思想
  • Prompt 典型构成
  • 指令调优方法论
  • 思维链和思维树
  • Prompt 攻击和防范

第二阶段(30天):高阶应用

该阶段我们正式进入大模型 AI 进阶实战学习,学会构造私有知识库,扩展 AI 的能力。快速开发一个完整的基于 agent 对话机器人。掌握功能最强的大模型开发框架,抓住最新的技术进展,适合 Python 和 JavaScript 程序员。

  • 为什么要做 RAG
  • 搭建一个简单的 ChatPDF
  • 检索的基础概念
  • 什么是向量表示(Embeddings)
  • 向量数据库与向量检索
  • 基于向量检索的 RAG
  • 搭建 RAG 系统的扩展知识
  • 混合检索与 RAG-Fusion 简介
  • 向量模型本地部署

第三阶段(30天):模型训练

恭喜你,如果学到这里,你基本可以找到一份大模型 AI相关的工作,自己也能训练 GPT 了!通过微调,训练自己的垂直大模型,能独立训练开源多模态大模型,掌握更多技术方案。

到此为止,大概2个月的时间。你已经成为了一名“AI小子”。那么你还想往下探索吗?

  • 为什么要做 RAG
  • 什么是模型
  • 什么是模型训练
  • 求解器 & 损失函数简介
  • 小实验2:手写一个简单的神经网络并训练它
  • 什么是训练/预训练/微调/轻量化微调
  • Transformer结构简介
  • 轻量化微调
  • 实验数据集的构建

第四阶段(20天):商业闭环

对全球大模型从性能、吞吐量、成本等方面有一定的认知,可以在云端和本地等多种环境下部署大模型,找到适合自己的项目/创业方向,做一名被 AI 武装的产品经理。

  • 硬件选型
  • 带你了解全球大模型
  • 使用国产大模型服务
  • 搭建 OpenAI 代理
  • 热身:基于阿里云 PAI 部署 Stable Diffusion
  • 在本地计算机运行大模型
  • 大模型的私有化部署
  • 基于 vLLM 部署大模型
  • 案例:如何优雅地在阿里云私有部署开源大模型
  • 部署一套开源 LLM 项目
  • 内容安全
  • 互联网信息服务算法备案

学习是一个过程,只要学习就会有挑战。天道酬勤,你越努力,就会成为越优秀的自己。

如果你能在15天内完成所有的任务,那你堪称天才。然而,如果你能完成 60-70% 的内容,你就已经开始具备成为一名大模型 AI 的正确特征了。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值