APP下载

基于LSTM的媒体网站用户流量预测与负载均衡方法

2018-03-01谢海涛陈树

网络空间安全 2018年10期
关键词:负载均衡

谢海涛 陈树

摘 要:媒体网站的用户流量呈现平稳性、周期性、不规则变动等特征,对用户流量的有效预测有助于管理者设计更合理的负载均衡(Load Balance)策略。鉴于传统预测技术难以对蕴含在不同时间跨度中的知识进行融合,论文提出了一种基于深度学习技术“长短期记忆网络(LSTM)”的用户流量预测及负载均衡方法。该方法将网站的各类运营数据作为影响流量的特征,从而挖掘流量与其特征间的关联知识。根据未来时间窗口的流量预测结果,进行服务器资源预留,以实现较好的负载均衡效果。实验表明,相对于传统方法,论文方法的请求响应时间均值更低。

关键词:用户流量预测;长短期记忆网络;负载均衡

中图分类号:TP393 文献标识码:A

1 引言

负载均衡是将用户的请求分发到不同服务器,以缩短请求响应时间的技术。对媒体网站来说,用户访问量的准确预测是设计更合理的负载均衡策略、改善用户访问体验的数据依据。媒体网站的访问量总体上呈现出平稳性、趋势性、周期性、随机性等特征。例如,网站内容质量的提高让用户流量稳中有升;用户流量会伴随日夜交替而产生周期性起伏;发布热门内容会导致用户流量的激增等。上述现象表明用户访问量具有时间序列(Time Series)数据的典型特征,也使得媒体网站的用户流量预测变得较为困难。

对于用户流量问题,已存在诸多研究成果。传统方法主要基于统计学、随机过程、机器学习(浅层学习)等技术提出解决方案。上述方法在用户访问量预测问题上取得了不错的应用效果。不过,传统方法在持续提高预测精度过程中遇到瓶颈,其重要原因是无法对蕴含在不同时间跨度中的知识进行有效提取及融合,即不具备“记住对预测有用的信息,忘记对预测无用的信息”能力。对此,本文提出了一种基于长短期记忆网络(深度学习)的媒体网站用户流量预测方法,并设计了基于预测结果的负载均衡优化策略。

创新点在于两点:

(1)LSTM的深层结构与遗忘记忆机制,可融合不同时间跨度的历史信息;

(2)考虑到高峰流量通常伴有相似的内容请求,负载均衡策略会预留出优质的服务器资源,对流量进行集中处理和响应。

在本文随后的章节中,将首先阐述相关研究成果;然后对所解决问题进行形式化,并基于LSTM提出了媒体网站流量预测方法;接着设计了具有资源预留机制的负载均衡方法;最后开展对比实验。

2 相关研究综述

用户流量预测(Network Traffic Prediction)作为评估与保障网络可靠性、网络安全性的机制,被广泛应用于门戶网站、电子商务网站等[1]。根据数据建模方法与视角的不同,主流方法包括三种:

(1)基于泊松分布、小波分析等的统计类建模方法;

(2)基于线性时间序列(Linear Time Series)模型、非线性时间序列(Nonlinear Time Series)模型、马尔科夫过程的随机过程类建模方法;

(3)基于神经网络、支持向量机等的机器学习类(Machine Learning)方法。

Erlang很早便提出基于排队论方法学来建模用户到达率问题,使用泊松分布对数据建模[2]。洪飞等基于小波分析技术建模网络流量[3]。综合自回归移动平均模型ARIMA也常被用于解决该问题,它将数据从非平稳时间序列转化为平稳时间序列,其特点在于能从数据中捕获到随时间变化的随机模式,随机模式是指随机过程的特征随时间变化[4]。温祥西、韩敏等基于支持向量机提出了时间序列预测模型[5,6]。彭喜元等使用原始数据构建出多个特征,并基于神经网络进行学习和预测[7]。

综上,媒体网站用户访问量具有典型的非线性时间序列特征,且存在各类外部随机扰动。对其进行精准预测需要模型从不同时间尺度上学习数据规律。在难以可视化高维数据、难以描述随机过程机制的情况下,使用LSTM模型将媒体的各类行为特征作为输入,能最大限度捕捉特征变化规律,适于解决该问题。

3 基于LSTM的媒体网站访问量预测方法

3.1 访问量预测问题的形式化描述

媒体网站某段时间内用户访问量数据V可记为:。其中,t是时间片序号,v代表时间片内的访问量。按照上述表示法,媒体网站在运营中的各类行为均可被形式化描述为数据特征,如表1所示。

基于上述表示法,访问量预测问题的输入数据表示为:

本节要解决的问题,即通过对若干历史时间片内上述数据的学习,预测未来若干时间片内的访问量。

3.2 长短期记忆网络

LSTM(Long Short Term Memory)是一种基于循环神经网络RNN改进而来的模型[8]。LSTM在长短时间跨度的序列数据预测中,比RNN表现更好。神经网络作为具有输入层、隐藏层、输出层的机器学习模型可学习到数据中的非线性关系。神经网络通过后向和前向传播完成参数的调整。当按照计算时间将RNN展开后,如图1所示。

其中,U、V、W是参数,x、s、o分别为输入、隐含层、输出。LSTM在RNN基础上通过增加“遗忘机制”“选择记忆机制”实现了适应长短期时间跨度的序列数据学习能力。相比于RNN,LSTM有两套传输状态:单元状态(Cell State)和隐藏层状态(Hidden State),前者随时间变化较慢,后者变化较快,具体细节如下:

某时刻t的单元状态和隐藏层状态分别记为:Ct,ht。若当前输入为Xt,<α,β>表示将两向量进行拼接(Concatenate),那么LSTM中的一组变量计算如下:

(1)

其中,zi,zf,zo由权重矩阵与拼接向量相乘得到,σ代表sigmoid激活函数,将数值映射为0到1区间。上述三变量作为模型的门控信号,分别控制着输入、遗忘、输出机制。z通过tanh函数将数值映射为-1到1区间,作为其它构件的输入数据。以上变量随后参与如下运算过程,并最终形成输出yt,计算流程如图2所示。

其中,⊕是矩阵相加算子,是同型矩阵相乘算子,即:矩阵中对应元素相乘。上述结构图中的各变量计算方法如下:

(2)

LSTM在时序数据学习中,展现出如下的机制:

忘记机制:使用忘记门控信号zf对上一时刻所持有的信息Ct-1进行选择性忘记,忘记不重要的信息,即对结果预测无用的信息。

选择记忆机制:对当前时刻的输入信息Xt进行选择性记忆,记住相对重要的信息,即对结果预测有用的信息,通过门控信号zi以及之前计算得到的z得到。

将上述两路信息组合,形成当前时刻的单元状态Ct。以上信息经过tanh函数并通过输出门控信号zo来决定输出内容,并最终形成输出yt。

3.3 基于LSTM的访问量预测方法

由于LSTM接受向量形式的输入与输出。将时间序列样本数据转换为LSTM输入数据,其主要方法是将原数据与其按照步长沿时间错位后的数据拼接而成。若某单变量Var时间序列数据为<…a,b,c,d,e,…>,那么步长为2的转换数据如表2所示,其中步长为2表示当前时刻t的数值受之前两个时刻t-1,t-2的数值影响。在数据转换完后,变量Vart即对应监督学习中的样本的目标值Y,Vart-1,Vart-2组成了样本的特征向量X。

上述转换可预测未来1个单位时间跨度的数值,若要针对2个单位时间跨度预测,可将数据转换为如表3所示。其与表2的区别在于,用该组数据训练的LSTM模型的输出向量包含两个预测数值,对应于未来两个时间片段。

在本研究中,由于需要基于媒体的多类行为特征以及用户流量本身,来预测未来若干时间片段的用户流量,那么对于表4中的数据可转换为表5中的数据,其中Var_1、Var_2表示两个特征。

通过上述转换,将多变量时间序列转化为了LSTM学习与预测时所需要的样本特征与目标值记录。之后将记录划分为训练集和测试集,便可生成未来若干时间片中用户流量的预测结果。

4 基于用户流量预测结果的负载均衡优化方法

常用的负载均衡方法包括五大类。

(1)轮询法。将用户请求按順序轮流地分发给后端服务器处理。

(2)随机法。通过系统的随机算法,根据后端服务器的列表来随机选取其中的一台服务器进行分发。

(3)源地址哈希法。根据发起请求的客户IP地址,通过哈希函数计算得到的一个数值,用该数值对服务器列表进行选择和分发。

(4)加权法。后端服务器通常具有不同的配置和负载,对配置高、负载低的机器给与高权重,将更多的请求分发给权重高的服务器。

(5)最小连接数法。由于后端服务器的配置不同,对于请求的处理速度也不同,该方法根据服务器当前连接的情况,动态地选取其中积压请求数最较少的服务器来处理当前请求。

上述传统的负载均衡方法,并没有考虑不同请求之间的相似性。对于媒体网站,处于相近时间的用户请求往往具有较大相似性。例如,媒体网站发布一则重要消息后,激增的用户流量经常均指向同一内容。考虑到服务器的缓存机制和资源预取机制,若随机或轮询分发请求,其服务器平均响应时间要远高于集中处理的时间。

对此,本文提出了基于流量预测和服务器资源预留的负载均衡方法,其主旨:若预测到未来某时间片中,用户流量超过阈值,则根据服务器性能,为该时间片预留服务器资源,当该时间片到临时,将请求集中分发到预留的服务器,方法逻辑图如图3所示。

5 实验与分析

本文基于Python机器学习开发环境开发LSTM模型。该环境搭建兼容Windows与Linux平台。首先下载Anaconda工具并安装,确保环境中有机器学习开发所必需的合适版本的基础类库。随后,安装深度学习所需要的Python类库,包括Theano、TensorFlow和Keras。在设计与实现LSTM前,需要明确的模型重要特征包括:

(1)基于多少个历史时间片段的数据进行学习;

(2)针对未来多少个时间片段做预测;

(3)隐藏层有多少个神经元;

(4)损失函数的选择,如平均绝对误差MAE;

(5)优化算法选择,如随机梯度下降法SGD;

(6)样本数据的训练轮次以及参数优化中的一批次数据规模。

在模型特征确定后,实现模型的伪代码如下:

用户流量预测的实验数据源于真实数据和仿真数据。其中,真实数据来源于基于微信公众号搭建的媒体网站的服务器日志,以IP地址来区分不同用户的访问行为。仿真数据则基于新浪微博(中国计算机学会CCF官微)的爬取数据而生成,生成方法为将微博账户的各类行为及点赞情况类比为媒体网站的各类行为及用户流量。数据在用途上分为训练集与测试集,分别用于训练模型和进行测试,仿真数据由程序自动生成。在评价模型效果之前,需要对模型预测精度进行定义。本文中,当预测数值落在实际数值一定范围内,则认为该次预测准确,否则为不准确。精度定义为准确预测占全部预测的比例。公式如下:

(3)

仿真实验分别针对用户流量预测和负载均衡方法展开5组实验,每组实验分别模拟具有不同特质的用户流量,得到结果如图4和图5所示。

从图4和图5可见,基于LSTM的用户流量预测方法相比于传统方法具有更高的精度。基于流量预测的负载均衡方法具有更短的服务器平均响应时间。

6 结束语

本文针对媒体网站用户访问量受多类运营行为影响而难以预测的问题,提出了基于LSTM的预测方法,该方法能够对蕴含在不同时间跨度中的知识进行融合,与传统预测方法ARIMA相比,具有更高的预测精度。根据用户流量预测,设计了基于服务器资源预留的负载均衡方法。该方法可缩短请求的平均响应时间,改善用户访问体验。

基金项目:

北京市科学技术研究院萌芽项目“深度学习技术在情报检索用户群体行为分析中的应用研究”的阶段性研究成果(项目编号:GS201804)。

参考文献

[1] Joshi M, Hadi T H. A review of network traffic analysis and prediction techniques[J]. Computer Science,2015.

[2] Bonald T.The Erlang model with non-poisson call arrivals[C]//Joint International Conference on Measurement and Modeling of Computer Systems. ACM,2006:276-286.

[3] 洪飞,吴志美.基于小波的多尺度网络流量预测模型[J].计算机学报, 2006, 29(1):166-170.

[4] Contreras J,Espinola R, Nogales F J, et al.ARIMA models to predict next-day electricity prices[J].IEEE Transactions on Power Systems,2003,18(3):1014-1020.

[5] 温祥西,孟相如,马志强,等.小时间尺度网络流量混沌性分析及趋势预测[J].电子学报,2012, 40(8):1609-1616.

[6] 韩敏,许美玲,穆大芸.无核相关向量机在时间序列预测中的应用[J].计算机学报,2014, 37(12):2427-2432.

[7] 彭喜元,王军,彭宇.一种新型时间序列多分辨预测模型研究[J].电子学报,2007, 35(11):2146-2149.

[8] Hochreiter S,Schmidhuber J.Long short-term memory[J].Neural Computation,1997, 9(8):1735-1780.

猜你喜欢

负载均衡
LBS检索容灾架构研究
Linux负载均衡集群技术在网络服务器中的应用
Oracle MAA在汽车行业电子政务平台中的应用
社区教育平台运营策略研究
异构环境下改进的LATE调度算法
基于负载均衡的云资源调度策略研究
基于新型VPN 技术的高校校园网改造
基于云计算的虚拟实验系统的设计及应用
基于离散PSO算法的医疗云存储部署策略
多站点同步更新系统的设计