欢
迎
光
临
~
通信行业覆盖多领域,从海量指标分析发现KPI的数据模式也多种多样(接通率、错误码、数据流量、呼叫量等)
针对不同的KPI数据模型,需要采用不同的异常检测算法,可以提高检测精度。通信领域的KPI都是实时运维系统实时产生的,因此都是时序数据。在异常检测领域服务中,内嵌Holt-Winters、Exponential-Smoothing、Xgboost、GMM、LSTM等多种时序异常检测智能算法,根据输入KPI的特征择优选择。这些算法主要分为三类:基于时间序列预测的异常检测、基于离群点检测的异常检测以及基于神经网络的异常检测。
基于时间序列预测异常检测 1 ARIMAARIMA模型全称为自回归移动平均模型,是一种常见的用来对稳定的时序序列做预测的模型。对于非平稳时间序列经过D阶差分后转化平稳时间序列,将因变量和它的P次滞后值以及随机误差项的现值和Q次滞后值进行回归所建立的模型,算法流程如图1所示。
图1.ARIMA
2 指数平滑除了利用多个影响因素建立回归模型做预测之外,当数据在时间轴上可能呈现一定的稳态或者规律,利用过去时间区间的值来预测未来的值也是时序预测方法之一,即指数平滑法,主要包含以下几种:
2.1 SES(一次指数平滑)模型
从式子(2)中可以看出来,SES中所有先前的观测值都对当前的平滑值产生了影响。
中α表示平滑因子,值越大表示忽略时间距离较远的数值。时间序列比较平稳时,可以选择较小的α值,不同α的选择结果见图(2)。
2.2 Holt-Winters(三次指数平滑)模型
SES针对没有趋势和季节性的序列,二次指数平滑针对有趋势但是没有季节性的序列,”Holt-Winters”是三次指数平滑法,包含了周期和季节性分量,分解示意图如图(3)。
3 STL 分解STL是基于损失的季节性趋势分解过程的简称,这个方法可以将时序信号分解成季节性(seasonal)、趋势(trend)、残余(residue)三个部分,
分解结果如下图(4)所示。
图(4) STL分解
4 Regression Methond对于传统的时序预测模型很难加入其它相关特征,对于每个序列都需要提前进行统计分析来确定拟合参数。因此可以尝试机器学习模型来解决上述问题,目前树模型已经是大家普遍的选择。
领域服务中采用的是XGBoost回归模型进行时序数据预测。XGBoost是GBDT的高效实现,不仅可以是CART还可以是线性分类器。XGBoost用的是loss函数的二阶泰勒展开,同时用到了一阶和二阶导数。XGBoost在代价函数里加入了正则项控制模型复杂度,防止过拟合。XGBoost借鉴随机深林的列抽样,降低过拟合,减少计算量。
特征工程也是XGBoost做时序预测的重要组成部分,可以引入周期,季节特性构造训练数据特征,如:
Data features(数据特征构造):包括过去一个周期内(如,过去7天)的时序数据
Binary features (0、1的二进制特征构造):用于标识星期几、是否是节假日等
通过上述的多种基于时序预测方法得到预测值,如何检测数据中的 异常点可以通过观测值与预测值之间的误差来进行确定。常用的方法 有K-sigma和Cusum统计法。
5.1 K-sigma
预测误差序列超出范围的点认为是异常点, 如3σ所图(5)示:
图5、K-sigma
5.2 Cusum统计量
如果时序数据中有变化发生,那么随机序列的概率分布也会发生变化。而它之所以有甄别微小变化的能力是因为其设计思想是对样本数据信息加以累计,将过程的小偏移累积起来,达到放大的效果,从而提高检测过程中对小偏移的灵敏度。
图6、Cusum 统计量
基于离群点检测 1 iForestIForest算法的全称是Isolation forest(孤立森林), iForest(孤立森林)的原理非常容易理解,iForest像随机森林一样也是由大量的树构成,简称iTree。iTree的构建过程是每次随机选一个特征,然后随机在特征的最大值和最小值之间选择一个分界值,然后对数据进行二叉划分,不断的递归下去,直到不能够进行划分为止,就构造了一颗二叉树-iTree。而进行离群点判断时,我们会发现离群点在iTree树的深度更浅。正常点需要多次划分才能定位,而异常点比较少的划分就可以定位。
通过判断待测样本中每个点在iForest中的异常得分s(x,n)发现异常值。s接近1,则异常可能性高,score接近0.5则正常可能性更高。
基于神经网络的异常 1 基于LSTM时间序列预测LSTM(Long-Short-Term-Memory)是RNN的一种特殊网络,可以学习长期的依赖数据信息,神经网络模型擅长处理多变量多输入的问题,通过LSTM对多时序KPI进行建模,对待检测数据给出检测结果。
图7. LSTM网络
LSTM依靠三个门的结构让信息有选择性的影响循环神经网络中每个时刻的状态:sigmoid=>(0,1)
输入门:
根据当前输入,上一时刻状态和上一时刻输出决定哪些信息写入新的状态
遗忘门:让循环网络“忘记”之前没有用的信息:
根据当前输入,上一时刻状态和上一时刻输出共同决定需要被遗忘的信息
输出门:
根据最新状态,上一时刻输出和当前输入来决定该时刻的输出
当阀门打开的时候,前面模型的训练结果就会关联到当前的模型计算,而当阀门关闭的时候之前的计算结果就不再影响当前的计算。
LSTM可以接受多个KPI(ID),多个特征(feature)作为输入,样例如下:
图8.LSTM输入样例
时序异常检测的方法有很多,根据不同的算法特点,可以总结如下:
分类 |
算法 |
优点 |
缺点 |
基于时序预测算法 |
ARIMA |
能精细刻画平稳序列的波动,对于短周期的预测较准确 |
具有长记忆性,不能快速响应序列的变化趋势 |
指数平滑 |
简单、稳健 |
不能刻画长期趋势 |
|
STL |
简单,稳健 |
||
XGboost |
1、支持多特征输入 2、模型鲁棒,高效 |
不适合非周期数据 |
|
基于离群点算法 |
IForest |
1、适应异常样本少量且明显偏离正常值 2、 支持多特征联合检测 3、性能较好 |
不适合特别高维数据,会导致性能降低 |
基于神经网络方法 |
LSTM |
1、 支持多变量多特征输入 2、 支持无明显周期和非平稳数据 |
参数较多 |
SoftCOM AI异常检测领域服务基于以上算法,旨在通过人工智能手段从通信行业多领域的KPI指标(如VOLTE 核心网,EPC核心网,无线接入网等)中快速检测到异常,做到早发现,早预警,早干预,致力于提升运维效率,降低维护成本。
目前SoftCOM AI异常检测领域服务已上线到SoftCOM AI官网
欢迎大家点击左下角
免费注册试用!!
人工智能园地,力求打造运营商领域第一的人工智能交流平台,促进华为SoftCOM AI理念在业界(尤其通信行业)形成影响力!