流量预测模型训练方法、流量预测方法、装置、设备及介质转让专利

申请号 : CN202011293151.2

文献号 : CN112118143B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 徐海兵郭久明

申请人 : 迈普通信技术股份有限公司

摘要 :

本申请提供一种流量预测模型、训练方法、预测方法、装置、设备及介质,方法包括:获取流量数据集,通过滑动窗口操作对流量数据集进行截取,得到滑动窗口大小的流量的样本数据特征,以及流量的样本数据特征对应的样本标签;样本标签流量的样本数据特征后的下一流量值;获取样本标签对应的样本属性特征;使用模型的门控循环神经网络对流量的样本数据特征进行处理,并将输出的记忆状态与样本属性特征一起输入至模型的全连接网络进行回归预测;根据样本标签和预测结果,通过反向传播算法更新参数权重,得到训练好的流量预测模型。这样使得预测结果与不同流量的属性相关联,解决了流量峰值预测存在的滞后性和准确度不高的问题。

权利要求 :

1.一种流量预测模型的训练方法,其特征在于,包括:获取按照采集时间顺序排列的流量数据集;

通过滑动窗口操作对所述流量数据集进行截取,得到所述滑动窗口大小的流量的样本数据特征,以及所述流量的样本数据特征对应的样本标签;所述样本标签为所述流量数据集中所述样本数据特征对应的下一流量值;

获取所述样本标签对应的样本属性特征;

使用门控循环神经网络对所述流量的样本数据特征进行处理,并将所述门控循环神经网络输出的记忆状态与所述样本标签对应的样本属性特征一起输入至全连接网络进行回归预测;

根据所述样本标签和预测结果,通过反向传播算法更新所述门控循环神经网络和所述全连接网络的参数权重,得到训练好的流量预测模型;

所述获取所述样本标签对应的样本属性特征包括:

将所述样本标签的属性转换为所述样本标签对应的样本属性特征;

所述样本标签的属性包括以下至少一种:

所述样本标签的采集时间;

所述样本标签在采集时或采集前所发生的事件。

2.如权利要求1所述的流量预测模型的训练方法,其特征在于,所述获取按照采集时间顺序排列的流量数据集包括:将按照时间顺序采集的原始网络流量聚合为预设时间间隔的网络流量,生成训练集;

对所述训练集中的网络流量进行异常处理,得到所述流量数据集。

3.如权利要求2所述的流量预测模型的训练方法,其特征在于,对所述训练集中的网络流量进行异常处理,包括:确定所述训练集中的异常网络流量;

对所述异常网络流量进行消除异常处理。

4.如权利要求3所述的流量预测模型的训练方法,其特征在于,确定所述训练集中的异常网络流量,包括:通过孤立森林算法确定所述训练集中的异常网络流量。

5.一种流量预测方法,其特征在于,包括:

将待预测时刻前的预设时长内的网络流量按照时间先后顺序形成待预测流量的样本数据特征;

获取所述待预测流量对应的属性信息,并将所述属性信息转化为样本属性特征;

将所述待预测流量的样本数据特征输入至流量预测模型的门控循环神经网络中;所述流量预测模型为根据权利要求1-4任一项所述的训练方法训练得到的流量预测模型;

将所述门控循环神经网络输出的记忆状态与所述样本属性特征一起输入至所述流量预测模型的全连接网络进行回归预测,得到预测流量。

6.如权利要求5所述的流量预测方法,其特征在于,所述属性信息包括以下至少一种:所述待预测流量的时间信息;

所述待预测流量将要发生的事件;

当前最新发生的事件。

7.如权利要求5所述的流量预测方法,其特征在于,将所述属性信息转换为样本属性特征,包括:对所述属性信息进行独热编码,得到所述样本属性特征。

8.如权利要求5-7任一项所述的流量预测方法,其特征在于,将待预测时刻前的预设时长内的网络流量按照时间先后顺序形成待预测流量的样本数据特征之后,将所述待预测流量的样本数据特征输入至所述流量预测模型的门控循环神经网络之前,所述方法还包括:确定所述待预测流量的样本数据特征中的异常网络流量;

对所述异常网络流量进行消除异常处理,得到处理后的所述待预测流量的样本数据特征。

9.一种流量预测模型的训练装置,其特征在于,包括:获取模块、特征处理模块和训练模块;

所述获取模块,用于获取按照采集时间顺序排列的流量数据集,以及用于将样本标签的属性转换为所述样本标签对应的样本属性特征;

所述特征处理模块,用于通过滑动窗口操作对所述流量数据集进行截取,得到所述滑动窗口大小的流量的样本数据特征,以及所述流量的样本数据特征对应的样本标签;所述样本标签为所述流量数据集中,所述流量的样本数据特征对应的下一流量值;

所述训练模块,用于使用门控循环神经网络对所述流量的样本数据特征进行处理,并将所述门控循环神经网络输出的记忆状态与所述样本标签对应的样本属性特征一起输入至全连接网络进行回归预测,根据所述样本标签和预测结果,通过反向传播算法更新所述门控循环神经网络和所述全连接网络的参数权重,得到训练好的流量预测模型;

所述样本标签的属性包括以下至少一种:

所述样本标签的采集时间;

所述样本标签在采集时或采集前所发生的事件。

10.一种流量预测装置,其特征在于,包括:准备模块和预测模块;

所述准备模块,用于将待预测时刻前的预设时长内的网络流量按照时间先后顺序形成待预测流量的样本数据特征;获取所述待预测流量对应的属性信息,并将所述属性信息转化为样本属性特征;

所述预测模块,用于将所述待预测流量的样本数据特征输入至流量预测模型的门控循环神经网络中;将所述门控循环神经网络输出的记忆状态与所述样本属性特征一起输入至所述流量预测模型的全连接网络进行回归预测,得到预测流量;所述流量预测模型为根据权利要求1-4任一项所述的训练方法训练得到的流量预测模型。

11.一种电子设备,其特征在于,包括:处理器、存储器及通信总线;

所述通信总线用于实现所述处理器和存储器之间的连接通信;

所述处理器用于执行存储器中存储的一个或者多个程序,以实现如权利要求1-4任一项所述的流量预测模型的训练方法,或实现如权利要求5-8任一项所述的流量预测方法。

12.一种可读存储介质,其特征在于,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现如权利要求1-4任一项所述的流量预测模型的训练方法,或实现如权利要求5-8任一项所述的流量预测方法。

说明书 :

流量预测模型训练方法、流量预测方法、装置、设备及介质

技术领域

[0001] 本申请涉及网络技术领域,具体而言,涉及一种流量预测模型、训练方法、预测方法、装置、设备及介质。

背景技术

[0002] 随着网络的普及,网络流量的规模不断被刷新,高效且合理的进行网络资源分配变得尤为重要。一方面,网络资源分配的不合理可能导致部分网络资源由于耗尽而无法正常使用,甚至造成网络瘫痪;而另一部分网络资源却处于过剩的状态,这严重影响到用户的上网体验。另一方面,网络虽然在前期合理分配网络资源,但网络流量具有突发性,这时原本充足的网络资源可能会出现资源短缺的情况。为解决此问题,现有SDN(Software Defined Network,软件定义网络)控制器通过检测链路状况再调度的方式,可以在一定程度缓解此问题。但是,由于目前SDN控制器在进行调度时已经发生了拥塞,因此无法满足更高等级、更好服务质量的要求。为此,需要能够实现对于流量的提前预测,从而可以使得SDN控制器能够提前进行合理调度。
[0003] 门控循环神经网络,如LSTM(Long Short-Term Memory,长短期记忆网络)和GRU(Gated Recurrent Unit,门循环网络 ),是特殊的循环神经网络,他们能够学习序列中的长期依赖关系,能够根据历史的若干个真实值去预测下一个若干序列的数值。通过LSTM或GRU神经网络进行流量预测时,大部分时间节点能够较好的预测,总体上MAPE(Mean Absolute Percentage Error,平均绝对百分比误差)和RMSE(Root Mean Square Error,均方根误差)也很小,但是针对平稳性不强的流量的样本数据特征,流量峰值的预测存在严重的滞后性和准确度不高的问题。具体表现为:在实际出现流量峰值的t+1时刻,预测出的流量和t时刻的流量十分相似,导致流量峰值时,实际出现的流量与预测值相差较大,导致实际应用场景中无法采用预测值作为判断依据。这就大大降低了通过LSTM或GRU进行流量预测的应用价值。

发明内容

[0004] 本申请实施例的目的在于提供一种流量预测模型、训练方法、预测方法、装置、设备及介质,用以提高流量预测的准确性。
[0005] 本申请实施例提供了一种流量预测模型的训练方法,包括:获取按照采集时间顺序排列的流量数据集;通过滑动窗口操作对所述流量数据集进行截取,得到所述滑动窗口大小的流量的样本数据特征,以及所述流量的样本数据特征对应的样本标签;所述样本标签为所述流量数据集中所述样本数据特征对应的下一流量值;获取所述样本标签对应的样本属性特征;使用门控循环神经网络对所述流量的样本数据特征进行处理,并将所述门控循环神经网络输出的记忆状态与所述样本标签对应的样本属性特征一起输入至全连接网络进行回归预测;根据所述样本标签和预测结果,通过反向传播算法更新所述门控循环神经网络和所述全连接网络的参数权重,得到训练好的流量预测模型。
[0006] 通过上述实现过程训练得到的模型,在进行流量预测时,可以同时结合门控循环神经网络对于之前的流量的样本数据特征的处理结果和预测时的样本属性特征,从而可以在传统的通过门控循环神经网络进行预测的基础上,结合更为丰富的流量的样本属性特征,使得对于流量的预测不再单纯是根据历史时刻的流量演变规律来进行预测,而是会结合不同流量的不同属性特点进行预测,使得预测结果与不同待预测时刻的属性相关联,从而解决流量峰值的预测存在的滞后性和准确度不高的问题。本申请实施例的方案能够保证数据特征的多样性,有利于自动学习到实际应用中流量的潜在规律,可以提高预测的准确度,解决流量预测普遍存在的滞后性问题。
[0007] 所述获取所述样本标签对应的样本属性特征包括:将所述样本标签的属性转换为所述样本标签对应的样本属性特征。
[0008] 进一步地,所述样本标签的属性包括以下至少一种:
[0009] 所述样本标签的采集时间;
[0010] 所述样本标签在采集时或采集前所发生的事件。
[0011] 在实际应用过程中,往往存在在某些时间流量会特别多,或者在某些事件出现时或出现后流量会特别多的情况。这里的时间、事件等可以作为流量的属性,可以从中提取出样本属性特征,从而使得在进行预测时,可以结合所需预测的流量的时间,或者在所需预测的流量对应的时间点所会出现的事件或所需预测的时间点之前发生的事件,从而解决针对流量峰值预测不准确的问题。
[0012] 进一步地,所述将所述样本标签的属性转换为所述样本标签对应的样本属性特征包括:对所述样本标签的属性进行独热编码,得到所述样本标签对应的样本属性特征。
[0013] 进一步地,所述获取按照采集时间顺序排列的流量数据集包括:将按照时间顺序采集的原始网络流量聚合为预设时间间隔的网络流量,生成训练集;对所述训练集中的网络流量进行异常处理,得到所述流量数据集。
[0014] 进一步地,对所述训练集中的网络流量进行异常处理,包括:确定所述训练集中的异常网络流量;对所述异常网络流量进行消除异常处理。
[0015] 通过上述实现过程,可以实现对于流量数据集中异常数据的去除,从而使得用于进行训练的流量数据更为可靠,进而可以进一步提高预测的准确度。
[0016] 进一步地,确定所述训练集中的异常网络流量,包括:通过孤立森林算法确定所述训练集中的异常网络流量。
[0017] 上述实现过程中,通过孤立森林算法实现异常网络流量的确定,对内存和CPU占用均很低,有利于数据的预处理。
[0018] 本申请实施例还提供了一种流量预测方法,包括:将待预测时刻前的预设时长内的网络流量按照时间先后顺序形成待预测流量的样本数据特征;获取所述待预测流量对应的属性信息,并将所述属性信息转化为样本属性特征;将所述待预测流量的样本数据特征输入至流量预测模型的门控循环神经网络中;将所述门控循环神经网络输出的记忆状态与所述样本属性特征一起输入至所述流量预测模型的全连接网络进行回归预测,得到预测流量。
[0019] 通过上述实现过程,可以同时结合门控循环神经网络对于之前的流量的样本数据特征的处理结果和待预测时刻对应的样本属性特征进行预测,预测不再单纯依赖于待预测时刻前的预设时长内的网络流量,还依赖于待预测时刻对应的属性信息,使得预测结果与不同待预测时刻的属性相关联,从而解决流量峰值的预测存在的滞后性和准确度不高的问题。
[0020] 进一步地,所述属性信息包括以下至少一种:
[0021] 所述待预测流量的时间信息;
[0022] 所述待预测流量将要发生的事件;
[0023] 当前最新发生的事件。
[0024] 在实际应用过程中,往往在某些时间流量会特别多,或者在某些事件出现时或出现后流量会特别多。故而以待预测流量的时间信息、待预测流量将要发生的事件、当前最新发生的事件中的至少一种作为属性信息输入至模型中进行预测,可以使得在进行预测时,结合待预测流量的时间,或者待预测流量所会出现的事件或待预测时刻之前发生的事件,从而解决流量峰值预测不准确的问题。
[0025] 进一步地,将所述属性信息转换为样本属性特征,包括:对所述属性信息进行独热编码,得到所述样本属性特征。
[0026] 进一步地,将待预测时刻前的预设时长内的网络流量按照时间先后顺序形成流量的样本数据特征之后,将所述待预测流量的样本数据特征输入至所述流量预测模型的门控循环神经网络之前,所述方法还包括:确定所述流量的样本数据特征量中的异常网络流量;对所述异常网络流量进行消除异常处理,得到处理后的所述流量的样本数据特征。
[0027] 通过上述实现过程,可以实现对于流量的样本数据特征中异常数据的去除,从而使得用于进行预测的流量数据更为可靠,进而可以进一步提高预测的准确度。
[0028] 本申请实施例还提供了一种流量预测模型,通过上述任一种流量预测模型的训练方法训练得到。
[0029] 上述训练得到的流量预测模型,可以同时结合门控循环神经网络对于之前的流量的样本数据特征的处理结果和样本属性特征进行预测,预测不再单纯依赖于历史网络流量,还依赖于属性信息,使得预测结果与所需预测的流量的属性相关联,从而解决流量峰值的预测存在的滞后性和准确度不高的问题。
[0030] 本申请实施例还提供了一种流量预测模型的训练装置,包括:获取模块、特征处理模块和训练模块;所述获取模块,用于获取按照采集时间顺序排列的流量数据集,以及用于获取所述样本标签对应的样本属性特征;所述特征处理模块,用于通过滑动窗口操作对所述流量数据集进行截取,得到所述滑动窗口大小的流量的样本数据特征,以及所述流量的样本数据特征对应的样本标签;所述样本标签为所述流量数据集中,所述流量的样本数据特征对应的下一流量值;所述训练模块,用于使用门控循环神经网络对所述流量的样本数据特征进行处理,并将所述门控循环神经网络输出的记忆状态与所述样本标签对应的样本属性特征一起输入至全连接网络进行回归预测,根据所述样本标签和预测结果,通过反向传播算法更新所述门控循环神经网络和所述全连接网络的参数权重,得到训练好的流量预测模型。
[0031] 本申请实施例还提供了一种流量预测装置,包括:准备模块和预测模块;所述准备模块,用于将待预测时刻前的预设时长内的网络流量按照时间先后顺序形成待预测流量的样本数据特征;获取所述待预测流量对应的属性信息,并将所述属性信息转化为样本属性特征;所述预测模块,用于将所述待预测流量的样本数据特征输入至流量预测模型的门控循环神经网络中;将所述门控循环神经网络输出的记忆状态与所述样本属性特征一起输入至所述流量预测模型的全连接网络进行回归预测,得到预测流量。
[0032] 本申请实施例还提供了一种电子设备,包括:包括:处理器、存储器及通信总线;所述通信总线用于实现所述处理器和存储器之间的连接通信;所述处理器用于执行存储器中存储的一个或者多个程序,以实现上述任一种的流量预测模型的训练方法,或实现上述任一种的流量预测方法。
[0033] 本申请实施例中还提供了一种可读存储介质,所述可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述任一种的流量预测模型的训练方法,或实现上述任一种的流量预测方法。

附图说明

[0034] 为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0035] 图1为本申请实施例提供的一种流量预测模型示意图;
[0036] 图2为本申请实施例提供的一种流量预测模型的训练方法的流程示意图;
[0037] 图3为本申请实施例提供的一种流量预测方法的流程示意图;
[0038] 图4本申请实施例提供的一种流量预测模型的训练装置的结构示意图;
[0039] 图5为本申请实施例提供的一种流量预测装置的结构示意图;
[0040] 图6为本申请实施例提供的一种电子设备的结构示意图。

具体实施方式

[0041] 下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
[0042] 实施例一:
[0043] 目前,为实现对于流量的预测,往往采用门控循环神经网络(如LSTM、GRU等)来作为预测模型,通过采用训练好的门控循环神经网络来对待预测时刻前的历史网络流量进行处理,从而得到预测值。
[0044] 但是在实际应用场景中,网络流量的使用情况往往存在许多突发情况,网络流量的数据变化的平稳性不强,因此单纯采用门控循环神经网络进行预测的方式,对于流量峰值的预测存在严重的滞后性和准确度不高的问题。为此,在本申请实施例中提供了一种新的流量预测模型,可参见图1所示,其包括:门控循环神经网络和全连接网络。
[0045] 其中,门控循环神经网络输入的是网络流量形成的序列。序列通过门控循环神经网络的处理,会输出记忆状态。
[0046] 在本申请实施例中,门控循环神经网络的输出端会和全连接网络的输入端连接,门控循环神经网络输出的记忆状态会和所需预测的时刻的样本属性特征一起输入至全连接网络中进行回归预测,从而得到预测的流量。
[0047] 需要说明的是,本申请实施例中,门控循环神经网络可以采用LSTM网络、GRU网络等实现。
[0048] 需要注意的是,对于前述流量预测模型,需要先进行训练,基于训练好的流量预测模型,才能实现对于网络流量的准确预测。
[0049] 为此,在本申请实施例中还提供了一种流量预测模型的训练方法,请参见图2所示,该方法包括:
[0050] S201:获取按照采集时间顺序排列的流量数据集。
[0051] 需要理解的是,在实际应用场景中,由于网络流量的平稳性并不强,因此采样得到的原始网络流量中往往会存在有许多并不适于进行训练的异常值。
[0052] 为此在本申请实施例中,可以按照预设采样间隔对网络中的网络流量进行采样,进而将采样得到的原始网络流量聚合为预设时间间隔的网络流量,进而按照时间顺序排列得到流量数据集。这样通过流量聚合的方式,降低异常值对于训练样本的影响。
[0053] 示例性的,可以每间隔10秒采样一次原始网络流量,然后将每五分钟内的所有采集到的原始网络流量的平均值作为这五分钟聚合的网络流量,进而按照时间顺序排列得到流量数据集。
[0054] 但是应当理解的是,虽然通过流量聚合的方式,可以在一定程度上降低异常值对于训练样本的影响,但是对于一个聚合时段内存在较多异常的原始网络流量的情况,该聚合得到的网络流量仍旧会属于异常值。
[0055] 为此,在本申请实施例中,可以将聚合得到的预设时间间隔的网络流量作为训练集,对训练集中的网络流量进行异常处理,进而得到流量数据集。
[0056] 为了对训练集中的网络流量进行异常处理,在本申请实施例中可以先通过孤立森林算法、小波去噪、3sigma平滑等算法,确定出训练集中的异常网络流量,进而对异常网络流量进行异常处理,从而在保证流量数据集中数据连贯性的前提下,使得流量数据集中的数据可信度更高。
[0057] 示例性的,可以使用算法公式S(x,n) = 2–(E(h(x)))/c(n)得到训练集中各网络流量对应的异常分数,判断异常分数是否大于预设分数阈值,从而将异常分数大于预设分数阈值的网络流量确定为异常网络流量。
[0058] 上式中,E(h(x))为样本X在一批孤立树中的路径长度期望,c(n)为样本数为n时,样本路径长度的平均值。前述样本为训练集中的网络流量,n为训练集中的网络流量总数。
[0059] 在确定出异常网络流量后,在本申请实施例中,可以使用邻居间的均值替代确定的异常网络流量值,或采用拉格朗日插值法重新确定正常的网络流量值的方式,实现对异常网络流量进行消除异常处理。
[0060] 例如,在确定出t时刻的网络流量为异常网络流量时,可以将t-1时刻的网络流量与t+1时刻的网络流量的均值作为t时刻的网络流量。
[0061] 在本申请实施例中,为了便于模型进行处理,可以对流量数据集中的各网络流量进行归一化处理,将流量数据集中的各网络流量归一化到[0,1]之间的值。
[0062] 示例性的,可以通过使用公式x* = (x - xmin) /( xmax - xmin)得到流量数据集中的各网络流量归一化后的值。其中,xmax为流量数据集中网络流量的最大值,xmin为流量数据集中网络流量的最小值,x为当前计算的网络流量的值,x*为计算出的网络流量归一化后的值。
[0063] S202:通过滑动窗口操作对流量数据集进行截取,得到滑动窗口大小的流量的样本数据特征,以及流量的样本数据特征对应的样本标签。
[0064] 在本申请实施例中,样本标签为流量数据集中,流量的样本数据特征后的下一流量值。
[0065] 示例性的,假设流量数据集中数据为(A1、A2、A3、A4、A5、A6…),滑动窗口大小为3,那么A4即为流量的样本数据特征(A1、A2、A3)的样本标签,A5即为流量的样本数据特征(A2、A3、A4)的样本标签,A6即为流量的样本数据特征(A3、A4、A5)的样本标签。
[0066] S203:获取样本标签对应的样本属性特征。
[0067] 在本申请实施例中,可以将样本标签的属性转换为样本标签对应的样本属性特征。
[0068] 应理解,在实际应用中,往往会在某些时候网络流量会特别大或特别小,比如对于管控的是某个办公内部网络的场景,可能在每天早上9点左右网络流量会特别大,而晚上6点后网络流量会特别小。也即网络流量和时间之间会具有一定的关联性。此外,往往在某些特殊事件发生时,网络流量会特别大或特别小,比如对于某一球迷协会的网络而言,可能在出现球赛直播或转播等事件时,网络流量会特别大。也即网络流量和事件之间会具有一定的关联性。
[0069] 为此,在本申请实施例中,样本标签的属性可以包括样本标签的采集时间,和样本标签在采集时或采集前所发生的事件中的至少一种。具体需要采用哪一种或哪几种属性来转换得到样本属性特征,则可以根据实际场景的需要进行确定。
[0070] 在本申请实施例中的采集时间可以具体到某一分钟、某个小时、某天、甚至某个星期等,具体的粒度可以由工程师根据实际需要设定。
[0071] 在本申请实施例中的事件可以包括在采集该样本标签时或之前所发生的外部事件,如产品发布会、体育赛事等。
[0072] 应理解,样本标签的属性除了可以为样本标签的采集时间和样本标签在采集时或采集前所发生的事件外,还可以为其余与网络流量的大小相关的内容,在本申请实施例中并不做限定。
[0073] 为了使得流量预测模型能够识别样本标签的属性,在本申请实施例中,可以通过独热编码等方式将样本标签的属性转换为样本标签对应的样本属性特征。
[0074] 需要说明的是,独热编码仅是本申请实施例中可选的一种实现方式,除此之外,还可以通过其余的编码方式实现对于将样本标签的属性转换为样本标签对应的样本属性特征,只要转换后的数据能够被流量预测模型识别,且能保留样本标签的属性的特征即可,在本申请实施例并不对处理方式进行限制。
[0075] S204:使用流量预测模型的门控循环神经网络对流量的样本数据特征进行处理,并将门控循环神经网络输出的记忆状态与样本标签对应的样本属性特征一起输入至流量预测模型的全连接网络进行回归预测。
[0076] 在本申请实施例中,全连接网络用于进行回归运算。其可以输出针对输入至门控循环神经网络中的流量的样本数据特征的下一时刻的预测值。该预测值会同时受到流量的样本数据特征的发展规律和预测时刻的样本属性特征的影响。
[0077] S205:根据样本标签和预测结果,通过反向传播算法更新门控循环神经网络和全连接网络的参数权重,得到训练好的流量预测模型。
[0078] 应理解,流量预测模型输出的预测结果是预测出的该流量的样本数据特征的下一时刻的网络流量值。而该流量的样本数据特征的样本标签即为该流量的样本数据特征对应的下一时刻的实际网络流量值。因此基于样本标签和预测结果,通过损失函数计算等方式可以确定模型是否训练结束。在未训练结束时,通过反向传播算法更新门控循环神经网络和全连接网络的参数权重,不断进行迭代,从而得到训练好的流量预测模型。
[0079] 需要注意的是,在本申请实施例中,在训练前或训练过程中,可以通过诸如网格穷举搜索算法、贝叶斯优化算法、随机搜索算法等方式实现对于流量预测模型的超参数的确定以及优化。
[0080] 在本申请实施例中,流量预测模型的超参数包括滑动窗口的大小,学习率,门控循环神经网络和全连接网络的神经元个数等。
[0081] 若在训练过程中进行超参数的优化,则可以通过上述算法得到优化的最优的超参数组合后,利用该最优的超参数组合,使用反向传播算法更新门控循环神经网络和全连接网络的参数权重。
[0082] 在得到训练好的流量预测模型后,即可利用该流量预测模型进行流量预测。可以参见图3所示,图3为本申请实施例所提供的一种流量预测方法,包括:
[0083] S301:将待预测时刻前的预设时长内的网络流量按照时间先后顺序形成待预测流量的样本数据特征。
[0084] 在本申请实施例中,可以配置每次获取到最新的网络流量后,即自动与之前获取到的流量形成待预测流量的样本数据特征。
[0085] 类似的,为了提高预测准确性,防止因采集到的原始网络流量中的异常值造成预测失真,在本申请实施例中可以按照预设采集间隔对网络中的网络流量进行采集,进而将采集得到的原始网络流量聚合为预设时间间隔的网络流量,进而将最新的网络流量放于之前的网络流量之后,形成按照时间先后顺序排列的待预测流量的样本数据特征。这样通过流量聚合的方式,降低异常值对于待预测流量的样本数据特征的影响。
[0086] 但是应当理解的是,虽然通过流量聚合的方式,可以在一定程度上降低异常值对于待预测流量的样本数据特征的影响,但是对于一个聚合时段内存在较多异常的原始网络流量的情况,该聚合得到的网络流量仍旧会属于异常值。
[0087] 为此,在本申请实施例中,可以先检测待预测流量的样本数据特征中的异常网络流量(如通过孤立森林算法等方式实现对于异常网络流量的检查),进而对检测出的异常网络流量进行消除异常处理,得到处理后的待预测流量的样本数据特征。
[0088] 在本申请实施例中,可以使用邻居间的均值替代确定的异常网络流量值,或采用拉格朗日插值法重新确定正常的网络流量值的方式,实现对异常网络流量进行处理。
[0089] S302:获取待预测流量对应的属性信息,并将该属性信息转化为样本属性特征。
[0090] 在本申请实施例中,待预测流量对应的属性信息包括以下至少一种:
[0091] 待预测流量的时间信息(即待预测时刻的时间),待预测流量所对应的时刻将要发生的事件,当前最新发生的事件。
[0092] 需要理解的是,待预测流量对应的属性信息应当与训练流量预测模型时所选择的属性一致,以确保流量预测模型具有相应的处理能力。
[0093] 比如,训练流量预测模型时仅采用了样本标签的采集时间,那么待预测流量对应的属性信息应当仅包括待预测流量的时间信息。又比如,训练流量预测模型时仅采用了样本标签在采集时所发生的事件,那么待预测流量对应的属性信息应当仅包括待预测流量所对应的时刻将要发生的事件。又比如,训练流量预测模型时仅采用了样本标签在采集前所发生的事件,那么待预测流量对应的属性信息应当仅包括当前最新发生的事件。
[0094] 类似的,假如训练流量预测模型时采用了样本标签的采集时间和样本标签在采集时所发生的事件,那么待预测流量对应的属性信息应当包括待预测流量的时间信息和待预测流量所对应的时刻将要发生的事件,不能包括当前最新发生的事件。其余情况类似,在此不再累述。
[0095] S303:将待预测流量的样本数据特征输入至流量预测模型的门控循环神经网络中。
[0096] 门控循环神经网络会对待预测流量的样本数据特征进行前向运算,从而输出记忆状态。
[0097] 以LSTM网络为例,其前向算法为:
[0098] 更新遗忘门:
[0099] f(t)=σ(wf*[h(t-1),xt]+bf)更新输入门:
[0100] i(t)=σ(wi*[h(t-1),xt]+bi)
[0101] l(t)=tanh(wc*[h(t-1),xt]+bc)
[0102] 更新输出门:
[0103] o(t)=σ(wo*[h(t-1),xt]+bo)
[0104] 记忆状态:
[0105] 长记忆:c(t) = f(t)*c(t-1) +i(t)* l(t)
[0106] 短记忆:h(t) = o(t) *tanh(c(t))
[0107] 其中,各参数的含义如下:
[0108] xt为时间步t的输入特征,h(t-1)为时间步t-1的短记忆状态,c(t-1)为时间步t-1的长记忆状态,wf、bf为遗忘门的权重参数,wi、bi、wc、bc为输入门的权重参数,wo、bo为更新门的权重参数。
[0109] 以GRU网络为例,其前向算法为:
[0110] 更新门: r(t) =σ(Wr * [h(t-1), xt])
[0111] 重置门: z(t) =σ(Wz * [h(t-1), xt])
[0112] 记忆状态:
[0113] h¢(t)= tanh(W * [r(t) * h(t-1), xt])
[0114] h(t) = (1- z(t))*h(t-1) + z(t) * h¢(t)
[0115] 其中,各参数的含义如下:
[0116] xt为时间步t的输入特征,h(t-1)为时间步t-1的记忆状态,Wr为更新门的权重参数,Wz为重置门的权重参数。
[0117] S304:将门控循环神经网络输出的记忆状态与样本属性特征一起输入至流量预测模型的全连接网络进行回归预测,得到预测流量。
[0118] 通过本申请实施例所提供的方案,可以同时结合门控循环神经网络对于之前的流量的样本数据特征的处理结果和样本属性特征进行预测,预测不再单纯依赖于历史网络流量,还依赖于属性信息,使得预测结果与所需预测时的属性相关联,从而解决流量峰值的预测存在的滞后性和准确度不高的问题。
[0119] 同时,本申请实施例的方案中,能够保证数据特征的多样性,有利于自动学习到实际应用中流量的潜在规律,可以提高预测的准确度。
[0120] 实施例二:
[0121] 本实施例在实施例一的基础上,分别以LSTM网络和GRU网络为例,对本申请的方案进行进一步地示例说明。
[0122] 示例一,门控循环神经网络为LSTM网络,包括如下步骤:
[0123] 步骤301),将采样的原始网络流量聚合为预设间隔的网络流量,得到训练集。
[0124] 步骤302) ,通过“孤立森林”算法检测训练集中存在的异常网络流量。
[0125] 使用算法公式S(x,n) = 2–(E(h(x)))/c(n)得到训练集中各网络流量对应的异常分数,判断异常分数是否大于预设分数阈值,从而将异常分数大于预设分数阈值的网络流量确定为异常网络流量。
[0126] 在本申请实施例中,当预设分数阈值可以取0.5。
[0127] 在检测出异常网络流量之后,使用邻居间的均值替代检测的异常网络流量。例如检测出t时刻存在异常网络流量时,则将t-1时刻的网络流量值与t+1时刻的网络流量值的均值替代t时刻网络流量值。
[0128] 步骤303),将步骤302)处理之后的训练集,使用公式x* = (x - xmin) /( xmax - xmin)归一化到[0,1]之间,其中xmax 为流量数据集中网络流量的最大值,xmin为流量数据集中网络流量的最小值,x为当前计算的网络流量的值,x*为计算出的网络流量归一化后的值。
[0129] 步骤304)通过滑动窗口操作得到流量的样本数据特征和样本标签。
[0130] 将样本标签的采集时间进行独热编码,得到时间样本属性特征,将外部事件进行独热编码得到事件样本属性特征。
[0131] 步骤305),使用LSTM网络构建流量预测模型。
[0132] 整个流量预测模型分为输入层,LSTM网络,全连接网络构成。输入层输入为流量的样本数据特征,LSTM网络前向算法为:
[0133] 更新遗忘门:
[0134] f(t)=σ(wf*[h(t-1),xt]+bf)更新输入门:
[0135] i(t)=σ(wi*[h(t-1),xt]+bi)
[0136] l(t)=tanh(wc*[h(t-1),xt]+bc)
[0137] 更新输出门:
[0138] o(t)=σ(wo*[h(t-1),xt]+bo)
[0139] 记忆状态:
[0140] 长记忆:c(t) = f(t)*c(t-1) +i(t)* l(t)
[0141] 短记忆:h(t) = o(t) *tanh(c(t))
[0142] 步骤306),将步骤305)输出的记忆状态、时间样本属性特征以及事件样本属性特征进行拼接,作为全连接网络的输入。本实施例选择[c(t),h(t),时间样本属性特征,事件样本属性特征]作为全连接的输入。
[0143] 步骤307),利用网格穷举搜索算法,得到流量预测模型训练的超参数,包括滑动窗口的大小,学习率,LSTM网络和全连接网络的神经元个数等,利用最优的超参数组合,使用反向传播算法训练参数权重。
[0144] 示例性的,滑动窗口大小可以为10,学习率可以为0.001,LSTM网络的神经个数可以为32,全连接网络的层数可以为2。
[0145] 步骤308),将步骤307)得到流量预测模型的权重进行流量预测。
[0146] 示例二,门控循环神经网络为GRU网络,包括如下步骤:
[0147] 步骤401),将采样的原始网络流量聚合为预设间隔的网络流量,得到训练集。
[0148] 步骤402) ,通过“孤立森林”算法检测训练集中存在的异常网络流量。
[0149] 使用算法公式S(x,n) = 2–(E(h(x)))/c(n)得到训练集中各网络流量对应的异常分数,判断异常分数是否大于预设分数阈值,从而将异常分数大于预设分数阈值的网络流量确定为异常网络流量。
[0150] 在检测出异常网络流量之后,使用邻居间的均值替代检测的异常网络流量。例如检测出t时刻存在异常网络流量时,则将t-1时刻的网络流量值与t+1时刻的网络流量值的均值替代t时刻网络流量值。
[0151] 步骤403),将步骤402)处理之后的训练集,使用公式x* = (x - xmin) /( xmax - xmin)归一化到[0,1]之间,其中xmax 为流量数据集中网络流量的最大值,xmin为流量数据集中网络流量的最小值,x为当前计算的网络流量的值,x*为计算出的网络流量归一化后的值。
[0152] 步骤404)通过滑动窗口操作得到流量的样本数据特征和样本标签。
[0153] 将样本标签的采集时间进行独热编码,得到时间样本属性特征,将外部事件进行独热编码得到事件样本属性特征。
[0154] 步骤405),使用GRU网络构建流量预测模型。
[0155] 整个流量预测模型分为输入层,GRU网络,全连接网络构成。输入层输入为流量的样本数据特征,GRU网络前向算法为:
[0156] 更新门: r(t) =σ(Wr * [h(t-1), xt])
[0157] 重置门: z(t) =σ(Wz * [h(t-1), xt])
[0158] 记忆状态:
[0159] h¢(t) = tanh(W * [r(t) * h(t-1), xt])
[0160] h(t) = (1- z(t))*h(t-1) + z(t) * h¢(t)
[0161] 步骤406),将步骤405)输出的记忆状态、时间样本属性特征以及事件样本属性特(t)征进行拼接,作为全连接网络的输入。本实施例选择[h ,时间样本属性特征,事件样本属性特征]作为全连接的输入。
[0162] 步骤407),利用网格穷举搜索算法,得到模型训练的超参数,包括滑动窗口的大小,学习率, LSTM网络和全连接网络的神经元个数等,利用最优的超参数组合,使用反向传播算法训练参数权重。
[0163] 步骤408),将步骤407)得到流量预测模型的权重进行流量预测。
[0164] 本实施例采用的孤立森林算法进行异常筛选,对内存和CPU占用均很低,有利于数据的预处理。流量预测模型在全连接网络处带入时间特征和事件特征,能够保证数据特征的多样性,有利于算法自动学习数据的潜在规律,提高预测的准确度,解决流量预测普遍存在的滞后性问题。
[0165] 实施例三:
[0166] 基于同一发明构思,本申请实施例中还提供了一种流量预测模型的训练装置和流量预测装置。请参阅图4和图5所示,图4示出了与实施例一所示的流量预测模型的训练方法对应的流量预测模型的训练装置100,图5示出了与实施例一所示的流量预测方法对应的流量预测装置200。应理解,装置100和200具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。装置100和200包括至少一个能以软件或固件的形式存储于存储器中或固化在装置100和200的操作系统中的软件功能模块。具体地:
[0167] 参见图4所示,流量预测模型的训练装置100,包括:获取模块101、特征处理模块102和训练模块103。其中:
[0168] 所述获取模块101,用于获取按照采集时间顺序排列的流量数据集,以及用于获取所述样本标签对应的样本属性特征。
[0169] 所述特征处理模块102,用于通过滑动窗口操作对所述流量数据集进行截取,得到所述滑动窗口大小的流量的样本数据特征,以及所述流量的样本数据特征对应的样本标签;所述样本标签为所述流量数据集中所述样本数据特征对应的下一流量值。
[0170] 所述训练模块103,用于使用门控循环神经网络对所述流量的样本数据特征进行处理,并将所述门控循环神经网络输出的记忆状态与所述样本标签对应的样本属性特征一起输入至全连接网络进行回归预测;根据所述样本标签和预测结果,通过反向传播算法更新所述门控循环神经网络和所述全连接网络的参数权重,得到训练好的流量预测模型。
[0171] 在本申请实施例中,所述获取模块101具体用于将所述样本标签的属性转换为所述样本标签对应的样本属性特征。
[0172] 在本申请实施例中,所述样本标签的属性包括以下至少一种:
[0173] 所述样本标签的采集时间;
[0174] 所述样本标签在采集时或采集前所发生的事件。
[0175] 在本申请实施例中,所述获取模块101具体用于对所述样本标签的属性进行独热编码,得到所述样本标签对应的样本属性特征。
[0176] 在本申请实施例中,所述获取模块101具体用于将按照时间顺序采集的原始网络流量聚合为预设时间间隔的网络流量,生成训练集;对所述训练集中的网络流量进行异常处理,得到所述流量数据集。
[0177] 在本申请实施例中,所述获取模块101具体用于确定所述训练集中的异常网络流量;对所述异常网络流量进行消除异常处理。
[0178] 在本申请实施例中,所述获取模块101具体用于通过孤立森林算法确定所述训练集中的异常网络流量。
[0179] 参见图5所示,流量预测装置200,包括:准备模块201和预测模块202。其中:
[0180] 所述准备模块201,用于将待预测时刻前的预设时长内的网络流量按照时间先后顺序形成待预测流量的样本数据特征;获取所述待预测流量对应的属性信息,并将所述属性信息转化为样本属性特征。
[0181] 所述预测模块202,用于将所述待预测流量的样本数据特征输入至流量预测模型的门控循环神经网络中;将所述门控循环神经网络输出的记忆状态与所述样本属性特征一起输入至流量预测模型的全连接网络进行回归预测,得到预测流量。
[0182] 在本申请实施例中,所述属性信息包括以下至少一种:
[0183] 所述待预测流量的时间信息;
[0184] 所述待预测流量将要发生的事件;
[0185] 当前最新发生的事件。
[0186] 在本申请实施例中,所述准备模块201具体用于对所述属性信息进行独热编码,得到所述样本属性特征。
[0187] 在本申请实施例中,所述准备模块201还用于,将待预测时刻前的预设时长内的网络流量按照时间先后顺序形成待预测流量的样本数据特征之后,将所述待预测流量的样本数据特征输入至所述流量预测模型的门控循环神经网络之前,确定所述待预测流量的样本数据特征中的异常网络流量;对所述异常网络流量进行消除异常处理,得到处理后的所述待预测流量的样本数据特征。
[0188] 需要理解的是,出于描述简洁的考量,部分实施例一中描述过的内容在本实施例中不再赘述。
[0189] 实施例四:
[0190] 本实施例提供了一种电子设备,可以参见图6所示,其包括处理器601、存储器602及通信总线603。其中:
[0191] 通信总线603用于实现处理器601和存储器602之间的连接通信。
[0192] 处理器601用于执行存储器602中存储的一个或多个程序,以实现上述实施例一/二中的流量预测模型的训练方法和/或流量预测方法。
[0193] 可以理解,图6所示的结构仅为示意,电子设备还可包括比图6中所示更多或者更少的组件,或者具有与图6所示不同的配置,在本申请实施例中不做限定。
[0194] 可以理解,图6所示的电子设备可以为网络中的任意设备,示例性的,可以为SDN控制器。
[0195] 本实施例还提供了一种可读存储介质,如软盘、光盘、硬盘、闪存、U盘、SD(Secure Digital Memory Card,安全数码卡)卡、MMC(Multimedia Card,多媒体卡)卡等,在该可读存储介质中存储有实现上述各个步骤的一个或者多个程序,这一个或者多个程序可被一个或者多个处理器执行,以实现上述实施例一/二中的流量预测模型的训练方法和/或流量预测方法。在此不再赘述。
[0196] 在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0197] 另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0198] 再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
[0199] 在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
[0200] 在本文中,多个是指两个或两个以上。
[0201] 以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。