赣州新闻网

首页 / 科技

2020亚马逊全球开店四大站点注册教程(北美、欧洲、澳洲、日本)

2020-03-30 · 赣州新闻网 · 科技

DataPipeline Head of AI 王睿在51CTO大咖来了公开课上作了题为《业务异常实时自动化检测 — 基于人工智能的系统实战》的分享,本文根据分享内容整理而成。

一个Bug损失200亿!如何搭建业务异常检测系统?

图片来自 Pexels

王睿,之前在 Facebook/Instagram 担任 AI 技术负责人,现在 DataPipeline 任 Head of AI,负7 ` )责研发企业级业务异常检测产品M _ ! r p h 6 :,旨在帮助企业一站式解决业务自动化监控和异常检测问题。

分享? M X主要从以下四方面跟大家分享构建该产品的思路和实战:

  • 为什! * { N么需要人工智能业务异常检测系统
  • 搭建该系统的挑战和$ A 设计理念
  • DataPipeline 的算法实现思路
  • DataPipeline 的系统架构

为什么需要人工智能业务异常检测系统

企业会因为业务异常无法得t H ) b 1 ^ V }到及时解决而遭受较大的损j , } Y J s G失,比如某知名互联网企业3 t ( : Z 7 H x T,将原价为 50 元的优惠券以 18 元卖出,导致用户在短时间内大量疯抢,损失惨重。

同样,在金融、零售、电商领域因为 IT 系统的 Bug 或人工原因导致J + O O P U ( = S的业务异常也给企业造成了不可估量的经济损失。

然而,在业务异I t / U常出现时,企业往往在几天甚至几个星期之后才会发现。以某公司为例,其主营业务为线上借贷,有次放款率突然增加,4 r M / P !此时距离出现问题已经过去十几个小时。

后果是将钱款借给了许多不具备借贷资质的人,导致回款率g s g / f }和营收大幅下降。

一个Bug损失200亿!如何搭建业务异常检测系统?

为此,随着企业业务的持续高速y | B ( s % Q增长以及信息化的全面普及,业务人员需要对业务变化有一个全面实时地掌控。

这时,IT 运维人员会关心服务器和网络的运行;产/ $ c 5品负责人会关心用户访问,点击率和用户体验等;业务负责人则关心p 8 $ M D业务的核心 KPI,如销售额。

这些指标犹如一个人的心跳、血压、体温,反N b l 7 ]映企业业务的健康状况。

如何能快速准确地从业务指标中识别异常,发现问题根因,并及4 C Z f C w ; Q时解决对企业而言就显得尤为重要。

目前针对这块,不同企业采取的方法各异。传统的业务监控方法往往是手工生成报表每天查看,对于比较重要且实时性要求较高的指标,会人工设定阈值,当指标跨过阈值时报警。

对于已知周期性的指标一般会用类似同比环比的方法。随着企业业务量和业务V ] O ~ N 5 |种类的不断提升,人6 j R @ m m )工的监控也随之增多| f 0 i _。

而这种基于人工的方法则会显示出几大不足:+ ; R

①大量业务指标没有被实时监控。以电商为例,若只监控总销售额,` # [ { / , h u采用人| t I x j W :工方法很容易实现。

但K v |是,一旦某些地区或品类的销售额出现异常,只看总销售额指标则很难发现问题。

例如某零售企业,其酸奶的销售额在某地区较之前有所下降,原因是酸奶的库存出现了周9 o k , v / ) o转问题。

由于一直售卖过期酸奶,导致接到大量用户举报。针对该情况,若只监控总销售额很难发现& r V a问题,这时需要 3 p指标不断增多的节奏。

因此我们需要一套自动化的智能业务监控和异g P r常检k W B n J B测系统,通过对指标变化规律的学习,自动掌握指标数据正常和异常的表现模式,从而全面,实时地监控企业业务不同层面,不同维度的各项指标8 % n @。

这就是为什么我们需要搭建L T H U L }基于人工智能算法的业务异A B r : 9常检测系统! ? y @ 2 h I的原因。

搭建该系统的挑战和设计理念

人工智能算法在异常检测领域已经被研究了几十年,但r % i B b B Y是搭建u : b (这样的系统却并非易事。主要的挑战有以下几点:

第一,对于异; ] l ? l q ! I常的定义较为模糊且各种数据指标的表现形式千差万别。

比如 IT 的 CPU 异常与) ; K A销售额异常不同,因此试图用一种通用的O i | ] b g u算法检测不同类型指标的异常往往准确率很低。

因为某一类m b I m E Z数据的异常表现形式放在另一类数据指标中可能就不会被认为是异常# - x 6 j w。另外,在未来发生的异常很多时候是过去并未见过的。

这直接导致了第二个难点,即很难获取标注数据。

不仅很难标注一个数据的变化是否是H H V S / n u ? ^异常,且异常出现的频率较低,很难像传统机器学习问题那样获得很多正负样本/ k B m。

第三,对该算法和i z l D p u z 6系统的实时性和可扩展性要求很高。

如果不能实时监控大量指标,发现异 Z Y相关性学习和根因分析

上面讲到的一个很大的痛点是告警洪L l l b z 5蓝色部分# l p n 6为自动生成的置信区间,红色部分为异常。

一个Bug损失200亿!如何搭建业务异常检测系统?

③异常的检测和过滤

对于新的数据点,一旦- / 6 d L S其跨H _ / 8 B ~ G t A过置信区间系统便认定为异常。接着对于每个识别出的异常进行打分和过滤。

④关联多个异常并自动报警

对检测出的多个异常,算法自动进行相? M Y m n关性学习,将其关联起来。最后生成一个汇总的告警,发送给用户。

下面重点解释对单一数据的正常表现建模,异常检测| , l 6 g和关联多个指标异常的具体技术实现。

单一数据的正常表现建模

在过去数十年里,许多不同类型的算法被+ U { 4 ^ ^研究O l : P g和开发来尝* o q ?试解决这一问题。

其中有较为传统的基于统计模K w ~型的算法,也有许多基于时序数据的分析方法,而近年来大热的深度学习模型也被证明在时序数据预测和异常检测上有较高的准确性。

这些算法一般遵循这样一个步骤:先对历0 G E H 8 6 V F X史数据进行建模 X W,学习数据正常表现的规律。

对新来的数据点,根据数据点偏离正常表现模I Q H 4型的程度来判定是否为异常。

一个Bug损失200亿!如何搭建业务异常检测系统?

比如最简单的算法模型是高斯分布,假设该指标数据符合( O ) & e H I高斯分布,就可以通过历史数据点估计出高斯分布的 me; s Z |a n和期望(均数) 和标准差 ,进而对新的数据点判定。

如果偏离期望多于三个标准差则该数据点不能被模型解释的概率为 99.7%,我们就可以判定其为异常。

然而实际情况f _ b / b是,大部分数据都无法简单地表现为高斯分布。因此,q 9 y首先我们需要根据数据本身来自动选择最适合的算法模型。

这也是很多开源的异常检测算法直接被拿来使用往往得不到满意效果L E _ X法` j x M用 Subsam| s & & ? i Jpling 的方法进行优化,降低了计算复杂度。

相关Y w c U L性学习

之前提到为解决告警洪流问题,我们需要一个算法可以自动化计算指标间的相关性,在多个异常同时出现时,可以将O C } m反映同个业务问题的异t m t =常关联在一起,给用户一个汇总的告警。

针对这类问题,一般传统的方法是采取多变量分析(Multivariate Analysis),即将所有时序数据当成互相有关联的多变量一起建模,然后在整体层面检测异q u 2 c H { 3 L T常。

该方法的主要问题是很难规模化,且当出现异常时检测结果的解释性v } 7 s $ / ] l @较差。

一个Bug损失200亿!如何搭建业务异常检测系统?

因此,在 DataPipeline,我们采I R f用单变量分析对每个指标进行异常检测,然后利用大规模聚类算法将相关度较高的指标进行聚类(如上图)。

这样每. } i l u W @个指标的机器学习和相关性学习两部分可以各自规模化,使得整个系统计算效率更高。S y d g k k

而聚类算法通过几类特征来进行计算:

异常表现的相似度:简言之,如果两个指标多次、同时出现异常,则认为两 @ F ? v C 4 m [者更相l h K ;关。

我们可以生成一个异常表现的特征向量,若在某个时间点y n D K t 7 b该指标表现正常便设置为 0,若表现异常则设置为异常的打分(算法根据异常的严重程度自动打分)。

统计模型的相似度:即指标的数值是否有相似的模式。其中计算两个时n 3 ? F &序数据数值相似度最常见的算法是 Pearson Correlation Coeff` w a : h a i xicient。

元数据相似度和人工反馈:DataPipeline 还根据元数据的拓q b !扑关系来判断相关性。

比如同一个指标的多个维度生# m x 3 g 7 . [ d成的多个子指& t 7 c标会被认为更相关。此外,用户也可自己输入一些信息告诉系统哪些指标更相关。

DataPipeline 的系统架构

若构建一套企业级业务监控和异常检测系统应该具备哪些组成部分?下面为 DataPipeline 的一些思路。

一个Bug损失200亿!如何搭建业务异常检测系统?

①产品功能组成

从产品功能角度& u z e 0 t - K i而言,该系统可以接入企( $业的各种业务系统(左G o Q ` 6 - ( ,边),包括核心业务系统和各种已有系统,诸如数据分析,监控系统$ G @ L等。

挑战是如何将多o t J g N O源异构的数据以一致的方式接入,且同时可以处理流式和批式数据。

DataPipeline 已有的数据融合产品可以很好p D ! P M 5 j F地实现这点。如果企业自己搭建,则需要根据y u ) Z S s C {具体情况确定实现方式。

另外,针对中间的系统内核,我们将其设计成了一个跟业务完全解耦的黑盒。

右边则是用户_ l O交互 UI,包括两部分:

  • 告警系统,可根据企业的报警需要接到企业交流 App 如钉钉、邮件,电话等。
  • 监控看板,可以看到监控的指标数据,搜索8 - . 7 x不同指标和多维度展示。

另外,还可看5 R q x到指标异常的汇总展示,根因展示等。从看板上用户可以根据展示出的异常进行反馈,表明这是正确的异常还是误报,另外还可调整指标异常检测的敏感度。这些反馈和调整会返回到系统中。

②核心系统架构

核心系统主要分为线上处理和线下模型训练两部分。线上部分处理实时的数据指标最新数据流,从模型存储数据库中读入模型并存于内存中,对数据流中每一个数据指标进行实时的阈值计算* E X、异常检测和打分。

之后多个数据指标的异常检测结果会被汇总到一个关联性处理器,进行异常的关联,最后将i , A L R F n L R关联好的异常指标组汇总,生成并触发告警。

在处理实时指标数据时,处理器会将最新的指标数据和检测出的异常分别写入数据库为线下训练做准备。

线下部分会定时从数据指标的历史数据库中读取数据并进行线下的模型训练,这其中便包括上面提到的算法自动选择,周期性学习等。也会定期利用用户返回的反馈对q W C p Y j模型进行评估,计算出误报漏报率5 : w |等。

总结

业务异9 4 1 * d 0 M # K常的不及时解决会给企业带来巨大的经济损失。

相对于传统的人工生成报表和人工阈值的监控方法,基于人工智能的业务异常检测系统可以更自动化,更全面地监控A 8 2 6业务各项指标并给出准确率更高,更有帮助性的报警和业务洞见。

而搭建这样` * A T 7 W q l &一套系统面临业务数据表现形式多样,告警过多准确率低下等挑战。

伴随着企业级人工智能业务异常检测系统的出现,企业可以更高效、及时全面的掌控业务,从而实现业务和经济效益的提升。

库存企业认定红色日本兴国全球欧洲澳洲