AAAI 24 | StockMixer: 一种简单而强大的基于MLP的股价预测架构

本文介绍了一种基于多层感知器(MLP)的简单而强大的股票价格预测架构——StockMixer。该架构易于优化,并展现出强大的预测性能。StockMixer通过指标混合、时间混合和股票混合三个阶段来捕获股票数据中的复杂相关性。与标准MLP混合不同,StockMixer设计了时间混合以交换多尺度时间片段信息,并通过明确利用股票与市场之间的相互影响来实现股票混合。在真实股票基准测试上的广泛实验表明,StockMixer在减少内存使用和运行时间成本的同时,以显著的优势超越了各种最先进的预测方法。

引言

股票价格预测是量化投资领域的一个基本任务。由于市场上不同股票价格的变动不是相互独立的,股票价格预测实际上被构建为一个多变量时间序列预测问题。鉴于股票市场的高波动性和混沌性,实现高预测精度仍然是一个开放性问题。早期尝试应用基本的机器学习方法来揭示股票数据中的复杂模式,包括决策树、支持向量机(SVM)和k最近邻(KNN)。随着深度学习的出现,最近的文献集中在开发神经网络架构上,这些架构具有表现力和灵活性,能够利用基于对股票市场的直观理解的各种归纳偏好。通常,已经研究了三种相关性:指标相关性、时间相关性和股票相关性。

相关工作

本节回顾了股票价格预测和基于MLP的架构的相关文献。股票价格预测在基于价格-成交量指标的历史数据上经历了长期的发展。随着深度神经网络(DNN)的进步,部分工作采用递归神经网络(RNN)或卷积神经网络(CNN)来模拟单一股票价格并预测其短期趋势。后来的研究通过考虑股票间关系实现了最先进的性能。例如,RSR提出了一个时间图卷积模型,LSTM-RGCN处理股票间的正负相关性,STHAN-R基于Wiki数据增强企业相关性,并使用超图卷积传播高阶邻居信息。最近的方法ESTIMATE也使用超图捕获非成对相关性,并为每只股票的个体模式使用时间生成滤波器。

在计算机视觉领域,MLP最近被重新研究。MLPMixer通过操作补丁并显著增强了MLP的归纳偏好,达到了与CNN和Transformer相似的性能。类似的努力最近被投入到时间序列领域。Dlinear及其后续工作证实了这种简单架构在时间预测任务中的可行性。一系列工作利用MLP-Mixer骨干显著增强了简单MLP结构的学习能力,以改善时间序列预测的性能。然而,由于股票数据缺乏周期性并在时间和股票相关性上动态变化,上述基于MLP的方法在股票数据集上的表现甚至不如基本模型。

方法论

问题定义

遵循现有工作的设置,输入标准化的股票历史模式和多个指标,并输出下一天的收盘价以计算1天回报率。给定由N只股票组成的股票市场数据X = {X1, X2, …, XN},每只股票Xi ∈ RT ×F包含具有回顾窗口长度T的历史数据,其中F表示每个时间步的指标维度。任务是预测交易日t的收盘价pt i并计算1天回报率rt i = pt i - pt−1 i /pt−1 i。模型参数表示为θ,过程可以表示为:X ∈ RN×T ×F θ−→ p ∈ RN×1 → r ∈ RN×1。

标准MLP混合作为图像分类的轻量级方法,MLPMixer仅依赖于在令牌或特征通道中重复实现的线性层、残差连接、数据尺度转换以及适当的激活函数。对于每个原始表示x ∈ Ra×b,我们计算一个新的嵌入y ∈ Ra×b,其在维度a上混合了特征:

其中x是输入特征,y是块的输出。W1 ∈ Rh×a, W2 ∈ Ra×h是全连接层的可训练权重,h是可调的隐藏维度,总是等于a。σ表示非线性激活函数,对预测性能有显著影响。之前的CV模型选择了在图像上表现更好的GeLU,并通过实验发现ReLU和HardSwish在时间序列数据上表现更优越。

StockMixer方法

StockMixer主要包括两部分:指标和时间混合以及股票混合。前者提取每只股票的相应表示,作为高效的编码器。后者收集当前市场所有股票的学习表示,以捕获复杂的股票相关性。最后,结合这两种表示来预测交易日的收盘价。这里,按照数据维度的安排,我们设计了模块序列为指标混合、时间混合和股票混合,从而得到StockMixer。

指标混合与标准MLP混合一致。对于每只股票,我们转置其时间和指标,以在指标维度上执行特征混合,并制定指标混合为:

在这里插入图片描述

其中xT ∈ FT ×T表示单只股票的转置原始嵌入,ˆx ∈ RT ×F是指标混合的结果,我们将其作为后续时间混合的输入。

时间混合与标准MLP混合不同,后者强调补丁的平等性,而时间域中的信息交换更多依赖于时间顺序。具体来说,早期时间步的信息可以影响后期时间步,但反之则不行。然而,标准MLP混合使用全连接结构来交换信息,这与时间数据的特性相悖。为了解决这个问题,我们提出了对全连接隐藏层的结构修改,使其类似于自注意力掩码。在交流时间信息时,任何t只能看到自己和其前一个时间步的内容,而不是平等地采用所有内容。这个修改确保了后期时间步的信息不会泄露到早期时间步,更符合时间特性。用上三角矩阵替换权重实现了这一过程:

其中x ∈ RT ×F表示指标混合表示,U1 ∈ RHt×T, U2 ∈ RT ×Ht分别表示第一和第二全连接层的可训练权重,只有矩阵的上三角部分是可训练的,以实现掩码效果。Ht表示时间的隐藏维度,这里我们设置Ht = T作为常规。尽管存在研究部署MLP到长时序列预测(LTSF),它们严重依赖于稳定和周期性数据集(例如电力和交通),这些数据集更容易学习稳定和充分的表示。由于股票市场的时效性,只有最近的回顾窗口对价格预测有效。有必要更充分地利用模式,克服线性模型对由于缺乏周期性而导致的时间偏差的敏感性。为了尽可能多地从短序列中挖掘信息,同时增强线性层对时间偏差的鲁棒性,我们将原始时间序列分割成子序列级补丁,并在不同尺度上混合特征。这种分割会导致维度扩展,不利于混合,因此我们将一个补丁中所有时间步的表示映射到一个总体外观。具体来说,我们通过平均池化或一维卷积从股票的原始输入x ∈ RT ×F中获得相应的单个模式:

x(k) ∈ R T/k ×F表示当补丁大小为k时的压缩序列。然后我们将x(k)通过指标混合和时间混合,获得其混合嵌入h(k) ∈ R T/k×F。之后,我们在所有补丁大小的连接操作后分配一个全连接层,以聚合最终的时间表示h。该过程为:

具体来说,在这项工作中,如果输入序列的长度为16,我们设置k ∈ {1, 2, 4},因此h ∈ R(T + T/2 + T/4)。为了方便后续叙述,我们用d = (T + T/2 + T/4)表示嵌入维度。通过结合不同尺度的信息,模型可以在有限的序列上获得多层次、丰富和多样化的特征表示,并提高其对前所未有的数据的泛化能力。

股票混合基于先前操作,我们获得了所有股票的时间表示H = {h1, h2, …, hN} ∈ RN×d。接下来,我们描述我们的股票混合,以构建没有任何先验知识的股票间关系。显然,MLP-Mixer的强大信息交换能力可以应用于关系捕获。通过将标准混合的隐藏维度设置为a = N,交互过程可以被理解为由所有股票聚合的N个市场特征,反过来影响这N个股票。这种建模方法与在完全连接图上的消息传递没有区别,涉及任何两只股票之间的边。在这种情况下,一些不重要的关系或巧合也会被考虑,我们捕获的消息传递模式非常脆弱。由于股票数据集的小尺寸,缺乏可转移性和鲁棒性会导致严重的过拟合问题。从中,我们希望保留最重要和有信息量的市场状态,以提高模型的性能和可解释性。对于一只股票,我们不必考虑所有其他股票的信息,而是将股票之间的直接信息交换分解为股票到市场和市场到股票,类似于超图。为了实现这一点,我们用超参数m替换了与股票相关的标准混合的隐藏维度,以达到自学习的超图效果。股票混合可以被制定为:

其中M1 ∈ Rm×N将N个表示压缩为m,而M2 ∈ RN×m恢复了缩放信息。这个过程类似于超图中节点信息首先聚合到超边,然后计算超边对每个实体的影响,只是这个过程是由模型本身诱导的。H ∈ RN×h表示市场上N个股票的个体嵌入,ˆH表示从提取的关系中对每只股票的影响。最后,我们计算股票自身表示H与其相应的市场影响表示ˆH的连接,然后将其发送到全连接层进行降维,以获得最终预测。

损失函数

我们使用股票的1天回报率作为真实值,而不是之前工作中使用的标准化价格,使用点回归和成对排名感知损失的组合来最小化预测和实际回报率之间的MSE,同时保持预期回报较高的顶级股票的相对顺序,以进行投资:

其中ˆrt和rt分别是预测和实际排名分数,α是权重参数。

实验

实验设置基于美国股票市场的三个真实数据集进行评估。这些数据集包含相对完整的行业关系或基于Wiki公司的关联,便于与其他基于图的方法进行比较。NASDAQ和NYSE(Feng等人,2019)过滤了2013年2月1日至2017年12月8日之间的交易记录。数据集去除了异常模式和小盘股,同时保持了其代表性属性,即纳斯达克波动性更大,而纽约证交所更稳定。S&P500(Huynh等人,2023)从雅虎财经数据库收集了历史价格数据和S&P 500指数中行业的信息。

实现细节。模型使用PyTorch实现。为了公平比较,所有样本都是通过在交易日上移动16天回顾窗口来生成的。关于时间尺度因子,所有数据集都设置k ∈ {1, 2, 4},模型中只使用1个股票混合。使用网格搜索找到最优市场超参数m,并最终确定NASDAQ、NYSE和S&P500的m分别为20、25和8。对于需要市场信息的方法,我们根据原始论文中的预处理过程构建图或超图。损失因子α为0.1,学习率为1e−3。所有实验都在配备有Intel® Xeon® Silver 4110 CPU、128GB内存和Nvidia GeForce RTX 2080 Ti GPU(12GB内存)的服务器上进行。每个实验重复3次,报告平均性能。

度量标准。先前的研究应用了不同的指针,使得各种方法的全面比较变得麻烦。为了全面评估技术的性能,我们采用了四种最常用和最稳定的指标,其中包括两个基于排名的评估指标,一个基于准确性,另一个基于回报。信息系数(IC)是通过平均皮尔逊相关系数计算的,显示预测与实际结果的接近程度。排名信息系数(RIC)是基于股票短期利润潜力排名的平均斯皮尔曼系数计算的。上述两个指标评估了模型的股票选择能力,并且与排名损失密切相关。Precision@N评估了前N个预测的精度。例如,当N为10时,这前10个预测中有4个的标签为正,则Precision@10为40%。夏普比率(SR)考虑了回报和风险,并计算了相对于无风险利率的风险单位的平均回报:SR = (Rt−Rf)/θ,其中Rt代表回报,Rf代表无风险利率,θ代表回报的标准差。

基线。我们将我们架构的性能与几个最先进的基线进行比较,如下:(1)LSTM(Hochreiter和Schmidhuber,1997)对时间价格数据应用普通LSTM进行排名。(2)ALSTM(Feng等人,2018)在增强的LSTM中整合了对抗性训练和随机性模拟,以更好地学习市场动态。(3)RGCN(Li等人,2021)采用关系图卷积网络(RGCN)来模拟多关系。(4)GAT(Veliˇckovi´c等人,2017)使用图注意力网络(GAT)在股票图上聚合编码的GRU的股票嵌入。(5)RSR(Feng等人,2019)结合了时间图卷积和LSTM,以学习股票在时间敏感的方式中的交互。原始提出了两种方式,RSR-E使用相似性作为关系权重,以及RSR-I使用神经网络作为关系权重,我们选择表现更好的RSR-I作为基线。(6)STHAN-SR(Sawhney等人,2021)用超图注意力结合时间Hawkes注意LSTM,定制时空网络架构以对股票进行排名。(7)ESTIMATE(Huynh等人,2023)在LSTM网络上实现了基于记忆的机制,试图学习个体模式,并使用超图注意力捕获非成对相关性,通过小波基而不是傅里叶基传递消息。(8)Linear仅使用简单的全连接层来预测最终价格。

总体比较

表2显示了所有比较方法的性能。大多数基线在基准测试的结果都是在原始设置下报告的,所有这些方法都采用了相同的优化损失,以确保公平。我们有以下关键观察:1)对于单变量方法,无论是LSTM还是增强的ALSTM,其表现都不如所有其他混合架构,这证明了股票市场关系的必要性和有效性。正如预期的那样,由于没有额外的关系计算,基于RNN的编码器比其他的更快,并且在股票市场规模较小的情况下(例如,S&P500)表现更好,因为市场中的关系较少。2)超图架构在模拟复杂的股票间依赖性方面具有更好的能力,因为经典图倾向于定义任何两个实体之间的成对相关性。然而,真实股价的趋势并不取决于几个强相关的企业,而是当前市场属性。因此,从某种程度上,聚集行业信息的超边反映了部分市场属性。3)简单的线性模型缺乏足够的归纳偏好,自然会失败,而其他基于MLP的时间序列方法在不考虑股票数据特性的情况下表现更差。相对较短的回顾窗口忽视了周期性,时间偏差导致市场价值变化,这是严重过拟合的主要原因。4)平衡MLP模型的轻量级和混合网络的卓越性能,我们提出的StockMixer在大多数指标上获得了最佳结果,并在两个排名指标和风险调整回报方面平均相对性能提升了7.6%,10.8%和10.9%(p < 0.01)。同时,简单而强大的设计带来了参数数量仅次于RNN,比图消息传递少得多的计算时间。此外,在NYSE(拥有最多的股票1737)上观察到性能轻微下降,这可能表明在处理更大的候选池时,归纳偏好不足逐渐发挥作用。

消融研究

模型组件。我们尝试通过分别移除其中一个混合块来验证三个混合块的效果,并与两个典型的基线STHAN-SR和LSTM进行比较。我们还将之前的市场模块替换为我们的股票混合,并在NASDAQ和NYSE中实现了这些解决方案。结果如表3所示。结果显示,不同组件共同贡献了性能。在三个部分中,时间维度的混合最重要,因为孤立表示的学习不佳可能导致关系建模无意义。这也解释了为什么StockMixer以及早期架构采用时间先于空间的框架。不结合指标特征,MLP-Mixer的性能稍差,这证实了将指标特征混合到股票运动中的重要性。从消融实验的模型性能来看,对模型的影响顺序是时间、股票和指标。用普通LSTM替换指标混合的变体可以与整合了股票混合的最先进的STHAN-SR相提并论,后者在没有先验知识的情况下在股票市场关系方面非常有能力。我们可以看到,基于MLP的编码器是RNN的一个可靠的替代品,并为LSTM带来了更高的性能提升。最可能的原因是RNN使隐藏表示缺乏跨指标相关性。

激活函数。我们研究了不同激活函数对模型性能的影响。由于空间限制,我们在图3中描述了NASDAQ的结果,其他数据集可以观察到类似的规律。在原始模块中,在计算机视觉、自然语言处理和语音任务中表现出色的GELU函数在股票等序列预测任务中并未实现最佳性能。可以看出,Sigmoid和tanh表现平庸,而ReLU和HardSwish明显提高了所有指标上的模型性能。这个消融验证了非线性函数对混合块的影响,我们还进行了类似的实验来探索层归一化的效果,其中没有显著差异。

超参数敏感性。图4中的结果显示了超参数的敏感性。由于空间限制,我们关注最重要的超参数,并选择IC作为指标。

回顾窗口长度T。我们分析了在图4a中变化回顾窗口长度T时StockMixer的预测性能。在所有数据集中,适度的窗口长度获得了最佳性能。太短的窗口长度由于缺乏信息而迅速下降,而过长的序列模式也失败了,因为早期信息的缺乏和股票的学习成本增加。

市场维度m。我们在图4b中考虑了股票混合的隐藏维度m的不同值,并观察到数据集在不同的m下实现了最佳性能。如图所示,当w超过10时,S&P500上的结果显著下降,而NYSE在大约30时表现良好。高容量市场更倾向于更大的m,因为股票数量的增加带来了更复杂的市场表示。

多尺度因子k。我们在图4c中分析了根据排名变化的盈利能力,取决于尺度因子的数量。可以看出,StockMixer通常表现良好,而最佳结果在k = 3时获得。

如何学习大模型 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、付费专栏及课程。

余额充值