基于ARIMA-LSTM组合模型的应用系统响应时间预测∗
2021-06-02高文俊章玉龙
高文俊 李 志 闵 星 章玉龙
(安徽继远软件有限公司 合肥 230088)
1 引言
随着计算机技术飞速发展,数据规模和复杂度指数级增加,人们越来越依赖于各种应用系统。响应时间是用户最能直观感受到的评价应用系统性能的主要指标之一。例如,在搜索网站查询的响应时间过长,用户便会失去耐心而离开;响应时间的一般定义是用户从发出服务请求至接受到反馈信息之间的时间间隔[1]。在实际应用中,保证应用系统的响应时间始终处于用户可接受的范围内是至关重要的,而保证的前提则是对响应时间进行准确的预测评估,实现提前感知并解决问题。
对应用系统响应时间的预测,即根据响应时间的历史序列数据预测未来时间段的序列值,可借鉴常用的时间序列预测方法和模型。传统的时间序列预测方法大多基于统计学方法,如郑晓霞等[2]运用指数平滑法对Web服务的响应时间进行了动态预测;李明等[3]运用ARMA模型对深沪股市未来5天的短期指数进行了有效预报。近年来,神经网络模型因其可无限逼近任何复杂函数的特性也逐渐被应用到时序数据预测模型中。2001年,吴微等[4]运用BP神经网络对沪市股票市场的涨跌进行了有效预测;王鑫等[5]基于飞机故障数据,引入LSTM神经网络对故障时间序列进行预测。还有其他一些研究者使用增强学习和遗传算法研究了包括响应时间、CPU、网络带宽等的预测评估[6~8]。
应用系统的响应时间往往受多种因素影响,其中既包含常规的线性趋势又包含复杂多变的非线性规律,使用单一模型进行拟合难以两者兼顾。针对这一问题,本文提出一种组合模型ARI⁃MA-LSTM对应用系统的响应时间进行预测评估,其中ARIMA模型用以提取响应时间序列数据的线性趋势,再通过LSTM模型拟合ARIMA模型残差中的非线性规律。实验结果表明,所提方法相比于单一模型的拟合性能更好,预测精度更高。
2 相关理论基础
2.1 ARIMA模型
ARIMA模型(Autoregressive Integrated Moving Average model)由博克思(Box)和詹金斯(Jenkins)于70年代初提出,它的基本思想是时间序列的当前时刻值与过去时刻值、随机干扰量呈线性关系,通过找到拟合这种线性关系的线性函数即可根据历史序列数据对未来时刻序列值进行预测。ARI⁃MA模型本质是ARMA模型的转化,其数学表达式为
其中,Xt为序列当前时刻值,Xt-j(j=1,2,…,p)是过去p个时刻的序列值,φi(i=1,2,…,p)表示各阶自回归项系数,μt为残差,θi(i=1,2,…q)表示回归系数,Θ(L)为q阶移动平均系数多项式,记作ARMA(p,q)。ARMA模型只能处理平稳序列,对于非平稳序列需通过差分处理转换成平稳序列,在ARMA模型的基础上经差分处理过的模型被称为ARIMA模型,记作ARIMA(p,d,q),其中d为差分阶次。
ARIMA模型的建模过程一般分四个步骤:
1)序列平稳化处理:一般可通过观察法观测或单位根法来检测时间序列样本的平稳性,若为非平稳序列,则需经过差分处理以使序列平稳化。
2)模型定阶:ARIMA(p,d,q)模型有三个参数需要确定,步骤1)中已确定参数d,可通过观察样本的ACF图和PACF图来选取参数p和q。一般以ACF图和PACF图中各自截尾的位置作为p和q的最大值,得到多种参数组合,再利用BIC信息量准则从中选择一组最优的模型参数。
3)模型检验:可通过检验模型残差是否为白噪声序列来验证该模型是否充分有效。
4)预测:根据历史时间序列数据对序列未来时刻值进行预测。
2.2 LSTM模型
循环神经网络(RNN)因其拟合非线性时间序列的良好性能而被广泛研究和应用,但其在实际应用中会呈现“记忆遗失”特性,即著名的梯度消失问题[9]。为解决这一问题,Hochreiter和Schmidhuber于1997年提出了RNN的改进版——LSTM神经网络模型[10](Long Short-Term Memory)。RNN保存记忆的核心结构“隐藏层”被重新设计,在原本只有一个状态的隐藏层中又添加一个单元状态(cell state)来保存长期记忆,并通过一个称作“门”的结构让信息选择式通过。LSTM隐藏层网络结构如图1所示。
图1 LSTM隐藏层网络结构图
图1中的加粗部分即是添加的单元状态C,通过三个控制开关(三个门)来对C中保存的长期信息进行控制。首先,通过“遗忘门”来控制上一时刻的单元状态Ct-1有多少信息保留到当前时刻Ct,遗忘门的控制计算如式(2)所示。
其中,通过“输入门”来控制当前时刻网络的输入xt有多少保存到单元状态Ct,输入门的控制计算如式(3)所示。
再根据上一次的输出和本次输入来计算当前输入的单元状态,计算如式(4)所示。
经遗忘门操作已过滤掉Ct-1中该被丢弃的信息,经输入门操作获取了当前时刻输入信息中该被加入进来的新信息。至此可以更新当前时刻的单元状态Ct,计算如式(5)所示。
最后,通过“输出门”来控制单元状态Ct有多少输出到LSTM的当前输出值ht,输出门的控制计算和输出信息计算如式(6)和式(7)所示。
在式(2)~式(7)中,Wf、Wi、Wc、Wo为各控制门的权重矩阵,bf、bi、bc、bo为各控制门的偏置项;σ和tanh分别是激活函数sigmoid和tanh函数,描述各控制门允许多少信息量通过。
LSTM模型的建模过程分为以下几个步骤:
1)输入数据预处理
首先,将输入数据按时间窗的大小转换成二维矩阵形式;其次,对输入数据做归一化处理,本文采用z-score标准化指标对输入数据归一化。
2)初始化LSTM模型
LSTM模型的初始化包含很多事项,其中激活函数的选取和采用何种措施来避免过拟合现象直接影响了模型的最终结果。本文选取具有梯度稳定性的ReLU函数作为LSTM网络的激活函数;选择均方误差MSE函数作为模型训练的损失函数,并对损失函数进行L2正则化处理,通过L2正则化限制模型权重的大小来有效防止过拟合现象的发生。
3)梯度训练确定权值
梯度训练的优化算法有很多,如随机梯度下降[11]、AdaGrad[12]、RMSProp[13]等。本文采用对学习率具有动态约束功能的Adam(Adaptive Moment Es⁃timation)算法[14]对学习率进行优化。Adam算法融合了AdaGrad和RMSProp算法的优势,能够动态计算并调整不同参数的学习率。
4)训练输出并反归一化
训练模型得到的输出值并不是最终结果,需将其反归一化处理以得到模型的实际预测结果值。
3 ARIMA-LSTM组合模型构建
应用系统响应时间的变化规律复杂多变,其中既含有线性趋势,又包含非线性规律,仅使用单一模型进行预测难以完全拟合。本文基于这样的思想构建组合模型,响应时间的历史数据首先经过ARIMA模型过滤掉序列数据中的线性趋势,那么非线性规律则包含在ARIMA模型的残差中;再将残差输入LSTM模型以提取其中的非线性规律;最后,将ARIMA模型的预测结果与LSTM模型的预测结果相叠加得到最终的预测结果。组合模型的流程框架如图2所示。
图2 ARIMA-LSTM组合模型流程图
上图所示组合模型流程的数学描述如下。假设序列数据yt可由式(8)表示:
其中,Lt描述序列数据中的线性成分,Nt代表序列数据中的非线性成分。则组合模型建模的流程为
1)先利用ARIMA模型对序列数据建模,获取其线性成分的预测值。非线性成分则包含在残差中。其数学表达如下:
其中,et表示包含非线性成分的残差,为ARI⁃MA模型的预测值。
2)得到残差et后,利用LSTM模型对其建模,获取非线性成分的预测值,其数学表达如下:
其中,f(·)为LSTM模型建立的关系函数,εt是随机误差。
3)最后,将和相加得到最终预测结果,即:
值得注意的是,为了保证LSTM模型对ARIMA模型残差的预测精度,本文采取迭代预测方法,即对每下一时刻序列值的预测都在经上一时刻预测值变更后的新模型上进行预测,而不是使用测试数据预测未来每个时刻的序列值。
4 仿真研究
4.1 数据来源
为了验证所提组合模型的有效性,本节结合一个应用系统的响应时间预测实例进行实验论证。实验数据来源于对国家电网网络大学平台的响应时间监测数据,数据集的时间覆盖范围为2018-06-01~2018-06-10,采集频率为5min,每天有288个数据,10天共有2880个。由于受偶然因素影响(包括断网或服务器故障),原始数据可能存在异常值,这会对时间序列的预测产生误导。为了降低这些异常值对预测过程的影响,本文采用经典的箱线图法来识别异常值,并将超过1.5倍四分位数差之和与第3四分位数的序列值作为异常点去除。对于被剔除异常值的个别时刻上的数据缺失,采取将该时刻前后邻接的两个时刻序列值的平均值作为填充值。观察数据集会发现,数据在每天下午的6点到12点的波动性很大,这与人们一般在下班后上网络大学平台进行学习的习性相符。因此将最后一天下午6点到12点的共72个数据作为测试集,其余共2808个数据作为训练集。
4.2 评价指标
本文采用三种具有代表性的评测误差标准来评估预测的精确度,分别是均方根误差(RMSE)、平均绝对百分比误差(MAPE)和平均绝对偏差(MAE),它们的数学表达如下:
其中,Fi表示第i个预测值,Ri是第i个真实值,n是序列长度(样本点个数)。RMSE、MAPE以及MAE的值越小表明模型的预测误差越小,精度越高,则模型的拟合能力越好。
4.3 结果分析
4.3.1 响应时间预测的ARIMA模型建立
图3为监测数据的时间序列图,其中图3(a)为经预处理后的原始数据图,从中可看出,数据具有一定的周期性,且为非平稳序列。图3(b)为经一阶差分处理后的序列图,从中可看出序列数据已基本平稳化,经ADF校验表明数据确已达到平稳条件,因此设定模型参数d=1。
图3 监测数据的时间序列图
然后根据ACF图和PACF图对模型参数p和q进行初判断,图4(a)和图4(b)分别展示了序列数据的ACF图和PACF图。从图4(a)和图4(b)中可看出,ACF图在滞后1阶之后截尾,而PACF图在3阶后截尾,则ARIMA模型参数q的最大值设为1,参数p的最大值设为3,适合的模型参数组合共有8种,既(p,d,q)=(0,1,0)、(0,1,1)、(0,1,2)、(0,1,3)、(1,1,0)、(1,1,1)、(1,1,2)、(1,1,3)。再分别计算各模型组合的BIC值,计算结果为参数组合(1,1,2)的BIC值最小,为171.15,则选择(1,1,2)参数组合构建ARIMA模型,并对响应时间数据的测试集进行预测。
4.3.2 LSTM预测ARIMA残差的参数设置
实验平台采用Keras框架,根据经验和多次残差实验对比,确定LSTM模型的参数进行如下设置。输入神经元个数为4,隐藏层设置为具有300个神经元的单隐藏层,迭代次数epochs为2000,batch_size为50。为进一步防止过拟合现象的发生,模型训练中用到了dropout技术[15]。本实验模型的丢失率设置为0.1,即每轮权值更新时选择10%的节点丢弃。损失函数为均方误差MSE,激活函数为Relu,优化器参数为rmsprop。
图4 序列数据的自相关分析和偏自相关分析
4.3.3 不同模型预测结果对比
为直观地看出各算法预测结果的优劣,图5给出了不同模型的预测结果图。其中横坐标“time”表示从2016-06-10下午6点到下午12点(共6个小时,72个时间点,每个时间点的间隔为5min)的时间节点,纵坐标为对应每个时间点的响应时间值。从图5中可看出,ARIMA算法预测结果的滞后性较大,且随着时间推移,如时间点54以后,算法的拟合性骤降。BP模型的表现优于ARIMA算法,但拟合性还是LSTM模型和ARIMA-LSTM组合模型相对更优,这也从侧面说明了LSTM模型在单预测模型中的突出表现。而与单模型LSTM相比,组合模型ARIMA-LSTMA的拟合性相对更好,预测精度更高。
表1给出了各模型预测结果的RMSE、MAPE和MAE值对比,从表1可看出,BP模型与ARIMA模型的预测精度相近。LSTM模型在各指标上的值均低于BP模型和ARIMA模型,且差值较大,可见LSTM模型在时序预测方面的表现优于前两个模型。而ARIMA-LSTM组合模型在RMSE和MAE上的值明显低于LSTM模型,在MAPE上的值也比LSTM模型略低,可见组合模型ARIMA-LSTM的预测精度高于LSTM模型。整体来看,所提组合模型ARIMA-LSTM的预测精度最高,性能最优。
图5 不同模型的预测结果对比
表1 不同模型预测结果的比较
5 结语
本文提出一种基于ARIMA-LSTM组合模型的应用系统响应时间预测方法。该方法利用ARIMA模型提取响应时间序列数据中的线性成分,再通过LSTM模型拟合ARIMA模型残差以捕获序列数据中的非线性成分,最后集成得到最终预测结果。以国家电网网络大学平台中打开首页的响应时间预测实例进行了实证研究,实验结果表明,相比于经典的BP、ARIMA以及LSTM单一模型,所提组合模型ARIMA-LSTM的预测精度更高,拟合性更优,所提模型可行且有效。