线上小额信贷常见的风控场景从阶段上可以划分为贷前、贷中和贷后。实际风控实践中可能还会有流量获客等场景,本次分享未展开。
贷前风控是比较重要的一环,关注点包括:身份核验、反欺诈风险评估、信用风险评估、额度和费率的匹配。
贷中管理是指在用户放款之后,对借款人的信用风险进行跟踪和管理的过程。具体场景包括复贷准入和存量用户运营。复贷准入是指用户已经有借款记录后再次支用的场景。存量用户运营是指对已经放款的借款人所做的维护或管理等一系列运营活动,比如对用户风险的再次评估、信息更新,以及新产品的推广促活等。
贷后管理是指在用户贷款到期之后的管理,常见的场景包括还款管理、客诉风险管理、失联预测。该环节偏向于线下的运营,模型或规则策略更多的是给运营同学提供一些辅助工具,不像贷前或贷中可以直接拿模型或规则来决策。
接下来具体介绍各阶段场景下风控模型的搭建。
一、贷前风控
1、贷前风控的一般流程
在线上小额信贷的场景下,一个用户从进件到最终放款,一般会经历这样一些环节:
◆ 准入策略:用户在进件之后可能会对其做一些准入策略,比如年龄或身份核验、反欺诈规则(如黑名单或逾期)。
◆ 模型前规则:过了准入策略后,用户会走到模型前的一些规则,这里一般会是一些无成本或低成本的规则。
◆ 授信模型:接着就会进到授信模型阶段,这里授信模型可能包含一组模型。
◆ 模型后规则:授信模型通过之后的用户可能会进到模型后规则,这些规则可能是相对较贵的规则,如征信数据。
最后给出用户评级,如果这里是多模型决策,用户评级可以通过决策矩阵给出。
这样设计主要还是基于平衡成本的考虑,配置时大多会是内部数据在前,外部数据在后,形成一个成本漏斗,即已经被前面的规则或模型拒掉的一些用户,就不会再走后面相对比较贵的规则了。
我们是怎样部署这样一套风控策略的?下图给出了系统交互的过程:
数据接入模块,包括外部和内部数据的接入和存储。
◆ 内部数据一般会直接调用业务系统的数据接口去获取。这里会有一个成本和稳定性的折中:比如在调用复杂数据时,数据本身可能存在一些耗资源的长尾现象,但这种特征在实际决策中又会用到的话,我们就会在一定的可接受范围内去做一些操作以平衡成本和稳定性,例如99. 99%的用户都正常返回,对于另外的极少部分用户可能做一个置空操作;
◆ 外部数据会调用三方的服务。这时会遇到的问题是接入三方数据的返回时长是否在业务可接受范围,大部分三方数据返回都是比较快的,但也有一些数据返回慢一些,在这种情况下我们会在可接受程度内作处理,比说只有0.01%的返回时长很长,那这部分用户可能就直接做一些额外处理,比如置空等操作。如果业务上对这种缺失的容忍度极低的话,一种可能方案提前去调这个外部数据,这时就会涉及成本的平衡。
特征引擎从数据接入模块获取原始数据,特征引擎在贷前环节主要是用于实时特征计算(有些情况下也会有离线计算,比如贷超场景中应用的特征,我们业务中以实时特征为主主要是基于特征覆盖度的考虑)。特征引擎计算实时特征后,会对模型引擎输出模型特征,对决策引擎输出规则特征。
模型引擎主要是用来计算模型分,包括空跑模型和决策模型。二者的部署有一些差异,空跑模型可以部署为异步调用,决策模型因为涉及到成本漏斗(前文已提及),需要同步调用。模型分最终会输出到决策引擎。
决策引擎里可以配置决策流和规则集。规则集中可以包括单特征规则和模型应用规则,在决策流里可以部署多个规则集。
流程图中的几个环节在业务系统中的部署方式:
◆ 准入策略:一部分是配置在决策引擎里的,还有一部分是在产品环节的,比如像 OCR 这些是耦合在产品流程里的。
◆ 模型前规则、模型后规则以及决策矩阵:是在决策引擎里部署的。
◆ 授信模型:在模型引擎里部署,然后把其中的决策模型分给到决策引擎
2、贷前常用的风控数据
贷前常用的风控数据包括内部和外部数据两类,不同机构用的外部数据可能会各有侧重,内部数据这几类大家通常都会用到:用户基本信息、ID map数据、用户行为数据、历史借款数据、还有一些用户授权的其他数据。所有内部数据都是经过用户授权或用户自填的。其中,其他授权数据包括设备指纹信息、联系人信息、 GPS位置信息等。联系人是用户自填的紧急联系人,并非通讯录联系人。
3、贷前风控常用数据的流转过程
在贷前怎么应用这些数据?下面是一个简单的流转过程,主要涉及模型引擎部分(其实在模型引擎给到决策引擎时也有一些数据流转,图中暂未涉及)。首先是在线数据的流转过程,数据经过线上的特征工厂或特征引擎实时计算,输出特征给模型引擎用于计算模型分。这份数据也会定期导到线下一份用于离线特征回溯,构建离线的模型,训练完成之后会定期更新线上模型;离线数据在特征一致性监控中也会使用。
4、贷前授信模型实时决策流程
数据获取
首先是内部和外部数据的获取。
内部数据数据获取是由数据接入模块来做的,它会调用业务系统提供的各种接口,拿到数据用于实时特征计算并将原始数据存储下来用于后续离线特征使用。
外部数据也是数据接入模块获取的,只是调用的是外部服务接口,这里比较关键的是原始数据需要完整落表存储,并且针对哪些情况下使用缓存、哪些情况下需要重新查询数据需要有明确的规范。
特征计算
我们在贷前主要是用的实时特征,也就是说实时从接口获取数据,然后计算特征,特征落库并提供给模型引擎使用。这里遇到的主要问题是特征耗时,我们采取的优化手段主要特征预计算或者融合计算。
预计算,主要是说提前计算,在业务系统里,有些数据是可以提前获取到的。比如说用户一进到授信的页面可能就已经授权获取了设备指纹数据,但是实际到授信模型才用到这个数据,中间可能有几秒的时间我们可以做特征预计算
融合计算,主要是针对比如“历史所有XX次数”这种特征,数据量可能比较大、在计算耗时比较长的情况下,我们可以先算出来截止昨天24点的特征,然后实际授信中就只需要计算今天截止当前的新数据对应特征,然后融合之后作为最终的特征来使用,不过这种方式实现起来比较复杂。
模型服务
基于特征输出模型分或评级。跟特征计算相比,这里的耗时其实还好。目前我们系统里决策模型是同步的,陪跑是异步的,这个其实主要也是出于成本的考虑。
以上是贷前授信实时决策的流程,我们现在用的主要是实时特征,但其实在一些场景上也有离线批量衍生特征的情况,即特征离线批量算,但线上实时去取之前离算离线的结果。但这种场景在纯新用户上会完全是空的,所以我们目前应用范围不多,主要还是实时特征以及数据覆盖度上的一些考虑;还有一个就是离线回溯系统的部署,我们在离线建模时是需要去离线跑这些特征用于离线建模的,内部特征的回溯也是有稳定性和成本的平衡,比较理想的肯定是搭建一整套的离线回溯系统,业务系统数据定期备份到这里用。但因为考虑到部署成本,实际在离线回溯时,一些数据还是直接去调业务接口,但会进行一些限速,并且做比较严格的监控,这块各家的部署应该会有各家的特点。
5、贷前优化的一些尝试
针对贷前模型我们做了一些优化尝试,第一个优化对系统的改动较大,后面两个优化主要是业务层面做的一些尝试,系统上的改动并不算大。
优化1:从单模型决策到区分数据源类型组合决策
最初我们是单模型决策的,可用的外部数据较少,后来随着可用数据的增多,也有一些成本方面的考虑,逐渐区分数据源,搭建一些子模型组合决策。之后在数据合规的背景下,把内部数据源和外部数据源做了拆分,以便更好地去适配内部决策流和依赖外部数据决策流的情况。
为了实现从单模型决策到区分内外部数据源来搭建风控模型,系统上做了许多优化,这里仅列出了主要的几项,包括决策引擎和模型引擎的改动。
优化2:数据成本优化
数据成本优化主要有两个方向:一是从业务上拆分子分模型,二是单独搭建通过率模型。通过率模型是采用内部数据,以通过率为目标搭建的模型,用在授信模型前面,通过率模型拒绝的用户不再走后面的授信模型。
优化3:通过率优化
主要包括两个方面的尝试:一是部署前筛规则或模型。主要从业务角度出发去做的一些尝试,技术上会需要一些适配。前筛模型是部署在资产方的,我们自己系统的改动并不大,主要集中在回传数据的一些规范、存储和监控上有别于我们自己内部的模型打出来的分数的;二是对授信阶段拒绝的样本尝试做一些召回。召回模型的关键点还是在建模时的数据特征、以及样本的差异,可能会加一些拒绝推断的样本,但是加拒绝样本也是有一定风险的。风控系统上需要做一些适配,但是改动不算太大。
二、贷中管理
区别于贷前,贷中对应的场景是在用户放款之后,在这个阶段用户的情况、风险情况和贷前相比可能是已经有了一些变化,所以需要持续地观测、动态评估这个变化,再配合贷中可用的一些工具,对用户进行一些提额、降额、冻结额度这些操作,以及匹配一些运营的动作,以促进回款,达成业务目标。
1、贷中系统模块交互--与贷前差异
在可用工具和系统部署上,贷中和贷前的差别比较明显。下图是一个贷中系统模块的交互,可以看出从数据接入到特征到模型引擎都会有一些差异:
数据方面:主要还是会涉及到一些离线批量打分存储的场景,首先它会增加一个贷中任务调度的模块,定时批量的去对目标客户调数据服务,去取贷中数据,调用特征引擎计算特征,调用模型引擎去打分。再就是数据接入需要跟贷前相分离的,包括存储分离和调用分离。
特征方面:这是变化最大的部分。贷前我们将实时特征给到模型,再给到决策引擎。在贷中是先把这些特征预计算并存储,使用时直接查询。会有很多情况导致数据存储不完整,所以会涉及容错的问题,一般会取逆序后最新的一条,并加上特征实际计算时间和查询时间差的监控。
模型方面:包括实时模型分和离线模型分两部分。贷中也会有一些实时的模型打分给到决策引擎。离线部分会把模型分批量计算后存储下来,用于决策引擎查询。
2、贷中管理常用数据
贷中比贷前的可用数据丰富很多,首先贷前内部数据是全部可用的,还增加了一些贷前变化类的数据,以及用户的贷中行为数据。此外在外部数据上有一些差异,会有专门适配贷中批量查询的数据源产品。相对地,贷前可以用的产品如果打算在贷中批量地去用,需要考虑产品的收费模式,以及批量查询的数据成本是否可以承担。
3、贷中离线模型决策流程
贷中离线模型的决策过程主要还是适配离线批量计算的场景。直观看是增加了几个存储的环节,数据调用、特征计算、模型打分都是计算后先存储后查询,以及容错和监控。
4、贷中模型应用场景
贷中管理应该是一整套的体系,包括策略、模型、运营各个方面,涉及的内容会很多,我们的介绍主要集中在模型工具方面。具体包括在复贷、存量用户运营场景上都会有一些贷中模型可以使用。下图右侧列出了一些可以使用的模型工具。
复贷准入环节我们可以使用跟贷前类似的实时风险模型,也可以使用贷中用户行为模型,通常是这两种模型结合起来用。
存量用户运营环节使用更多的是离线批量模型,主要包括下面几类:
贷中行为模型:就是我们通常说的b卡。
提前结清模型:这个模型主要是在贷中尽量去识别用户的提前结清行为,然后做一些针对性的运营操作,尽量提高用户的留存,增加收入。
借贷意愿评估模型:主要针对授信通过甚至有过支用的用户,然后评估其接下来一段时间的借贷意愿。
三、贷后管理
货后管理的主要目标是提高回款率,降低违约。但这块介绍会比较简单,因为和贷前、贷中不一样,贷后的场景主要还是以运营为主,模型或规则更多的是作为工具提供一些辅助作用。决策引擎输出的分数或评级,我们会在贷后系统里做展示,但是实际的决策更多地还是由负责贷后的同学来完成的。所以在系统部署方面更复杂的是贷后业务系统的开发或部署。在决策引擎和贷后系统的交互主要是会提供一些分数和评级在系统里做展示,常用的模型工具有回款客诉、失联等模型。
1、贷后管理常用数据
贷后数据包括外部数据和内部数据,需要注意的点是数据的获取时间和应用时间是需要匹配的。贷后可用的数据会更丰富一些,跟贷前和贷中相比,贷后模型比较容易做出区分度,但是模型的应用是个挑战。
2、贷后模型应用场景
贷后模型应用的场景主要是违约、客诉,及失联。比较典型的应用有回款率预测和客诉风险预测模型:
回款率预测模型
预测已经逾期的用户在未来一段时间内回款的概率。Y会根据贷后不同阶段有所不同,早期回款的可能性会比较大,越到后期回款越难。在做这个模型时可能会有不同颗粒度的样本,比如用户维度、订单维度或账单维度。
针对账单或订单维度的模型,模型评估时需要先剔除掉在训练样本中已经出现的用户,否则看到的可能是虚假的效果。在应用方式上,贷后的不同阶段会有差异化的运营策略,以及不同的实验方案设计。
客诉风险预测模型
主要用于在贷后阶段去预测用户可能发生投诉的风险,以方便贷后的同事采取一些差异化的应对方式。引发客诉的原因是多种多样的,考虑到样本量,我们仅选主要因素来建模。Y的选取时需要做一些数据清洗的工作;在数据方面,部分数据源其实还是和风险是有相关性的,比如多头数目更大,首次借款时间更早的用户,发生客诉的概率可能也会更大;
模型应用上,还是会区分贷前和贷后,在贷前使用时就需要额外关注跟风险模型的相关性,如果两种模型相关性很高的话,这个客诉模型应用起来难度会比较大,需要平衡通过率,在模型应用上需要有一些设计。
四、监控搭建
监控方向上主要看准确性、稳定性和有效性,监控形式上会有日常监控和监控预警。这块的内容主要是技术上的搭建,不同的公司会差距会比较大,因为大家会基于自己的业务系统或大数据环境来设计,技术选型上可能差异比较大,但是报表的内容还是比较通用的。下面列举了几个不同维度的监控内容:
业务监控
模型监控
特征与数据监控
下图是各场景下监控的汇总,包括业务、模型、特征、数据字段以及服务接口,每个下面都会有一些监控的点,也会涉及到一些预警,其提示的机制也是不一样的。
五、内容汇总
文章首先是结合实际场景,列出了贷前、贷中和贷后可用的风控模型工具,接着介绍了这些工具在风控系统重是如何部署的,以及在贷前、贷中部署上的差异,最后列出监控及预警系统通常涵盖的内容。