一次风控联合建模,我总结出了这些经验
2021/10/6 18:00:00 人人都是产品经理

     关注并将「人人都是产品经理」设为星标

     每天早 07 : 45 按时送达

    

     如今,银行和互联网大厂的和合作越来越频繁。其中,一项重要的合作是联合建模。本文作者根据自己的一次风险联合建模的经历,从中总结出一些问题,希望对你有帮助。

     作者:雷帅

     微信公众号:雷帅快与慢

     题图来自 Unsplash,基于 CC0 协议

     全文共 2620 字,阅读需要 5 分钟

     ——————/ BEGIN /——————

     最近慢银行着实愁坏了,行内消费信贷业务新增客户越来越少,活跃度也越来越低了。疫情长期结束不了,消费下滑经济下行,监管持续趋严,资产规模和质量都开始面临很大的增长压力。

     慢银行寻思,这么下去不是办法,形势再差,也要人为,得主动出击去找优质资产。

     怎么找,流量和质量都掌控在互联网大厂手上。

     于是,找到了雷帅快大厂,你把优质用户给我,我们来做款产品,一起分润。

     互联网公司都是在做流量变现,雷帅快大厂就爽快同意了。

     win-win。

     那快大厂怎么把优质用户给慢银行呢?

     快大厂虽然自己也做消费信贷业务,也有内部风险评分。但风险是由用户和产品决定的,慢银行想要的是适合他们产品的优质用户,快大厂的优质用户虽然不错,但不是最优。

     这就是合作中最重要的一环,联合建模。

     慢银行提供一批有风险表现的用户给快大厂去匹配特征,风险是慢银行的,特征是快大厂的。

     由慢银行同学去建模,有了模型之后就可以对快大厂的流量做精准风险评估了。

     一般来说,谁用模型谁建模。

     于是慢银行和快大厂分别成立了一个小组,两方各自指定了个负责人,专项对接该模型开发工作。

    

     立项会议

     小组成立之后,马上开了一次语音会议,聊这个模型怎么建。

     两方负责人先拉了个微信群,把慢银行和快大厂这次联合建模相关的人员都拉进去了。

     慢银行一堆问题就跟机关枪一样发射了,

     你们有多少特征,能回溯到什么时候?

     需要用什么主键去匹配特征?

     你们的数据能不能传给我们,我们直接在行内建模?

     我们要建xgb模型,你们xgb模型怎么部署?

     ……

     快大厂不爽了,你们急个毛线:

     我们数据多着呢,近两年都可以回溯,身份证和手机号做主键,我们上千个特征不出库,我们准备好电脑和建模环境,你们带着标签过来。

     你们准备多少样本建模,最好多带点?

     你们自己怎么定义标签的?

     你们准备建几个模型,输出几个字段?

     一来二回,都觉得对方不给力。

     慢银行嫌快大厂特征数据不出库,还要他们派模型同学驻场建模。

     快大厂嫌慢银行能带出的样本太少了,建模效果不好的话还要怪数据质量。

     但好歹,一些事情还是确定下来了。

     慢银行指定了一个模型同学(慢A),快大厂也指定了个同学(快B)。

     然后,慢A去准备建模需要的10w样本,走申请流程带出。

     快B就去准备了两台电脑,搭建建模环境。

    

     数据准备

     慢A同学在慢银行苦心经营,找了许多人开了许多会,终于确定了如何选取这10w样本。

     又潜心写了几行代码抽取这些样本,还请同事帮忙review一下这几段sql。

     然后走起了漫无边际的审批流程,匹配加密的主键,样本出库等。

     这个时候的慢A觉得自己是张骞。

     此时,快B同学在快大厂申请了两台旧电脑,确保了无网络访问权限,然后安装了下必备的Python包。

     然后开始准备怎么做都有问题的特征,从特征库里选择了几张合适的稳定有效的特征表,开始做一些脱敏处理。

     变量的值要脱敏,例如分段处理,变量的含义也要做脱敏,巴不得改名为变量1、变量2……。

     无所不用其极,这个时候的快B觉得自己是SB。

     最后,还要计算变量的分布,确保分段处理后的变量分布逐月稳定且合理。

    

     无穷无尽的拉扯

     许多天以后,慢A终于准备好了样本,快B被慢银行骂了几次SB后,变量的含义还是没改,不过加了一个维度列。

     这些加密的主键被发送到快B,匹配了早已不知道是什么的特征。

     终于,慢A带着这10w个好坏样本,不情不愿地来到了快大厂的所在地,快B给安排了工位,电脑桌面放好了10w个样本的匹配结果。

     慢A开始了无脑的数据分析,统计了数据的匹配情况,对着f1、f2……的特征强压着内心的怒火。

     在旁边拿出了自己带来的电脑,连上热点,开始了百度一下。

     找出了早已备好的计算woe、iv的代码块,对着所有的变量跑了一通,筛出了一些区分度高的变量后,又看了他们的风险分布。

     问天,这个单增的变量是不是应该单增;问地,这个单减的变量是不是应该单减;问自己,这个U型分布变量是个什么鬼。最后问快B,快说,我有刀。

     时间无情的流逝。

     模型终于建好了,慢A算了几个KS,不由得想骂人,怎么有点低,怎么波动这么大。

     找快B,找慢银行,多方讨论,也没有什么高招,只好就这样。

     然后定了个阈值做了一些业务指标的测算,出了一个报告。

     慢A把成果发送回了慢银行,进行了远程汇报……

     最后,模型就这么定了。

     这个阶段慢A很烦躁。

    

     模型部署

     慢A把模型文件和模型变量交给快B之后,就逃也似的离开了快大厂。

     此时的快B觉得气定神闲,上线过很多个模型之后,谁还会把这这当回事呢。

     然后不紧不慢地打开了慢A给的文件,差点没吐血。

     这些变量咋还被再次处理了,给的变量都被分段好了,还合并分组干什么,不知道xgb是二叉树嘛。

     怎么入模了这么多变量。

     模型文件一解析,又发现这树怎么长这样,这xgb参数也太扯淡了。

     快B大叫一声不好,一个电话打给了慢A,慢A说有些变量分组人数太少就合并了,参数是网格搜索找出来的。

     快B很吐血,这意味着,要多一层特征处理作业,这一步很容易出错。另外,模型打分作业耗时久,需监控的变量多。

     因为徒增了这些工作,重要但不紧急的模型部署变成了重要又紧急的todo。

     但好歹,模型文件给到了快大厂,离线打分总远远好于实时打分。

     模型终于被部署好了,并经过了一致性校验。

     这个阶段快B很暴躁。

    

     我说

     有件事情特别重要,而很多建模的同学并没有意识到。

     离线打分再把分数推送至线上接口,会比推送特征线上实时计算分数容易地多。

     前者,模型复杂度就不太重要,计算作业再耗时也不是什么大问题。

     但后者,就注定不能用太多变量,不能让模型过于复杂,因为推送几百个特征至线上是很困难的,保证接口响应速度是很吃资源的,验证分数的一致性也是更不容易的。

     这决定了你如何去做特征工程,如何去训练模型。

     所以,最为要紧的事情是:在启动建模前就必须想清楚最终将如何上线应用。

     负责建模的A和B同学,一定要清楚这个流程,即使他们本人还没有这些经验,也需要有人告知并提醒他们。

     并且保持一定频率的交流。

     —————— / END / ——————

    

    


     产品经理培训产品运营培训企业内训服务

     请在公众号后台回复「培训」了解更多

     ▼ 喜欢请分享&收藏,满意点个赞,最后点「在看」

    源网页  http://weixin.100md.com
返回 人人都是产品经理 返回首页 返回百拇医药