“StockMixer: A Simple Yet Strong MLP-Based Architecture for Stock Price Forecasting”
论文地址:https://ojs.aaai.org/index.php/AAAI/article/view/28681
Github地址:https://github.com/SJTU-Quant/StockMixer
摘要
股票价格预测是量化投资领域内一项关键且充满挑战的任务,研究者们尝试运用多种神经网络模型,例如循环神经网络(RNN)、图神经网络(GNN)和Transformer,以期捕捉复杂的市场指标、时间序列特征及股票间的相互关系。然而,这些复杂的模型架构往往优化困难,并且由于股票数据的特殊性,其性能表现可能受到影响。
本文介绍了一种新的基于多层感知器(MLP)的简化架构——StockMixer,该模型不仅易于优化,而且展现出了强大的预测能力。StockMixer通过整合指标混合、时间序列混合以及股票间关系混合来做出预测。其中,时间序列混合能够有效地在不同时间尺度间传递信息,而股票间关系混合则充分利用了个股与整体市场之间的互动效应。实验结果证明,StockMixer在实际股票市场的基准测试中显著优于多种先进的预测方法,同时还能减少内存消耗并降低运算成本。
简介
股票价格预测是量化投资领域的一项基础任务,它涉及到多元时间序列的分析,由于市场的高度波动性,确保预测的准确性仍然是一个持续的挑战。早期的方法主要依赖于基本的机器学习技术,比如决策树、支持向量机和K近邻算法(KNN),来解析股票数据中的复杂模式。随着深度学习技术的发展,研究人员开始探索更加灵活的神经网络架构,以更好地体现对股市动态的理解。研究中关注了三种类型的相关性:
-
指标相关性:通过建模每日金融指标之间的关系,提取出能够反映市场状况的高层次特征。
-
时间相关性:鉴于股票价格受供需关系的影响,前几天的价格趋势对于预测未来的走势具有参考价值。
-
股票相关性:同一市场内的不同股票相互影响,尤其是在同一行业内的股票,它们可能因应行业事件而同步变动。
现有的深度学习方法通常采用特定设计的神经模块来捕捉这些不同形式的相关性,如RNN、GNN和Transformer等。然而,混合模型的复杂度可能会削弱其泛化能力。由于股票价格数据量有限,存在过拟合的风险;同时,复杂的模型优化难度较大,可能导致性能不佳;某些组件可能学到不准确的归纳偏差,影响预测效果。
尽管多层感知器(MLP)架构在计算机视觉任务中展现了优于传统卷积和注意力机制的表现,具备简单性和高效的线性计算特点,这使得MLP成为股票价格预测的一个有潜力的选择。不过,基于MLP的混合方法在实践中遇到了挑战:一是简单的时序混合难以应对时间相关性的复杂性;二是直接混合不同股票可能会影响模型的表现。因此,需要找到有效的时间和股票混合策略,以解决上述问题并提升预测性能。
本文介绍了一种名为StockMixer的轻量级MLP架构,专门用于股票价格预测。该架构包括指标混合、时间混合和股票混合三个模块,旨在捕捉股票数据中的复杂相关性。针对标准MLP混合方法的不足,StockMixer引入了基于补丁的多尺度时间混合和市场感知的股票混合,从而更好地利用股票的模式特征。广泛的实验在NASDAQ、NYSE和S&P500三大实际股票基准上进行,结果显示StockMixer在多个评估指标上超越了现有最先进的方法。
01 相关工作
股票价格预测
最初,股票价格预测主要依赖于历史数据的数值特征,并采用传统的数学算法进行分析。随着技术的进步,基于深度学习的方法逐渐兴起,其中递归神经网络(RNN)和卷积神经网络(CNN)被广泛应用于短期趋势的预测。为了提升信号处理的效果,研究者们进一步探索了自注意力机制、对抗训练以及门控因果卷积等先进技术。
在考虑股票间相互关系方面,不同的模型采用了多种策略。RSR模型通过时间图卷积来捕捉股票间的动态关联;LSTM-RGCN结合长短期记忆网络(LSTM)与关系图卷积网络(RGCN),以处理股票间的正负相关性;STHAN-R则利用维基百科数据增强股票间的关联性建模。此外,ESTIMATE模型引入了超图结构,用以捕捉非成对的相关性,并结合时间生成滤波器,以更准确地反映市场的复杂动态。
基于MLP的架构
MLP在计算机视觉领域再次获得关注,MLPMixer通过操作图像的局部块(patches),改进了传统MLP的归纳偏置,其性能能够与卷积神经网络(CNN)和Transformer相媲美。一系列研究探索了利用MLPMixer来增强简单MLP架构的学习能力,从而提升时间序列预测的效果。然而,由于股票数据缺乏明显的周期性特征且具有高度动态变化,MLP方法在处理股票数据集时的表现往往不如一些基础模型。
02 方法
问题建模
输入标准化的历史股票数据和多个指标(如开盘价、收盘价、5日平均收盘价),输出次日收盘价以计算1日收益率。股票市场数据由N只股票组成,记为X={X1,X2,...,XN},每只股票Xi包含长度为T的历史数据,指标维度为F。目标是预测交易日t的收盘价
,并计算1日收益率:
模型参数为θ,过程表示为:
普通的基于MLP的架构
MLPMixer是一种轻量级的图像分类模型,主要依靠线性层、残差连接和数据变换来实现其功能。它通过在不同特征维度之间交换信息,增强了模型的表达能力,这一特性使其特别适合应用于股票市场数据的分析。模型中的残差连接确保了输入与混合后的特征之间保持平衡,而层归一化则有助于减少数据偏移对模型的影响。新的嵌入计算公式为:
此外,非线性激活函数的选择对预测性能有着显著影响。实验结果表明,在处理时间序列数据时,ReLU和HardSwish的表现优于GeLU。
StockMixer
StockMixer由两部分组成:指标与时间混合,以及股票混合。前者负责提取每只股票的特征表示,而后者则专注于捕捉市场中不同股票之间的复杂关联。通过结合这两种表示,StockMixer能够更准确地预测收盘价。
指标混合。
历史股价是预测未来趋势的重要依据,因此在每个时间步上交换不同指标的信息至关重要。通过采用MLP结构进行指标混合,可以有效地整合各种金融指标,公式为:
时间混合。
考虑到时间顺序的重要性,早期时间步的信息对后期有显著影响,为此使用上三角矩阵结构来防止信息泄露,确保模型能够正确捕捉时间序列中的依赖关系,公式为:
现有的研究虽然在长时间序列预测中应用了MLP,但这些研究主要集中在具有稳定周期性的数据类型上(例如电力消耗和交通流量),并不适用于股市的短期波动。为了增强模型对短序列模式的挖掘能力,我们提出了一种新方法:将原始时间序列分割成子序列级别的“补丁”,并在多个尺度上混合特征。通过平均池化或一维卷积,将每个补丁的表示映射为一个整体表示,从而形成压缩序列x(k)。经过指标混合和时间混合后,生成混合嵌入h(k),并通过全连接层聚合得到最终的时间表示h。这种方法通过融合不同尺度的信息,提升了模型在处理有限长度序列时的多层次特征表示能力和泛化性能。
股票混合。
通过MLP-Mixer捕捉股票之间的相互关系,无需依赖外部知识。设定隐藏维度为N,以模拟完全连接图中的消息传递机制,但这可能导致模型过拟合。为了提升模型的性能和泛化能力,我们引入了超图的思想,将信息交换过程分为两个阶段:从单个股票到市场的信息聚合,以及从市场回到各个股票的信息分配。
在这一框架中,我们使用超参数m来替代标准混合中的隐藏维度,构建一个自适应学习的超图结构。公式表示如下:
其中,M1负责信息的压缩,即从个体股票到市场的信息汇总;M2则负责信息的恢复,即将市场影响重新分配给每个股票。最终,我们将股票自身的表示与受到市场影响后的表示进行连接,并通过全连接层进行维度缩减,从而获得用于预测的最终结果。这种方法不仅能够更好地捕捉股票间的复杂关系,还能有效避免过拟合问题,提高预测的准确性。
损失函数
使用1日回报率作为股票的真实值,而不是传统的标准化价格。模型结合了点对点回归和成对排名损失,旨在最小化预测的回报率与实际回报率之间的均方误差(MSE)。其目标是确保高预期回报的股票在预测中保持相对较高的排名。损失函数L的设计形式为:
通过这种方式,模型不仅关注预测值与真实值之间的差异,还注重维护股票之间预期回报的正确排序,从而提高预测的准确性和实用性。
03 实验
实验设置
数据集。
我们使用了三个美国股市的真实数据集:NASDAQ、NYSE 和 S&P500,这些数据集涵盖了完整的行业关系,时间跨度为2013年1月2日至2017年12月8日。为了确保数据质量,我们去除了异常模式和便士股。
实现细节。
模型是基于PyTorch框架实现的,采用了16天的历史数据作为回溯窗口,k值分别设为1、2和4。市场超参数通过网格搜索优化,最终确定为20、25和8。损失函数中的因子α设定为0.1,学习率设为1e-3。所有的实验都在一台配备Intel Xeon Silver 4110 CPU、128GB内存和Nvidia GeForce RTX 2080 Ti GPU的服务器上进行。每个实验重复三次,以报告其平均性能结果。
评估指标。
我们采用了四种常用且稳定的评估标准,以便于不同方法之间的性能比较。
-
信息系数(IC):通过计算预测结果与实际结果之间的平均皮尔逊相关系数,来衡量两者的吻合程度。
-
排名信息系数(RIC):基于股票短期盈利潜力的排名,使用平均斯皮尔曼等级相关系数来评估预测排名与实际排名的一致性。
-
Precision@N:用于评估前N个预测的准确性。例如,当N=10时,如果在前10个预测中有4个是正确的,则Precision@10为40%。
-
夏普比率(SR):综合考虑收益和风险,通过计算单位风险下的平均超额收益来衡量投资表现。其公式为SR = (R_t - R_f) / θ,其中R_t为投资组合的平均回报率,R_f为无风险利率,θ为回报的标准差。
基线模型。
我们比较了多种先进的基线模型,以评估它们的性能:
-
LSTM:传统长短期记忆网络(LSTM),直接应用于时间序列价格数据进行预测。
-
ALSTM:增强版LSTM,结合对抗训练和随机性模拟,提高模型的鲁棒性和泛化能力。
-
RGCN:关系图卷积网络(RGCN),用于建模股票间的多类型关系,捕捉复杂关联。
-
GAT:图注意力网络(GAT),通过注意力机制聚合股票嵌入,更好地反映节点间的重要性。
-
RSR:一种结合时间图卷积与LSTM的模型,选择其改进版本RSR-I作为基线,以更准确地捕捉时序依赖。
-
STHAN-SR:融合超图注意力和时间Hawkes注意LSTM,有效建模股票之间的复杂关系。
-
ESTIMATE:在LSTM基础上实现的记忆机制,能够捕捉非成对的相关性,增强长期依赖的学习。
-
Linear:一种简单的全连接层模型,仅使用线性变换进行价格预测,作为基准参考。
这些基线模型涵盖了从传统的序列模型到最新的图神经网络和注意力机制,为我们提供了全面的性能对比基础。
整体表现
单变量方法(如LSTM和ALSTM)的表现不及混合架构,这突显了市场关系在股票预测中的重要性;相比之下,RNN在处理小规模股票数据集(如S&P500)时表现出色且速度较快。超图架构能够更有效地建模复杂的股票间依赖关系,通过超边聚合行业信息,更好地反映市场属性。简单线性模型由于缺乏足够的归纳偏置,导致其表现不佳;而MLP方法如果未充分考虑股票数据的特征,尤其是在使用短期回溯窗口的情况下,容易出现严重过拟合,效果更差。
StockMixer在大多数评估指标上表现出色,平均相对性能分别提升了7.6%、10.8%和10.9%;其参数量仅略多于RNN,但计算时间显著少于基于图的消息传递模型。不过,在处理NYSE这样的大规模股票数据集时,StockMixer的表现略有下降,这可能是由于其归纳偏置不足所致。
消融分析
通过去除三个混合模块的实验表明,各模块共同作用对模型性能有重要影响,其中时间维度的混合尤为重要。StockMixer采用了一种时间优先的框架,强调了指标特征混合在捕捉股票运动中的关键作用。模型的影响顺序依次为:时间 > 股票 > 指标。当用LSTM变体替换指标混合模块时,StockMixer的表现与STHAN-SR相当。MLP编码器优于RNN,因为它能够更有效地捕捉跨指标的相关性。
激活函数的选择对模型性能有着显著影响,实验结果显示ReLU和HardSwish的表现优于GELU、Sigmoid和tanh。此外,层归一化的实验并未显示出明显的性能差异,表明其对模型的影响较为有限。
超参数敏感性
回顾窗口长度T。
实验表明,适中的窗口长度能够取得最佳性能:过短的窗口无法提供足够的信息,而过长的窗口则会增加学习成本和复杂性。
市场维度m。
不同数据集在不同的m值下表现出最佳性能。例如,S&P500在m大于10时性能显著下降,而NYSE则在m约为30时表现优异。
多尺度因子k。
StockMixer在多尺度因子k设为3时获得了最优结果,整体表现稳定且良好。
04 总结
本文介绍了一种名为StockMixer的增强型MLP架构,专门用于股票价格预测。StockMixer通过组合轻量级的指标混合、时间混合和股票混合模块,避免了使用复杂的子网络。时间混合模块考虑了多种时间尺度,构建了一个更高效的时间编码器,从而提升了对时间序列数据的处理能力。股票混合模块则分解了标准的混合块,实现了股票与市场之间的信息交换,更加稳健地建模股票间的相关性。
实验结果显示,StockMixer在三个关键指标上分别实现了7.6%、10.8%和10.9%的平均性能提升,显著优于现有的基准模型。未来的工作将集中在优化超参数的选择,并探索将StockMixer应用于更多不同的股票市场,以进一步验证其有效性和适应性。