如何從0到1規(guī)劃和設(shè)計(jì)風(fēng)控決策引擎
編輯導(dǎo)語(yǔ):決策引擎是風(fēng)控運(yùn)營(yíng)、風(fēng)控策略重要的工具,本文從產(chǎn)品介紹、規(guī)劃、設(shè)計(jì)詳細(xì)描述了一款金融風(fēng)險(xiǎn)決策引擎產(chǎn)品從0到1的誕生,并且對(duì)風(fēng)控決策引擎做出了未來(lái)展望,一起來(lái)看一下吧。
一、產(chǎn)品介紹
在消費(fèi)金融業(yè)務(wù)場(chǎng)景中,決策引擎扮演的角色重要性不言而喻。作為風(fēng)控的大腦,決策引擎承載的是風(fēng)控業(yè)務(wù)的專(zhuān)家經(jīng)驗(yàn),基于變量和模型的輸入,經(jīng)過(guò)復(fù)雜的決策流邏輯運(yùn)算,最終輸出決策結(jié)果。決策引擎產(chǎn)品提供可視化操作,支持判斷邏輯的多種組合,流程鏈路配置,支持0開(kāi)發(fā)部署上線,使得策略迭代速度能夠得到最大的優(yōu)化。
決策引擎是風(fēng)控運(yùn)營(yíng)、風(fēng)控策略同學(xué)的工作臺(tái)。一款優(yōu)秀的決策引擎產(chǎn)品不僅能幫助風(fēng)控策略人員全生命周期管理決策,快速迭代策略,實(shí)現(xiàn)高效能的規(guī)則管理,靈活的流程配置,還能降低開(kāi)發(fā)人員的維護(hù)成本,釋放開(kāi)發(fā)人效。
筆者在金融行業(yè)的從業(yè)經(jīng)歷中,經(jīng)歷過(guò)從1到100的決策引擎的優(yōu)化迭代,也經(jīng)歷過(guò)從0到1決策引擎的規(guī)劃和起步。本文重點(diǎn)介紹如何從0到1規(guī)劃和落地一款風(fēng)險(xiǎn)決策引擎。
二、產(chǎn)品規(guī)劃
決策引擎要從0到1落地,一方面需要產(chǎn)品經(jīng)理要具備很強(qiáng)的風(fēng)控業(yè)務(wù)sense,能深入理解風(fēng)險(xiǎn)決策全流程,掌握決策組件的構(gòu)成機(jī)制;另一方面,需要掌握如何打造決策引擎的MVP(最小可行性產(chǎn)品)的1.0版本,以及規(guī)劃到2.0以及3.0版本。
我們先來(lái)了解下 金融信貸風(fēng)控業(yè)務(wù)的主流程(各公司不同產(chǎn)品決策流程會(huì)有細(xì)微差異,但基本主干一致):
決策引擎最底層的抽象就是利用系統(tǒng)配置出可執(zhí)行的決策流。決策流的組成結(jié)構(gòu)可抽象成:變量:最小的原子組件,也稱(chēng)指標(biāo),比如 年齡,性別,放款金額,逾期天數(shù),信用分等。
- 規(guī)則:規(guī)則由變量經(jīng)過(guò)組合加上閾值邏輯后形成,一般有單變量規(guī)則和多變量規(guī)則,比如某條單變量準(zhǔn)入規(guī)則:年齡 < 18 或者 年齡 > 55 則拒絕
- 規(guī)則集:規(guī)則集是一系列規(guī)則的集合,或者叫一個(gè)決策節(jié)點(diǎn),比如我們會(huì)把多個(gè)準(zhǔn)入規(guī)則集合在一起稱(chēng)為 準(zhǔn)入規(guī)則集,或者反欺詐規(guī)則集
- 決策流:決策流是根據(jù)決策節(jié)點(diǎn)(規(guī)則集)按照先后順序或者分流順序連接而成的一個(gè)決策模塊。比如 申請(qǐng)決策流包括準(zhǔn)入規(guī)則集,反欺詐規(guī)則集等,授信決策流模塊包括額度規(guī)則集等。一般消費(fèi)分期業(yè)務(wù)還有 支付決策流等。
很明顯,決策引擎的MVP,即1.0版本要實(shí)現(xiàn)以上流程和組件的可配置化,跑通風(fēng)險(xiǎn)主流程。
第一階段:構(gòu)建決策引擎MVP
功能模塊包括:指標(biāo)管理 + 規(guī)則配置 + 決策流配置
在實(shí)現(xiàn)以上功能模塊后,基本上可以形成業(yè)務(wù)主流程閉環(huán),投產(chǎn)使用。在具體的業(yè)務(wù)需求上,我們規(guī)劃出后續(xù)幾個(gè)階段的功能模塊。
第二階段:支持更多組件和靈活配置
功能模塊包括:組件管理(規(guī)則+評(píng)分卡+模型) + SQL代碼配置規(guī)則
第三階段:完善數(shù)據(jù)和監(jiān)控服務(wù)
功能模塊包括:名單管理 + 征信源管理 + 決策監(jiān)控
第四階段:抽象公用,支持更多產(chǎn)品線
功能模塊包括:產(chǎn)品管理 + 決策流配置 + 決策流復(fù)用
基于以上四個(gè)階段的規(guī)劃,基本形成了一個(gè)自用決策引擎,能滿足絕大多數(shù)風(fēng)險(xiǎn)業(yè)務(wù)的需求。
三、產(chǎn)品設(shè)計(jì)
基于以上四個(gè)階段的迭代后,最終呈現(xiàn)的是一個(gè)相對(duì)完整的決策引擎產(chǎn)品,包括:
指標(biāo)管理,組件管理,決策流配置,數(shù)據(jù)管理,決策監(jiān)控,權(quán)限管理,產(chǎn)品管理
各個(gè)功能模塊的主要功能點(diǎn)如下:
1.?指標(biāo)管理
由業(yè)務(wù)方根據(jù)實(shí)際業(yè)務(wù)提出相應(yīng)需求,后端開(kāi)發(fā)完成后,在引擎內(nèi)部進(jìn)行配置、測(cè)試、組合新指標(biāo)等管理功能。指標(biāo)管理分為 指標(biāo)維護(hù),指標(biāo)測(cè)試,指標(biāo)搜索功能模塊。
指標(biāo)維護(hù):
1) 展示所有目前庫(kù)中指標(biāo),可以根據(jù)指標(biāo)名稱(chēng)、征信源、指標(biāo)分類(lèi)來(lái)搜索指標(biāo)
點(diǎn)擊指標(biāo)名可以看到指標(biāo)的開(kāi)發(fā)邏輯;
2) 新增指標(biāo):進(jìn)入指標(biāo)編輯頁(yè)面,填寫(xiě)下表信息及開(kāi)發(fā)邏輯;
3) 編輯指標(biāo):進(jìn)入指標(biāo)編輯頁(yè)面,對(duì)已有信息進(jìn)行編輯;
4) 上線指標(biāo):確認(rèn)指標(biāo)無(wú)誤后,點(diǎn)擊上線,規(guī)則等可以正常使用;
5) 下線指標(biāo):下線后,線上有使用此指標(biāo)的的規(guī)則將失效;在使用中的字段,點(diǎn)擊下線后需要提示警告;
注:
1) 指標(biāo)會(huì)在后續(xù)規(guī)則管理中編輯時(shí)使用,如后臺(tái)無(wú)相應(yīng)字段,規(guī)則無(wú)法正常使用。
2) 變量類(lèi)型為選項(xiàng):INT/FLOAT/STRING/ARRAY等。
3) 默認(rèn)值:在變量開(kāi)發(fā)時(shí)約定每個(gè)字段的默認(rèn)值。
4) 變量分類(lèi):對(duì)變量進(jìn)行分類(lèi),可以選擇多個(gè),搜索時(shí)可以根據(jù)分類(lèi)挑選。
5) 是否依賴征信源:變量是否用到征信源,如有選擇征信源名稱(chēng)。
6) 是否使用中:在線上的策略中是否有用到這個(gè)字段,此項(xiàng)不可編輯。
指標(biāo)測(cè)試:
1) 輸入測(cè)試:選取所需要測(cè)試的指標(biāo),輸入所依賴的數(shù)據(jù)源內(nèi)容,獲取字段結(jié)果;
2) 批量測(cè)試:隨機(jī)從線上數(shù)據(jù)中獲取數(shù)據(jù),批量獲取字段結(jié)果;
指標(biāo)搜索:
1) 根據(jù)指標(biāo)名稱(chēng)可以搜索相應(yīng)指標(biāo),采用聯(lián)想搜索
2) 根據(jù)分類(lèi)可以搜索類(lèi)別下所有字段
2. 規(guī)則管理
將指標(biāo)根據(jù)邏輯進(jìn)行組合成規(guī)則,再將規(guī)則組合成以下內(nèi)容:
規(guī)則、規(guī)則表、評(píng)分卡、復(fù)雜模型、決策樹(shù)
測(cè)試完成后在決策流中使用。
1)組件管理
規(guī)則:根據(jù)指標(biāo),選擇表達(dá)式、指定條件值,得到輸出的決策結(jié)果(規(guī)則決策結(jié)果為T(mén)rue/False):
- 頁(yè)面式:通過(guò)網(wǎng)頁(yè)實(shí)現(xiàn)拖拽式操作
- 腳本式:為熟悉代碼的操作人員預(yù)留腳本編輯規(guī)則的空間。
數(shù)學(xué)、文本表達(dá)式:>,<,=,>=,<=,!=,in, not in ,contain, not contain, isnull , isnotnull(后續(xù)可根據(jù)業(yè)務(wù)需求添加)
邏輯表達(dá)式:&, || (后續(xù)可根據(jù)業(yè)務(wù)需求添加)
操作頁(yè)面:
(1) 輸入規(guī)則代號(hào)、名稱(chēng)、注釋保存;(每個(gè)代號(hào)都是唯一);
(2) 編輯規(guī)則邏輯:選擇指標(biāo),選擇表達(dá)式,輸入條件值;選擇邏輯關(guān)系,增加條件;(選擇時(shí)通過(guò)關(guān)鍵字搜索或通過(guò)下拉框,選擇相應(yīng)指標(biāo))
(3) 測(cè)試:輸入對(duì)應(yīng)指標(biāo)值,點(diǎn)擊測(cè)試獲取測(cè)試結(jié)果;
(4) 測(cè)試完成后,點(diǎn)擊發(fā)布,將組件生效;
(5) 測(cè)試中如果遇到問(wèn)題,需要展示錯(cuò)誤原因(例:某字段輸入值不正確)
規(guī)則配置頁(yè)面:
規(guī)則生成代碼編輯頁(yè)面:
2)規(guī)則表:根據(jù)規(guī)則,選擇邏輯關(guān)系,得到輸出的決策結(jié)果(可以為多個(gè)結(jié)果,文本、數(shù)值等):
邏輯關(guān)系:&, ||,contain, not contain
(1) 輸入規(guī)則表代號(hào)、名稱(chēng)、注釋保存;(每個(gè)代號(hào)都是唯一);
(2) 先配置兜底結(jié)果(默認(rèn)值);
(3) 點(diǎn)擊新增一行條件,在左側(cè)選取規(guī)則,選擇邏輯關(guān)系,右側(cè)配置指定輸出參數(shù);(選擇時(shí)通過(guò)關(guān)鍵字搜索或通過(guò)下拉框,選擇相應(yīng)指標(biāo))
(4) 測(cè)試:輸入對(duì)應(yīng)指標(biāo)值(規(guī)則中用到的值),點(diǎn)擊測(cè)試獲取測(cè)試結(jié)果(所有出參部分);
(5) 測(cè)試完成后,點(diǎn)擊發(fā)布,將組件生效;
3)評(píng)分卡:根據(jù)字段,選擇表達(dá)式、指定條件值,得到輸出的決策結(jié)果(僅評(píng)分):
數(shù)學(xué)、文本表達(dá)式:>,<,=,>=,<=,!=,in, not in ,contain, not contain, isnull , isnotnull,
邏輯表達(dá)式:&, ||
(1) 輸入評(píng)分代碼,名稱(chēng)和注釋。(每個(gè)代號(hào)都是唯一);
(2) 選擇增加“評(píng)分項(xiàng)”,填寫(xiě)此項(xiàng)權(quán)重;
(3) 編輯左側(cè)選擇指標(biāo),表達(dá)式,在右側(cè)輸入Score;(選擇時(shí)通過(guò)關(guān)鍵字搜索或通過(guò)下拉框,選擇相應(yīng)指標(biāo))
(4) 整體評(píng)分卡(整體評(píng)分如何計(jì)算:最終得分 = 評(píng)分項(xiàng)1 * 權(quán)重1 + 評(píng)分項(xiàng)2 * 權(quán)重2 +…)和每個(gè)單一的評(píng)分項(xiàng),均可以測(cè)試,點(diǎn)擊評(píng)分項(xiàng),測(cè)試單獨(dú)評(píng)分項(xiàng),顯示此項(xiàng)內(nèi)指標(biāo);點(diǎn)擊空白處,測(cè)試整個(gè)評(píng)分卡,顯示所有指標(biāo);
(5) 測(cè)試完成后,點(diǎn)擊發(fā)布,將組件生效;
3. 決策流
將規(guī)則、規(guī)則表、評(píng)分卡、模型等進(jìn)行串聯(lián),形成決策流,實(shí)現(xiàn)對(duì)貸前、貸中、貸后或運(yùn)營(yíng)的全流程處理。
(1) 繪制決策流圖,設(shè)置節(jié)點(diǎn);
(2) 在節(jié)點(diǎn)中配置規(guī)則、規(guī)則表、評(píng)分卡等組件;(選擇時(shí)通過(guò)關(guān)鍵字搜索或通過(guò)下拉框,選擇相應(yīng)組件)
(3) 在節(jié)點(diǎn)中允許配置:A/B Test(設(shè)置命中比例)、命中但不執(zhí)行決策結(jié)果、控制征信源啟用;
(4) 允許復(fù)制決策流,復(fù)制的決策流包含所有使用內(nèi)容;
(5) 點(diǎn)擊發(fā)布前對(duì)決策流整體流程進(jìn)行在測(cè)試環(huán)境進(jìn)行測(cè)試,確保流程沒(méi)有任何問(wèn)題,后進(jìn)行預(yù)發(fā)布。
(6) 點(diǎn)擊預(yù)發(fā)布,查看發(fā)布后結(jié)果,無(wú)問(wèn)題正式發(fā)布上線;
(7) 選擇節(jié)點(diǎn)時(shí),可以查看到其所用到規(guī)則、規(guī)則表、評(píng)分卡等組件,點(diǎn)擊相應(yīng)組件可以直接去到對(duì)應(yīng)的組件頁(yè)面
版本管理
規(guī)則、規(guī)則集、評(píng)分卡等組件和決策流,在測(cè)試完成后都需要進(jìn)行發(fā)布生效。
(1) 預(yù)發(fā)布:在正式發(fā)布前,有一道預(yù)發(fā)布,決策會(huì)同時(shí)運(yùn)行線上正式版本和預(yù)發(fā)布的版本,待觀察預(yù)發(fā)布版本無(wú)問(wèn)題后,點(diǎn)擊正式發(fā)布,替換線上版本。
(2) 版本回退:保留之前版本,點(diǎn)擊發(fā)布,允許舊版本替換現(xiàn)有線上版本
(3) 可以新增一個(gè)版本,也可以編輯當(dāng)前版本,但編輯當(dāng)前版本保存后自動(dòng)會(huì)生成新的版本;
4. 數(shù)據(jù)管理
數(shù)據(jù)管理分為 名單管理和外部數(shù)據(jù)源管理兩個(gè)功能模塊
1)名單管理
在頁(yè)面中維護(hù)(新增、刪除、修改)客戶名單,分黑、白、灰3類(lèi)。支持名單的新增,修改,上傳,查看來(lái)源,禁用以及修改記錄。
2)外部數(shù)據(jù)管理
管理外部數(shù)據(jù)源,控制數(shù)據(jù)源是否調(diào)用,以及調(diào)用節(jié)點(diǎn)
5. 決策監(jiān)控
針對(duì)線上使用內(nèi)容,進(jìn)行數(shù)據(jù)監(jiān)控,并可以進(jìn)行報(bào)警。
1、 監(jiān)控線上決策內(nèi)容是否報(bào)錯(cuò),如有問(wèn)題,按小時(shí)顆粒度進(jìn)行報(bào)警;
2、 監(jiān)控征信源數(shù)據(jù)是否異常;如:開(kāi)關(guān)關(guān)閉,仍有調(diào)用;
3、 可以選取對(duì)應(yīng)的決策流節(jié)點(diǎn),選擇時(shí)間端,查的策略命中情況;
6. 權(quán)限管理
權(quán)限管理是通用的模塊,業(yè)內(nèi)比較成熟,一般產(chǎn)品會(huì)基于用戶,角色,資源三個(gè)維度來(lái)設(shè)計(jì)權(quán)限管理模塊。滿足風(fēng)控決策引擎如下功能即可:
設(shè)置管理員、用戶、設(shè)置權(quán)限組(角色),對(duì)相關(guān)用戶或組配置相對(duì)應(yīng)的頁(yè)面(資源)權(quán)限。
1、 管理員:最大的使用權(quán)限, systemadmin
2、 用戶:普通使用人員,可單獨(dú)配置相應(yīng)權(quán)限;
3、 角色(權(quán)限組): 根據(jù)組配置相應(yīng)權(quán)限,下屬用戶能直接獲取相應(yīng)權(quán)限;
7. 產(chǎn)品管理
對(duì)產(chǎn)品進(jìn)行區(qū)分,每個(gè)產(chǎn)品有單獨(dú)的決策流分支,對(duì)所屬規(guī)則、字段進(jìn)行組合配置。
1)維護(hù)產(chǎn)品(新增、刪除、修改產(chǎn)線名稱(chēng))
2)維護(hù)事件(新增、刪除、修改事件類(lèi)型)
3)產(chǎn)品下只能看到本產(chǎn)品下的事件。但允許復(fù)制產(chǎn)品下事件至另一產(chǎn)品下,保留本事件下所有內(nèi)容。
總結(jié)一下 決策引擎的功能模塊:
四、發(fā)展展望
金融風(fēng)控決策引擎產(chǎn)品的前身來(lái)自于規(guī)則引擎,是規(guī)則引擎在金融場(chǎng)景的應(yīng)用。金融場(chǎng)景決策引擎的鼻祖當(dāng)屬FICO推出的Blaze,在互聯(lián)網(wǎng)金融出現(xiàn)前,傳統(tǒng)金融機(jī)構(gòu)幾乎清一色使用的是商用的Blaze產(chǎn)品。
隨著互聯(lián)網(wǎng)金融,金融科技,大數(shù)據(jù),實(shí)時(shí)場(chǎng)景的到來(lái),Blaze已經(jīng)不能滿足多樣化個(gè)性化風(fēng)控場(chǎng)景的需求,各家大廠紛紛自研決策引擎,比如美團(tuán)的Zeus規(guī)則引擎,螞蟻的智能風(fēng)控引擎AlphaRisk,攜程Argis風(fēng)控引擎等,都是業(yè)界優(yōu)秀的決策引擎產(chǎn)品,值得每一個(gè)風(fēng)險(xiǎn)/數(shù)據(jù)產(chǎn)品經(jīng)理 研究。
在開(kāi)源社區(qū)也涌現(xiàn)出很多開(kāi)源優(yōu)秀的規(guī)則引擎產(chǎn)品,比如drools,urule,radar等,一般中小型公司會(huì)直接參考開(kāi)源引擎,在此基礎(chǔ)上二次開(kāi)發(fā)來(lái)滿足自身風(fēng)控業(yè)務(wù)的需求。業(yè)界自研加上開(kāi)源支持,讓決策引擎產(chǎn)品不斷發(fā)展完善。
金融風(fēng)控只是規(guī)則引擎的一個(gè)應(yīng)用場(chǎng)景,風(fēng)險(xiǎn)領(lǐng)域或廣義上的大安全領(lǐng)域還包含 交易風(fēng)控,內(nèi)容風(fēng)控,流量風(fēng)控。多種復(fù)雜的業(yè)務(wù)風(fēng)控場(chǎng)景都需要一款規(guī)則引擎來(lái)進(jìn)行策略的快速迭代。
未來(lái)隨著更多場(chǎng)景的應(yīng)用,規(guī)則引擎也會(huì)不斷進(jìn)化,展望下更高階的規(guī)則引擎,未來(lái)可能的兩個(gè)發(fā)展方向:
- 實(shí)時(shí)化:大數(shù)據(jù)發(fā)展,計(jì)算能力的發(fā)展,將提升現(xiàn)有決策引擎的算力和處理時(shí)效
- 智能化:在現(xiàn)有的風(fēng)控決策引擎上融入了自言語(yǔ)言處理平臺(tái)、流計(jì)算平臺(tái)、實(shí)時(shí)預(yù)警、深度學(xué)習(xí)、可視化科學(xué)計(jì)算等,比如風(fēng)控規(guī)則的自動(dòng)探索生成。
智能規(guī)則引擎或許在不遠(yuǎn)的將來(lái)會(huì)引領(lǐng)人們走向一種新的思維模式與編程行為,一切皆規(guī)則,人們要做的事情就是把能夠采集到的業(yè)務(wù)數(shù)據(jù)直接扔給智能決策引擎,剩下的,就讓智能決策引擎自己去處理吧。
本文由 @乘風(fēng)隨行 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理,未經(jīng)許可,禁止轉(zhuǎn)載。
題圖來(lái)自Unsplash,基于CC0協(xié)議
最近在做銀行的風(fēng)控項(xiàng)目,研究過(guò)多家決策引擎,作者提到的社區(qū)開(kāi)源版本drools和urule,也試用過(guò)一段時(shí)間,但是感覺(jué)有點(diǎn)力不從心,可能這是小公司的悲劇吧,自研實(shí)力和時(shí)間投入成本等不允許我們想太多,經(jīng)過(guò)多方權(quán)衡,最終采購(gòu)了上海銳道公司商業(yè)版本uRule pro,基本上滿足項(xiàng)目緊迫性需求。
大神,一般消金或者小貸公司,是自己做決策引擎呢,還是購(gòu)買(mǎi)第三方產(chǎn)品呢?
正好最近在做風(fēng)控系統(tǒng),剛剛?cè)腴T(mén),學(xué)習(xí)了
對(duì)決策流具體的應(yīng)用場(chǎng)景有些疑問(wèn):比如一個(gè)借貸產(chǎn)品,是一個(gè)決策流串聯(lián)起這個(gè)產(chǎn)品全鏈路的風(fēng)控流程嗎?還是多個(gè)
信貸風(fēng)控一般會(huì)有多個(gè)決策流,比如按照產(chǎn)品,按照新老戶,會(huì)走不同的決策流。同一決策流 也可在某節(jié)點(diǎn)進(jìn)行分流,這要視具體的風(fēng)控流程來(lái)看。決策引擎本質(zhì)上是配置風(fēng)控流程。
謝謝,最近在做決策引擎產(chǎn)品的調(diào)研,方便加個(gè)微信交流嗎?本人在某電商平臺(tái)工作,下面的微信添加不了
看到了新的,已添加
付費(fèi)購(gòu)買(mǎi)一套 也可以!QQ511180544
內(nèi)容中的 產(chǎn)品原型頁(yè)面 能否分享一套!感謝!
歡迎數(shù)據(jù)同行 微信交流 pengyaxing
這個(gè)微信搜索不到呀
ericpeng1024
在消費(fèi)金融業(yè)務(wù)場(chǎng)景中,決策引擎扮演的角色重要性不言而喻