自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

螞蟻金服異常檢測和歸因診斷分析實踐

人工智能 算法
本文將分享異常檢測與歸因診斷在螞蟻金服的實踐。某個 KPI 指標(biāo)為什么會上升或下降?歸因診斷的任務(wù)就是解釋這些指標(biāo)變化的原因。

一、歸因診斷

圖片

在實際工作中,我們常常受到業(yè)務(wù)方對關(guān)鍵績效指標(biāo)(KPI)的靈魂拷問:某個 KPI 指標(biāo)為什么會上升或下降?歸因診斷的任務(wù)就是解釋這些指標(biāo)變化的原因。

圖片

歸因診斷把問題的定位過程看作是一個因子對比的過程:指標(biāo)在基準(zhǔn)時間區(qū)間的值為 y,在當(dāng)前時間區(qū)間的值為 y^',兩個時間點相差 ?y?;谶@個變化量 ?y 進行因子的拆解,生成一個因子指標(biāo)樹。在每個葉子節(jié)點處,都計算其對整體 ?y 的貢獻度,從而確定哪個因子對整體貢獻最大。

通過以上過程,就能夠解釋 KPI 波動的原因。在實際應(yīng)用中,可以支持:

  • 多時間粒度的對比,包括單天和多天的對比。
  • 單指標(biāo)的對比、多因子的歸因以及復(fù)雜的四則運算。
  • 維度的組合與下鉆。
  • 千萬級數(shù)據(jù)量級上秒級的智能返回。

圖片

接下來舉例說明上述歸因過程。在實際業(yè)務(wù)中,假設(shè)支付成功率從 80% 下降到 60%,如果按照城市的維度,通過將變化量分配給各個城市從而進行歸因診斷,即先計算上海 -15%,北京 -34%,廣州 -16%。然后,將這些城市的變化量除以整體變化量(-20%),得到上海為支付成功率下降貢獻了 75%,北京貢獻了 170%,廣州貢獻了 80% 的結(jié)論。這樣的計算方法是存在問題的,因為城市的貢獻求和并不等于 100%。正確的邏輯應(yīng)該是在計算每個城市的貢獻時,考慮每個城市的分子分母的情況。因此,上海實際在支付成功率上沒有變化,是一個分子分母等比率縮放的情況;而北京和廣州則是都下降了10%,為整體變化量(-20%)各自貢獻了 50%。

通過這樣逐層拆解,可以清晰地看到每個因子對整體的貢獻,解釋具體的變化是由分子還是分母引起的,是由比率變化還是占比變化引起的。這種逐層拆解的邏輯為我們提供了一個全局可比的歸因結(jié)論,有助于向業(yè)務(wù)做出清晰的解釋。

圖片

在實際應(yīng)用中,我們總結(jié)出四類方法,用于處理不同的業(yè)務(wù)場景:

  • 控制變量法,適用于簡單的四則運算場景。
  • 鏈?zhǔn)椒▌t,可用于處理復(fù)雜的四則運算。
  • Shapley 值法,適用于連乘場景,我們將其視為合作博弈問題來解決。
  • 比率類型法(前文講述的內(nèi)容)。

這些方法在業(yè)務(wù)的實際應(yīng)用中表現(xiàn)出色,取得了顯著的效果。

圖片

在剛剛的歸因過程中,雖然將問題歸因到城市維度,但并沒有明確解釋支付成功率下降的具體原因。因此,需要進一步對因子進行歸因,主要分為三個部分:

  • 首先是歸因的維度,包括城市等。
  • 其次是內(nèi)部因子,如促銷活動、營銷手段以及運維場景中的一些動作。
  • 最后是外部因子,包括通用因素,如疫情、天氣、突發(fā)事件等,還包括特殊業(yè)務(wù)場景、出行場景等。

整個歸因過程會生成一個多元因子庫,基于這個庫,我們重新審視支付成功率下降的問題,得出結(jié)論。例如,我們發(fā)現(xiàn)北京和廣州的下降是因為受到疫情影響,大學(xué)生提前放假導(dǎo)致支付成功率下降。業(yè)務(wù)方得到這一結(jié)論后,可以做出相應(yīng)的判斷和策略調(diào)整,采取營銷手段或其他措施,以解決支付成功率下降的問題,重新提升業(yè)務(wù)。

二、異常檢測

1. 單指標(biāo)異常檢測

圖片

接下來介紹一下異常檢測,首先從單指標(biāo)異常檢測入手。在實際業(yè)務(wù)中,業(yè)務(wù)方關(guān)心的是監(jiān)控指標(biāo)何時開始異常告警,以及異常告警何時結(jié)束。如果我們能夠了解指標(biāo)的正常波動區(qū)間,就能夠解決這個問題,將告警信息實時、準(zhǔn)確地反饋給業(yè)務(wù)方。

圖片

計算一個指標(biāo)的正常波動區(qū)間可以借鑒 STL 時區(qū)分解的思路:

首先采用 STL 中通用的 lowess 函數(shù)進行趨勢提取,同時提取周期信息,即識別時序中包含的周期以及周期的長度(例如,7 天、30 天、周、月、季度、年、小時等),這里我們借鑒論文中的 FFT 加 ACF 處理邏輯,可以識別出周期。

識別了周期后,下一步是提取周期波形。通過很好地提取周期波形并疊加周期,就能夠有效地進行檢測。

在提取周期波形時,由于周期波形受到營銷活動的影響,振幅可能發(fā)生變化,因此還需要引入一些檢測方法進行分段處理,最終獲得相對完整的周期波形進行后續(xù)處理。

圖片

上圖展示了一個真實案例:根據(jù)業(yè)務(wù)配置的異常敏感度動態(tài)調(diào)整基線的上下限,識別并監(jiān)控異常告警的整個生命周期。我們能夠清晰地追蹤何時進入異常狀態(tài),以及何時恢復(fù)正常。整個過程都能夠被有效監(jiān)控。

圖片

在這個智能告警的案例中,當(dāng)系統(tǒng)觸發(fā)告警時,可以追溯到異常發(fā)生的時刻,隨著告警持續(xù)推移,最終系統(tǒng)恢復(fù)正常,即自動關(guān)閉相應(yīng)的告警單。這樣一來,運維團隊就不必花費過多精力處理那些自動關(guān)閉的告警,而能夠集中精力處理更為緊急的運維任務(wù)。

在實際應(yīng)用中,我們的系統(tǒng)在異常檢測方面有著優(yōu)異的表現(xiàn):

  • 支持多敏感度的調(diào)控,用戶可以根據(jù)需要調(diào)整異常檢測的敏感度,以求告警更少或更精準(zhǔn)。
  • 支持在線實時的反饋調(diào)優(yōu)機制,用戶可以通過打標(biāo)告訴我們單子是否已經(jīng)恢復(fù),是否是誤報或者是精準(zhǔn)的,從而實時調(diào)整正常指標(biāo)的波動區(qū)間。
  • 支持無監(jiān)督的增量指標(biāo)接入,能夠快速接入并實時進行檢測。
  • 系統(tǒng)支持全生命周期的監(jiān)控,并能夠毫秒級地處理,滿足業(yè)務(wù)性能要求。

2. 多指標(biāo)異常檢測

圖片

接下來介紹多指標(biāo)異常檢測的應(yīng)用。在業(yè)務(wù)中,面對多個服務(wù)器每天產(chǎn)生大量的指標(biāo)數(shù)據(jù),業(yè)務(wù)方通常關(guān)心如何對每臺服務(wù)器進行綜合評分,以判斷其是否異常。如圖中,縱軸表示不同的服務(wù)器,每層代表一個服務(wù)器,橫軸表示時間。隨著時間的推移,每臺服務(wù)器都會產(chǎn)生多個指標(biāo)的數(shù)據(jù)值。

圖片

我們把這個問題定義一下:

  • X^j:第 j 個服務(wù)器的時間序列數(shù)據(jù)矩陣。
  • X ?_k^j:第 j 個服務(wù)器的第 k 個指標(biāo)時序數(shù)據(jù)。
  • X ?_ki^j:第 j 個服務(wù)器的第 k 個指標(biāo) i 時刻取值。

上述由時間序列構(gòu)成的數(shù)據(jù)矩陣 X^j 能夠全面描述一臺服務(wù)器在每個時刻的狀態(tài)。那么問題就轉(zhuǎn)化成了:如果我們能夠表征出一個整體評分,即為每臺服務(wù)器 X^j 打一個分?jǐn)?shù),那么就能綜合反映出該服務(wù)器是否出現(xiàn)異常。

接下來將介紹三種方法:

  • VBEM 算法
  • AnoSVGD 算法
  • Autoformer 算法

圖片

VBEM 是基于變分推斷(Variational Inference)的期望最大化(Expectation-Maximization)算法。通過隱狀態(tài) q 分布來逼近真實后驗 p 的分布,結(jié)合 ELBO 證據(jù)下接的似然函數(shù)保證模型參數(shù)的收斂,整個過程是一個狀態(tài)轉(zhuǎn)移過程。如圖中,x_i 表示學(xué)習(xí)到的隱狀態(tài),m_0 和 P_0 是模型的初始參數(shù)(均值和斜方差)。最終要學(xué)到的參數(shù)是 A、C、Q、R、μ_1^x、Σ_1^x,分別對應(yīng)狀態(tài)轉(zhuǎn)移中的權(quán)重、均值和協(xié)方差的分布,其中 Σ_1^x 是協(xié)方差矩陣,包含方差信息和指標(biāo)之間的相關(guān)性,可以很好地表征多指標(biāo)的信息。

圖片

AnoSVGD 方法是我們在 CIKM 2023 年會議上發(fā)表的一篇論文。其核心思想是通過映射變換,用已知數(shù)據(jù)的概率密度函數(shù)(Probability Density Function,PDF),多次迭代估計未知數(shù)據(jù)的概率密度函數(shù)(PDF)。通過觀察右側(cè)的圖可以看到,在多次迭代之后,模型能夠有效地表征未知數(shù)據(jù)的分布。每次迭代時,基于前一次的結(jié)果,加上一個小的步長和下降方向 θ,通過梯度下降找到最快的下降方向,從而進行迭代。這樣,我們能夠快速地找到未知數(shù)據(jù)的分布,并在達到目標(biāo)后停止迭代。

圖片

Autoformer 算法的核心在于采用了時序分解的思想,類似于 Transformer 中的self-attention 機制:

  • Autoformer 通過 Auto-Correlation 獲取數(shù)據(jù)中的周期信息。
  • 有了周期信息,Autoformer 通過分解的方式將周期波形和趨勢提取出來。
  • 在 decoder 階段,通過多次迭代輸出預(yù)測值。這里計算 auto collaboration 時采用了與之前周期識別相一致的思想,即使用 FFT 和 ACF。

圖片

以上三種方法在完成訓(xùn)練之后,檢測階段分別需要處理的操作是:

  • VBEM 算法,通過訓(xùn)練隱狀態(tài)來生成下一個時刻的預(yù)測值,該預(yù)測值與真實值之間的差值滿足自由度為 k-1 的卡方分布。結(jié)合業(yè)務(wù)配置的異常敏感度,我們可以識別出哪些點屬于異常點,即是否落在異常區(qū)域內(nèi)。這里的 k-1 的自由度相當(dāng)于是服務(wù)器上不同監(jiān)控指標(biāo)的數(shù)量。
  • AnoSVGD 算法,估計概率密度函數(shù)(PDF)后,結(jié)合業(yè)務(wù)敏感度來判斷哪些值位于低概率密度區(qū)域,從而進行異常點識別。
  • Autoformer 算法,與 VBEM 方法類似,也關(guān)注預(yù)測值和真實值之間的差異,滿足自由度為 k-1 的卡方分布。在這個基礎(chǔ)上結(jié)合業(yè)務(wù)敏感度來識別異常點。

圖片

上述內(nèi)容為我們在 CIKM 會議上發(fā)表的AnoSVGD 方法與其他方法例如 Autoformer、KDE 等方法在公開數(shù)據(jù)集上的對比結(jié)果,我們的 AnoSVGD 取得了非常出色的效果。

圖片

在多指標(biāo)異常檢測之后,仍然需要了解每個指標(biāo)對當(dāng)前異常的貢獻度,這就要結(jié)合之前提到的歸因診斷能力。例如,在一臺機器上發(fā)生了多個指標(biāo)的異常,發(fā)現(xiàn)平均響應(yīng)時間(RT)和失敗率是主要貢獻異常的核心指標(biāo)。通過歸因診斷,就可以得出結(jié)論:在請求量正常的情況下,平均響應(yīng)時間和失敗率上升,明顯屬于超時類異常。這種異常一般與部署發(fā)布版本更新相關(guān),因此建議 SRE(運維同學(xué))執(zhí)行發(fā)布回滾操作。

在實際應(yīng)用中,我們已經(jīng)實現(xiàn)了一些常規(guī)操作的自動執(zhí)行,例如回滾操作。一旦檢測到異常并關(guān)聯(lián)到歸因結(jié)論后,可以通過自動化手段自動回滾機器,恢復(fù)到正常狀態(tài)。

圖片

整體的異常檢測和歸因診斷的過程總結(jié)如下:

  • 模型訓(xùn)練、使用不同的算法模型進行訓(xùn)練。
  • 最終進行模型預(yù)測,進行異常點檢測。
  • 獲得檢測結(jié)果后,計算其貢獻度并進行歸因診斷,找出導(dǎo)致異常的具體原因。

再次強調(diào),當(dāng)前我們的系統(tǒng):

  • 支持多敏感度調(diào)控
  • 支持在線實時調(diào)優(yōu),用戶可以實時反饋,在線實時進行調(diào)優(yōu)
  • 支持無監(jiān)督增量指標(biāo)的快速接入
  • 支持多粒度的時間數(shù)據(jù),目前主要以分鐘級和小時級為主
  • 支持實時歸因診斷
  • 支持秒級性能要求

圖片

除了之前提到的內(nèi)容,異常檢測和歸因診斷不僅可以應(yīng)用于單個業(yè)務(wù)或機器的異常,還可以應(yīng)用于整個集群。我們可以通過歷史告警信息,挖掘告警之間的因果關(guān)系圖,并結(jié)合服務(wù)調(diào)用圖,當(dāng)某臺服務(wù)器發(fā)生告警時,就可以通過異常檢測、歸因診斷和因果發(fā)現(xiàn)來分析整個服務(wù)器集群鏈路,快速定位整個服務(wù)集群中的問題鏈路,確定核心原因和根因。

三、問題與挑戰(zhàn)

圖片

最后,總結(jié)一下我們所面對的問題和挑戰(zhàn):

  • 在歸因診斷方面,存在辛普森悖論問題,即如何確保在對比時間區(qū)間內(nèi)我們所對比的人群是同質(zhì)的。如果人群不同質(zhì),那么我們得出的結(jié)論可能就失去了可信度。
  • 在異常檢測方面,在單指標(biāo)異常檢測中,可能會遇到頻幅泄露問題,導(dǎo)致趨勢周期的錯誤識別和不準(zhǔn)確性。此外,無論是單指標(biāo)還是多指標(biāo),都面臨非平穩(wěn)時序的問題。當(dāng)時序的趨勢和周期不斷變化時,我們需要思考如何解決這一問題。
責(zé)任編輯:姜華 來源: DataFunTalk
相關(guān)推薦

2015-10-15 21:03:04

螞蟻金服

2018-05-17 16:01:00

螞蟻金服金融數(shù)字化轉(zhuǎn)型

2020-11-10 09:30:48

分布式架構(gòu)系統(tǒng)

2016-08-31 10:55:30

螞蟻金服前端

2019-03-18 10:57:42

開源技術(shù) 軟件

2015-10-22 13:15:22

Docker私有云技術(shù)棧

2017-10-16 13:55:53

大數(shù)據(jù)

2018-07-16 16:41:11

螞蟻金服金融科技科技開放

2020-10-15 12:29:49

禁令黑名單螞蟻金服

2018-05-07 17:15:40

借貸寶

2015-10-19 10:07:18

螞蟻金服上市

2015-11-11 21:41:35

螞蟻金服雙11

2019-05-17 16:13:25

機器學(xué)習(xí)SQLFlow螞蟻金服

2019-10-06 23:57:08

OceanBase螞蟻金服TPC-C

2022-05-06 10:58:55

數(shù)據(jù)庫智能診斷

2023-11-09 07:17:51

數(shù)據(jù)指標(biāo)算法

2019-04-22 11:05:54

螞蟻金服面經(jīng)內(nèi)存

2015-10-16 15:58:37

支付寶刷臉馬云

2018-08-15 15:16:05

移動App

2018-05-14 14:07:57

點贊
收藏

51CTO技術(shù)棧公眾號