about

简单OR复杂?机器学习专家为你解密企业风险量化

2018-03-23 14:48 来源:凤凰新闻 作者:admin

  在过去的几年里,建立在机器学习算法、自然语言处理、分布式存储和计算等技术之上的大数据理论研究和技术应用越来越受到关注。


 
  有这样两个客观事实推动了本文的撰写:
 
  传统信贷服务依赖人工、基于流程的风险管理特点,决定了金融机构的放贷门槛高、审批手续烦琐,导致倾向于向资金需求量较大的大型企业和高净值个人放贷,而将大量具有小微信贷需求的小微企业和中产阶级以下群体拒之门外;
 
  相对宽松的民间借贷又存在利率过高、渠道不正规、难以形成规模效益等问题,使得小微企业和中产阶级以下群体的融资难成为世界级难题。因此,要实现金融普惠,银行业迫切需要新的解决方案。
 
  哈佛大学社会学教授加里·金说过一句话:
 
  这是一场革命,庞大的数据资源使得各个领域开始了量化进程,无论学术界、商界还是政府,所有领域都将开始这种进程。
 
  这里面有一个很关键的词,叫量化。
 
  在大数据的世界里,一切都是可以被量化的。正是基于此,我们走上了一条风险量化之路,这也将两个客观事实结合在了一起:在机器学习的方式下,建立风险量化模型,并在实际应用中不断的训练,促进模型快速迭代,提升金融业内部风险管理效率和外部服务效率,降低金融服务成本。
 
  所谓企业风险量化,是利用企业各个维度的数据作为基础,建立风险评估模型来评价其可能结果的范围,进而完成企业风险的评级、评分或者计算风险发生的概率。
 
  用机器学习的概念来讲,企业风险量化可以定义为分类问题、回归问题或者是异常检测问题,分别有相应的机器学习算法进行建模;也可以建立基于企业关联网络的风险传导模型对企业风险进行量化分析。
 
  本文将结合誉存科技企业风险量化模型,与大家探讨一下整个大数据处理流程中最核心的部分——数据分析在场景应用中的简单与复杂。
 
  风险量化的数据分析可以很简单
 
  数据分析人员对数据分析工作有一个普遍的共识:80%时间是在做数据清洗,20%时间工作是建模。简单的讲,数据清洗主要是对原始数据各字段进行信息抽取,对数据合规性进行检查和转换,如果数据源本身是文本则需使用自然语言处理技术。

 
  清洗好的数据存入结构化表格或者数据库,然后利用现有的各种数据分析语言和工具建模,包括特征工程、缺失值和异常值处理、模型训练和调参、模型验证、模型可视化等。
 
  例如基于python语言的sklearn就包含了大量的机器学习算法实现,可以在比较短的时间训练一个可用的模型。
 
  如果数据量非常大,超过了单机处理能力范围,则根据实际需求搭建不同规模大小的分布式计算集群完成数据清洗和建模。Spark是现在比较流行的分布式计算框架,它提供的各个组件基本能满足企业级的应用需求。

 
  以上就是大数据分析的标准流程,也是我们在构建企业风险量化模型所采用的基本方法。
 
  不管是简单的还是复杂的算法或者技术框架,最终都会演变成简单易用的工具,即使是在自然语言处理、图像、视频等领域均取得了突破性进展的深度学习算法,也有很多开源项目支持,开发者如果不是想深入研究其原理,用深度学习算法训练一个模型并不是很困难的事情。
 
  因此,数据分析变的越来越"简单",甚至可以通过流水线一样的作业方式完成模型的构建,唯一需要开发者理解业务和创新性工作的环节就是建模过程中的特征工程。
 
  风险量化的数据分析其实也复杂
 
  构建一个风险量化模型是可以很简单的,但是构建一个商业化的风险量化模型是复杂的。
 
  近年来,大部分学术界的研究都专注于算法创新,致力于算法改进后的指标在公开数据集上有多大的提升,但一个模型是否成功是由多方面因素决定的,绝不是简单的用诸如"准确率"或“召回率”这样的指标来衡量的,还应该结合其在实际应用中,到底解决了什么样的业务难点及行业痛点,这是商用机器学习模型开发对比学术研究或者数据分析比赛的重要区别。
 
  下面列举几项使得模型设计和开发变得复杂的主要原因:
 
  (1)待解决问题的定义
 
  实际应用中,清楚定义需要被解决的问题比想象中困难很多。如果对问题的定义是"构建一个机器学习模型来识别企业风险"就属于没有清晰定义要解决的问题,什么是"企业风险"?是违约?是失信?还是停止经营?解决不同问题所依赖的数据和算法都可能不同,甚至在某些风控应用场景,任何算法都不如行业专家的几个规则来得直接有效。
 
  (2)模型的可解释性
 
  现有的机器学习模型种类繁多,有的模型能够很好的被人解释,比如逻辑回归、决策树算法等;而有的模型对人来说就是“黑盒子”,比如神经网络、集成学习等。如果模型的可解释性是第一位的,那最终模型的选择只能缩小到特定的算法类别,即使它们的准确性比较低。尤其在为金融行业制定的企业风险量化模型里,客户非常在意模型是怎么算出来的,他们对“黑盒子”机器学习模型不是很感兴趣,甚至抱持着怀疑态度。
 
  (3)带标注的数据量
 
  如果带标签的数据比较少,或者获取标记数据的成本比较高,这对模型效果会是致命的打击。
 
  (4)复杂的模型一定能更好解决问题?
 
  答案是否定的。基本原则是,效果相差不是太大的情况下,选择简单的模型。因为复杂模型所需的数据多,并且消耗的计算资源相对较高,所以在实际应用中,简单模型更实用。
 
  (5)建模的最终目的
 
  以"企业是否有失信风险"这样的分类任务为例,尽管在建立企业风控模型的时候,我们会去计算模型的各类指标,比如分类任务的准确率、召回率、F1、AUC等,但这些指标的变化和提升,并不是建模的最终目的,提高模型的预测效果可能也不是建模的最终目的。
 
  我们真正关心的是建模过程,比如通过各类模型中间结果,去判断哪些因素对“企业是否有失信风险”没有影响,哪些因素对“企业是否有失信风险”非常重要,甚至我们只想知道哪些指标影响了模型的准确率,哪些因素影响了模型的召回率。
 
  训练过程还能告诉我们模型的适用范围是什么,哪些企业适用于失信风险模型的预测,哪些企业不适用,从而去考虑其他方法。
 
  模型分析过程是开发人员对该问题不断深入理解的过程,开发人员需要去成为那个最了解数据的人,而不是了解某个算法的人。
 
  (6)模型工程实现的周全性
 
  训练模型跟产品使用的代码是否完全一致?数据分析接口能否应对高并发问题?Spark技术是否有必要?一般的关系型数据库是否就能解决问题?模型是否需要更新?什么时候更新?用户使用模型的反馈是否能以最快的速度反映到下一次模型输出上?
 
  (7)对模型预测准确性的预期
 
  客户对模型预测准确性的预期是很高的,但任何模型都达不到100%准确性预测,在企业风险量化领域更是如此。主要原因有两个:
 
  第一,建模所使用的数据种类、数据量和数据质量很可能并不能支撑任何模型达到我们期望的准确性;第二,我们用来训练的数据是抽样数据,并不能反映真实数据的分布。
 
  因此,评估模型的实际效果是否满足客户的心理预期尤为重要。
 
  我们研发的基于风险传导模型的企业失信风险预测AUC值达到0.9,基于LBGM算法构建的企业吊销风险预测AUC值达到0.89,表明模型对企业这两类风险均有较好的区分度。
 
  (基于风险传导模型的企业失信风险模型ROC曲线)
 
  以上提到的每一个因素,在模型设计和开发过程中都扮演着重要角色,而最终采用的方案是各个方面综合考虑的结果。企业风险量化分析任重而道远,誉存数据科学家团队将不断研究,更新大数据分析的前沿技术,为客户提供更有商业价值的量化分析产品和解决方案。

— END —

誉存科技

关注我们
关注我们
winxi