萨摩耶云深度迁移学习技术在金融风控中的应用
分享嘉宾:朱晓海 萨摩耶云
编辑整理:Hoh Xil
内容来源:作者授权发布
出品平台:DataFunTalk
导读: 迁移学习利用数据、模型之间的相似性,在不同领域之间进行知识迁移。深度学习技术与迁移学习思想的融合,又极大扩展了传统迁移学习技术的能力边界,给包括金融风控在内的各个场景带来了更多的可能性。
金融风控中获取样本标签需要等待数月的时间,这是与互联网推荐、广告等领域的显著区别,对模型的稳定性也有更高的要求。互联网趋势下,环境复杂、产品迭代快的现实带来了很多不稳定性因素,风控中最传统的逻辑回归评分卡模型基于大量统计学假设,在这个趋势下已经逐渐被越来越先进的机器学习模型所取代。即便用机器学习,有标签样本少、同分布样本少仍然是建模的痛点。
当前,主流金融风控迁移学习建模方法仍然采用传统机器学习技术:比如利用提升树在有较多样本量的远期样本集上训练,然后再到只有少量样本但符合近期分布的样本集上继续提升;或者用一个样本集建模得到一个模型子分,然后作为一个特征在另一个样本集上重新建模。 这样需要分多阶段建模,而且会产生大量模型,难于管理和维护。
深度学习的模块化特性天然适合端到端建模;另一方面传统的基于特征分布变换的迁移学习方法无法适应大数据,而深度学习技术可以克服这些困难;此外还可以提取表征(embedding)、更好地融合多模态特征。深度迁移学习技术在金融风控中的应用具有巨大的研究价值和业务潜力。
本文将对迁移学习基础理论作精要介绍,然后结合理论和公式,初步解释迁移学习在风控业务中发挥作用的机理,对深度学习多任务学习、领域适配的实际落地案例做一个简要介绍和结果分析。
01 迁移学习基础理论
迁移学习是机器学习技术的分支。常规有监督机器学习定义如下:
其中 l 表示损失函数,n 表示样本个数。
结构风险化准则要求模型在拟合训练数据的基础上也要具有相对简单的复杂度,即模型的VC维[1]较小。考虑结构风险最小化后,上述机器学习定义公式可以改写为:
其中 R(f) 为模型的复杂度,λ 为考虑复杂度的权重。
另一方面,对于任意一个样本(x_i, y_i), x_i∈X, y_i∈Y,称D={X,Y,P(x, y)}为包含该样本的一个领域。其中X为特征空间,Y为标签空间,对于结构化数据来说,特征空间可以是所用的变量等,标签空间可以是各种类别、回归区间等。P(x, y)为样本服从的概率分布,常规机器学习建模需要满足独立同分布假设。在此定义的基础上,迁移学习可以形式化为:
给定一个源域D_s和目标域D_t,并且以下三种情况至少有一个出现的时候。
- 特征空间不同X_s≠X_t
- 标签空间不同Y_s≠Y_t
- 样本的概率分布不同P_s(x,y)≠P_t(x,y)
需要学习一个预测函数使目标域上n_t个样本拥有最小的预测误差:
对结构化数据来说,特征空间不同包括特征维度不同等情况,标签空间不同包括源域和目标域任务的分类类别不一致等情况,当样本随时间发生了偏移自然也会出现概率分布不同的情况。再回到一开始给出的机器学习定义公式,常规迁移学习也可以按这个框架定义为[2]:
其中v_i为样本权重,T为特征变换函数, 这里的R项不完全等价于模型复杂度,可以看做一种迁移正则项。从这个定义出发,有以下三种迁移学习方法:
① 样本权重迁移法
Tradaboost[3]等方法即是通过调整样本权重实现迁移学习,它对于源域中越无法被正确分类的样本赋予越小的权重,对于目标域中越无法被正确分类的样本赋予越大的权重。
② 特征变换迁移法
通过学习特征变换函数T来减小R项。
③ 预训练模型迁移法
R(T(D_s),T(D_t)):=R(f_s, D_t),即把源域学到的模型f_s拿到目标域D_t的数据上去finetune。这个是图像,NLP等场景常使用的方法,使用XGboost先后对源域和目标域做提升树在原理上也是类似的。
迁移学习的效果也可以形式化地定义为:
对于任意一个VC维为d的模型f,给定源域上以独立同分布方式采样的大小为n_s的样本集,则模型在目标域上的误差ϵ_t(f),至少有1-δ的概率呈现出[4][5]
其中e是自然底数,λ*是在源域和目标域上最理想模型的误差,d_F(D_s,D_t)是H-divergence理论给出的源域和目标域的分布差距,这个分布差距是基于VC复杂度为d的模型空间F给出的。也就是说,模型在目标域上的误差由以下几个方面所界定:
- 源域上的误差
- 从模型所在复杂度空间的视角来看源域与目标域的分布差距
- 源域样本数、模型复杂度等
- VC复杂度为d的模型空间中存在的最理想模型的误差
从公式定义看出,模型越复杂的情况下虽然在它看来目标域和源域之间的分布差距项较小,但是模型复杂度本身也会增加泛化到目标域的误差,存在某个拐点。从λ*项还可以看出,迁移学习的大前提是,所用特征和算法需要在目标域和源域上分别都有较好的效果。
02 迁移学习与金融风控场景
具体到金融风控场景来说,业务层面亟需解决的问题有以下几点:
① 建模样本不够
如果要用深度学习方法来做建模,样本量是一个很大的制约因素。不同于推荐、广告等电商场景,信贷场景下要获得样本的风险标签(比如是否逾期)需要等待数个月,称为表现期。fpd类的标签指第一期就发生逾期,因此表现期只需要一个多月,但是如果想用mob3这类标签进行建模,对于每一个样本需要等待3个月以上才能获得标签。此外,贷前授信通常是对客户维度建模,样本量也是远远小于从事件维度建模的。
② 样本分布偏移
信贷策略的负向操作,导致能被模型和策略通过的样本才有机会取得表现,也就是常规建模取的样本都是有偏样本。这部分样本的分布与申请授信或者申请借款的全量样本是不同的。此外,随着时间的变化、策略的迭代,样本分布也会发生变化,造成独立同分布假设失效。
综合考虑以上几个业务痛点,确定试验以下两种迁移学习方法:
① 多任务学习
将长表现期、短表现期、是否交易三类任务用多任务学习框架建模。这样一来,少量的获得长表现期标签的样本就可以和一个月就获得标签的样本、甚至没有发生交易没有风险标签的样本一起训练。后两者的样本量远远大于前者。
② 领域适配
将贷中发起借款申请产生的事件样本,用领域适配方法迁移到贷前发起授信申请的客户样本上。一个客户获得授信后可以发起多次借款申请,因此贷中借款申请通常是从事件维度建模的,样本数量远远大于贷前授信申请的客户维度模型。
下面用迁移学习的语言对以上两种方法做形式化定义:
03 建模方案与结果分析
1. 多任务学习建模方案与结果分析
多任务学习在推荐场景已经有较多成熟应用的案例,比如阿里有ESMM[6]框架对点击率ctr和转化率cvr同时建模。点击率建模的样本空间与点击后转化率建模的样本空间是不同的,前者包括后者。受此启发,在信贷风控中试验将是否交易、交易后是否发生逾期风险作为多任务同时建模。由于交易意愿与逾期风险之间的关系比较复杂,最后是参照Youtube视频推荐中的多任务建模方法[7],采用了MMOE / PLE[8]这类框架并开发了工程化工具,支持多态组合特征的输入。
图 1 风控场景多任务学习建模框架
MMOE / PLE框架的特点是各个任务采用统一的特征空间,使用共享层输出共性特征表达,这个共享层可以看作公式( 4 )提到的特征变换函数T。然后利用带注意力的专家层为各个任务剥离出该任务需要重点关注的特征,最后在各自的标签空间中进行任务的学习。本次建模调参确定使用4个专家,各个专家是按照任务的递进关系排列的。交易任务主要用到专家0、1,而风险任务是在前序交易任务的基础上进行的,因此长表现期风险任务既用到了前序交易任务专家1又用到了自身风险专家3,短表现期风险任务主要用到了风险专家3。
图 2 交易意愿任务专家注意力
图 3 短表现期风险任务专家注意力
图 4 长表现期风险任务专家注意力
由公式(5)中的最理想模型误差λ*可知,所用特征需要在目标域和源域上分别有较好的效果才能满足迁移的前提。因此,可以先用XGboost等传统建模手段,对交易模型、短表现期风险模型、长表现期风险模型单独挑选特征,再合并起来作为多任务学习的特征空间。有的样本没有交易也就没有风险表现;有的样本进入了短表现期获得了标签,但是还没有进入长表现期也就没有标签。针对这个问题,训练框架采用了深度学习中的mask技巧:多任务之间互为源域、目标域,对每一个任务来说它自身是目标域,只对该任务有标签的样本计算损失并反传;该任务没有标签的样本相当于没有意义的源域样本,对其施加mask即权重置0;如果一个样本除了在当前所说任务中有标签,在其他任务中也有标签,对当前任务来说相当于一个有意义的源域样本,因此也对其赋予权重,对该样本计算损失并反传。这样,一个batch内允许不同风险表现期的样本同时参与学习,相当于公式(4)提到的Tradaboost在一刀切情况下的应用。此外,从业务的角度来看,一个具有某些特点的客户没有发生交易也就没有逾期风险,这个样本会影响模型的变量更新,这个影响又会在另外一个有风险表现样本的预测中体现出来,相当于finetune迁移法。
另外,多任务之间的权重如何选择也是一个问题。当任务较多的时候,尤其是有的任务比较容易学习、有的任务比较难学习的时候,极容易出现此消彼长的“跷跷板”现象,使得某些任务还不如单任务建模。从迁移学习误差界定公式(5)来看,如果某个任务是源域且难学习,源域误差较大会导致另一个作为目标域任务的泛化误差更大。调研了各种方法后,最终采用了两种动态平衡策略:以不同任务的损失函数方差作为权重的uncertainty weighting[9],拉平不同任务对共享层变量的梯度更新速度的gradnorm weighting[10]。通常来说,在特征有效性差不多的情况下正负样本比例越平衡的任务越容易训练、收敛率(后续损失/初始损失)低,动态调权可以拉平三个任务的收敛率(图 7)。由于是否交易、发生逾期风险的正样本比例呈现越来越低的递进关系,共享层的梯度被交易意愿任务主导(图 5),因此它的权重会被逐渐降低(图 6);短表现期风险任务的损失函数收敛率变化最小,可以认为一开始就被训练到极限状态了,因此它的权重先升高后降低;训练后期主要聚焦在长表现期风险任务,因此它的权重持续上升。
图 5 多任务gradnorm weighting对共享层参数的梯度1-范数对比图
图 6 多任务gradnorm weighting动态权重对比图
图 7 多任务gradnorm weighting损失函数收敛率对比图
没有发生交易的样本没有逾期标签,多任务学习模式下交易意愿-逾期风险的联合排序性一定会遵从这个规律(图 8b),而交易意愿单任务建模并排序后的风险等级可能并不会出现这个规律(图 8a)。从提升曲线可以看出,近似0交易意愿的客群逾期风险概率也很小,但是交易意愿超过一定阈值后,交易分对风险概率是没有区分性的。利用这些特性,在策略上可以对低交易意愿的客群降低通过率,这部分的风险也会急剧下降,对高交易意愿的客群稍微提高通过率,但是风险不会有太大变化。最后,在整体通过率和风险水平不变的情况下,能够提高交易率。
(a) Xgboost对交易意愿建模
(b) 多任务学习建模
图 8 按交易意愿分从低到高等频分箱后的累计风险提升度
2. 领域适配建模方案与结果分析
贷前阶段主要是对客户授信,因此模型通常是从客户维度进行刻画;而贷中管理阶段除了对客户管理,也需要对每笔借款申请进行风险控制,从事件维度来看样本量远远多于贷前。但是直接用贷前、贷中样本建模不满足独立同分布假设。因此,在信贷风控中试验将贷前、贷中样本通过领域适配放在一起建模。公式(5) 是以源域样本满足独立性条件抽样出发的,因此对贷中样本中同一客户半年内的多笔交易做了去重处理。领域适配采用基础理论部分提到的特征变换法,用R(T(D_s), T(D_t))项做度量,以度量结果为依据不断优化变换函数T。度量过程可以显示地进行,目前学术界通常用MMD 距离来度量分布距离;也可以隐式地进行,即不必具体给出分布距离,而是通过某些间接表达,比如目标域和源域之间的分类误差,来指导优化方向。
隐式方式可以通过对抗学习,在目标域与源域之间添加GAN的判别器来实现[11]。显示方式可以通过在主任务外添加目标域与源域之间的边缘概率MMD距离损失函数[12],或者条件概率LMMD距离损失函数[13]来实现。隐式方式不一定能真正混合变换后的特征分布(图 9a),但是分布距离度量方式直接能把变换后的特征分布混合起来(图 9b)。
(a) 对抗学习方式的领域适配
(b) 距离度量方式的领域适配
图 9 风控场景领域适配建模框架
可以采用目标域无标签的半监督学习方式进行训练,即只把源域样本送入主任务学习,这对于新开策略、样本还没有进入表现期的场景适用;也可以采用目标域有标签的有监督学习方式进行训练,即把源域和目标域样本混合在一起送入主任务学习,另外�
- 原文作者:知识铺
- 原文链接:https://geek.zshipu.com/post/%E4%BA%92%E8%81%94%E7%BD%91/%E8%90%A8%E6%91%A9%E8%80%B6%E4%BA%91%E6%B7%B1%E5%BA%A6%E8%BF%81%E7%A7%BB%E5%AD%A6%E4%B9%A0%E6%8A%80%E6%9C%AF%E5%9C%A8%E9%87%91%E8%9E%8D%E9%A3%8E%E6%8E%A7%E4%B8%AD%E7%9A%84%E5%BA%94%E7%94%A8/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。
- 免责声明:本页面内容均来源于站内编辑发布,部分信息来源互联网,并不意味着本站赞同其观点或者证实其内容的真实性,如涉及版权等问题,请立即联系客服进行更改或删除,保证您的合法权益。转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。也可以邮件至 sblig@126.com