【AICon】探索八个行业创新案例,教你在教育、金融、医疗、法律等领域实践大模型技术! >>> 了解详情
写点什么

百度网络监控实战:多维度分析方法

  • 2019-08-02
  • 本文字数:2680 字

    阅读完需:约 9 分钟

百度网络监控实战:多维度分析方法

干货概览


在前一篇文章《百度网络监控实战 | 多维度分析应用场景》中,我们简单介绍了一种多维度分析方法,用于预选疑似故障区域,可以大幅减少网络监测的误报。在本文中,我们会结合网络监测数据的特点,详细介绍这种多维度分析方法的实现细节

逐层下钻分析

我们要寻找的维度组合具有贡献度高、一致性好两个特点,在寻找这些目标维度组合的时候,最直接的方式是逐个维度组合进行检测,但是网络监控里有几百万个维度组合,逐个检查会消耗很多时间。


我们可以从全局数据出发,选择最能区分成功、失败探测样本的维度进行下钻。在下钻的过程中,我们可以选择把数据按照所选维度的各个取值拆成多份(如:源机房=A、源机房=B、源机房=C……),也可以选择把数据按照是否包含所选维度取值拆成两份(如:源机房=A、源机房!=A)。在网络质量监测中,拆成两份的方案要比拆成多个的方案更好。


我们用一个例子来说明原因。假设在某一时刻内网同时发生了两个故障,分别是机房 A 出口故障和机房 B 入口故障。在这个情况下,正确的输出应当包含两个维度组合,分别是“源机房=A”、“目标机房=B”。


从全局数据出发,如果我们按照源机房的各个取值把数据拆成多份,如图 1,“目标机房=B”这个维度组合无法出现,因为它在按照“源机房”维度拆分时已经被拆成“源机房=B,目标机房=B”、“源机房=C,目标机房=B”等多个小维度组合。这样一来,“目标机房=B”这个故障将输出为多个子维度组合的故障,不能准确体现故障范围


而如果我们按照数据是否包含源机房 A 把数据拆成两份,如图 2,“目标机房=B”可以更加完整地包含在“源机房!=A”的分支中,再经过一次拆分即可得到“源机房!=A,目标机房=B”这一维度组合。这个维度组合应当解释为,在我们认为“源机房=A”存在故障的情况下,把受到这个故障干扰的数据去掉后(“源机房!=A”),“目标机房=B”存在故障,所以“源机房!=A,目标机房=B”可以上升为我们的目标维度组合“目标机房=B”。



图 1 按照所选维度的各个取值拆成多份下钻的样例



图 2 按照所选维度取值拆成两份下钻的样例


这种分层下钻的方法能够找到贡献度高、一致性好的目标维度组合,同时减少了需要分析的维度组合数量,比逐个维度组合进行检查可以少花很多时间

基于决策树的自动分析

可以看到,这种分层下钻的过程和决策树生成的过程是比较类似的。


决策树生成算法会从全局数据出发,选择最能区分正例负例的属性进行划分,然后对子数据集递归地进行划分,直到继续划分不太能区分正例和负例。所以前面的分层下钻相当于把探测样本的结果作为类别、维度取值作为属性,构建了一棵二叉分类决策树。


首先,把一个探测样本作为一条数据,探测样本的结果作为类别,把成功记作正例,失败记作负例。这样,最能区分正例、负例的属性也就是最能区分成功、失败样本的属性。


接下来,对探测样本进行 One-Hot 编码,每个维度取值展开成一个属性。前面提到的“源机房=A”对应一个属性,属性有两个取值“源机房=A”、“源机房!=A”,类似地,“目标机房=B”、“源 ToR=1”等维度取值也分别对应一个属性。这样,对数据集进行划分时使用的属性就是用来把数据拆分成两份的维度取值。


数据经过预处理之后,接下来的下钻过程可以借助决策树生成算法完成。


如图 3,从全局数据出发,在各个属性(“源机房=A”、“目标机房=B”、“源 ToR=1”……)中选择一个最能区分正例(成功样本)和负例(失败样本)的属性(“源机房=A”)进行划分,之后继续对子数据集递归地进行划分,直到子集(“源机房=A”)使用各个属性划分的区别都不大。



图 3 二叉分类决策树生成样例


在生成的决策树中,每一个叶子结点的成功、失败探测样本都是分布比较均匀的,一致性较好,所以,成功率显著低于正常情况的叶子结点就是需要报告的故障区域。



图 4 二叉分类决策树上进行检测的样例


这样分析得到的目标维度组合排除了直接判定法误报的情况,所返回的维度组合基本上能够正确反应网络故障影响的区域范围。

属性选择方法

对于决策树的每个节点,在选择属性进行划分的时候,我们的候选属性是所有维度取值,比如“源 ToR=1”、“源 ToR=8”、“源机房=A”、“源机房=H”、“目标机房=A”、“目标机房=H”等等,针对每个候选属性,会使用一个函数进行打分,描述区分正负例样本的效果,最后选择分数最高的一个属性。


常见的决策树生成算法在正负例样本不平衡的时候表现比较差,而网络监测中失败样本(负例)的数量远少于成功样本(正例),让这个问题变得比较明显。


我们修改了选择属性时的度量函数,避免比较成功样本和失败样本之间的相对大小,而是比较成功样本在各子节点的分布和失败样本在各子节点的分布。


在把全局数据划分为“源机房=A”、“源机房!=A”的时候,成功样本在两个子集的分布是,我们把这个分布记作,失败样本在两个子集的分布是,记作,那么,分布 P 和 Q 差异最大的属性也就是最能区分成功样本和失败样本的属性。


我们选择了海林格距离)来描述这两个分布的差异。把全局数据划分为“源机房=A”、“源机房!=A”的得分:



类似地,可以计算其他属性的海林格距离:



可以看到,使用源机房 A 进行拆分的海林格距离最大,所以选择按源机房 A 这个属性把数据拆成两份,这个划分结果和人工下钻时的感受是一致的。

总结

本文提出的这种多维度分析方法考虑了很多内网质量监测的特点。考虑到维度组合非常多,我们在寻找目标维度组合的过程中进行了剪枝;考虑到目标维度组合可能是多个,我们选择的剪枝方案是二叉决策树;考虑到成功样本比失败样本多很多,我们在生成决策树时使用海林格距离选择属性。


在其他场景中,数据可能没有这样的特点,这些情况下,需要选择什么指标描述一致性,选择什么方法进行剪枝,有的已经有了一些实践经验,有的还在尝试,需要进一步探索。欢迎大家留言交流相关场景和问题。


作者介绍


李聪


百度高级研发工程师,负责百度智能运维产品(Noah)监控数据分析相关工作,重点关注故障定位、异常检测等相关领域技术。


本文转载自公众号 AIOps 智能运维(ID:AI_Ops)


原文链接


https://mp.weixin.qq.com/s?__biz=MzUyMzA3MTY1NA==&mid=2247485107&idx=1&sn=51ea71c2882f3ed93dfb72f8c3699473&chksm=f9c37f7aceb4f66c0161ce303fcf775ec6e25b6fa0bfe892c07330ae883ba6ed2a61d874e3c7&scene=27#wechat_redirect


2019-08-02 08:002276

评论

发布
暂无评论
发现更多内容

与创新者同行,Apache Doris in 2023

SelectDB

数据库 大数据 数据仓库 数据分析 apache doris

CorelDRAW 2023 for Mac(矢量图形设计工具)

展初云

Mac CorelDraw 矢量设计

Paste Wizard for Mac(剪贴板管理器) 13.0永久激活版

mac

苹果mac Windows软件 Paste Wizard 剪贴板管理工具

C4D vs Blender:哪个更适合你的需求?

Finovy Cloud

blender C4D

2023热门服务器运维工具测评——面板篇

学IT的小树叶

技术 运维 服务器 入侵检测 远程工具

大模型训练,为OCR应用提升性能

百度开发者中心

深度学习 大模型 人工智能「 OCR技术

从 SQL 查询优化技巧去看 h2 数据库查询原理 | 京东物流技术团队

京东科技开发者

数据库 sql h2database Code Insight BTree

AI 时代的企业级安全合规策略

极狐GitLab

AI 敏捷开发 敏捷交付 应用程序安全 安全合规

CodeWhisperer--轻松使用一个超级强大的工具!

亚马逊云科技 (Amazon Web Services)

Python 人工智能 云上探索实验室 Amazon CodeWhisperer Amazon Cloud9

高防服务器怎么防御?

Geek_f19a80

服务器

macos端剪贴板管理器推荐 Paste Wizard激活最新版

mac大玩家j

Mac软件 剪切板工具 剪切板软件

大模型训练中的数据并行与模型并行

百度开发者中心

深度学习 大模型 #人工智能

WebSocket魔法师:打造实时应用的无限可能 | 京东物流技术团队

京东科技开发者

html5 前端 企业号11月PK榜 weboskcet

DHorse(K8S的CICD平台)的实现原理

tiandizhiguai

API低代码开发应用场景

RestCloud

低代码 API

用户信息授权报错“无效的AppID参数”问题排查解决过程

盐焗代码虾

Java 支付宝 经验分享 支付宝报错 排查思路

IDO私募预售平台软件系统开发

西安链酷科技

IDO代币预售

你还在为SFTP连接超时而困惑么? | 京东云技术团队

京东科技开发者

安全 SSH 传输协议 sftp 企业号11月PK榜

Raw图像处理软件 Capture One Pro 23 for Mac

展初云

Mac Capture One Pro 23 Raw图像处理软件

科技改变农业:合成数据农业中的应用

3D建模设计

机器学习 合成数据 机器学习农业应用

探索T5模型在NLP中的超大规模应用

百度开发者中心

自然语言处理 大模型

案例研究:利用合成数据提高对象检测性能

3D建模设计

合成数据

IDO预售系统开发:构建去中心化众筹平台的技术实践

西安链酷科技

IDO代币预售

SecureCRT 9 for Mac(终端SSH工具)

展初云

securecrt Mac软件 终端仿真

通义千问, 文心一言, ChatGLM, GPT-4, Llama2, DevOps 能力评测

SEAL安全

文心一言 通义千问 Walrus Appilot 企业号11月PK榜

大模型训练中的同步与异步模式

百度开发者中心

深度学习 大模型 GPU算力

百度网络监控实战:多维度分析方法_软件工程_李聪_InfoQ精选文章