摘要:2020GDE寰球开发者大赛-KPI异样检测告一段落,来自深圳福田莲花街道的“原子弹从入门到精通”有幸获得了总榜TOP1的问题,在这里跟大家分享深圳福田莲花街道在本次较量的解决方案。
GDE寰球开发者大赛-KPI异样检测告一段落,来自深圳福田莲花街道的“原子弹从入门到精通“有幸获得了总榜TOP1的问题,上面给出他的解决方案。
背景介绍
核心网在挪动运营商网络中占据无足轻重的位置,其异样往往会导致呼叫失败、网络提早等现网故障,对全网的服务质量带来重大的负面影响,多则影响十数万用户,并引发大面积投诉[1]。因而须要疾速及时地发现核心网的异样危险,在影响扩充之前及时打消故障。
KPI是一类可能反映网络性能与设施运行状态的指标,本赛题提供某运营商核心网的KPI实在数据,数据模式为KPI工夫序列,采样距离为1小时,选手须要应用[2019-08-01,2019-09-23)的数据进行建模,应用训练好的模型对将来7天的数据进行预测,辨认将来一周KPI序列中的异样点。
评估指标:
本赛题采纳F1作为评估指标,具体计算公式如下:
P = TP/(TP+FP)
R = TP/(TP+FN)
F1 = 2PR/(P+R)
数据摸索
数据**有20个不同的KPI,不同的KPI物理意义不同,代表了不同的核心网指标,因为赛题须要对将来7天的数据进行预测,因而对于建模样本也进行周级别的散布查看。从Fig1中能够显著看到训练集中前三周的异样率显著低于后续几周。进一步剖析能够发现尽管赛题提供了[2019-08-01,2019-09-23)的全副数据,但2019-08-15之前所有20个KPI均毫无异样,第一个异样点是从2019-08-15 02:00:00开始呈现的(Fig2),因而揣测8.15前的数据分布不同于后续样本,或8.15之前存在标注异样的问题。试验中剔除8.15之前的样本建模成果也优于保留该时间段样本,进一步验证了该揣测。
Fig1. KPI周级别异样统计
Fig2. 异样与否的最早数据工夫
工夫序列图对于疾速了解数据及业务有着重要的作用,对20个工夫序列进行察看后,我将异样粗分为4类,如Fig3所示。
Fig3. 异样分类(工夫序列中红点为异样,蓝点为失常)
1.边界型异样
如Fig3中a局部(红框)所示,边界型异样中异样样本的取值范畴与正常值取值齐全不同,即存在明确的决策边界能够齐全拆散异样点。
2.趋势破坏型异样
如Fig3中b局部(绿框)所示,失常样本点的走势往往沿着一个趋势,而趋势破坏型的异样点会偏离这个趋势,但取值范畴可能依然在失常样本的取值范畴内,这类异样与相邻点的差别较大,与雷同时刻失常点的取值差别也较大。
3.0值型异样
如Fig3中c局部(橙框)所示,此类异样取值间接为0,依据我对业务的了解,失常的KPI不应呈现0值,依据剖析,20个KPI中有19个失常取值均不应为0,仅1个KPI失常取值为0,非0则为异样。
4.其余型异样
如Fig3中d局部(紫框)所示,此类异样往往既没有毁坏趋势,取值也在失常的范畴内,但可能会偏离雷同时刻的失常取值。
解题思路
赛题**有20个不同的KPI,KPI物理意义不同且异样的品种也多种多样,若将所有KPI作为一个整体建设一个对立的二分类模型,模型成果差强人意,难以进入前排,但若对每个KPI独自建模,则须要建设并保护调优至多20个不同的模型,保护老本过高,因而我的思路是将KPI或异样进行分类建模。
3.1 边界发现
决策树会依据指标的散布将样本划分在不同的特色空间范畴内(如Fig4 所示),非常适合用于边界的发现与确定。因而针对边界型异样,即好坏样本取值齐全不同的异样,我采纳决策树进行边界的主动发现与确定,具体如下:
遍历20个KPI,若仅应用工夫序列取值建设的单变量浅层简略决策树在训练集中的F1score=1,便认为该KPI为边界型异样KPI,并应用该决策树的预测后果作为决策边界,对雷同KPI的将来样本进行预测。
Fig4. 基于决策树的边界发现
对KPI进行遍历后可知,存在7个KPI所有异样均为边界型异样,即7个KPI在训练集中的所有异样取值范畴均不同于失常样本。最终后果也表明,该计划不仅在训练集中能100%辨认边界型KPI的异样,在测试集中也能100%辨认相干异样。
3.2 非边界型异样摸索
非边界型异样往往KPI走势存在肯定的周期,若将工夫周期剥离进去进行剖析,则能够从二维的角度对工夫序列进行察看。
Fig5. 工夫序列的二维展现
以kpi_id= 9415a… 为例,若将日期信息剥离,x轴仅为一天中的第几小时,y轴依然为工夫序列取值,则会失去如Fig5的展现。此时整个工夫序列被出现在一个二维空间中,且异样值(红点)多与正常值(蓝点)偏离较远,一个奢侈的思路便是采纳无监督办法辨认图中的异样。事实上,在理论的生产环境中,多达5000+原始KPI,300+衍生KPI,难以获得有异样标注的工夫序列,因而在生产环境中往往应用统计办法或无监督算法进行异样检测[1,2]。但在以后有标签的赛题下,经屡次尝试,无监督算法如iForest,DBSCAN以及工夫序列合成办法如Prophet均无奈胜过有监督机器学习算法。因而,对于非边界型异样,最终决定应用有监督机器学习算法进行建模。
3.3 KPI类型划分
在3.1中基于简略决策树发现了7个边界型异样KPI,但残余的13个KPI物理意义各不相同,须要进行分组建模。分组最根本的思维便是类似的KPI应该分在雷同的组中。Pearson相关系数是咱们最相熟的相关性指标,其物理意义是示意两个变量同向或反向变动的水平,非常适合用于工夫序列的相似性剖析。通过对残余13个KPI的相似性剖析咱们能够发现,以下两组id间的两两相关系数在0.9或以上。cluster1=[9415a…, 600a5…, ed63c…]
cluster2=[b3842…, bb6bb…, 3fe4d…]
Fig6. cluster1工夫序列比照示例
以cluster1为例(Fig6.),能够看到相似性分组中不同KPI的工夫序列不仅走势靠近,而且往往当分组内一个KPI产生异样时,其余KPI也会同步异样,体现出十分高的联动性。因而对于相似性分组的模型建设十分要害,往往异样的召回和误报均为3倍,也就是对一个则3倍上分,错一个则3倍掉分,赛程中段疾速上分的外围点便是这部分模型的建设。 对于残余的7个KPI,最终我根据是否蕴含周期,将其划分为3小类进行分组建模:半周期型:cluster3_1 = [4f493…]无周期型:cluster3_2 = [29374…,8f522…]强周期型:cluster3_3 = [681cb…, 0a9f5…,355ed…,3e1f1…]其中,半周期型KPI仅在局部时间段体现出周期趋势,其余时间段取值简直完全相同。无周期型KPI取值与工夫无显著关联,强周期型KPI取值随工夫不同产生周期性稳定。
特色结构
依据前文剖析以及我对工夫序列问题的了解,本赛题中结构了以下5种类型的变量。1.根底变量:一天中的第几小时,星期几,kpi_id的各种编码如label encoder,target encoder等等;2.差分变量:一阶差分,二阶差分,三阶差分;3.平移变量:上n个工夫点该kpi_id的value或差分的取值及其简略衍生,如24小时前的value取值等;4.滑窗变量:过来n段时间该kpi_id的各类统计变量及其简略衍生,如过来24小时value的均值等;5.强相干窗口统计:如过来7天内该工夫点高低两小时内介于该取值0.95-1.05范畴内样本的总个数等等;
模型计划
鉴于本赛题难以建设一个可能利用于全副KPI的对立模型,而解题过程中有较多模型须要建设与调优,为提高效率,我在晚期进行不同模型的若干次尝试后便决定应用训练速度较快且成果较好的LightGBM为各个分组建设二分类模型。
在理论的建模中我发现仅用[2019-08-15,2019-09-08]的数据建模成果优于全副数据或应用更靠近测试集样本的后几周数据,联合Fig1中异样率在后几周大幅继续升高的景象,我判断[2019-09-09,2019-09-22]的异样散布可能不同或存在局部标注问题。在进一步摸索后发现嫁接学习的引入可能充沛的应用到全副异样数据并获得更好的成果。
嫁接学习是迁徙学习的一种,用来形容将一个树模型a的输入作为另一个树模型b的输出的办法(a,b往往数据分布不同或齐全属于不同产品,与同散布数据的惯例交融有着本质区别),此种办法与树木滋生中的嫁接相似,故而得名[3]。在IJCAI2018广告算法大赛中,前六天和最初一天数据分布不同,于是大部分人用同散布的第七天上半天的数据预测下半天,而动物大佬用前六天的数据训练了一个模型,预测第七天失去的分数作为第七天模型的特色,再用第七天上半天的数据预测下半天,最初轻松失去solo冠军,预先动物说这是他玩的最容易的较量,毕竟人家用半天数据,动物用的是六天半的数据[3,4,5]。其余数据分布不同的场景下TOP计划中亦有嫁接学习的身影,如蚂蚁金服ATEC领取危险辨认TOP1计划[6],CCF BDCI 2018 个性化套餐匹配TOP1计划[7]等[3] 。
在若干次尝试后,我最终确定了以存在异样日期样本为1层模型样本, [2019-08-15,2019-09-08]样本联合1层模型分数作为2层模型输出的计划,模型框架如Fig7.所示,该框架的引入在本赛题中提分显著,是上分的关键点之一。
Fig7. 模型框架
联合前文的内容,最终我的建模计划如Fig8所示,先进行KPI边界的主动发现,解决7个边界型KPI的异样,对于残余的13个KPI,先依据相似性将其拆解为类似群组(6个KPI)和不类似群组(7个KPI),类似群组由组内相关系数较高的cluster1和cluster2形成,不类似群组依照是否蕴含周期划分为半周期群组cluster3_1,无周期群组cluster3_2和强周期群组cluster3_3,再对不同的群组别离建模,最初汇总生成最终后果。最终该计划获得了线上最高分及问难最高分的问题。
Fig8. 建模计划
鸣谢
非常感谢希旭哥,苕芸博士,素颜姐,小爱姐等人在较量过程中的帮忙与领导,希旭哥还是判若两人的激情,总能在第一工夫为大家答疑解惑。
感激庐山大佬赛后的精彩分享[2],让人受益匪浅。以前我没看过华为云开发者沙龙的分享,这次看完后感觉可针不戳,当前每期都不能错过。 最初祝华为及NAIE方兴未艾,再创辉煌!
Reference
[1] 网络AI-KPI异样检测,利器大揭秘https://bbs.huaweicloud.com/v...
[2] DevRun开发者沙龙—火遍网络的KPI异样检测到底什么https://vhall.huawei.com/fe/w...
[3] 嫁接学习简述https://zhuanlan.zhihu.com/p/...
[4] 结构化数据的迁徙学习:嫁接学https://zhuanlan.zhihu.com/p/...
[5] IJCAI-2018 TOP1分享https://github.com/plantsgo/i...
[6] ATEC领取危险大赛Top1解决方案https://zhuanlan.zhihu.com/p/...
[7] CCF BDCI 2018 个性化套餐匹配TOP1计划https://github.com/PPshrimpGo...
点击关注,第一工夫理解华为云陈腐技术~