摘 要
针对移动网小区KPI数据的特点,提出一种基于变分自编码器(Variational auto-encoder, VAE)的异常小区检测方法。该方法利用异常小区KPI数据在通过变分自编码器编码与解码过程中所产生的较大波动来实现异常检测。实验结果表明,该方法在样本不平衡的情况下,通过合理设置重构误差阈值,能准确地检测出异常小区,实现异常小区的机器判读。
关键词
异常小区检测 变分自编码器 重构误差 样本不平衡
引言
在智能运维领域中,由于缺少异常样本,有监督方法的使用场景受限。因此,如何利用无监督方法对海量KPI进行异常检测是我们在智能运维领域探索的方向之一。智能运维就是采用机器学习、数据挖掘等方法,来解决异常小区检测、故障根因分析、容量预测等运维领域中的关键问题。其中异常小区检测是在运维领域中非常重要的一个环节。
一般说来,在机器学习中不平衡的训练样本会导致训练模型侧重样本数目较多的类别,而“轻视”样本数目较少类别。在异常小区检测场景中,普遍存在的现象是正常样本数量远远大于异常样本数量,因此,当把不平衡的正常样本和异常样本都输入机器学习算法一起训练时,采用无监督方法就能把异常值检测出来。
本文提出了一种基于变分自编码器的异常小区检测方法,其基本原理是利用异常小区的KPI数据在通过变分自编码器编码与解码过程中所产生的较大波动来实现异常检测。实验结果表明,该方法在样本不平衡的情况下,通过合理设置重构误差阈值,能够准确地检测出异常小区,其成果已应用于实际网优生产。
基于变分自编码器的异常小区检测
2.1异常小区
要进行异常小区检测,首先要给出异常小区的定义:凡容量、覆盖、干扰等相关KPI指标取值超过期望值一定范围的小区就定义为异常小区。
例如,下图1中,(a)容量类异常小区:最大连接用户数超过100个,下行业务流量超过10GB,下行PRB利用率大于90%;(b)覆盖类异常小区:上行平均DTX占比超过20%,下行平均DTX占比超过30%;(c)干扰类异常小区:PUCCH干扰超过-105dBm,PUSCH干扰超过-105dBm。
.jpg)
(a)容量类异常小区 (b)覆盖类异常小区 (c)干扰类异常小区
图1 异常小区类型
本文只对异常小区进行检测,不对造成异常的原因进行分析。
2.2变分自编码器
变分自编码器是一种用于特征提取的神经网络模型,其架构上包含两个部分:Encoder(编码器)和 Decoder(解码器)。与其他神经网络模型不同的是,变分自编码器的输出是对输入的还原。
变分自编码器的处理过程如图2所示:
①首先通过Encoder得到x的隐变量分布参数z_mean和z_log_var;
②然后从N(0,1)采样得到取值很小的随机数ε;
③接着把随机数ε联合隐变量分布参数z_mean和z_log_var得到隐变量z,
④最后利用Decoder将z重构成原始输入。
.jpg)
图2 变分自编码器处理过程示意图
VAE 的参数通过两个损失函数来进行训练:一个是重构损失(reconstruction loss),它迫使解码后的样本匹配初始输入;另一个是正则化损失(regularization loss),它有助于学习具有良好结构的潜在空间,并可以降低在训练数据上的过拟合。
2.3基于变分自编码器的异常小区检测
基于变分自编码器的异常小区检测流程分为三个主要阶段:数据采集阶段、模型训练阶段以及异常检测阶段。
2.3.1数据采集阶段
从OMC采集4G移动网小区的25个KPI数据,涉及容量、覆盖、干扰等类型,具体包括:RRC连接用户数,RRC最大连接用户数,RRC建立尝试次数,下行平均DTX占比,下行每TTI调度用户数,上行每TTI调度用户数,下行每TTI激活用户数,上行每TTI激活用户数,下行业务流量,下行信令流量,上行业务流量,上行信令流量,下行用户速率,上行用户速率,随机接入成功率,随机接入尝试次数,UE功率受限比例,上行平均DTX占比,上行PRB利用率,下行PRB利用率,CQI小于等于6占比,平均CQI,PUSCH干扰,PUCCH干扰等。
2.3.2模型训练阶段
首先,对小区KPI数据进行归一化处理,以消除不同标度对数据所带来的影响。
X_std = (X-X.min)/(X.max-X.min)
X_scaled = X_std/(max-min) + min
然后,设定变分自编码器模型网络结构,并进行模型参数训练。
2.3.3异常检测阶段
变分自编码器在对通过编码器后的数据进行解码还原时,会产生一定的误差。如果原始输入数据中存在异常,则生成的误差相比于常规误差有较大波动。因此,异常小区检测算法的具体步骤如下:
首先,对小区KPI数据进行归一化处理,用以消除不同标度对数据所带来的影响。
然后,利用变分自编码器模型参数对归一化后的数据进行平方误差的计算。如果输入样本为:X=(X1 ,X2 , X3 ,⋯,XN),经过VAE重建的结果为:XR =(X1R , X2R , X3R ,⋯, XNR ),则重构误差MSE为:
。
如果重构误差MSE值超过了预先设定的阈值,则判定小区KPI数据中存在异常。
2.4准确性验证
采集武汉联通4G网络2019年4月18日~4月24日期间每隔1小时的25个KPI性能数据,共得到43150个小区的24小时*25个KPI分布向量。下面根据上述小区的KPI分布向量来分析基于VAE的异常小区检测方法的准确性。
随机挑选某异常小区25个KPI数据在一天24小时内的取值分布,发现具有高维度(25*24=600维)、局部异常的特点,如下图3所示:
.jpg)
图3 异常小区KPI分布特征图
因此,根据小区KPI数据的特征和数量,变分自编码器模型的编码器采用卷积神经网络,解码器采用若干卷积层,并采用重构损失和正则化损失函数来进行训练模型。然后,把43150个小区的24*25维KPI向量进行归一化,并按照8:2进行拆分得到训练集和测试集,其中,训练集用于训练变分自编码器模型,测试集用于评估模型检测准确性。
在样本不平衡的情况下,通过设定不同的重构误差门限,分别统计AE和VAE所检测出的异常小区数,验证检测准确率,如表1和表2所示。显然,本文所用VAE方法检测效果明显优于基于AE的异常小区检测效果。
表1 基于AE的异常小区检测准确率统计
.jpg)
表2 基于VAE的异常小区检测准确率统计
.jpg)
根据上面两张表数据绘制AE和VAE的检测准确率对比效果图,如下图4:
.jpg)
图4 检测准确性
从上图可知:AE重构误差阈值越高,检测准确率呈上升趋势,但有少许波动,并且准确率低于90%。而VAE重构误差阈值越高,检测准确率呈明显上升趋势,特别是在VAE重构门限达到9.00E-17后,VAE检测准确率持续高于90%,且检测出的异常小区数最高能达到171个。两者差异原因在于:AE模型本身没有什么多少正则化手段,容易过拟合,当训练数据存在较多异常点的时候,可能模型的效果就不会特别好,也就是说当异常值占比较大的话,AE可能会过拟合(学习到异常模式)。而VAE学习到的是隐变量的分布(允许隐变量存在一定的噪声和随机性),因此可以具有类似正则化防止过拟合的作用。
结束语
本文介绍了VAE模型以及基于VAE的异常小区检测方法,在样本不平衡的情况下,通过合理设置重构误差阈值,能准确地检测出异常小区。但该方法面临一个问题:需要设置重构误差阈值。因为检测异常是通过对比重构后的结果与原始输入的差距,而这个差距多少就算是异常需要人为定义,然而对于大量的不同类型KPI,很难去统一设置阈值,这是采用VAE模型比较大的一个缺陷。
参考文献
1、孙志军,薛磊,许阳明. 深度学习研究综述[J]. 计算机应用研究,2012,29(8):2805-2810
2、张开旭,周昌乐. 基于自动编码器的中文词汇特征无监督学习. 中文信息学报,2013,27(5):1-7
作者:滕祖伟 周杰华 肖波 张波
