宋 志 清
(张家口市科技馆,河北 张家口 075000)
随着人工智能技术和大数据技术的不断发展,同时也伴随着网络市场的进一步改善和网络服务行业的强烈需求,网络流量数据预测引起了行业内的广泛关注.为了尝试预测网络流量的更动趋势,国内外研究者将各种统计学和数据挖掘学的模型试图用到此项研究中,比如MARS模型、惩罚性回归模型和聚类分析模型等.可是由于影响网络流量的因素太多很难应用传统统计学方法进行分析和预测,而通过神经网络技术就可以顺利的解决这一难题.
本文利用Python爬虫中逆向JS技术对某一著名网站进行一段时间的持续跟踪,得到此网站的用户流量时间序列数据,根据此数据进行本次实验.同时利用到LSTM神经网络模型对得到的数据进行智能建模,通过分析和调整LSTM中的三项权重,得到最终的组合模型并对今后短期流量进行预测.
提到LSTM神经网络,就不得不先介绍一下循环神经网络(Recurrent Neural Network,RNN).因为RNN是LSTM神经网络的基石,其中LSTM也是从原始的RNN结构中一步一步优化得来的.
循环神经网络(Recurrent Neural Network,RNN),RNN不仅将基本神经网络中的输入层、隐藏层和输出层中各个层级间权重连接起来,而且也将每层之间的神经元建立了权重连接.如图1标准RNN网络结构图.
图1 标准RNN网络结构图
长短期记忆神经网络(Long Short-Term Memory,LSTM),此神经网络为一种时间循环神经网络.其主要是因为RNN易受到短时记忆的影响,当有一条足长的时间序列数据输入到RNN中时,此神经网络将很难把信息从早期传递到后期,从而会出现梯度爆炸和消失的严重问题,而LSTM神经网络就是为解决这两个问题而诞生的.
由上图2可见,LSTM在普通RNN基础上嵌入了三个特殊的门处理方法:遗忘门、输入门和输出门.以下为LSTM基本原理,它通过状态门将信息进行选择性记忆.其中,输入包括ht-1,xt,输出为ht,状态为ct-1,ct.
图2 LSTM网络结构图
遗忘门:决定从原状态中抛弃什么信息,其中将原状态和输入信息添加到Sigmoid函数进行运算,来决定原状态信息保留的数量.其中遗忘门公式为:
ft=δ(wfxt+ufht-1)
(1)
输入门:对输入的信息进行智能性的挑选,比较重要的信息就多记录一点,不是太重要的信息就少记录一点.它的原理是将原来的输出信息和当前输入信息导入到Sigmoid函数中进行计算,进而对信息进行挑选.输入门公式为:
(2)
(3)
输出门:其功能主要是管理输出什么信息.和上面两个门一样,会先进入一个Sigmoid函数进行运算,从而决定需要输出什么信息.其中传入的信息先经过一个tanh层进行“激活”,然后再将激活的信息和Ot进行乘法运算,从而得到的信息ht就是LSTM的输出信息.其输出门公式为:
Ot=δ(w0xt+u0ht-1)
(4)
ht=Ot∘tanh(Ct)
(5)
本实验在Ubuntu系统下进行创建,首先在Python编程环境中应用命令行pip引入keras框架.其中核心采用Model模型,因为Model模型更适合于复杂环境下创建LSTM网络.对于网络流量这种大数据规模,采用LSTM与全连接层连接的方法,对未来网络流量进行短期的预测.如图3 Ubuntu导入keras.
图3 Ubuntu导入keras
其中,应用时间序列中最后一天数据进行预分析,分析其数据是否具有周期性、平稳性和可预测性.如图4中prophet简易效果图可得:数据周期性高有可预测性.
图4 prophet效果图
应用LSTM神经网路进行以后20天流量预测,如图5,其中蓝色为预测流量走势,橘色为实现20天流量走势.其中预测趋势大体上和实际趋势重合,说明此研究成功.
图5 LSTM预测和实际走势对比图
本文应用LSTM神经网络对某网站流量数据进行剖析和预测,其预测结果和实际中结果差距不到10%,即表明本次研究中所提出的LSTM预测模型是真实有效的,并且具有较为良好的预测能力.但美中不足的是,LSTM模型在高预测能力的同时也需要更多的运行时间,其运行效率有待进一步研究.