基于LSTM网络的移动云计算多元负载预测模型

2021-06-29 07:20陈丝雨
计算机与现代化 2021年6期
关键词:特征选择数据中心预测

陈丝雨,庄 毅,李 静

(南京航空航天大学计算机科学与技术学院,江苏 南京 211106)

0 引 言

2006年,Google公司初次在业界会议中提出了“云计算”这一概念[1],促成了目前正如火如荼推进的移动互联网革命。用户在云计算模式下,无需购置大量实体设备,而是可以按使用量从基础架构及服务提供商中对虚拟的计算资源按需付费,包含网络、存储等资源。近年来随着网络带宽速度的提升和智能设备的普及,云计算的关注热点从主机开始向移动设备转移。移动终端设备面临着移动支付、移动游戏、移动教育以及虚拟现实技术这样更加复杂的用户需求带来的极大的计算、存储、安全等方面的挑战,移动云计算(Mobile Cloud Computing, MCC)技术[2]应运而生。移动云计算将移动互联网与云计算技术联合起来,移动云计算的用户通过网络运营商或是无线接入连接到部署在不同地方的移动云计算数据中心,云数据中心海量的存储和高速的计算能力为移动设备弥补了运算性能、电池续航和存储空间有限的不足[3]。

随着移动云计算技术的发展,许多科技公司都为其云服务产品提供了弹性的自动伸缩功能,能够在系统运行时动态改变系统的资源分配量。在云数据中心精确地进行资源管理可以使云服务供应商能够最大化数据中心利用率,通过减少开启的机器数量来促进数据中心绿色计算,同时将其运营成本降至最低。现有的资源管理方案通常分为被动与主动管理资源2种。在被动管理方案下,当主机工作负载增加或减少到预设的特定阈值时,将进行资源管理或虚拟机迁移。但是,这种方案下,可能会导致因为虚拟机的供应和迁移耗时过长而无法应对工作负载突然变化所造成的违反服务水平协议(Service-Level Agreement, SLA)的问题。主动管理方案则通过识别云计算中心中资源使用模式、预测未来时间的主机工作负载来对云计算中心中的虚拟机或其他资源动态调整,可解决被动资源管理方案中对负载变化响应慢的问题。所以,准确估计云数据中心中的资源负载情况可以大幅度提高云数据中心的运行效率以及计算资源的利用率,有助于预先计划资源容量和实现智能资源拓展,对满足SLA具有重要意义。因此,云计算中的负载预测已成为研究的热点。并且由于移动云计算环境下多用户共同托管的任务具有动态和随时间变化的特点,因此准确估计数据中心未来的资源使用率具有挑战性。

现有的一些负载预测算法主要可以分成以下3类,传统的基于时间序列数据的负载统计预测模型、基于机器学习的负载预测模型和混合集成的负载预测模型。前者的数据规律通过对大量数据进行统计分析得到,统计预测模型有自回归(AutoRegressive, AR)[4]模型、自回归移动平均(AutoRegressive Moving Average, ARMA)[5]模型和差分自回归移动平均(AutoRegressive Integrated Moving Average, ARIMA)[6]模型等。但不幸的是,这些模型高度依赖所收集数据的固定形式和工作人员有经验的参数调整,并且传统方法很难进行长时间预测。最近,人们开始使用机器学习技术应对这些问题,机器学习方法作为新兴工具被用在了负载预测中,如贝叶斯方法[7]、支持向量机算法(SVM)[8]、随机森林算法[9]、神经网络等。很多机器学习模型过于简单导致无法有效利用长期依赖关系、预测精度不高,难以针对移动云计算负载波动大、无周期的特点进行预测。结合了传统的预测算法和机器学习方法的集成预测算法研究已经成为解决负荷预测问题的趋势。通过将多种预测模型相结合,预测模型往往可以得到更好的性能。但是这些方法都使用单变量预测,无法准确地捕获其他特征对目标工作负载的影响。

本文提出了一种新颖的利用联合特征选择策略,是无抽取的小波变换方法后的长短期记忆网络(Long Short-Term Memory, LSTM)的编-解码结构模型——AR-LSTM-ED负载预测模型。LSTM作为神经网络的一种特殊形式,解决了很多机器学习模型忽略长期依赖的问题,本文将采用LSTM作为编码器-解码器网络的组成部分,进一步结合了自回归模型(AR)以处理负载中的线性数据。

本文的主要研究工作及贡献如下:

1)针对资源的预测不仅取决于其过去的趋势(如在单变量时间序列预测中),而且还取决于其他资源度量趋势的问题,比如在预测CPU负载时还需考虑与CPU资源利用率最相关的其他资源特征的使用情况(如内存存储量、磁盘使用率等),但是云数据中心中其他特征多且复杂,本文设计了多变量资源联合特征选择策略,可以选择出各个数据中心中对目标资源负载预测有效的关键特征,不仅可以减少预测模型的训练时间,还提高了在线预测的准确性。并且提出了基于无抽取小波变换的分解方法,可以将原始时间序列各个子成分分离,并对各个尺度上的子序列进行单独预测,以应对移动云计算中高采样频率和负载动态变化带来的问题。

2)本文提出一种将经典的自回归(AR)模型和编-解码器(Encoder-Decoder)网络进行融合的AR-LSTM-ED负载预测模型,采用自回归(AR)模型作为线性组件,与LSTM组成的编-解码网络的非线性特性结合,提升模型对负载线性方面的负载预测能力和对长期负载信息的捕捉能力。

最后,本文使用Google云计算数据集验证算法,对比实验结果表明,本文提出的方法在Google云计算数据集上取得了比现有基准算法更好的性能。

1 相关研究

主机负载预测由于其对改善资源分配和提高资源利用率等潜在的作用,始终受到研究人员的大量关注。通过大量阅读国内外文献,笔者认为负载预测技术的研究方法可以分为3个类别,分别为传统的基于时间序列数据的负载统计预测方法、基于机器学习技术的负载预测模型和多种算法混合集成的负载预测模型。

传统的基于时间序列数据的统计预测方法目前已经拥有了很多成熟的算法,具有代表性的算法主要有AR模型[4]、ARMA模型[5]和ARIMA模型[6]。Kumar等人[10]为了更准确地预测未来的工作量来降低能源成本,使用最新的自回归移动平均(ARMA)类型的模型,如分形自回归聚合滑动模型与使用奇异频谱分析模型的预测性能进行比较,发现在预测网络的突发负载变化时,最简单的ARIMA模型优于其他复杂的ARMA类模型。他们表明当输入大小增加时,分形自回归聚合滑动模型反而会耗费大量计算时间,所以增加输入的负载序列大小不一定能提供更好的预测结果。Dinda等人[11]使用了一个公开可用的数据集,其中包含4种类型的UNIX分布式系统工作负载跟踪。他们在数据集上比较使用了AR模型、MA(Moving Average Model)模型和ARIMA模型,通过评估预测模型来构建相对准确地用于主机负载性能和网络带宽的在线预测系统,研究发现简单的AR模型具有最佳的预测能力,然而Dinda等人只对短期单步的未来时间进行了预测。

在近年来研究较多的新兴方法中,机器学习方法得到关注,具有代表性的有贝叶斯方法、支持向量机算法(SVM)、随机森林算法、神经网络和自然启发式算法[12]等。Zhong等人[13]提出了一种基于支持向量机的WWSVM模型,使用母小波变换作为SVM中的核函数,并且根据样本的重要性为样本加权。Bey等人[14]开发了一种用于CPU负载的单步预测模型,该模型对通过C-均值聚类过程获得的CPU负载的聚类状态使用模糊推理和贝叶斯网络来预测未来的CPU负载。Yang等人[15]提出了一种新的方法预测主机负载,该方法将自动编码器用作回波状态网络的递归特征层。他们为了更好地表示输入,引入了自动编码器来学习输入数据,能更好地捕获负载迹线之间的相似性。Zhang等人[16]使用循环神经网络(RNN)模型训练网络并预测云集群中的工作负载状况,并通过对正交实验设计结果的分析找到最佳的参数组合。研究表明基于RNN的方法适合求解负载时间序列,但它只能解决短期时间序列,当面对长期时间序列预测任务时基于RNN的方法表现得不是很好。Song等人[17]使用改进的RNN即LSTM网络来预测提前多步的工作量,实验结果表明LSTM网络具有学习长期依赖的能力和良好的自适应能力,并且在2个数据集中均取得了良好的成果。

随着对负载预测算法研究的不断深入,集成的资源负载预测算法是近年来的研究热点。结合多种预测方法,预测模型往往可以得到更好的性能。主要有机器学习预测方法和传统的统计预测方法的结合、自然启发式算法和机器学习预测方法的结合等。Bi等人[18]提出了一种混合方法,结合了小波分解和ARIMA统计方法来对下一个时间间隔进行预测。在这种方法中,任务序列通过Savitzky-Golay滤波进行平滑,然后通过将平滑后的序列小波分解为多个序列,再通过ARIMA模型预测共同获得到达任务的数量。与包括单ARIMA预测方法和一些典型的神经网络预测方法相比,该方法可获得更好的预测结果。Mason等人[19]提出了一项提前预测主机CPU消耗水平的研究,这项研究使用了进化神经网络(ENN)来做出这些预测,采取了一些优化算法来训练神经网络:粒子群优化(PSO)方法、协方差矩阵适应的进化策略(CMA-ES)方法或差分进化(DE)方法。他们的实验结果表明,尽管CPU利用率数据中存在大量的噪音,但是经过CMA-ES、PSO和DE训练的进化神经网络可以产生比其他更为准确的预测。Iqbal等人[20]提出了一种新颖的利用多个机器学习方法集成的算法以估计数据中心的资源利用率,该方法可以自适应地从多个传统机器学习技术中自动识别最合适的模型,该研究利用历史资源使用情况的统计特征和多个机器学习预测模型的结果训练随机决策森林分类器,从而自动决定适当的预测模型。但是该方法主要使用序列的统计特征训练机器学习分类器,而不能利用神经网络捕获时间序列的特征。

经过大量文献的阅读,笔者发现RNN是许多建模场景的热门话题。在包括数据中心资源预测的场景下,RNN和它的改进方法如LSTM、门控循环单元(Gated Recurrent Unit, GRU)表现良好。但是现有的方法大多数只考虑了单一特征来进行预测,比如预测CPU资源时只是利用历史CPU资源轨迹来输入模型,因此本文提出了利用联合特征选择算法的策略来进行多元相关性特征选择,利用无抽取小波变换分解原始序列;进一步考虑采用自回归模型和编解码框架下的长短期记忆-网络相结合的AR-LSTM-ED模型来增强主机负载的预测。

2 AR-LSTM-ED多元云主机负载预测模型

移动云计算数据中心的主机负载是波动大且非线性的,建立准确的模型来预测主机负载尤为重要。LSTM网络模型是RNN的一种改进的变体,可以充分利用RNN在处理非线性问题和长期时间序列数据方面的优势,阻止RNN中存在的梯度爆炸和梯度消失问题的产生[31]。此外鉴于LSTM以及由LSTM所组成的编-解码器(Encoder-Decoder)结构在自然语言处理上所取得的成功,其表现出对于时间序列很强的建模性能,本文在主机负载模型中引入这一结构。因为利用单一特征进行预测往往会丢失掉其他特征对目标预测序列的影响信息,所以本文提出的云数据中心负载预测模型通过联合特征选择将一组与目标预测变量高度相关的特征作为多元负载预测输入的一部分,以提高预测精度。

2.1 特征联合选择

在云数据中心中,如果任由资源无监管自行运行,会面临难以预计的危险,因此云数据中心的监控系统无时不刻地监视着复杂的数据中心主机运行,也记录了大量的系统监测数据和性能指标,如CPU资源利用率、网络带宽使用量、磁盘利用率、当前任务数量等。这些特征之间彼此相对独立,也有一些具有关联或因果关系。目前现有的主机负载预测算法大多数只通过单变量来进行预测[16-17],比如只通过历史CPU资源利用率来预测未来CPU资源利用率,历史网络带宽使用量来预测未来带宽使用量。在文献[21]中可观察到通过分析其他特征有利于分析和理解目标特征。比如,如果内存使用率在同一时期从20%增长到90%,预测内存会继续增长,且系统会开始分页到磁盘,增大磁盘利用率,这就在云主机负载预测问题中提出了多元时间序列预测的需求。在仔细考虑给定的系统后,领域专家可以选择这组多元特征,但是很难找到这样的专家,并且为不同的移动云数据中心对不同的工作负载进行所需的工作是不可行的。因此,本文的目标是设计一个有效的联合特征选择算法来选择与目标预测特征最相关的多元特征集,可以为多种工作负载下的云平台提供作用。采取这种策略可以使预测模型结果更加准确,使模型时间和空间复杂度保持在可计算的水平。

定义1 云数据中心中k个主机收集到的特征向量集合M={M1,M2,…,Mi,…,Mk},第i个主机的特征向量集合Mi={P1,P2,…,Pj,…,Pm},其中P1到Pm为定期从主机收集得到的m个特征,如CPU利用率、内存使用率、磁盘输入/输出时间、磁盘空间、正在运行的任务数等。每个特征Pj均具有T个观测值,即Pj={pj1,pj2,…,pjt,…,pjT}。

需要从所有m个特征集合中选择与目标预测特征最相关的s个特征,而云资源主机的负载是高度动态的,且会随着时间波动,较难发现其规律性。如果使用预测模型在候选的特征集合中进行穷举搜索需要大量时间,且采用单一的相关性指标不能准确刻画负载的相关性。因此,本文将使用一种鲁棒性的联合模型,对目标预测特征与其他待选特征的关联性进行挖掘。其中包括3种相关性评价算法,Pearson相关系数算法[22]、Spearman相关系数算法[23]和最大互信息系数算法(Maximal Information Coefficient, MIC)[24]。Pearson相关系数从波形相似度来判断特征变量之间的相关性;Spearman相关系数从序列变动趋向一致性来计算特征变量是否相关;MIC相关系数算法根据概率密度分布的特征计算特征变量间的相关性。所有这些技术都需要计算候选资源特征与目标预测特征之间的成对关系。

Pearson相关系数算法用于度量2个特征序列之间的线性相关程度,2个负载资源特征Px和Py之间的Pearson相关系数rpearPx,Py的计算公式如式(1)[22]:

(1)

其中,cov(Px,Py)为资源特征Px和Py的协方差,μPx和μPy分别表示特征Px和Py的平均值,σPx和σPy分别表示特征Px和Py的标准差,任意资源特征Px表示为Px={px1,px2,…,pxT}。rpearPx,Py的值介于[-1,1]之间,如果Px和Py这2个特征变量彼此独立,则rpearPx,Py值为0。

Spearman相关系数利用单调方程评价2个特征变换的强度和趋向,比如2个变量可能一起变化,但并不一定以相同的速率在一致的方向变化。已知Px和Py是分别为具有T个观测值的2个资源特征,通过将等级1分别分配给Px和Py中T个观测值中的最低值,将等级2分别分配给下一个最低值,依此类推,获得Px和Py中每个值的等级,被观测的第t时刻Px和Py等级的差值为d′t。Spearman相关系数rspearPx,Py的计算方法如式(2)[23]:

(2)

最大互信息系数算法本质上是计算2个特征间的互信息值,最大互信息系数主要利用互信息和网格划分方法进行计算。任意资源特征Px均具有T个观测值,Px={px1,px2,…,pxT}。Px和Py间的互信息系数MIPx,Py的计算方法如式(3)[26]:

(3)

其中,p(px,py)表示px和py的联合概率密度,p(px)和p(py)分别表示px和py的边缘概率密度。在给定的网格分辨率下,对由资源变量px和py构成的二维散点图按照不同的划分方案进行划分,取划分方案中互信息值的最大值,将该最大值进行归一化。改变网格分辨率,求出不同网格尺度下最大的互信息值,把该值作为资源变量px和py的MIC值。MIC系数MICPx,Py的计算方法如式(4)[24]:

(4)

其中,a和b表示将变量Px的值域分成a段,将变量Py的值域分成b段,B(T)是一个关于观测规模T的函数,表示网格划分a×b的上限。一般地,当B(T)=T0.6时效果最好,因此本文中也采用该值,Px和Py的相关性和MIC的绝对值正相关。

根据以上3种技术可以得出不同特征的3种相关度系数值,可联合表示负载数据局部的波形相似度、变化趋势和概率密度分布特点。若将3种指标值随机加权会影响特征选择的准确性和稳定性,因此本文提出结合熵权法[25]的联合特征选择算法,如果相关度指标能提供的信息量越大,在所有技术指标的整体评价中的作用也就更大,占整体技术指标的权重就应该越高。而信息熵的大小和信息量成正比。因此,通过对计算出的指标的信息熵计算可以得出每种指标的信息量,根据指标的信息量分配权重,得出具有鲁棒性的相关性指标。

联合特征选择算法具体步骤如算法1所示。

算法1 联合特征选择算法

输入:数据中心中的某台主机的负载特征向量集合M={M1,M2,…,Mi,…,Mk},目标预测特征集合Px。Mi中共有m个负载特征向量,Mi={P1,P2,…,Pj,…,Pm}。任意的负载特征向量Pj都具有T个观测值,即Pj={pj1,pj2,…,pjt,…,pjT}。目标预测特征集合Px初始时包含在Mi中。

输出:候选特征MZi={P1,P2,…,Ps}。

步骤2 因为最大互信息值的取值在[0,1]之间,rpearPx,Py和rspearPx,Py的取值在[-1,1]之间,所以将相关度矩阵的各子项取绝对值,令CMj,u=|CMj,u|。

步骤3 依据计算公式(5)分别计算3项指标的信息熵Eu的值。

(5)

步骤4 根据公式(6)计算3项指标对应的权重wu:

(6)

步骤5 根据得到的权重wu和公式(7)计算联合关联度CMj的值:

(7)

步骤6 初始化输出候选特征矩阵MZi={},在Mi中选取联合关联度值CMj中最大的s个特征向量,将选中的特征向量Pj加入MZi。

步骤7 得到MZi={P1,P2,…,Ps}为联合特征选择算法最终输出的候选特征。

联合特征选择输出的MZi为AR-LSTM-ED预测模型的输入信息。目标预测特征集合Px的分解方法将在下一节中介绍。

2.2 无抽取小波分解

由于在移动云计算负载预测领域,数据采集间隔短,采集频率越来越高,一方面可以得到更多的信息,另一方面会引入大量的随机噪声。虽然这些随机噪声在采集频率较低的数据中也同样存在,但是低频的采集起到了低通滤波的作用,平滑了时间序列,过滤掉了高频噪声。与此相反,在移动云计算负载数据中这一问题更加严重。因为移动云计算中心无时无刻不在处理来自各地移动设备的任务,它的负载序列很难具有周期性和平稳性,甚至有用的信息都可能会被噪声淹没。对高频快速变化的负载数据直接预测难以达到满意的效果,可以利用时间序列分解和神经网络组合的混合模型来进行预测。所以本节引入了一种无抽取小波分解方法作为移动云计算负载预测模型的基础。

时间序列分解方法将不同的时序数据进行变换,分解成一系列低耦合的子成分,有利于进一步分析与预测。小波变换通过一些特定的母小波去描述输入信号,比如缩小或放大原始信号、将原始信号平移等。近年来,越来越多时间序列研究领域的学者开始将小波变换引入到时序预测方向上[18],可以使用小波变换对原负载序列进行解析,分解成多个较平稳的细节信号和一个近似信号,从而挖掘出序列中的规律以及变化趋向。小波分解通常使用基于多分辨率分析的Mallat算法[27],该方式可以用于对非平稳时间序列进行预测,但是在分解过程中,每当获取到新的时间序列时,小波变换的系数需要重新计算,导致同样的历史序列分解出的分量发生改变,计算量大,没有充足的时间对变换后的数据进行再次训练。Mallat算法这种不具有时移不变性的方法难以满足移动云计算负载预测模型对于在线预测的要求,而无抽取的à trous离散小波变换算法[28]解决了这一问题,任意时刻t序列的分解都不需要t时刻之后的数据来计算,所以在得到新的时序数据时,无需重新计算系数。并且具有时移不变性,同一时刻的各个分解序列可以直接产生关联,适用于云计算中心负载在线预测的场景。因此本文采用à trous小波变换将目标预测序列Px分解成式(8)的形式,Px={px1,px2,…,pxT},à trous小波分解得到的序列长度仍然是T。

(8)

集合{D1,D2,…,DJ,SJ}为目标负载序列Px分解到分辨率为M的小波分解序列集合,其中SJ是目标负载序列Px的近似信号序列,而Dj为目标负载序列Px的细节信号序列,SJ={sJ1,sJ2,…,sJT},Dj={dj1,dj2,…,djT},都具有T个观测值。将卷积核定义为k(h),分辨率为j的分解序列在时间t处的近似信号sjt由卷积核k对原始时间序列进行卷积操作,如式(9):

(9)

对负载序列进行分辨率为m的分解后的序列Dj在时刻t处的细节信号djt由sjt表示,如式(10):

djt=sjt-s(j-1)t

(10)

为了适应移动云负载的预测,降低小波变换的计算量,本文采用简单的滤波器k(h)=[1/2,1/2]作为低通滤波器,计算近似信号的方法如式(11):

sjt=0.5(s(j-1)(t-2j)+s(j-1)t)

(11)

根据式(9)和式(11)可以将Px分解为式(8)的形式。通过上述变换可以看出,在任意时刻t都不需要t时刻之后的数据来计算近似信号和细节信号分量,可满足本文研究中的实时性要求,并且因为负载数据不断变换和更新,前面计算得到的负载信号分量可被后面的计算使用;并且如果数据不断更新(即获得新的测量结果),则不必重新计算之前分解的信号,提高了计算效率。另外,考虑分解的层数过多会产生太多细节信号,层数过少近似信号不够平滑。根据实验,本文将分辨率J设置为3,可以分解出较为平滑的近似信号,最终可以将目标负载序列Px根据式(8)分解,得到3个不同分辨率下的细节信号序列D1、D2、D3和一个近似信号序列S3。这些序列将作为预测特征的内部特征输入到本文的模型中,且由于变换的冗余性,他们的时间长度与原始的目标负载序列Px相等,所以每一个时间序列的同一个时间点可以建立直接联系,之间的规律可以被下一节提出的模型获取到。

2.3 AR-LSTM-ED模型

本文提出一种与AR模型相结合的编解码框架下的长短期记忆网络模型,即AR-LSTM-ED模型,该模型不仅可以捕捉不同时间序列的长期时间依赖关系,还可以增强基本LSTM的线性预测能力,对处理移动云负载序列预测问题具有良好的性能。AR-LSTM-ED模型由2个基本组件组成,包括线性组件和非线性组件,其架构图如图1所示。本文采用经典的AR模型作为线性组件来捕捉输入序列中的线性成分。非线性组件采取了编-解码器的结构,包括LSTM网络构成的编码器部分和解码器部分,编码器封装了输入向量时序数据中信息的编码形式,解码器将编码器构建的表示形式解码为预测输出序列。

图1 AR-LSTM-ED模型架构图

主机负载时间序列依据时间顺序分成固定窗口大小的相连续的历史序列和预测序列:历史和预测序列分别用作AR-LSTM-ED的输入和受监督的输出标签。输入向量为X,由联合特征选择算法中得到的MZi={P1,P2,…,Ps}、原始目标负载序列Px和根据式(9)分解后得到的序列{D1,D2,D3,S3}构成,即X={Px,P1,P2,…,Ps,D1,D2,D3,S3}。且X具有T个观测点,即X={x1,x2,…,xt,…,xω},输入AR-LSTM-ED模型得到的输出预测序列为Y,Y={yω+1,…,yt,…,yω+t′}。t′=1时Y是主机未来单个时间间隔的预测负载序列,序列长度为1;t′>1时是未来多个时间间隔的预测负载序列。参考文献[10],本文用于从云数据中心中收集数据的最小间隔为5 min。

随着深度学习近年来的快速发展,神经网络被越来越多地应用到实际问题中,RNN是一个能够将状态在自身网络中循环传递的网络[29]。但是,当历史负载序列很长时,RNN将无法从远离当前时刻的负载中学习信息,时间步t中的信息传输到下一个时间步时,上一步中信息的影响将减小。并且,RNN在建立长期依赖模型时常常会受到梯度无法在较长序列中传递产生的消失问题和梯度爆炸问题的困扰[31]。而RNN的一种改良的变体LSTM网络可以解决RNN中的梯度消失问题[32],在处理负载预测相关的时间序列问题中表现出更强的优势。因此,本文选择了LSTM模型作为基本负载预测模型。

LSTM网络使用多个门控机制来跟踪序列的状态,门控单元有4种类型:忘记门ft、输入门it、单元门gt和输出门ot,它们共同控制如何将信息更新为状态,如图2[33]所示。LSTM网络通常通过忘记门来增强学习长期依赖的能力,可以学习需要记忆早先成千上万甚至数百万个离散时间步长发生的事件的任务,即使在重大事件之间存在较长的延迟,LSTM网络仍可以工作。

图2 LSTM的体系结构

当LSTM网络接收时间步t时刻的输入xt时,根据公式(12)[18],4个门都会进行更新。忘记门ft用来控制记住还是遗忘上一个时间步的单元状态ct-1,ft取值为[0,1],表示上一个时间步的单元状态遗忘的概率。输入门it负责确定当前输入xt的重要程度,即负载数据xt中哪些信息能够被储存在神经元中,单元门gt对输入执行非线性变换,而输出门ot控制新的单元状态ct进入到LSTM网络的当前输出的ht的量,ht是隐藏状态。

(12)

其中,Wf、Wi、Wg和Wo是权重矩阵,激活函数是非线性的Sigmoid函数,bf、bi、bg和bo是偏差向量。从式(13)中可以看到,当前时间步t的单元状态ct在单元门ft、it、gt的控制下进行更新。最后,根据式(14)使用ot和ct更新本层的输出。

ct=ft×ct-1+it×gt

(13)

ht=ot×tanh(ct)

(14)

本文研究的任务是预测移动云计算中心中目标负载在未来一个时刻或多个时刻的值,输入向量X为多个时间步的序列,所以是一个多对多或多对一的序列预测形式。由于Encoder-Decoder模型[32]能够使用编码器将输入的序列编码转换为固定长度的向量,并使用解码器解析这个固定长度的向量并输出需要长度的预测序列,且输入和输出都可以是不定长序列,对于本文中对单步或多步负载预测问题具有普适性,所以本文将编-解码器引入。编码器和解码器各由一个LSTM网络构成,编码器将t时刻输入变量xt映射到隐藏状态ht,ht中包含更高维的信息,使用另一个基于LSTM的递归神经网络作为解码器对编码的输入信息进行解码,解码器的输入ht由上一次编码器得到,解码器的输出sω为需要的预测长度形式的序列。

经过LSTM网络的学习,可以得到解码器的输出sω,最后用一个全连接层将其转为非线性组件部分的最终预测结果YED,全连接层的输出计算如式(15):

YED=WEDst+bED

(15)

其中,st是Decoder部分的预测输出结果,WED和bED是全连接层需要学习的参数。

(16)

如式(17)所示,将AR线性组件的预测结果Yar和长短期内存编码器-解码器的预测结果YED集成而获得最终AR-LSTM-ED模型预测结果Y,且Y={yω+1,…,yt,…,yω+t′}。t′=1时Y表示对主机未来一个时间步预测的负载序列,序列长度为1;t′>1时Y表示对未来t′个时间步预测的负载序列。其中,yt表示AR-LSTM-ED模型在时间步t的最终预测。

Y=YED+Yar

(17)

3 基于AR-LSTM-ED的移动云计算多元负载预测算法

基于AR-LSTM-ED的移动云计算多元负载预测算法分为4个部分,分别为预处理阶段、小波分解阶段、模型训练阶段和负载预测阶段。具体步骤如下:

步骤1 在数据预处理步骤中,使用逻辑归约函数对移动云数据中心的监控数据集中的主机负载数据进行归一化。然后将归一化后得到的主机特征向量集合和目标预测特征集合,通过算法1进行联合特征选择和目标负载变化相关性最高的关键特征P1,P2,…,Ps以降低监测开销及模型复杂度。

步骤2 在小波分解处理步骤中,提取出目标预测负载序列,使用非抽取小波变换算法根据式(9)和式(11)将目标预测负载分解为3个细节信号分量D1、D2、D3和一个近似信号S3。

步骤3 在模型训练阶段,取出监控数据集中得到的原始目标序列、步骤1中得到的外部多元特征序列和步骤2中得到的内部小波分解序列,合并得到X={Px,P1,P2,…,Ps,D1,D2,D3,S3}作为监控数据集输入到AR-LSTM-ED模型中。负载训练样本的序列长度为T,将其分割为历史序列长度为ω,预测序列长度为t′的片段进行训练,得到AR-LSTM-ED模型对训练数据集的预测误差,不停调整参数进行训练,得到最优模型。

步骤4 负载预测阶段,利用步骤3中训练好的AR-LSTM-ED模型根据式(12)~式(17)对监控数据集中的输入序列进行预测,得到输出序列。

本文提出的基于AR-LSTM-ED的移动云计算多元负载预测算法框架如图3所示。

图3 基于AR-LSTM-ED的移动云计算多元负载预测算法框架

4 实验与结果分析

4.1 数据集和预处理

在本文中,一个从真实云环境中收集的数据集[10]将用于评估本文提出的基于AR-LSTM-ED的移动云计算多元负载预测算法的性能。这个数据集记录了谷歌公司的云计算数据中心中大约12000台服务器的工作负载信息,包括了各个任务的资源、调度等信息,例如调度类型、事件类型、资源请求、优先级、资源利用率等。在本实验中,将专注于预测未来的CPU使用趋势。同时,其他的资源特征因为与CPU使用率存在相关性,因此也用于多元预测CPU使用率。如果对其他的资源如内存、磁盘使用量、带宽进行预测,本文提出的算法仍然是实用的。

数据集中的每个作业在不同的时刻都伴随有一组资源请求和资源使用量度。云计算中心中的每台主机都提供长期应用程序和批处理工作的任务负载,给定时间不同主机上正在运行的任务的总负载是该主机的实时负载。本文首先需要对不同任务的负载数据进行分析和聚类预处理从而得到需要的在一段观测时间的不同类型的负载数据。对数据集处理和分析后获得的资源特征名称及描述分别是CPU(CPU使用率)、JOBS(正在运行的作业总数)、MEM(内存使用率)、VM(分配但不一定使用的内存使用量)、UPC(未映射的页面缓存量)、TPC(总页面缓存使用量)、MAXM(最大内存使用率)、DIO(磁盘I/O时间总和)、DSP(磁盘空间使用量)、MAXC(最大CPU使用率)、MAXD(采样频率间隔内最大磁盘I/O时间)、CPI(每个指令在所有节点上的平均周期)、MAI(每条指令的平均内存访问)。在本文的实验中,以上数据集中按时间顺序7∶3划分训练集和测试集,训练集为历史已知数据,测试集为训练集之后的未知数据,可以避免未来时间的信息泄露导致预测不准的问题。数据采样频率为5 min一次。所有时间序列数据通过极大极小归一化操作归一化到0~1的范围。

图4 联合关联度值

在本文提出的联合特征选择策略中,以上13个特征的序列为特征向量集合Mi,CPU使用率的序列作为目标预测集合Px,根据算法1,得出了除了目标预测特征CPU外的12项特征的联合关联值,如图4所示。将s=5作为阈值,通过选择联合关联度值最高的5个特征,得到候选特征MEM、VM、MAXM、DSP、MAXC作为AR-LSTM-ED模型的输入。联合特征选择技术能避免某一关联度指标失效的情况,可以从全部可用的特征集中识别出最相关的特征集,具有有效性和可行性。

4.2 实验设计及参数设定

表1给出了本文方法的超参数。超参数是通过多种方式确定的。根据预测的序列长度分成单步和多步预测,单步预测对未来下一个时间步的负载值进行预测,得到的预测序列的长度为1;多步预测对未来多个时间步的CPU负载值进行预测,预测序列的长度分别为2、6和12。通过网格搜索确定编、解码器网络层中隐藏状态的个数,通过自相关性分析得到输入模型的历史窗口长度ω。

表1 AR-LSTM-ED模型的参数值范围

远程依赖性是时序数列中的一种常见现象,下一步骤负载值的增加或是减少受到序列中几个过去时间负载滞后的影响[36]。自相关是数据的特征,它显示相同变量在不同时间点的值之间的相似程度。自相关系数为可以表示这种远程依赖性的参数,参考文献[34],序列第t步的自相关系数rt的计算方法如式(18)所示,rt越大,自相关性越大:

(18)

其中,xi代表序列中第i个样本的值,μx为序列的均值。计算历史窗口长度ω的公式如式(19)所示,其中,χs(rt)是指示函数,S={rt|rt≤thresholdr},thresholdr为自相关系数的阈值,可以求出输入模型的历史窗口长度ω。

(19)

本文对数据中心负载进行了自相关分析,数据中心CPU利用率负载特征的自相关图如图5所示。将自相关阈值thresholdr设定为0.6,经过计算可得历史窗口长度ω=17,本文的预测模型选择历史负载序列X={x1,…,xt,…,x17}作为输入。

图5 数据中心CPU利用率负载特征的自相关图

4.3 实验评估

(20)

(21)

为了度量联合特征选择算法的效果,需要对特征选择后的数据集进行预测实验,本文实验中的特征包含图4中的12个特征和1个目标预测特征。将使用本文提出的联合特征选择算法的结果和其他算法结果对比,如单一的特征选择方法和选择全部特征的方法。可以从表2中发现,对于使用全部特征的多元AR-LSTM-ED模型的误差小于仅使用CPU特征的模型误差,这表示多元特征预测具有有效性。在多元特征方法中,使用Pearson相关系数选择特征的方法效果不如选择全部特征的预测效果,此时Pearson相关系数不能很好地挖掘其他特征负载序列与CPU负载序列的相关性,而采用其他相关系数选择特征的方法预测效果较好,本文所提出的联合特征选择策略具有有效避免某一指标下关联度评判失效的情况,具有鲁棒性。且联合特征选择策略比起单特征预测可以提供更多的信息提高预测效果,还可以在保证预测效果的情况下减少冗余特征变量从而减少构建预测模型所需的时间。本文又对进行小波分解和不进行小波分解方法的预测准确性进行实验,“WD”表示小波分解,对AR-LSTM-ED模型而言,在结合小波分解后的最终预测结果优于不经过分解的结果。经过分解后的近似信号相当于在原始CPU序列上进行了平滑滤波,可以更加准确地预测趋势,而不用受到分解出的高频的细节信号影响。

表2 各模型预测CPU资源准确性对比

为了更准确地评估本文提出的基于AR-LSTM-ED多元预测算法模型的预测性能,另外选择了ARIMA算法模型[22]、LSTM算法模型[11]、SVR算法模型和BiLSTM算法模型作为比较实验的基准。本文将模型预测的时间步分别设置为单步和多步预测,实验中多步预测为预测2、6、12个时间步,时间步间隔时间同采样的间隔一致,为5 min一次。根据图5的自相关分析发现CPU负载序列不平稳,所以ARIMA算法对负载序列执行一次差分,将时间序列的差分次数d设置为1,将自回归项的数量p设置为3,移动平均项数q=2,即ARIMA算法的参数设置为(3,1,2)。ARIMA算法模型和SVR算法模型中使用单特征,即只使用了CPU特征进行预测。其他LSTM和BiLSTM算法与文献[12]不同的是,本文采用联合特征选择得到的是外部特征集合和CPU负载特征小波变换后得到的内部特征,而不仅仅是单一CPU的特征。

本文对上述不同的预测模型进行实验,并对结果进行绘图分析。图6表现了单步预测中本文提出的模型和ARIMA、LSTM、SVR、BiLSTM这4种算法的预测结果以及实际情况下采集到的CPU利用率的对比。

图6 实际负载序列与不同预测模型的预测结果序列

从图7中可以直观地看出本文提出的AR-LSTM-ED预测算法对于谷歌数据集在单步预测时的预测结果更接近实际数据,但无法直观地分辨预测误差。为了更清楚地看到结果,图7展示了本文提出的算法和ARIMA、LSTM、SVR、BiLSTM算法的单步预测结果和实际负载值的差,从中可以看到,本文提出的算法的预测误差大多数情况下远小于ARIMA算法,稍小于其他算法。

图7 采用不同预测模型的单步预测误差

本文计算了单步预测下每种算法与原始负载相比的误差,采用式(20)和式(21)的RMSE和MAE这2种评估指标对预测结果进行定量评估,评估结果如表3所示。

表3 各模型预测CPU资源准确性对比

由表3可见,无论是RMSE还是MAE的评估指标,本文提出的基于AR-LSTM-ED的多元负载预测算法模型的预测精准度都要高于其他模型。尽管ARIMA具备完善的理论基础,但它很难将非线性的历史负载序列预测模型转换为固定的预测形式,所以面对复杂的负载变化,误差较大。在基于LSTM的方法中,本文方法的得分均优于基本LSTM和BiLSTM模型,这表明编-解码器体系结构的有效性,编码器网络可以提取上下文的隐藏特征和整个序列的隐藏特征,并且解码器网络可以选择输出预测未来负载时隐藏的特征,并且线性AR模块增加了处理线性分量的能力。为了进一步评估本文所提模型的效果,在单步预测的基础上,本文分别预测了未来2步、6步、12步的负载,即预测窗口长度t′=2,6,12。得到的结果如图8所示,可以看出本文提出的AR-LSTM-ED模型得分优于其他的循环神经网络模型。

5 结束语

预测资源使用情况对于在云服务器中做出更好的自动扩展和负载平衡决策非常有用[20],并且有助于云服务供应商为他们的客户提供更好的服务质量并获取最大的利润。本文提出了一种用于云计算资源负载预测的新颖模型——AR-LSTM-ED模型。相比同类RNN的方法,本文使用联合特征选择策略和非抽取式小波分解方法得到目标预测资源负载的外部和内部特征来对目标云负载进行多元方式的预测。联合特征选择技术对移动云计算监控中心得到的多个特征自动选取与目标负载特征最相关外部特征序列,小波分解将不稳定的目标负载特征分解为低频和高频的4个内部特征序列。该模型利用LSTM编解码器网络处理长期序列预测问题的优势,提取历史序列的隐藏特征并预测工作量,同时使用AR模块弥补了LSTM在线性预测方面的不足,增强了AR-LSTM-ED模型的预测能力。实验结果表明本文的模型相比于同类研究具有更好的预测效果。

猜你喜欢
特征选择数据中心预测
无可预测
酒泉云计算大数据中心
选修2-2期中考试预测卷(A卷)
选修2-2期中考试预测卷(B卷)
浅析数据中心空调节能发展趋势
关于建立“格萨尔文献数据中心”的初步构想
不必预测未来,只需把握现在
Kmeans 应用与特征选择
联合互信息水下目标特征选择算法
基于特征选择聚类方法的稀疏TSK模糊系统