温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,汇文网负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
网站客服:3074922707
基于
深度
学习
股票
趋势
预测
算法
周润佳
计算机与现代化JISUANJI YU XIANDAIHUA2023年第1期总第329期0引言随着经济的发展,全球金融体系的完善,全球股市的总市值已经越来越大。股市是最大的金融市场之一,对股票未来趋势的预测一直是学者们研究的热点,通过对股票趋势的准确预测可以获取更高的投资收益,具有实际意义1。然而股票的运动趋势存在着随机性,使其成为一个极具挑战性的问题。对股票运动趋势的研究可分为2类:个股预测和关联预测。个股预测仅依靠该股票本身的信息进行预测,而关联预测不止是使用股票本身的信息,还结合了该股票之外的多个股票信息进行预测,以提高预测的准确度。在以往的研究中,很多关于股票走势预测的方法都集中在个股预测,期望从独立的历史信息中捕捉到股票的运动模式,进而对未来趋势进行准确的预测。长短期记忆网络(LSTM)是一种经典的时间序列预测算法,文献 2 表明LSTM的预测效果优于传统的机器学习算法;文献 3 在LSTM中引入注意力机制将不同时间步关联起来,以解决LSTM在长时间序列预测方面的局限性;文献 4 通过引入对抗训练,增加数据的扰动,提高算法的鲁棒性,可以得到更好的预测效果。卷积神经网络(CNN)多用于图像识别领域,文献 5 提出一个基于CNN的算法框架用于预测股票趋势;文献 6 提出一种基于Transformer的HMG-TF模型,对股票短期趋势进行预测;文献 7 使用强化学习对投资组合进行有效的管理;文献 8 利用历史价格中的极端情况作为预测的依据。此外还有研究是结合一些外部数据,以提高预测的准确度,如文献 9尝试结合该股票的历史数据和推特文本数据对股票走势进行预测。这些研究都是基于独立的股票信息进行预测,并不依赖股票与股票之间的联系。股票之间的涨跌是会相互影响的,如当股票同属于同一行业时,往往会呈现出类似的涨跌趋势;除此之外,同属于行业上下游的企业,企业间的经营状况也会相互影响,间接影响股票走势。许多学者通过图卷积的方式对股票间的联系进行研究10-15,建图时大多以股票为节点,股票之间的关系为边,而图的建立往往依赖于股票之间预定义的相关性16-17。文献18 尝试用企业的行业关系进行建图,通过图卷积神基于深度学习的股票趋势预测算法周润佳(华南师范大学计算机学院,广东 广州 510631)文章编号:1006-2475(2023)01-0069-05摘要:针对股票趋势预测难的问题,提出一种利用CNN和LSTM进行特征提取,并结合注意力机制和对抗训练的股票趋势预测算法AACL(Adversarial Attentive CNN-LSTM)算法。该算法利用CNN提取股票的整体趋势信息,LSTM提取股票的短期波动信息,并通过注意力机制将多个股票联系起来,捕捉股票之间的涨跌关系。算法还引入了对抗训练,通过对数据进行干扰,提高算法的鲁棒性。为了验证算法的有效性,在KDD17、ACL18和China50这3个数据集上进行实验,并与现有的算法进行比较,实验结果表明本文提出的算法可以获得最优的预测效果。关键词:神经网络;注意力机制;对抗训练;股票趋势预测中图分类号:TP181文献标志码:ADOI:10.3969/j.issn.1006-2475.2023.01.012Stock Movement Prediction Algorithm Based on Deep LearningZHOU Run-jia(School of Computer Science,South China Normal University,Guangzhou 510631,China)Abstract:To improve the accuracy of stock movement prediction,this paper proposes a stock movement prediction algorithmAACL(Adversarial Attentive CNN-LSTM)which utilizes CNN and LSTM for feature extraction and combines attention mechanism and adversarial training.The algorithm uses CNN to extract the overall trend information of the stock,LSTM to extract theshort-term fluctuation information of the stock,and connects multiple stocks through the attention mechanism to capture the rising and falling relationship between stocks.The algorithm also introduces adversarial training to improve the robustness of the algorithm by interfering the data.To verify the effectiveness of the AACL algorithm,experiments are carried out on three data setsKDD17,ACL18,and China50,and compared with existing algorithms.Experiments results show that the algorithm proposed inthis paper can obtain the best result.Key words:neural network;attention mechanism;adversarial training;stock movement prediction收稿日期:2022-01-10;修回日期:2022-03-03作者简介:周润佳(1995),男,广东潮州人,硕士研究生,研究方向:机器学习,数据挖掘,E-mail:zrj_。计算机与现代化2023年第1期经网络利用其他公司的股票信息,以获得更准确的预测结果。文献 19 提出了HATR模型,通过扩张因果卷积和注意力机制对股票特征进行提取,并结合行业信息和主题信息进行建图,对股票趋势进行预测。文献 19 中还提出了自适应图,即建图时不依赖预定义信息,图结构是通过模型学习而得到的。文献 20 则不通过建图而是通过多头注意力机制捕捉股票之间的关联信息。本文的主要工作如下:1)提出利用CNN和LSTM进行特征提取,并结合注意力机制和对抗训练的AACL算法。2)在2个公开数据集和一个自己收集的数据集上与基线模型进行实验对比,验证算法的有效性。同时进行消融实验,通过实验对比证明算法各个模块的有效性。1模型结构1.1总体结构本文提出的算法(AACL)通过结合 CNN21和LSTM22对股票特征进行提取,并通过多头注意力机制捕捉股票与股票之间潜在的联系。为了提高算法的鲁棒性,获得更好的预测效果,算法引入了对抗训练,对数据进行扰动。1.2CNN-LSTM文献 5 提出了一个基于CNN的框架进行股票预测,本文算法 CNN-LSTM 中的卷积部分使用与其相同的结构,如图1底部所示,该部分拥有5层网络。对于一个给定的股票数据xRTd,T为股票数据天数,d为特征维度,第一层的卷积核大小为1d,输出通道为8;随后叠加2个卷积层,卷积核大小均为31,输出通道为8;在这2层卷积层后面都接入一个最大池化层,池化核大小为 21;在每次卷积之后都通过ReLU激活函数进行激活。LSTM相比RNN通过引入额外的门控单元在一定程度上解决了梯度消失的问题,但在长时间序列的预测上依旧是困难的,因此本文的LSTM模块给出了一个截断机制,只截取最新k天股票信息,捕捉股票最近k天的短期波动信息,k是一个可以调节的超参数。本文提出的CNN-LSTM结构如图1所示,分别通过CNN和LSTM对股票数据进行特征提取,随后将提取结果进行拼接。CNN模块输入的数据包括T天的数据,经过卷积之后可以得到一个整体的趋势信息,而LSTM的输入只包含最近k天数据,捕捉的是股票的短期波动信息。MaxpoolingConvConvMaxpoolingConvConcatFlatten213181d831821第t-k+1天数据第t-k+2天数据LSTMLSTMLSTM第t天数据第t天数据第t-k+1天数据Td图1CNN-LSTM结构图1.3多头注意力机制AACL算法通过注意力机制23将股票联系起来,捕捉股票之间潜在的联系,结构图如图 2 所示。AACL算法通过 CNN-LSTM 模块可以提取到每个企业股票的特征向量h,堆叠起来构建股票信息上下文矩阵H s u,其中s为同一时刻一同预测的企业数量,u为每个企业股票经过CNN-LSTM模块提取后的特征长度,然后生成Query(Q)、Key(K)、Value(V)矩阵,如式(1)式(3)所示。Q=HWq(1)K=HWk(2)V=HWv(3)通过Query和Key可以计算出每个向量得分,并将向量进行聚合,如式(4)所示,d是向量维度的平方根,d=u/m,起调节内积不要过大的作用。多头注意力机制通过式(4)计算m次,每个head之间参数都不共享,随后将m个head的计算结果进行拼接,再通过Watt进行线性变换即可得到多头注意力机制的结果,如式(5)所示。head=softmax(QKTd)V(4)H?=Concat(head1,head2,headm)Watt(5)计算得到多头注意力机制的结果后,更新股票的上下文矩阵信息,并通过tanh激活函数进行激活,如式(6)所示。Hp=tanh(H+H?)(6)在注意力机制之后,加入一个全连接层,并通过sigmoid激活函数()计算每个股票的分类置信度,如式(7)所示。股票1Linear MappingMulti-HeadAttentionCNN-LSTMy?2dT股票2CNN-LSTMdTy?sCNN-LSTM股票sy?1图2Attentive CNN-LSTM结构图702023年第1期y?=(HpWp+bp)(7)1.4对抗训练股票数据具有很大的随机性,训练起来有可能导致模型过拟合,缺乏泛化能力。训练时可以尝试对股票数据添加一些微小的扰动来模拟股票的随机性,以增强算法的鲁棒性和泛化性。对抗训练可以实现此项功能。对抗训练24一开始是应用于图片分类领域的,并在该领域获得了成功。与大多数分类问题的解决方式一样,算法训练的目标是最小化一个损失函数。作为一个分类问题,本文采用的是交叉熵损失函数,数学表达如式(8)所示。l(y,y?)=ylogy?+(1-y)log(1-y?)(8)为了防止过拟合,在损失函数中加入了|2F正则化项,为超参,此时需要最小化的函数为式(9)所示,n为总样本数。=i=1nl(yi,y?i)+2|2F(9)为了提高算法的鲁棒性,进而得到一个更好的预测效果,AACL算法加入了对抗训练,加入对抗训练的算法结构如图3所示,这里一同给出对抗训练的损失函数,如式(10)所示。adv=i=1nl(yi,y?i)+i=1nl(yi,y?iadv)+2|2F(10)图3Adversarial Attentive CNN-LSTM结构图式(10)中的第二项为对抗损失函数,y?adv为对抗后股票数据的分类置信度,作为超参数,用以平衡损失函数中原始样本和对抗样本的权重。通过最小化函数adv,鼓励模型尽可能地将原始样本和对抗样本正确地分类,使得模型算法尽可能地适应股票数据中的随机性。在每一次迭代中,对抗样本都由式(11)生成,其中xn为股票的原始数据,rnadv为增加的对抗扰动。xnadv=xn+rnadv(11)rnadv的计算如式(12)、式(13)所示。rnadv计算的是在L2范数约束下的损失函数梯度,通过梯度上升的方法对原始数据xn