金融風(fēng)控:如何提升決策引擎的用戶(hù)體驗(yàn)與系統(tǒng)性能?
本篇主要講述決策引擎進(jìn)階之路的重要實(shí)踐,如何通過(guò)產(chǎn)品上的微創(chuàng)新和技術(shù)突破,實(shí)現(xiàn)工作效率、系統(tǒng)性能的革命性提升?踐行“技術(shù)賦能金融”的宗旨。進(jìn)階之路包含作者三年工作經(jīng)驗(yàn)的實(shí)踐與積累,所以整理分享,希望對(duì)大家也有幫助,開(kāi)始吧!
01 什么是決策引擎
決策引擎是對(duì)復(fù)雜的業(yè)務(wù)邏輯抽象化剝離出來(lái)的業(yè)務(wù)規(guī)則進(jìn)行不同的分支組合、關(guān)聯(lián),然后層層規(guī)則遞進(jìn)運(yùn)算,最終輸出決策結(jié)果的產(chǎn)品。
為政策分析師(Business Analyst,簡(jiǎn)稱(chēng)BA)、模型分析師(Model Analyst,簡(jiǎn)稱(chēng)MA)等業(yè)務(wù)人員提供指標(biāo)管理、模型部署、決策流配置及動(dòng)態(tài)更新服務(wù)。應(yīng)用于貸前、貸中和貸后的風(fēng)控評(píng)估、處理及預(yù)警,極大地解放人工處理的瓶頸與效率。
圖:決策引擎主要特性
決策輸入為稱(chēng)為指標(biāo)(如,性別、年齡等),決策結(jié)果分為絕對(duì)風(fēng)險(xiǎn)與相對(duì)風(fēng)險(xiǎn):
1、對(duì)于絕對(duì)風(fēng)險(xiǎn),決策引擎的輸出結(jié)果是“拒絕”,即命中則拒絕;
2、對(duì)于相對(duì)風(fēng)險(xiǎn),決策引擎的有兩種輸出結(jié)果:一類(lèi)是風(fēng)險(xiǎn)評(píng)分,用于衡量風(fēng)險(xiǎn)大小,風(fēng)險(xiǎn)評(píng)分越高,風(fēng)險(xiǎn)越大;一類(lèi)是信用評(píng)分,用于衡量信用資質(zhì),信用評(píng)分越高,資質(zhì)越好;
由于風(fēng)控平臺(tái)具有很強(qiáng)的技術(shù)壁壘,決策引擎成為公司金融科技能力ToB輸出的重要突破口之一。如何讓決策引擎可以對(duì)標(biāo)主流的商業(yè)化產(chǎn)品成為團(tuán)隊(duì)探索的主要方向。
02 外在:提升用戶(hù)體驗(yàn)
通過(guò)對(duì)用戶(hù)和用戶(hù)操作的深入研究以及競(jìng)品分析,結(jié)合二八原則(80%的產(chǎn)品價(jià)值來(lái)自于20%的功能),“流程編排”、“模型部署”這兩個(gè)功能模塊成為打磨的主要方向。
1. 流程編排
從《用戶(hù)滿(mǎn)意度調(diào)查報(bào)告》進(jìn)行分析后發(fā)現(xiàn),決策流程編排是政策分析師(BA)最不滿(mǎn)意的功能,滿(mǎn)意度:3.0分(滿(mǎn)分5分)。主要存在的問(wèn)題:
1、頁(yè)面樣式老舊,布局不合理;
2、組件與組件之間的連接需要將線(xiàn)段連接到絕對(duì)中心位置;
3、畫(huà)板區(qū)域只能向下延展,配置復(fù)雜決策流程難度很大;
4、組件綁定唯一標(biāo)識(shí)需跨系統(tǒng)、跨屏、跨頁(yè)面操作;
5、JS腳本學(xué)習(xí)成本高,不提供代碼模板、單獨(dú)測(cè)試功能;
圖:舊版流程編排頁(yè)面
其實(shí)這些問(wèn)題從這個(gè)功能誕生起就一直存在。因?yàn)樵撉岸丝蚣懿捎玫氖茿ngularJS 1.0,這并不是公司常用的技術(shù)棧,且沒(méi)有豐富的組件,導(dǎo)致代碼修改難度極高。所以,我們開(kāi)始著手調(diào)研業(yè)務(wù)流程建??蚣?,計(jì)劃整體替換掉現(xiàn)有的模塊。
基于全新的產(chǎn)品設(shè)計(jì),我們實(shí)現(xiàn)了全新的流程編排功能。
主要特性:
- 全新的組件設(shè)計(jì)語(yǔ)言,用顏色和圖標(biāo)表達(dá)組件的含義;
- 全新屬性面板設(shè)計(jì),一個(gè)頁(yè)面內(nèi)即可完成流程編排;
- 小地圖功能,對(duì)流程一覽無(wú)余,快速定位;
- 全新的流程編輯畫(huà)板,布局合理、操作簡(jiǎn)單;
- 場(chǎng)景化、智能化的JS腳本編譯器,自動(dòng)解析所需入?yún)?,一鍵調(diào)試;
- 流程輸出結(jié)果自動(dòng)生成,無(wú)需手動(dòng)添加;
圖:全新的流程編排頁(yè)面
新功能上線(xiàn)后,用戶(hù)沒(méi)有任何換用成本,新體驗(yàn)超出了用戶(hù)預(yù)期,遠(yuǎn)遠(yuǎn)大于舊體驗(yàn)!
另外,我們基于新特性衍生出了讓用戶(hù)更興奮的功能:流程運(yùn)行過(guò)程的數(shù)據(jù)可視化。
在這之前,決策流程中的每個(gè)節(jié)點(diǎn)執(zhí)行情況對(duì)于用戶(hù)而言就是黑盒。新功能上線(xiàn)后,每條流程的任何節(jié)點(diǎn)都清晰的打印在圖上。一直困擾著B(niǎo)A的調(diào)試難、驗(yàn)證難、線(xiàn)上回溯難等“疑難雜癥”全都迎刃而解。
圖:流程運(yùn)行圖
當(dāng)然,在我們的規(guī)劃中,基于新特性的微創(chuàng)新才剛剛開(kāi)始。流程熱力圖、觸碰分析、流程演示…將會(huì)在接下的迭代中和用戶(hù)持續(xù)見(jiàn)面。
2. 模型部署
前文應(yīng)該介紹了規(guī)則模型和決策樹(shù)模型用途,這兩種模型都是通過(guò)寫(xiě)條件表達(dá)式來(lái)實(shí)現(xiàn)的,如AGE0001>=20&&GPS0003!==null&&GPS0003.equals(“北京”)(AGE0001:用戶(hù)年齡指標(biāo);GPS0003:手機(jī)定位)。幾乎每個(gè)BA都會(huì)寫(xiě)大量的規(guī)則,因?yàn)檫@兩類(lèi)模型個(gè)數(shù)占比達(dá)到了90%。
通過(guò)研究用戶(hù)習(xí)慣和數(shù)據(jù)分析發(fā)現(xiàn):
- 批量加工規(guī)則的時(shí)候,大部分用戶(hù)選擇通過(guò)Excel寫(xiě)然后導(dǎo)入的形式;
- 寫(xiě)復(fù)雜層級(jí)結(jié)構(gòu)規(guī)則的時(shí)候,用戶(hù)會(huì)考慮使用編輯器,如:notepad++;
- 只有用戶(hù)新增或修改少量規(guī)則的時(shí)候,用戶(hù)才會(huì)考慮決策引擎提供的規(guī)則編輯功能;
- 多數(shù)用戶(hù)對(duì)“==”和“equals()”的區(qū)別傻傻分不清楚;
- 平均每三條規(guī)則中就會(huì)出現(xiàn)一條自定義函數(shù),但自定義函數(shù)的用法難掌握且容易混淆,例如:contains(value1,value2)?、containsAll(value1,value2);
回歸本質(zhì),我們發(fā)現(xiàn)我們給用戶(hù)提供的僅僅是一個(gè)普遍的文本輸入框,沒(méi)有指標(biāo)自動(dòng)提示、沒(méi)有語(yǔ)法自動(dòng)提示、無(wú)法快速批量添加…..難怪用戶(hù)會(huì)離我們而去!
那么,我們?cè)撊绾巍巴旎亍庇脩?hù)呢?
決策引擎競(jìng)品分析報(bào)告給了我們答案:大部分商業(yè)化的產(chǎn)品都提供了“傻瓜化”的配置功能,實(shí)現(xiàn)思路大都一樣,簡(jiǎn)單的勾選就可形成規(guī)則。
圖:規(guī)則可視化配置功能
重構(gòu)已勢(shì)在必行。因此,我們?cè)O(shè)計(jì)實(shí)現(xiàn)了樹(shù)形結(jié)構(gòu)的規(guī)則可視化配置(設(shè)計(jì)靈感:用戶(hù)寫(xiě)規(guī)則的構(gòu)思方式和書(shū)寫(xiě)習(xí)慣很像產(chǎn)品經(jīng)理使用腦圖軟件來(lái)分析問(wèn)題一樣),同時(shí),將常用的自定義函數(shù)簡(jiǎn)化成下拉選擇。新的體驗(yàn)降低了用戶(hù)的使用門(mén)檻,同時(shí)極大提升了用戶(hù)工作效率。
03 內(nèi)在:提升系統(tǒng)性能
流程執(zhí)行計(jì)劃
得益于流程運(yùn)行圖功能,我們可以分析流程中每個(gè)模型、腳本運(yùn)行的細(xì)節(jié)。
分析大量記錄發(fā)現(xiàn):?jiǎn)蝹€(gè)模型或腳本執(zhí)行耗時(shí)一般在幾百毫秒,但整個(gè)流程幾乎是每個(gè)節(jié)點(diǎn)耗時(shí)的總和。同時(shí),由于用戶(hù)編排流程是串行思維,只有極少流程中的極少組件是并行編排的。
基于這兩點(diǎn)洞察,我們發(fā)現(xiàn)如果不按照用戶(hù)畫(huà)的流程順序去執(zhí)行,而是把用戶(hù)畫(huà)好的流程全部打散重排,將沒(méi)有前后依賴(lài)關(guān)系的節(jié)點(diǎn)并行執(zhí)行,就可以減少整個(gè)流程運(yùn)行耗時(shí)。
于是,我們基于DAG(有向無(wú)環(huán)圖)自研了流程串行變并行的算法引擎,通過(guò)對(duì)節(jié)點(diǎn)屬性的校驗(yàn),可以發(fā)現(xiàn)執(zhí)行過(guò)程中,節(jié)點(diǎn)是否發(fā)生了前后關(guān)聯(lián),對(duì)于沒(méi)有發(fā)生前后關(guān)聯(lián)的情況,引擎會(huì)對(duì)這份執(zhí)行計(jì)劃做重估,生成新的執(zhí)行計(jì)劃。通過(guò)這種創(chuàng)新,我們將流程的平均執(zhí)行耗時(shí)縮短了50%-60%。這將大幅提升業(yè)務(wù)的轉(zhuǎn)化率同時(shí)也會(huì)降低用戶(hù)的運(yùn)營(yíng)成本。
對(duì)技術(shù)的追求是無(wú)止境的,TensorFlow分布式計(jì)算給了我們另一個(gè)靈感。TensorFlow分布式的版本允許client、master、worker在不同機(jī)器的不同進(jìn)程中,同時(shí)由集群調(diào)度系統(tǒng)統(tǒng)一管理各項(xiàng)任務(wù)。
圖:TensorFlow分布式版本的示例
那么,我們是否能將各種模型、腳本分發(fā)在不同機(jī)器的不同進(jìn)程中呢?答案是可以的。至于性能還能提升多少?盡請(qǐng)期待!
當(dāng)然,一套完善的風(fēng)控平臺(tái)不只包含決策引擎,而是由指標(biāo)計(jì)算、決策引擎、邏輯編排等系統(tǒng)共同構(gòu)成。如大家需要,可繼續(xù)分享,歡迎多多交流!
圖:風(fēng)控平臺(tái)基本功能及產(chǎn)品設(shè)定
作者:丸子控?,某互金公司風(fēng)控平臺(tái)的產(chǎn)品經(jīng)理一枚。
本文由 @丸子控? 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載
題圖來(lái)自Unsplash,基于CC0協(xié)議
交流分享,加個(gè)好友吧vx: www125homecn
請(qǐng)問(wèn)新的流程編排頁(yè)面是通過(guò)什么實(shí)現(xiàn)的?還是activiti嗎?
交流分享,加個(gè)好友吧vx: www125homecn
點(diǎn)贊 請(qǐng)問(wèn)現(xiàn)在有沒(méi)有可以系統(tǒng)學(xué)習(xí)風(fēng)控相關(guān)的書(shū)籍或者文檔呀
有產(chǎn)品demo可以學(xué)習(xí)學(xué)習(xí)嗎
點(diǎn)贊
??
很棒,期待下一篇介紹風(fēng)控其他知識(shí)
謝謝,等我積累積累,哈哈
??