编者按:本文来自“CreditX氪信”(ID:CreditX_CN),作者 唐正阳,36氪经授权发布。
当下,随着金融市场环境的迅速普惠化,新金融业务也不断下沉到更加广泛的人群。由于这部分人群的强征信数据严重缺失,金融机构纷纷涉猎多元数据包括消费、社交、行为等“大数据”。然而,这些天然带有超高维、稀疏、低饱和等特点的数据也远远超出了线性回归或逻辑回归等模型所能处理的能力范围,这对传统风控提出了巨大的挑战。
集成学习模型框架很好地解决了这一问题,其核心在于针对不同领域数据使用不同机器学习或深度学习模型对数据进行处理和建模,产生一组“个体学习器”,集成模型通过将多个学习器进行组合,常可获取比单一学习器显著优越的泛化能力。可为什么说集成学习模型是金融风控新的杀手锏呢?这里简单介绍一下集成学习模型的概览,大致分类,主流算法以及在我们金融风控实际场景中到底发挥了怎样的价值。
集成学习目前在全球各大机器学习、数据挖掘竞赛中使用非常广泛,其概念和思想也风靡学界和工业界。如果要对其进行分类,可以大致划分为模型融合和机器学习元算法两大类,前者其实是一个再学习的过程,将训练出的强学习器组合起来进一步提高性能,后者则是弱学习器的组合。
首先,我们谈一下模型融合,其思想在实际问题中也很符合大多数人的直觉,聪明的我们其实总可以根据实际问题训练出多个功能强大的学习器,为了进一步提高学习器的能力,可以尝试将其组合起来。好处是增强了我们模型的预测能力或者泛化能力,当然坏处也有,就是这种多模型的学习加上再学习的过程会显著增加计算的代价。在模型融合时,如果把好坏参差不齐的模型融合在一起,那么集成模型的性能可能会比坏的好一些,好的坏一些。所以,当我们在模型融合时,需要每个“个体学习器”是“好而不同”的,“好”指的是个体学习器的性能都要好,“不同”指的是个体模型的类别不同,“个体学习器”可以分别是基于tree-based,神经网络,线性分类器等。
“个体学习器”融合的具体方法一般分为三种:第一种是统一融合(Uniform Blending),即分类时使用一人一票的投票方式,回归时使用多个模型的平均值;第二种是线性融合(Linear Blending),即用线性模型将学习器组合起来;第三种是堆融合(Stacking),即用非线性模型将学习器组合起来。
机器学习元算法是把同类别的“弱”学习器通过算法集成起来变为“强”分类器。根据个体学习器的生成方式,可分为Bagging 和 Boosting两大类: 前者个体学习器不存在依赖关系,可同时对样本随机采样并行化生成个体学习器,代表算法如 Random Forest;后者个体学习器之间存在强的依赖关系,在基于前面模型的训练结果(误差)生成新的模型,所以必须串行序列化生成,代表算法包括GBDT、XGBoost。
Bagging的方法对样本、特征属性随机取样产生多个独立模型,然后平均所有模型的预测值,旨在减小方差(Variance);而Boosting的方法拟合前一个模型的误差, 旨在减小偏差(Bias)。
随机森林的原理是基于原始样本随机抽样获取子集,在此之上训练基于决策树的基学习器,然后对基学习器的结果求平均值,最终得到预测值。随机抽样的方法常用的有放回抽样的booststrap,也有不放回的抽样。RF的基学习器主要为CART树(Classification And Regression Tree),这里对CART举一个例子,比如预测一个人是否会喜欢电脑游戏,你可以把叶子的分数理解为有多可能这个人喜欢电脑游戏:
图 1 图片来源:XGBoost Tutorials
CART会把输入的属性分配到各个叶子节点,而每个叶子节点上面都会对应一个实数分数。有人可能会问它和决策树(DT)的关系,其实我们可以简单地把它理解为决策树的一个扩展。从简单的类标到分数之后,我们可以做很多事情,如概率预测,排序。
GBDT(Gradient Boosting Decision Tree)的原理是,首先使用训练集和样本真值(即标准答案)训练一棵树,使用这棵树预测训练集,得到每个样本的预测值,由于预测值与真值存在偏差,所以二者相减可以得到“残差”。接下来训练第二棵树,此时使用残差代替真值作为标准答案,两棵树训练完成后,可以再次得到每个样本的残差。然后进一步训练第三棵树,以此类推,树的总棵数可以人为指定,也可以监控某些指标如验证集上的误差来停止训练。
图 2 图片来源:XGBoost Tutorials
比如我们使用两棵树来预测一个人是否喜欢电脑游戏,如上图所示,在预测新样本时,每棵树都会有一个输出值,将这些输出值相加,就可得到样本最终的预测值,故小男孩和老人的预测值分别为两棵树预测值的加和。
XGBoost全称为Extreme Gradient Boosting,由于上述GBDT在数据集较大较复杂的时候,可能需要上千次迭代运算,运算较为耗时且精度低,故机器学习大牛陈天奇一手搭建了这个项目尝试从底层c++实现这个问题的改进。XGBoost其最大的特点在于能够自动利用CPU的多线程进行并行,大幅度提高模型运算效率,同时在算法的实现上增加正则项,提升模型的泛化能力。仅在2015年,Kaggle竞赛中获胜的29个算法就有17个使用了XGBoost库;在KDDCup 2015竞赛中排名前十的队伍全部使用了XGBoost库。除了速度快、效果好、功能多等特点,XGBoost在分布式应用上也有优势,可直接在YARN上使用,集成进现有Spark机器学习工具。
说了这么多,集成学习模型框架到底在金融风控场景中有什么作用呢?这里以现金贷场景为例,给大家看一下直观的例子:比如我们针对互联网行为、APP、运营商等不同领域的数据采用最合适的机器学习或深度学习模型进行处理,就可以得到不同Feature Domain诸如信贷历史、消费能力、社会信用等子模型。我们再将其通过XGboost、LightGBM等最先进的集成学习模型框架进行输出,就可以在反欺诈、违约概率预测、风险定价等风控业务上都可以得到广泛的应用和提升。
事实上,这不仅解决了机构不同维度/领域数据使用的难题,因为集成学习框架可以支持不同类型模型算法作为子模型,同时也帮助金融客户实现了更高效准确的针对稀疏、高维、非线性数据的建模过程,大大简化繁琐的特征工程,使得我们的模型具有更强的容错和抗扰动能力。
值得一提的是,集成学习模型框架也更易于实现领域知识迁移,单独领域的子模型可以快速迁移应用到新业务领域,帮助我们金融机构实现新金融业务的快速成型和持续迭代优化。此外,不同数据领域的特征自动抽取框架,与集成模型框架紧密结合,大幅度提升模型性能,在应用层,复杂的集成模型输出结果通过LIME模型解释器也可以向风控专家清晰地解释原因,使得预测结果不再黑盒和不可信。
大型成熟金融场景中的实践也证明,集成学习模型除了在稳定性和泛化能力上相对传统模型有极大增强,在最终的效果上也显现出了超出想象的作用,相对成熟的逻辑回归模型最大ks值累积提升已经可以达到约70%及以上。
现下,对AI的关注非常火热,但AI作为一种强大的工具,如何能在实际场景中帮助我们的业务和企业走的更好,还有很长的路要走。事实上,我们也应冷静地看到将大规模机器学习移植到金融领域,远远不是靠单纯的先进技术就能解决的。而集成学习模型在融合机器与人的经验上发挥了极致的价值,最大化了AI与成熟业务结合的深度,因此回应开篇问题,可以说现阶段它的确是金融风控新的杀手锏。