關於風控預警體系的搭建方案
之前的文章講了關於業務風控整體的一個架構和基本的思考方法,今天針對風控鏈路中的“風險發現”環節做一個系統的介紹,由此來幫助大家快速的發現異常,減少對應的業務損失,快速止血。
在開始介紹之前,我們先來看一下在通常情況下,預警系統都是如何設計和實現的:
一般的業務在做預警時,通常將 ” 快速發現異常 ” 作為核心問題去解決,通過一些預警規則的設定來進行異常的發現。
舉個例子:
當釋出量環比增加大於 15% ,同比增加大於 20% ,絕對值大於 3000 時給相關人員下發郵件 & 發簡訊 & 打電話進行預警。
這種預警方式有兩個比較大的弊端:
1、預警規則配置相對死板,閾值大多通過運營或運維人員拍腦袋,預警規則本質上也跟風控規則一樣,是需要提取有效特徵並且持續保證準召率的。可是絕大部分的預警系統設計只有少的可憐的特徵參考和幾乎永遠都不會去動的閾值。而且維護的指標越多,對應的運營成本越大,越到後面越難以維護。
2、這種預警方式只能定位 “異常”卻無法確認“風險”。比如說,當某一天的釋出量突然暴增,那麼按照這種設計方法,運營人員一定會收到相應的報警郵件,可能經過定位後,發現實際上是業務端做了拉新或促活的活動。那這個時候,預警其實只是發現了今天的釋出量是不同於平時的,但是關於這個異常到底是因為有黑產大規模攻擊還是業務正常增量其實是無從得知的。
所以因為這兩種弊端的存在,我們經常會在預警系統上線初期短暫的關注一下相關報警,時間長了以後,因為經常誤報和漏報,我們逐漸的就忽略了報警的存在,那預警系統存在的意義也就大打折扣。
基於上面的例子我們發現,當我們只考慮如何快速發現異常的時候,預警系統的效果是很難到我們的預期的,所以要想搭建一套有效的預警體系必須要解決兩個核心問題:
1. 如何快速發現異常
2. 如何準確定義風險
如何快速的發現異常
一、 通過核心指標的變化發現異常
無論我們在負責什麼樣的工作和專案,核心的指標趨勢都是我們關注的重點,一般當核心指標的曲線發生大幅變化的時候,我們就會意識到一些事情發生了,所以關於指標曲線的分析和預測是我們第一個發現異常的方法。
在這裡我們為了使異常點尋找的更準確,使用了一些演算法的能力來達到對核心指標的預測與異常點 / 片段定位的能力。
智慧預測與異常檢測的技術架構
離線部分:
在這部分裡,我們通過對一個指標原始資料進行標記,提取相應特徵,通過迴歸模型做出預測,通過分類模型做模型的輸出。
實時部分:
然後在實時的資料監控中呼叫離線產生的模型,標記出異常點和異常片段。
我們通過這種方法可以做到輸入任何一個核心的指標資料,只要這個指標是基於時序的並且週期變化的,就能比較準確的定位到異常的發生。
給大家看一下在實際工作中產生的效果:
普通異常:
嚴重異常:
陡變異常:
通過這樣的方法,我們可以幾乎無成本的擴充我們的監控範圍,可以將某一個指標繼續進行細分到最細粒度,也可以大幅擴充不同的指標用來輔助監控。這樣當發生異常的時候很容易被我們捕捉到並且定位到最細粒度。
二、 通過聚類手段發現異常
在風控領域,黑產或攻擊者為了使收益最大化,會最大限度的利用已有資源,這個資源可以是一段內容,一張圖片也可以是一個 ip ,一個手機號。所以因為這樣的原因,當發生風險的時候,一般會產生比較集中的聚集行為,可能是一樣的行為軌跡,一樣的手法,一樣的文字內容等等。所以聚類的分析也是一個發現異常的重要手段。
基於資源的聚類
當某一個資源頻繁的出現並且進行一些業務操作時,比如一個手機號,一個賬號。我們認為這存在一些異常行為。
基於內容的聚類
當某一段文字,某一張圖片頻繁的出現的UGC內容中時,我們認為裡面存在一些異常行為。
基於行為的聚類
當某一種行為軌跡頻繁的復現,我們也認為裡面存在著一些異常行為。
基於屬性或關係的聚類
通過一些社群挖掘或無監督學習的演算法,將一些實體聚整合一個簇或一個群組。當這個簇變得非常大的時候,這裡面有很大的可能性存在著異常行為。
通過聚類的方式,我們可以察覺到很多通過指標監測難以找到的異常,上面說的方法不是全部,可能還要根據更多維度的聚類行為都可以進行監測或者分析。這部分對於整個安全風險發現效果十分顯著。
三、通過其他手段的異常發現
除了針對指標資料的預測和異常提取、通過聚類的異常定位,還有很多其他的手段用於異常發現,比如是否有流暢的反饋機制,是否有前臺的巡檢或抽檢機制。這些機制都可以有效的幫助我們快速的發現異常,不同的手段覆蓋的範圍不盡相同,但是可以起到相互補充的作用,避免異常被隱藏造成業務影響。
這裡如果有其他行之有效的異常發現方式,也歡迎大傢俬信交流共同進步。
以上就是關於異常發現及定位的方法,有了異常只是預警的第一步,這個異常到底業務的正常波動還是一個重大風險才是我們關注的內容。
如何準確的定義風險
上面我們已經通過各種途徑獲取到了異常,那麼我們應該如何將這個異常做一個有效的定義呢?
說到定義,就一定會有人的參與,只有通過人的經驗才能有效的判斷出某次異常是不是個風險,但是如果定義的工作全部交於產品運營或者技術人員,人力的成本就會巨大,而且會被其他工作打斷或擱置。那既然必須有人的參與,為何不讓人力成本更低的稽核人員或者標註人員在無感知的狀態下完成異常的定義呢?所以我們採用的就是這樣一個相對取巧的方式。
風險定義流程
我們將通過各種方式收集到所有的異常拿出來,找到異常對應的實體,比如是資訊釋出量的異常,就拿到這個異常片段中對應的資訊;如果是聚類的異常,就會找到這個簇下的全部實體。將一次異常的實體進行實時的抽樣直接流轉入稽核平臺作為稽核任務,稽核人員就會在無感知的情況下去將相應實體進行稽核,得出的稽核結果就可以將這個異常對應的實體進行明確判斷。這樣就可以針對一次異常得出類似80%是虛假資訊, 20% 是正常資訊的結論。
得到結論後我們可以根據情況來靈活的調整正常資訊與虛假資訊比例的閾值,當閾值滿足一定的條件時,我們就可以將異常直接定義為風險。甚至可以根據各種異常發現的手段來明確的說明風險發生在什麼位置,有著什麼樣的具體表現。
以上就是關於風控預警體系搭建的一些心得和方法,我們通過“異常發現”和“定義風險”這兩個核心部分來產出靠譜的報警,這套體系因為可以產出明確的結論以及對應的實體分佈,在預警體系的下游還可以用一套智慧分析引擎去承接,根據產出的明確的正負樣本去自動結合現有風控特徵進行計算,通過準召率的篩選,產出對應的風控策略推薦或生效策略。這是後話,後面有時間會逐步分享給大家。
歡迎各位風控領域的小夥伴一起探討一起進步。