共计 4667 个字符,预计需要花费 12 分钟才能阅读完成。
摘要: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…
点击关注,第一工夫理解华为云陈腐技术~