DataPipeline王睿:業務異常實時自動化檢測 — 基於人工智慧的系統實戰
大家好,先自我介紹一下,我是王睿。之前在Facebook/Instagram擔任AI技術負責人,現在DataPipeline任Head of AI,負責研發企業級業務異常檢測產品,旨在幫助企業一站式解決業務自動化監控和異常檢測問題。 今天主要從以下四方面跟大家分享構建該產品的思路和實戰。
一、為什麼需要人工智慧業務異常檢測系統
目前針對這塊,不同企業採取的方法各異。 傳統的業務監控方法往往是手工生成報表每天檢視,對於比較重要且實時性要求較高的指標,會人工設定閾值,當指標跨過閾值時報警。 對於已知週期性的指標一般會用類似同比環比的方法。
隨著企業業務量和業務種類的不斷提升,人工的監控也隨之增多。
而這種基於人工的方法則會顯示出幾大不足:
1. 大量業務指標沒有被實時監控。 以電商為例,若只監控總銷售額,採用人工方法很容易實現。但是,一旦某些地區或品類的銷售額出現異常,只看總銷售額指標則很難發現問題。
例如某零售企業,其酸奶的銷售額在某地區較之前有所下降,原因是酸奶的庫存出現了週轉問題。由於一直售賣過期酸奶,導致接到大量使用者舉報。針對該情況,若只監控總銷售額很難發現問題,這時需要監控品類和地區兩個維度更細粒度的指標。而監控多個維度的指標,指標監控的數量會成倍增長,顯然是人工無法勝任的。
3. 誤報漏報。 作為業務負責人,既不想在業務出現問題的最後一刻才知道,也不想在凌晨三點被一個假警報叫醒。 而多次的誤報會導致“狼來了”的效應,當真正的問題出現時,告警卻往往容易被接收人員忽略掉。
4. 人工維護成本。 隨著業務的不斷變化,大量的告警閾值和規則需要人工調整,而這顯然跟不上業務的變化速度和監控指標不斷增多的節奏。
因此我們需要一套自動化的智慧業務監控和異常檢測系統,透過對指標變化規律的學習,自動掌握指標資料正常和異常的表現模式,從而全面,實時地監控企業業務不同層面,不同維度的各項指標。 這就是為什麼我們需要搭建基於人工智慧演算法的業務異常檢測系統的原因。
二、搭建該系統的挑戰和設計理念
人工智慧演算法在異常檢測領域已經被研究了幾十年,但是搭建這樣的系統卻並非易事。
主要的挑戰有以下幾點:
三、DataPipeline的演算法實現思路
基於以上設計原則,DataPipeline提出瞭解決問題的幾個步驟:
1. 接入資料
首先利用DataPipeline自身的資料整合能力,從不同資料來源中接入實時的資料流或批式的資料集並進行預處理,形成多個指標的時序資料。
2. 正常表現的建模
進而對每個單一的指標時序資料學習其正常表現模式,擬合模型,並自動生成置信區間。 如下圖,深藍色部分為資料本身,淺藍色部分為自動生成的置信區間,紅色部分為異常。
對檢測出的多個異常,演算法自動進行相關性學習,將其關聯起來。
最後生成一個彙總的告警,傳送給使用者。
在過去數十年裡,許多不同型別的演算法被研究和開發來嘗試解決這一問題。 其中有較為傳統的基於統計模型的演算法,也有許多基於時序資料的分析方法,而近年來大熱的深度學習模型也被證明在時序資料預測和異常檢測上有較高的準確性。
這些演算法一般遵循這樣一個步驟:先對歷史資料進行建模,學習資料正常表現的規律。對新來的資料點,根據資料點偏離正常表現模型的程度來判定是否為異常。
比如最簡單的演算法模型是高斯分佈,假設該指標資料符合高斯分佈,就可以透過歷史資料點估計出高斯分佈的mean和期望(均數)μ和標準差σ,進而對新的資料點判定,如果偏離期望多於三個標準差則該資料點不能被模型解釋的機率為99.7%,我們就可以判定其為異常。然而
實際情況是,大部分資料都無法簡單地表現為高斯分佈。
因此,首先我們需要根據資料本身來自動選擇最適合的演算法模型。
這也是很多開源的異常檢測演算法直接被拿來使用往往得不到滿意效果的一個原因,因為他們一般假設資料的底層表現是平穩的(Stationary),並且資料是規則取樣的(Regular Sampling),若使用不適合的演算法模型對資料建模會得到非常不好的效果,甚至完全無法使用。
因此DataPipeline開發了一個演算法,可以自動根據資料的表現形式選擇最合適的演算法進行擬合。
最常用的演算法可以分為基於統計模型的演算法和深度學習的演算法。
-
統計模型演算法
-
深度學習演算法
2. 週期性學習
3. 相關性學習
-
異常表現的相似度
-
統計模型的相似度
-
後設資料相似度和人工反饋
四、DataPipeline的系統架構
2. 核心系統架構
總結
業務異常的不及時解決會給企業帶來巨大的經濟損失。 相對於傳統的人工生成報表和人工閾值的監控方法,基於人工智慧的業務異常檢測系統可以更自動化,更全面地監控業務各項指標並給出準確率更高,更有幫助性的報警和業務洞見。
而搭建這樣一套系統面臨業務資料表現形式多樣,告警過多準確率低下等挑戰。 伴隨著 企業級人工智慧業務異常檢測系統的出現,企業可以更高效、及時全面的掌控業務,從而實現業務和經濟效益的提升。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31556703/viewspace-2677674/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 準實時異常檢測系統
- 基於實時計算(Flink)與高斯模型構建實時異常檢測系統模型
- Kafka+Flink 實現準實時異常檢測系統Kafka
- python實戰-基於正交實驗(工具:allpairs)自動生成介面異常測試用例PythonAI
- 利用人工智慧實現基於影像的自動化檢查人工智慧
- [python] 基於PyOD庫實現資料異常檢測Python
- 自動化時序異常檢測的可擴充套件通用框架套件框架
- 基於DotNetty實現自動釋出 - 自動檢測程式碼變化Netty
- 基於postman的api自動化測試實踐PostmanAPI
- UI自動化測試實戰UI
- Java + SikuliX 基於影像實現自動化測試Java
- 基於AI演算法的資料庫異常監測系統的設計與實現AI演算法資料庫
- 加速建立基於人工智慧機器人的自動化系統MK人工智慧機器人
- 加速建立基於人工智慧機器人的自動化系統TMG人工智慧機器人
- AI賦能一鍵自動檢測:頁面異常、控制元件異常、文字異常AI控制元件
- 一個基於多介面的業務自動化測試框架框架
- 基於RestAssured實現介面自動化REST
- 財務管理系統如何幫助企業實現財務自動化管理?
- 提供合同自動化與活動實時檢視
- 基於數值優化的自動駕駛實時運動規劃優化自動駕駛
- 基於 Flink CDC 的實時同步系統
- 基於 Pytest+Requests+Allure 實現介面自動化測試
- 寶信利用Spark Analytics Zoo對基於LSTM的時間序列異常檢測的探索Spark
- 任務異常自動告警
- 異常檢測
- 異常檢測(Anomaly Detection)方法與Python實現Python
- 錄製回放效果差異檢測 | 自動化測試
- TF專案實戰(基於SSD目標檢測)——人臉檢測1
- 基於Kubernetes的業務自動化BPMN流程工具:KogitoGit
- 基於PHP的Webshell自動檢測芻議PHPWebshell
- 打造實時資料整合平臺——DataPipeline基於Kafka Connect的應用實踐APIKafka
- 基於Python的介面自動化實戰-基礎篇之讀寫配置檔案Python
- 基於vue自動化表單實踐Vue
- 致力於通過演算法與交易系統致力於實現業務各個方面的自動化演算法
- 基於數值最佳化的自動駕駛實時運動規劃自動駕駛
- 基於AI的移動端自動化測試框架的設計與實踐AI框架
- 基於多模態對抗學習的無監督時間序列異常檢測
- 基於Gin框架實現異常處理框架