赵婷婷,韩雅杰,杨梦楠,任德华,陈亚瑞,王 嫄,刘建征
(天津科技大学人工智能学院,天津 300457)
在大数据背景下,机器学习技术迅速发展,被广泛应用到各个领域,而机器学习的发展对数据有很强的依赖性.在众多数据中,时序数据是一种重要且复杂的数据类型,其在各行各业中扮演着重要角色.时序数据即时间序列数据,是指数据按照时间发生先后进行排列组成的数据,具有很强的时间相关性.常见的时序数据如股票价格、气温、粮食产量、降雨量等.
时序数据预测方法是通过捕捉历史时序数据之间的规律预测数据的长期发展趋势,典型的时序数据分析如股票大盘走势、气象变化、内存监控等.金融数据是一种具有非线性和非稳定特点的时序数据,对于此类时序数据预测往往具有很大的难度,主要体现在[1]:具有非线性和高噪声性,投资者投资具有盲目性,数据的变动受国家政策等多种不可控因素影响.基于上述原因,使得金融时序数据预测的结果往往不尽如人意.由此可见,金融时序数据预测在时序数列预测领域一直以来都是一个极具挑战的问题.
相关学者经过长期的探索和研究,加深了对金融时序数据内在规律的认识.根据该数据的变化规律总结出了大量的预测方法,主要可分为线性预测方法和非线性预测方法[2].线性预测[3]方法是早期使用的预测方法,经典算法主要包括指数平滑法[4-5]、自回归积分移动平均预测方法[6-11]等,此类方法具有结构简单、计算量少的优点,可以对短期预测取得较好的结果,但是这类方法不能很好地捕捉金融时序数据之间的非线性关系,且当面对长期预测时就会突显其局限性[6].面对线性方法的诸多不足,相关研究提出利用非线性模型进行改进,增加对复杂数据的捕捉能力,从而提出非线性预测方法,主要包括BP神经网络[12-19]、支持向量机[20-23]、循环神经网络[24-29]和生成对抗网络[30-32]及强化学习[33-36].此类方法可以更全面地捕捉金融时序数据之间的非线性关系,并取得了相对准确的预测结果,是未来金融时序数据领域的研究重点及趋势.
股票数据是金融时序数据中典型和热点的研究对象,而金融时序数据由于其序列相关性、季节变化性及复杂的变化趋势,使得对其进行分析及预测极具挑战.本文以股票数据预测为例,围绕该领域中的算法展开综述,首先介绍股票预测模型的建模;然后介绍股票预测领域中的经典算法的原理,并分析各算法的优缺点及改进方法方案;最终展望该领域的研究趋势.
时序数据的预测通常建模为利用历史数据值预测未来的数据走势.本文所关注的时序数据预测中的股票预测模型可表示为
其中 x = {x1,x2,…, xt}表示历史数据,S表示预测系统,表示预测结果.预测可分为短期预测和长期预测[6].短期预测,如单步预测可表示为
根据预测模型的类型,将预测方法分为线性预测方法和非线性预测方法.本部分将围绕上述两类预测方法进行讨论,分别从各经典算法的原理、优缺点及改进方法进行详细介绍.
2.1.1 基于指数平滑的预测方法
指数平滑预测法是时序数据预测领域早期常用的方法之一,其基本思想是利用权值将当前时刻的真实值和预测值联系起来,以加权算术平均数方法对预测对象进行预测[4],具体可表示为
其中:a ,a( 1− a) ,… ,a ( 1− a)t−1为数据各时刻的权值.权值距离预测时刻由近到远按指数逐级递减,即,a> a (1−a) > …> a ( 1−a)t−1.
指数平滑预测法主要包括一次指数平滑法、二次指数平滑法和三次指数平滑法.该算法实现简单,所需数据信息少,只利用历史数据的加权和就可以预测出下一时刻的股票数据.但是,这种线性的预测方法拥有很多局限性[5]:首先,对平滑系数较为敏感,平滑系数的选择不同,预测结果也不同,还会影响预测精度;此外,该方法只适用于短期的预测,而对于长期且不稳定的股票数据,则会造成严重失误.
2.1.2 基于自回归积分移动平均的预测方法
自回归积分移动平均模型(autoregressive integrated moving average model,ARIMA)是自回归移动平均模型(autoregressive moving average model,ARMA)的扩展,ARMA更加适合处理平稳的时间序列,而金融时序数据具有不平稳性,由此扩展出了ARIMA,该模型由自回归模型(AR)、移动平均模型(MA)和差分法结合而成.该方法是利用差分方法经过d次差分将时序数据平稳化,然后确定参数p、q进行预测,最后将预测结果反平稳化得到最后的预测结果,整个过程可表达为ARIMA(p,d,q).其中,p是自回归项,d是将数据平稳化总的差分次数,q是移动平均项数[7].模型的方程表示为
使用ARIMA对股票数据进行预测已取得了不错的结果,但是对于长期的预测却不太理想,且此类方法对于波动较大的股票数据,也难以得到理想结果.由于该方法从根本上是对平稳数据进行处理[7],因此针对此问题,结合非线性模型可有效改善其性能.
综上所述,线性模型普遍存在长期预测不理想,无法很好捕捉股票数据的非线性等缺点.面对股票数据的非线性特性,利用线性模型的预测方法难以达到令人满意的效果.此外,股票预测的目标不仅局限于下一时刻,而是关注更久远的预测结果.因此,基于线性模型的预测方法有待进一步改进.
针对时序数据中股票数据非线性及高噪声的特点,利用线性模型的预测方法对该类数据进行预测无法达到令人满意的效果.针对其不足,相关学者把目光放在了非线性预测方法上.非线性方法能够更好地捕捉股票数据的内在规律,从而得到更加准确的预测结果.
2.2.1 基于BP神经网络的预测方法
神经网络(artificial neural network,ANN)是一种模拟人类大脑神经元连接结构进行信息处理的数学模型,其根据训练数据不断调整内部节点之间的关系学习数据变化.相较于传统的线性模型,神经网络是一种表达能力极强的非线性模型,它的优势在于其自适应性、泛化能力、容错性等方面,从而使得它在处理非线性数据时表现得更为突出.
在时序数据预测中,使用最广泛的神经网络为反向传播(back propagation,BP)神经网络[12].BP神经网络由输入层、隐藏层和输出层组成,在其训练过程中,可分为两个过程:一个是数据输入层经隐藏层到输出层输出,即正向传播过程;另一个是如果输出层输出的数据没有达到预期的效果,则误差将从相反的方向对权值进行调整,即反向传播过程.
基于BP神经网络的股票预测原理是:股票数据输入到BP神经网络中,由该网络分析股票数据和参数的规律,利用其函数逼近功能进行预测,具体预测模型如图1[13]所示.其中:x1,x2,…,xt分别为各个时刻真实值;h1,h2,…,ht分别为各个时刻的隐藏层状态;+1为t+1时刻的预测值.该模型通过正向传播进行预测,目标是使输出的预测值+1与实际值xt+1尽可能保持一致,该过程是通过反向传播进行权值调整,使得总误差达到最小.其误差(E)可表示为
图1 基于BP神经网络的预测模型Fig. 1 Prediction model based on BP neural network
最早将BP神经网络应用到股票预测的是White[14],但是发现由于BP神经网络极易陷入局部极小值而导致模型的预测效果较差.此外,BP神经网络算法还有收敛速度慢、训练时间长的缺点[15].针对训练时间长的问题,鹿天宇等[16]采用主成分分析(principal component analysis,PCA)对输入数据进行降维,有效简化网络的输入,从而提高训练的速度.针对易陷入局部极小值和收敛速度慢的问题,季阔[17]在权值调整公式中加入动量项对权值调整公式
进行改进,避免在训练过程中发生震荡,加快收敛速度,而且在训练时,允许略过一些极小值,因此易陷入局部极小值的问题得到了一定程度的缓解.此外,Li[18]和郭怡然等[19]引入了遗传算法对该方法进行改进,进一步缓解了上述问题.
2.2.2 基于支持向量机的预测方法
支持向量机(support vector machine,SVM)于1995年被首次提出[37],其主要思想是将输入向量以非线性的方式映射到一个高维的特征空间,在这个特征空间中构造一个决策面,利用决策面的特殊性来保持其较高的泛化能力.SVM可以很好地处理非线性和高维的问题,将它运用在金融时序数据预测中,克服了BP神经网络本身的缺陷[20],体现出很大的优势.
利用SVM进行股票预测,给定股票数据序列{ x1,x2,…,xt},定义输入序列为 X = {xt,xt−1,…, xt−n+1}进行预测,其原理就是找到真实值x与预测值xˆ之间的映射关系.
Rn为影响股票数据预测的因数,nx∈R;R为预测向量,∈R.对于股票预测这种非线性问题,利用核函数建立非线性的回归函数
其中:αi和为拉格朗日乘子,K (xi,xt) 为核函数,tx为影响预测的因素,xi为t-n个样本中第i个样本,b为阈值.由以上回归函数可得到下一步的预测
整个过程可由图2[20]表示.
图2 基于SVM的预测模型Fig. 2 Prediction model based on SVM
在股票预测中,基于SVM的预测方法的性能优于基于BP神经网络的方法,但其在预测时存在一定的不足.首先,SVM只能得到具体的预测值,而不能预测股票的变化趋势.其次,核函数是该方法的核心问题,核函数的选择会对预测精度产生直接影响.针对前者,通常首先使用模糊信息粒化对原始的股票数据进行预处理,再使用SVM预测出短期的变化趋势[21].针对后者,黄同愿等[22]分析了采用不同核函数对最后预测结果的影响.李坤等[23]突破传统的核函数,采用小波核将小波和SVM结合,不但能消除数据的高频干扰,还具有很好的抗噪能力,更适合股票预测;通过选取3种不同的小波核进行比较,得出不同的股票要选择合适的核函数进行预测的结论.
2.2.3 基于循环神经网络的预测方法
循环神经网络(recurrent neural network,RNN)是一种用来处理序列数据的神经网络,其每一时刻输出都与历史的输入建立起关联.在时序数据预测应用中,RNN利用其时序特性,能够很好地利用历史数据对数据未来变化作出预测.基于RNN的预测原理和BP神经网络相同,正向传播输出预测结果,反向传播进行参数优化.然而,RNN在训练过程中容易出现梯度消失的问题,导致其在反向传播的过程中无法学习到长期依赖,即它只有短期记忆,在时序数据预测中无法准确地对数据进行长期预测.
长短时记忆[38](long short-term memory,LSTM)是一种改进的RNN模型,由输入门(input gate)、遗忘门(forget gate)、输出门(output gate)和细胞单元(cell)构成.该模型各部分功能[45]为数据首先通过遗忘门,由其决定是否遗忘t时刻隐藏节点所包含的历史信息,可表达为
其中:ft为遗忘门在t时刻的输出,σ为激活函数,xt为t时刻的输入,ht-1和ct-1分别为t-1时刻的隐层状态和细胞单元信息,Wxf、Whf、Wcf为权值矩阵,bf为遗忘门的偏差矩阵.然后由输入门执行遗忘门的决定,并更新ct-1的信息,计算公式为
其中:it和ct分别为输入门和细胞单元在t时刻的输出,Wxi、Whi、Wci、Wxc、Whc为权值矩阵,bi和bc分别为输入门和细胞单元的偏差矩阵.最后由输出门确定最后的输出为
其中:ot为输出门在t时刻的输出,Wxo、Who、Wco为权值矩阵,bo为输出门的偏差矩阵,ht表示t时刻的隐藏层状态.
图3 基于LSTM的预测模型Fig. 3 Prediction model based on LSTM
LSTM虽然能够很好地处理时序数据问题,但是它在进行股票预测时存在以下问题:第一,有陷入局部最优解的可能[24];第二,在预测时具有滞后性[25].LSTM虽然在一定程度上解决了RNN梯度消失的问题,使其在梯度下降过程中不会很快进入局部最优解,但是在理论上还是无法逃脱局部最优解的可能性.一种双向LSTM模型可以从前后两个方向充分对股票数据之间的关系进行分析,在解决易陷入局部最优解问题的同时解决了长期依赖问题[24].针对滞后性问题,方红等[26]运用多维度向量输入、特征工程和新闻情感分析3个步骤对LSTM进行改进,使得滞后性和精确度都得到了一定程度的改善.
除了改进LSTM本身存在的不足,还可以与其他模型组合成混合模型,以提升LSTM的预测性能,例如LSTM和ARIMA组合模型[11],LSTM和卷积神经网络(convolutional neural networks,CNN)组合模型[27],LSTM、维德情绪分析(valence aware dictionary and entiment reasoner,VADER)和 差 分 隐 私(differential privacy,DP)组合模型[28],LSTM和栈式自编码器(stacked autoencoder,SAE)组合模型[29].这些混合模型和单一的模型相比更具有优势.
2.2.4 基于生成对抗网络的预测方法
生成对抗网络[39](generative adversarial net,GAN)是一种新型的生成模型,由生成器G和判别器D两部分组成,如图4[39]所示.GAN的主要思想就是G和D进行一个极大极小博弈游戏,其中生成器G用于捕捉样本数据的分布,输入随机噪声z,目标是生成类似真实数据的样本数据G(z),生成的样本越像真实数据X越好;判别器D就是一个二分器,用来判别生成样本的真实性,输出一个概率,生成的样本越像真实数据则输出的概率越接近1,否则接近0.
图4 GAN结构图Fig. 4 Structure of GAN
GAN已在图像生成[40]、绘画[41]和文本生成[42]等领域取得显著成果.在金融时序数据预测中,该方法用生成器G去捕捉从金融市场中给出的历史金融数据的数据分布,并根据其分布规律对未来的数据进行预测;而判别器D用来判别生成金融数据的真实性.具体模型如图5[30]所示.将第t天的数据X={x1,…,xt}输入到生成器中,生成第t+1天的数据t+1,该过程定义为
图5 基于GAN的预测模型Fig. 5 Prediction model based on GAN
基于GAN的时序数据预测方法的优势在于GAN能够更好地捕捉数据分布和反映数据的波动,从而使得生成数据更加逼近真实数据.然而,GAN本身存在由于训练过程中出现梯度消失而导致的训练不稳定的问题.Wasserstein GAN(WGAN)[43]是对原始GAN的一种改进,它使用平滑的Earth-Mover(EM)距 离 代 替Kullback-Leibler(KL)和Jensen-Shannon(JS)散度,可以一直提供有效的梯度,从而解决梯度消失的问题,使得训练更加稳定.Boris[31]将WGAN和Metropolis-Hastings GAN(MHGAN)相结合对股票进行预测,从而避免了梯度消失对股票预测所带来的困扰.另外,生成器和判别器的选择也会对预测结果产生影响.Zhang等[30]将LSTM作为生成器,多层感知机(multilayer perceptron,MLP)作为判别器对股票数据进行预测,取得了较为准确的预测结果,但是采用MLP作为判别器,在全连接的情况下,过深的神经网络容易导致梯度消失.而Zhou等[32]则采用卷积神经网络(CNN)作为判别器,解决了MLP存在的问题,使得预测结果更加准确.
基于增长极理论,运用因子分析法、旅游区位熵计算法等构建旅游增长极模型,进行安徽省各市旅游业综合发展水平测度与分类,得到以下结论:
在股票预测的应用中,GAN取得了相对准确的预测结果,但是如何克服GAN训练困难的问题仍是一个具有挑战性的任务.
2.2.5 基于强化学习的预测方法
强化学习(reinforcement learning,RL)[44]是机器学习领域用来解决连续决策问题的学习范式,它通过与环境的交互获得知识,自主地进行动作选择,通过不断地试错获得最优策略,如图6[44]所示.近年来,强化学习方法在电子游戏[45]、棋类[46]等领域得到了应用,同时在股票、外汇和期货等方面的应用也得到广泛的研究.
图6 强化学习基本框架Fig. 6 Framework of reinforcement learning
基于强化学习的时序数据预测方法主要分为以下两类:
其中:st∈S 表示t时刻的股票数据,at∈A表示t时刻的交易动作,+1表示t+1时刻股票的预测值.目前,以马尔科夫过程为模型,已使用TD算法[33]、深度Q网络[34]和DDPG算法[35]等实现了对于股票的预测,并取得了不错的结果.
另一类是利用强化学习对预测模型的网络结构和参数进行优化.此类方法是预测系统对输入的数据进行处理,然后强化学习模块对其输出进行评价,随后反馈给预测系统对其进行调整或优化,其过程可由图7[34]表示.叶德谦等[36]提出了强化学习BP神经网络(RBP),用强化学习对BP神经网络进行参数优化,从而实现股票预测,该模型在实现系统自我学习的同时还提高了预测精度;Boris[31]将强化学习加入到GAN中,不断对其超参数进行优化,解决了由于股市的不断变化所导致模型无法自适应的问题.
图7 基于强化学习改进的预测模型Fig. 7 Prediction model based on reinforcement learning improvement
强化学习利用其强大的自主学习能力,在进行股票预测时,能够更加适应不断变化的股市,从而可以更好地进行长期的交互学习.但是强化学习本身依然存在着训练困难、样本利用率低等问题.
针对股票等时序数据,在对其模型进行评估时通常使用美股中的标准普尔500指数(Standard &Poor’s 500(S&P 500 Index))、中国平安保险(集团)股份有限公司(PAICC)股票指数、来自全美证券交易商协会(NASDAQ)的微软公司(MSFT)股票指数、纽约证券交易所(NYSE)的国际商业机器公司(IBM)股票指数、中国股票中的上证综指[47]作为常用数据集.数据集选取的数据通常为过去20年的日数据(每只股票中几乎有5000条数据)和7个金融因素预测未来的收盘价.描述股票数据7个因素包括在一天中股票的最高价、最低价、开盘价、收盘价、成交量、周转率和Ma5(5日价格移动平均线).这7个因素在技术分析、均值回归或三月理论的价格预测中具有重要的价值和意义.因此,这些因素可以作为股票数据的7个特征用于未来收盘价的预测.
为了更直观地理解所分析的数据,在表1中展示了PAICC股票数据集中的部分数据,每个数据包括7个特征.
表1 每个特征不同时刻的数据列表Tab. 1 Data list of different time of each feature
为了提高模型的预测精度,在模型进行训练之前通常需要对数据进行归一化处理[47].经典的归一化方法为0均值归一化方法(z-score),该方法是将原始数据减去均值再除以标准差,经过该方法处理的数据符合标准正态分布,即x~N(0,1).归一化函数计算式可表示为
其中:x为原始的股票数据,μ为所有股票数据的均值,σ为所有股票数据的标准差.为归一化后的股票数据.
关于时序数据预测任务的目标是希望股票预测数据与真实历史数据之间的误差尽可能小.均方误差(mean square error,MSE)可以很好地衡量整个模型最后的训练效果,利用MSE定义模型的损失函数可表示为
除了将MSE作为损失函数,还使用平均绝对误差MAE、均方根误差RMSE和平均绝对百分比误差MAPE的评估方法反映股票数据的预测值和其真实值之间的偏差.MAE、RMSE和MAPE的值越小则表示预测值和真实值之间的误差越小,模型的预测效果越好.
为了进一步观测各时序数据预测方法在股票数据中的性能,相关文献[47]总结了各算法的预测结果,该结果是基于3.1节所述的的5个数据集上的RMSE、MAE、AR的平均值作为预测方法的性能评估.预测结果见表2[47],其中粗体部分表示最佳预测结果,较低的MAE、RMSE和MAPE表明对收盘价的预测与真实值的误差越小.AR表示5个数据集基于4种预测方法的日平均收益.从表2可知,在所比较的数据中,GAN与其他方法相比,具有最优性能.
表2 对5个股票数据集的平均评价Tab. 2 Averaged performance on five stock data sets
时序数据是一种复杂的数据类型,其变化既有内在规律的影响,还有外在事件的影响,通过对时序数据的预测可以更好地分析相关领域及市场.虽然现有方法在股票预测中取得了较好的效果,但是面对股票数据的动态性、复杂性及不可控因素等特点,依然还有很大的改进空间.未来研究方向可从以下几个方面展开.
(1)从数据自身特点分析总结得到,金融时序数据具有维度高、非线性的特点.现有方法通常直接对原始数据进行处理,这样增加了计算成本和模型的复杂程度;另一方面,使用线性降维方法如PCA,对股票数据进行降维后再进行预测.然而,股票是一种非线性数据,线性降维无法很好地捕捉股票数据之间的关系,对于股票数据的特征描述具有一定的局限性.因此,如何在低维空间对股票数据进行有效分析及预测是亟待解决的研究问题.
(2)从预测模型分析发现,不同的模型具有其各自优势,通过相关研究可知,将不同的方法进行组合可以取得更优的预测效果.因此,将不同的模型及学习方法进行组合,让不同的理论方法相结合,达到优劣互补的目的,也是该领域的一个重要研究方向.
(3)现有的预测模型一次只能预测一支股票,如果要预测另一支股票,模型需要从头开始训练.元学习(meta learning)[48]是机器学习中一个新的分支,它可以通过在多个任务上的训练以实现在新场景下快速调整模型的目的.可以考虑使用元学习一次训练多支股票,当面对新的预测任务时可以快速地完成预测,从而避免重新训练模型.