智能風(fēng)控決策引擎系統(tǒng)架構(gòu)設(shè)計與開發(fā)實(shí)踐
I.內(nèi)容提要
前幾天做客“技術(shù)瑣話”直播間進(jìn)行分享,本文根據(jù)分享內(nèi)容整理出來。內(nèi)容主要包括:- 風(fēng)控決策引擎系統(tǒng)從架構(gòu)設(shè)計到開發(fā)實(shí)踐
- 特征引擎系統(tǒng)及實(shí)時計算引擎
- 模型引擎系統(tǒng)及智能風(fēng)控引擎
- 大數(shù)據(jù)風(fēng)控-用數(shù)據(jù)驅(qū)動的風(fēng)控全流程系統(tǒng)構(gòu)建
Q:互金領(lǐng)域的風(fēng)險有哪些?
A:欺詐風(fēng)險 、 信用風(fēng)險、合規(guī)風(fēng)險(監(jiān)管要求)
Q:如何對抗風(fēng)險?
A:通過大數(shù)據(jù)來構(gòu)建規(guī)則和模型進(jìn)行風(fēng)險控制和風(fēng)險預(yù)警
Q:業(yè)務(wù)規(guī)則和模型策略 如何落地?
A:通過決策引擎承載規(guī)則和模型的自動化實(shí)施和部署

風(fēng)控決策引擎,支持規(guī)則和模型的配置、管理、執(zhí)行,支持通過專家經(jīng)驗(yàn)和大數(shù)據(jù)機(jī)器學(xué)習(xí)進(jìn)行風(fēng)險控制。如圖所示,風(fēng)控決策引擎作為風(fēng)控核心支撐組件,對風(fēng)控管控起到重要的決策作用。
決策引擎作為系統(tǒng),那么系統(tǒng)設(shè)計的功能目標(biāo)和性能目標(biāo)都有哪些?
II.風(fēng)控決策引擎開發(fā)設(shè)計1.從一條規(guī)則開始抽象建模
決策引擎就是將規(guī)則配置與程序代碼分離,那么首先就要將規(guī)則配置抽象化。
這里依賴于基礎(chǔ)運(yùn)算符操作。

根據(jù)特征類型不同,有不同的操作符。? ? ? ??

為了更好地系統(tǒng)易用性,需要進(jìn)一步實(shí)現(xiàn)可視化規(guī)則配置后臺。可視化后臺,使用關(guān)系型數(shù)據(jù)庫進(jìn)行數(shù)據(jù)管理,然后在“發(fā)布”時統(tǒng)一轉(zhuǎn)換為自定義特定領(lǐng)域語言 DSL。
此代碼詳細(xì)實(shí)現(xiàn)參閱:多條規(guī)則 集合在一起 組成一個規(guī)則集。2.規(guī)則集
規(guī)則集就是將所有規(guī)則打包一起執(zhí)行,它的執(zhí)行結(jié)果 = Max(Sort(規(guī)則執(zhí)行結(jié)果, 優(yōu)先級))
3.決策樹
用樹形結(jié)構(gòu)來展示和構(gòu)建規(guī)則

決策樹:可以拆解為規(guī)則執(zhí)行和執(zhí)行結(jié)果的組合決策


決策矩陣:包含橫向和縱向兩個維度的特征,通過兩個維度特征的不同限制,交叉決策其結(jié)果。4.決策矩陣

此代碼詳細(xì)實(shí)現(xiàn)參閱:
5.DSL 抽象總結(jié)

決策流:對不同的規(guī)則和決策進(jìn)行流程編排,類似工作流。6.決策流

決策流數(shù)據(jù)結(jié)構(gòu)選型:

Pipeline 模型:管道模型。用鏈?zhǔn)酱?lián)不同節(jié)點(diǎn)組件,組成直線工作流。

Rete 模型:構(gòu)建成網(wǎng)絡(luò)。區(qū)分alpha網(wǎng)絡(luò)和beta網(wǎng)絡(luò)。
此代碼詳細(xì)實(shí)現(xiàn)參閱:7.總結(jié)決策引擎架構(gòu)設(shè)計

III.風(fēng)控特征/指標(biāo)處理
決策引擎的決策離不開特征的支持,特征又源自業(yè)務(wù)數(shù)據(jù)或業(yè)務(wù)日志衍生,所以特征加工和衍生也是風(fēng)控開發(fā)重要的一環(huán)。先看看特征長什么樣?



特征引擎,也有叫變量平臺,為了保障風(fēng)控決策的高效性和實(shí)時性,特征獲取就必須足夠高效,那么特征加工計算分為讀時計算和寫時計算,寫時計算也叫預(yù)計算。對一些復(fù)雜聚合類特征,還有融合計算,使用 Lambda 架構(gòu)將聚合數(shù)據(jù)和明細(xì)數(shù)據(jù)再做計算。
保障系統(tǒng)高性能:
- 數(shù)據(jù)并發(fā)調(diào)用,并發(fā)計算
增加數(shù)據(jù)緩存,特征(計算結(jié)果)緩存
對計算處理耗時長的特征做預(yù)計算
融合計算:歷史聚合數(shù)據(jù)+最新明細(xì)數(shù)據(jù)進(jìn)行融合計算
異步化?,分離實(shí)時和準(zhǔn)實(shí)時
規(guī)則在準(zhǔn)入和反欺詐識別上有更好的應(yīng)用。而模型可以通過更多維度特征的評估,用于識別團(tuán)伙欺詐,識別信用風(fēng)控。
模型工作的基本前提:
具有相同特征的數(shù)據(jù)具有相同的結(jié)果;
歷史的數(shù)據(jù)與未來的數(shù)據(jù)遵循同樣的規(guī)律。
傳統(tǒng)建模方法:評分卡建模
基于大數(shù)據(jù)建模方法:機(jī)器學(xué)習(xí)、深度學(xué)習(xí)
關(guān)于評分卡建模詳細(xì)實(shí)現(xiàn)參閱:
V.可靠性保障

做好監(jiān)控和報警
系統(tǒng)灰度陪跑,一致性比對
新模型上線,先陪跑驗(yàn)證后進(jìn)行決策
策略發(fā)布,在決策流配置挑戰(zhàn)者小流量分支,灰度驗(yàn)證
線上數(shù)據(jù)引流測試
數(shù)據(jù)過程快照和結(jié)果快照,通過模型平臺回溯
熔斷限流,并設(shè)置默認(rèn)值兜底
制定 SLA?
...
VI.數(shù)據(jù)驅(qū)動智能風(fēng)控系統(tǒng)架構(gòu)全景圖

VII.QA環(huán)節(jié)
Q:開發(fā)特征就是 flink sql 嗎?
A:flink sql 對聚合類指標(biāo)特征能較好實(shí)現(xiàn)。除此外,還有代碼計算特征,融合計算特征等不同方式。
Q:規(guī)則引擎結(jié)果怎么回溯?
A:保存決策引擎計算時所有數(shù)據(jù)快照,特征,以及決策結(jié)果,通過回溯平臺回溯。
Q:怎么同時支持反欺詐場景和現(xiàn)金貸?
A:決策引擎是一種通用能力,通過與不同的規(guī)則和決策配置,可以支持不同的決策類型;決策引擎與業(yè)務(wù)之間通過業(yè)務(wù)中間件系統(tǒng)來進(jìn)行語義轉(zhuǎn)換。
Q:規(guī)則引擎用的哪家的?
A:自研的,golang 演示版 通過 DSL 抽象 + govaluate 計算實(shí)現(xiàn),java 版本還可以通過 groovy、drools 或 qlexpress 等開源實(shí)現(xiàn)。
Q:特征計算時三方數(shù)據(jù)怎么處理?
A:簡單的通過自動化配置解析結(jié)果字段,復(fù)雜的需要對結(jié)果進(jìn)行二次加工,通過代碼實(shí)現(xiàn)。在特征引擎完成數(shù)據(jù)處理。
Q:先跑特征還是先跑規(guī)則?
A:不同的業(yè)務(wù)場景有不同的實(shí)現(xiàn)方式,決策引擎需要同時兼容兩種方式。對一些簡單業(yè)務(wù)場景,可以將特征都加工好后一起送進(jìn)決策引擎,這樣可以更高效的出結(jié)果。而復(fù)雜決策流,可能會先配置內(nèi)部特征規(guī)則,如黑名單類,觸發(fā)就不再繼續(xù)執(zhí)行,通過內(nèi)部規(guī)則后可發(fā)起調(diào)用三方收費(fèi)數(shù)據(jù),加工特征,再進(jìn)行規(guī)則決策。
Q:模型特征和規(guī)則策略特征來自同一特征引擎嗎?
A:是的。有時特征和模型用的特征是一樣的。不過一般情況下模型用特征結(jié)構(gòu)更復(fù)雜,維度更多,所以一般特征引擎也會有類型區(qū)分和加工方式區(qū)分。
Q:人行征信數(shù)據(jù)怎么支持計算出不同特征?
A:人行征信數(shù)據(jù),需要先進(jìn)行解析,有時是?pdf 文本,這部分需要通過代碼來實(shí)現(xiàn),然后將解析好的特征存儲到高性能緩存中。挖掘出的特征可配置到?jīng)Q策引擎中,決策引擎執(zhí)行時依賴人行的特征,通過特征引擎獲取高性能緩存中的特征。
決策引擎代碼請關(guān)注公眾號??技術(shù)歲月?,發(fā)送關(guān)鍵字 決策引擎?獲取。感謝您的閱讀,歡迎大家點(diǎn)贊分享。