cnn 一维时序数据_蚂蚁集团智能监控的时序异常检测:基于 CNN 神经网络的异常检测...

1 背景在蚂蚁集团智能监控领域,时序异常检测是极重要一环,异常检测落地中,业务方参考业界标准输出 Metrics 指标数据,监控不同业务、应用、接口、集群的各项指标,包含 Metrics 指标(总量、失败量、耗时等)和系统服务指标(CPU、MEM、DISK、JVM、IO 等)。早期的时序异常检测是由 SRE 结合长期运维经验通过配置专家规则来完成,随着 AI 技术的普及,异常检测逐步 AI 化,在现实场景中,AI 算法常常面临如下挑战:
  • 每日不同时段,业务时序曲线呈现不同的局部均值/方差特性;
  • 特殊日期如大型节假日、大促日,时序数据与日常差异巨大,甚至与往年同期也存在不小差异;
  • 每日或间隔几日固定时间段中随机时刻发生的偏定时事件;
  • 海量监控业务,很难针对单独指标一一建模;
下图是一组耗时指标时序数据,按分钟采样,存在明显日周期性,在每日不同时段,均值/方差差异明显;凭专家经验按时间段强行设置阈值,难度大准确度低;使用回归模型拟合数据分布,精度高,但难以泛用到其他指标。c2fb2727504c4cf3a06cf1eadf6e23e0.png图1 耗时时序曲线本文基于 CNN 神经网络方向进行了一些探索,在保证检测准确率与召回率的同时,也能保证模型有较好的泛用性 算法调研下图整理出部分时序数据异常检测涉及算法,这里不一一详述,有兴趣自行查询相关算法原理。5116074957bea1f0c5dc16fbf756981e.png图2 异常检测相关算法从是否依赖标注训练样本的角度看,算法主要分为有监督和无监督两个方向(半监督这里就不介绍了)。无监督算法免去了标注样本耗费的大量人力,适合冷启动,但最终还需算法开发人员持续调参去寻找最优分类决策平面,在调参过程中还需兼顾不同监控业务的自身特点;有监督算法则相反,但往往模型可解释性较差,日常运维中用户会经常询问:为啥告警/为啥没告警,运维人员这时可能会风中凌乱,同时不同业务 owner 对异常评判的标准是存在差异的,如果不能在异常评判的标准上达成一致,使用有监督算法往往需为不同的评判标准维护多套样本集。CNN 的卷积层在提取异常波形特征上有明显的优势,复杂度合适的全连接层理论上也可拟合出所有的非线性关系;还有一点,网络结构的设计是一件灵活的工作,算法工程师有较大的发挥空间,而非仅仅涉及调参。 算法原理此章从特征工程,样本增强,神经网络设计三部分介绍基于 CNN 模型方案,还是以耗时指标为例进行说明。 特征工程不同样本的均值/方差/趋势差异明显,需要将原始时序数据映射到统一量纲的空间。模型原始输入为5组输入通道:
  1. 当日数据:前 n 分钟到当前预测时间点时序数据;
  2. 同比数据(前1天):1天前当前时刻为参考点,前 n 分钟到后 m 分钟内时序数据;
  3. 同比数据(前2天):2天前当前时刻为参考点,前 n 分钟到后 m 分钟内时序数据;
  4. 同比数据(前7天):7天前当前时刻为参考点,前 n 分钟到后 m 分钟内时序数据;
  5. 同比数据(前14天):14天前当前时刻为参考点,前 n 分钟到后 m 分钟内时序数据;
同比数据时段选择前 n 分钟到后 m 分钟,是因为某些周期性事件并非在一个固定时间点发生,而是在一个固定时间段中随机取值。在作者实践中 n=60,m=30。主要解决问题:
  1. 消除了不同日期时序数据水位差异带来的影响;
  2. 消除了不同日期时序数据抖动幅度差异带来的影响;
  3. 消除了不同指标的值域范围差异带来的影响;
整个数据处理流程按如下几环节顺序进行。方差标准化方差体现了时序数据在统计时段内的抖动剧烈程度,在真实样本中,当日方差与往期同比时段方差可能存在较大差异,如果不做标准化处理,会导致抖动剧烈的时序数据很容易产生误报。d98f60b0fcc88c2cf1ea13f48d284042.png图3 处理前后对比去均值均值体现了时序数据在统计时段内水位,在真实样本中,当日均值与往期同比时段均值是不相等的,需要对齐水位。对每组输入通道中时序数据取中位数,以中位数为0点进行平移,注意是中位数不是统计均值。ac2577fd92d2bac8810015c7c83bc106.png图4 处理前后对比关于为何使用中位数,而不使用统计均值,使用均值会出现下图所示问题,没达到对齐效果。f4012ac7916fdc2317fb3779a33b85cb.png图5 中位数和统计均值差异提取趋势基线滑动平均,滚动窗口提取参考时段内的趋势基线,需要对窗口内数据集进行一定比率的去噪。f15139a0a7c6d6a206f89ac908597f72.png图6 提取趋势基线去趋势做个简单的映射操作,真实值-趋势基线值,提取出去趋势后的残差时序。cb91bfb906787d086f67c02a36c26e2a.png图7 去趋势标准化对残差时序做一个标准化操作。a2d53eabf73e61c047232e4310e1fe7b.png图8 标准化数据截取通过上述几个步骤,将当日与往期共5个通道时序数据映射到了新的空间;在进行异常检测时,由于只需检测当前时刻是否异常,所以送入神经网络的当日时序输入只需截取最近 c 分钟即可,在作者实践中,c=7。  数据增强模型训练前,可以做适量的数据增强,不仅能提升模型泛用性,还能在训练收敛过程中更容易提取到异常波形特征,对准确/召回率有比较大的提升。数据增强在特征工程之后。
  • 交换往期参考日输入通道的数据,如下例中就交换了 y7 和 y14 通道的输入;
8c5ebfff06fa6014038fa639cc4b27ab.png图9 交换通道输入
  • 修改异常样本当前时刻值,随机设置到指定阈值之下,把一个异常样本变成一个正常样本;
89575b4a39a86be711ddb78d8469324a.png图10 修改当前时刻值
  • 修改异常样本中当日输入通道的向量,向量整体做大尺度负向平移,把一个异常样本变成一个正常样本;
d4c5fbbbbfe03be96af739d07b1e7d45.png图11 修改当天输入向量
  • 模拟周期事件,随机抽取几个往期通道,在输入时序中生成与今日异常波形相似的数据;
a4a7d132aceddd2630e1e17b09f8048b.png图12 模拟周期事件  神经网络设计相比于复杂的图像识别,异常波形的图像特征要简单的多,在满足准召率的前提下,尽可能用更少的隐层,更少的参数去解决问题,模型结构中有2个关键点:
  1. 每个输入通道共享相同卷积层,因为每个通道需提取的波形特征是一致的,共享卷积层可以节约计算性能;
  2. MaxPool 层实质对每个通道做的是一个取向量最大元素操作,所以不管 Input 层输入向量长度如何变化,MaxPool 层输出数据结构都是固定的,所以在模型做预测时,输入通道是可灵活输入不同的长度时序数据;
模型 Keras 定义代码:a59b13feaa9c8d4977ca9736eae6fc35.png模型结构打印,表格中各 Layer 详细定义可以参考模型 Keras 定义代码,整个网络结构较简洁,这里不再详述各层定义,训练使用 loss为binary_crossentropy,模型输出为一个标量 y,y > 0.5 为正,阈值可自行设置去控制模型对异常检测的敏感度。390dbf32598bacc2aee59dda26c38a67.png图13 网络结构 效果评估  标注样本集评估结果训练样本集规模10000+,大部分样本为数据增强生成,原始标注样本1000+,正负样本比例约1:2。当前在训练样本集上准确率可达 98.9%,因为打标数据中有一些模棱两可的标注数据,不同的业务人员判断很难达到统一,通过提高模型复杂度去强行拟合训练样本集,这样可能会影响模型的泛用性。22c514bf33f947712105548e9558ecb5.png  实测结果与分析最近一期评审数据:准确78%,召回96%,误报主要原因分析:
  • 部分业务人员判定持续时间较短的毛刺为误报,但训练样本集中是存在这种毛刺异常标注,可以添加一条简单的后置规则对异常持续时长进行过滤;
  • 在当日原始输入为1小时左右的时长跨度中,异常波形较明显,但拉长时轴,在更长的时间跨度下看涨跌幅度正常;可以通过给原始输入更久时序数据减少此类误报,或者基于历史数据离线统计出一些合适的最小涨跌阈值进行过滤;
  • 小数据/稀疏数据模型表现较差;
  • 周期性差,当日走势和历史差异极大;
一些发现的异常,红色为异常点。00cc5010872d15ab3f2c519540b187a4.png44d5c4418755267ad6df3b5ddae90f8d.png图14 检测的异常 当前面临的一些问题和思考
  • 监控指标自带业务属性,异常标准定义很难达到统一,业务人员 A 认可的异常在业务人员 B 眼中是正常现象,这意味着使用有监督方案需要维护多份训练集,这在实际操作中是不现实的;

  • 算法性能问题,面临海量监控业务,训练和实时检测计算资源是否吃得消,本文的方案在实时检测会产生大量时序数据查询请求,需要平台强力支持;

  • 在实际探索中,我们发现单一的算法解决不了所有问题,不同算法都有其优势及不足,都有其契合及尴尬的场景,合适的方法才是最好的方法;

  作者介绍王睿,花名汴南,蚂蚁集团技术专家,一直从事 AIOps 算法相关研究工作。目前是蚂蚁集团智能监控团队算法组负责人。 关于我们

欢迎来到「蚂蚁智能运维」的世界。本公众号由蚂蚁集团技术风险中台团队出品,面向关注智能运维、技术风险等技术的同学,将不定期与大家分享云原生时代下蚂蚁集团在智能运维的架构设计与创新方面的思考与实践。

蚂蚁技术风险中台团队,负责蚂蚁集团的技术风险底座平台建设,包括智能监控、资金核对、性能容量、全链路压测以及风险数据基础设施等平台和业务能力建设,解决世界级的分布式处理难题,识别和解决潜在的技术风险,参与蚂蚁双十一等大型活动,通过平台能力保障整体蚂蚁系统在极限请求量下的高可用和资金安全。

关于「智能运维」有任何想要交流、讨论的话题,欢迎留言告诉我们。

PS:技术风险中台正在招聘技术专家,欢迎加入我们,有兴趣联系 techrisk-platform-hire@list.alibaba-inc.com

a64e5da5f662343bbc722b20faa801b5.gif

欢迎支持关注「智能运维」的你~* 点下右下角“在看”* 到公众号对话框发送“智能监控”,试试手气~* 本期互动奖品“蚂蚁毛绒公仔0dedfaf5f5d2a833a4b34fcc60ae2bb4.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/344179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse GlassFish 5.1就在这里!

Eclipse GlassFish 5.1的发布是Jakarta EE的重要里程碑! 首先,这证实了Oracle提供的GlassFish源代码可以在Eclipse Infrastructure上构建和组装。 第二, 通过通过Java EE 8兼容性测试,它可以验证所贡献的代码是否符合Java EE 8…

标签蛋白_His标签蛋白镍柱纯化后总有一条杂带怎么办?

小明His标签蛋白镍柱纯化有杂带怎么办啊汇研生物——His标签蛋白纯化填料家簇1.样品本身的的属性,His蛋白容易被体系中的蛋白酶降解时,此时就要在样品中加入蛋白酶抑制剂。避免在纯化过程中His蛋白被降解,呈现出纯化后纯度下降。2.His蛋白和其…

bootstrap 树形表格渲染慢_bootstrap table轻松实现数据表格

在使用bootstrap table时可能在很多时候回用的表格来显示数据,如果自己写那肯定没问题,但是数据展示出来就麻烦多了,然而bootstrap table 封装了一套完善的数据表格组件,把从后台请求的数据很容易就展示出来了,bootstr…

ssm如何支持热部署_Java 调式、热部署、JVM 背后的支持者 Java Agent

我们平时写 Java Agent 的机会确实不多,也可以说几乎用不着。但其实我们一直在用它,而且接触的机会非常多。下面这些技术都使用了 Java Agent 技术,看一下你就知道为什么了。-各个 Java IDE 的调试功能,例如 eclipse、IntelliJ &a…

war3必须安装的游戏组件_在单独的WAR组件中对SPA资源和API实现进行分区

war3必须安装的游戏组件单页应用程序正Swift吸引人们的注意力,以实现基于Web的丰富,健壮和移动友好的应用程序。 从本质上讲,这需要更改应用程序体系结构,在该体系结构中,整个应用程序用户界面都是使用JavaScript来实现…

matlab 矩阵jocobi迭代_高校MATLAB被禁用,掀起中国本土软件脆弱的冰山一角

近日哈工大、哈工程高校被美国禁止用正版的MATLAB软件,此消息一出可谓使得全体用过MATLAB的工作者为之震撼。因为少了这款软件,无异于缺失了有力的左膀右臂,如何才能游刃有余地遨游在科研和工作领域呢?然而对于外行人却不知道这款…

controll层跳转页面_java web开发中的各种层

java后端开发前,还是应该将各种层划分好,知道各自的作用,今天做一下总结。Dao层、Entity层、Service层、Controller层、view层1、Dao层(持久层、数据访问层)功能:只负责与数据库的数据进行交互,dao层是在Mybatis框架下…

图像的灰度级数越多越好_MATLAB-数字图像处理 图像直方图归一化

图像直方图归一化图像直方图概念:图像直方图是反映一个图像像素分布的统计表,其实横坐标代表了图像像素的种类,可以是灰度的,也可以是彩色的。纵坐标代表了每一种颜色值在图像中的像素总数或者占所有像素个数的百分比。图像是由像…

JDK 13:什么是AggressiveOpts?

JVM 11中已弃用Java VM标志-XX:AggressiveOpts [请参见JDK-8199777和JDK-8199778 ]“因为其行为是不明确的。” JDK-8199778的“问题”部分进一步说明了(我添加了重点 ): AggressiveOpts已被用作实现各种实验性能功能的包罗万象的方法&#…

擦地机器人修理_自带眼睛还有嘴,喷水式擦地机器人效果实测

小时候家里大扫除时,我最喜欢抢着扫把扫地,因为扫地相对比较轻松,快速扫完灰尘和垃圾就能跑出去玩。而擦地板相比扫地就麻烦多了,大面积的地板需要蹲下来一块一块擦,还要来回清洗擦布,现在父母年龄大了&…

pv实现前趋图_Excel 数据透视图实现简易交互式数据面板

美国Ebay公司成立于1995年的圣何塞,是一家可让全球民众上网买卖物品的线上拍卖及购物网站。本文将结合Ebay(某类体育用品的)在线拍卖数据,主要使用Excel数据透视表为工具,来实现简易的交互式数据面板以求对数据进行可视…

input不可编辑属性_谁不喜欢图文并茂呢:基于多模态信息的属性抽取

0. 前言最近做属性抽取,并且基于多模态信息(文本图片)那种,然后发现了一个比较经典的论文“Multimodal Attribute Extraction”。正好就顺着这个论文的思路,捋一下这个任务,复现一下,再记录一下…

HDMI高清光端机产品介绍

HDMI高清光端机对视频音频发布等起到传输作用,HDMI光端机由发送器和接收器组成,能通过单根光纤把计算机主机的音频,视频,USB延长到远端,用户可以在远端实时收听到电脑主机的图像和声音,并使用电脑控制。接下…

全局变量求平均分最高分最低分_想去江苏读大学,2021届山东考生需要多少分?...

点击链接查看详情:https://mp.weixin.qq.com/s/A1-e97_D4jbC_BRJtPIN2A​mp.weixin.qq.com江苏省2020年在山东普通批次本科招生66所院校。1027个专业;共4310人,最低分南通理工学院的船舶与海洋工程专业,464分,位次2437…

Thymeleaf的Spring数据

介绍 今天,我将讨论更具体的问题。 这次没有设计模式或算法:-)。 我们并不总是从头开始设计软件组件。 通常,我们必须尝试使现有软件组件协同工作。 Spring Boot是Java世界上最好的免费软件之一。 它解决了Spring的许多配置问题。 它非常灵活…

如何有效维护PDH光端机的常见故障?

众所周知,在PDH光端机的使用过程中,出现的故障可分为永久性故障和间断性故障。而永久性故障是指反映告警一直保持;间断性故障则是指故障时有时无,有时还可自动恢复。但无论是哪种故障,都与传输网有着密不可分的关系。接…

转为字符数组_数组的20种常用的方法?

1.shift 删除数组中的第一个元素2.pop 删除数组中的最后一个元素3.unshift 增加元素在数组的前面4.push 增加元素在数组的后面5.map 循环,并且返回新的数组6.forEach 循环,遍历7.filter 过滤,筛选出数组中的满足条件的,并且返回新…

Profibus-DP光端机产品功能特点及技术参数详解

Profibus DP总线光端机,符合Profibus DP协议,采用大规模FPGA设计,采用独创技术,可同时支持1路Profibus-DP到光纤中继,通信速率0-12Mpbs。支持多种光纤网络拓扑结构:点对点通讯、链型网络、星型网络及冗余环…

jenkins编译java_在Window上使用Jenkins自动发布Java工件

jenkins编译java这篇文章将展示如何使用Jenkins Continuous Integration自动执行Java Web应用程序(使用MYSQL DB和基于Hibernate ORM在基于REST的Jersey2 Spring环境中开发的学生申请应用程序)的发布过程-上载发布工件到发布存储库。 如上一篇文章《在Wi…

工业级光纤收发器九大技术优势介绍

光纤收发器主要是通过光纤来进行传输的那些100M以太网或1000M以太网,不过也被大家称之为光纤交换机,简而言之,可以将我们要发送的电信号转换成光信号发送出去,同时将接收到的光信号转换成电信号,输入到我们的接收端&am…