写点什么

携程金融大数据风控算法实践

  • 2019-04-24
  • 本文字数:4861 字

    阅读完需:约 16 分钟

携程金融大数据风控算法实践

「业务介绍」

模型一定是基于业务的,所以首先介绍一下携程的业务情况,即本文所提及模型的实际应用场景。携程金融主营业务有三大模块:


  • 消费金融,包括消费分期(拿去花)和现金分期(借去花);

  • 信用卡;

  • 供应链金融。



Fig . 1 携程金融的主要业务范围

「数据中台」

模型亦是基于完善的技术平台的,携程金融数据中台可以抽象为三个层次,底层是基础数据层,中层业务抽象模型层,以及最上层的算法模型层。



Fig . 2 携程金融大数据中台的抽象结构


中台这个概念早期是由美军的作战体系演化而来的,技术上所说的“中台”主要是指学习这种高效、灵活和强大的指挥作战体系。比如电商领域,经过十几年的发展,组织庞大而复杂,业务不断细化拆分,也导致野蛮发展的系统越来越不可维护,开发和改造效率极低,也有很多新业务不得不重复造轮子,因此业界诞生了不少知名中台系统,最著名的是阿里云的数据中台建设。


在携程金融内部,大数据中台的目标是为了解决效率问题,同时降低创新成本。


  • 中台的目标:减少沟通成本,提升协作效率;

  • 中台的实现手段:制定标准/规范、提供高可用数据/算法/应用服务、提供统一、标准的数据研发工具;

  • 中台的原则:数据资产的集中管控,分布式执行。


携程金融的数据中台收集了包括携程 OTA 整个生态环境数据,框架的最底层是计算与存储资源层,其上是数据准备层,融合多数据源,并对其做了抽取,清洗,能够提供在线与离线的服务,使其能够为用户画像,特征引擎提供基础数据,并应用于模型算法。基础数据、用户画像、特征集市、模型服务这些内容以数据资产的形式来管理。基于这些数据资产,可以为各个业务线-获客,准入,经营,留存的全生命周期提供各种服务,框架图如下:



Fig . 3 携程金融大数据中台全景

「风控模型体系」

消费金融的风险大体可分为可控风险及不可控风险,算法能解决的主要是可控风险。可控风险包含欺诈风险、信用风险及作业风险;其中,欺诈风险指的是客户在发起借款请求时即无意还款,按照人数可以分为团伙欺诈和个人欺诈,欺诈者往往通过伪造身份信息、联系方式信息、设备信息、资产信息等方式实施欺诈;信用风险指的是借款人因各种原因未能及时、足额偿还债务或银行贷款而违约的可能性。不可控风险包括市场风险、实质风险及名义风险。



Fig . 4 风险基本分类


风控模型贯穿获客、准入、经营、逾期的整个客户生命周期,根据用户生命周期的不同阶段,可将风控模型分为贷前信用风险模型、贷中行为风险模型、欺诈检测及贷后催收模型。事实上,抓住信贷审批管理就能控制 80%的风险,一旦用户获得授信,后续的管理只能控制 20%的风险。除此之外,贷前、贷中、贷后不同场景,可以从不同的观测粒度进行建模与抽象。拿携程金融的业务来讲,可以从每一笔交易角度来看,也可以从携程生态中用户账户来看,也可以从自然人概念为核心的客户级别来看。一个自然人客户与账号可以是一对多的关系,一个账号与交易也可以是一对多的关系。



Fig . 5 携程金融风控模型体系


如今在银行、消费金融公司等各种贷款业务机构,普遍使用信用评分,对客户实行打分制,以期对客户的风险水平有一个准确的判断,并作为风险定价的重要手段。行业内常用的是 ABC 三张评分卡。A 卡、B 卡、C 卡分别表示:申请评分卡(Application Score Card),行为评分卡(Behavior Score Card),和催收评分卡(Collection Score Card)。


A 卡:在获客过程中用到的信用风险模型。从模型的角度来看,它会对用户未来一定周期内的逾期风险作预测,即模型会在用户授权的情况下收集用户多维度的信息,以此来预测逾期概率。预测的逾期概率被用于风控策略或者转换成信用评分,比如国外经典的 FICO 评分,国内的蚂蚁信用评分、京东小白评分、携程金融的程信分等。A 卡评分除了用于决定是否通过用户的信用申请,还用于风险定价,比如额度、利率等。


B 卡:行为评分是指,用户拿到信用额度后,模型根据用户的贷中行为数据,进行风险水平的预测。本质上讲,这个模型是一个事件驱动的模型,在互联网金融领域,一般会比 A 卡的预测时间窗口要短,对用户的行为更为敏感。B 卡除了可以用于高风险用户的拦截,也可以作为额度、利率调整的重要参考因素。


C 卡:催收评分会判断,例如当用户出现逾期时,机构应该先催谁,或者哪些用户不用催,就自动会把钱还回来。催收模型一定程度节约催收成本,提高回催率。

「风控模型体系之贷前信用风险模型(A 卡)」

贷前主要解决用户准入和风险定价问题,即面对一个新申请的进件用户,判断用户是否符合产品的放款条件及相应的放款额度、价格、期限等问题。主要包括三类问题:


  • 反欺诈识别:根据用户提交的材料进行身份核实,确保用户不存在欺诈行为;

  • 信用评级:与传统银行的信用评分卡原理类似,数据维度更加丰富,综合用户的社交数据、行为数据、收入数据等,判定用户的信用风险等级,评估用户的履约能力;

  • 风险定价:根据用户的负债能力和收入稳定性,判断用户可承担的月供金额,确定用户的放款额度、偿还期限等,并根据用户风险等级确定用户的费率。这三个问题往往是互相影响、互为前提的。举个简单的例子,对一个月收入 3000 的用户来说,月供在 1000 左右,用户可能履约良好,信用等级良好;但如果月供提高到 4000,严重超出了其收入水平,即便不是有意欺诈,也可能出现断供的情况,从而得到比较差的信用等级。


本节重点阐述携程金融在信用风险建模(A 卡)上的演进和一些创新工作。


A 卡建模目前包括如下几方面:


  • 确保策略的一致性,尽量减少人工干预,并利用机器学习的优势提升决策效率;

  • 准确反映并量化用户的风险级别,策略人员可以控制和减少风险损失,因此对评分卡等级的排序能力、稳定性要求会比较高。


好坏用户定义:这一点可能是 A 卡甚至是互金大部分风控模型的最基础最核心的工作。对样本标签的定义,需要与实际业务场景、策略目标相一致,并综合考虑不同定义下的样本量。比如在现金分期场景中,可以画一下用户回款率(或者滚动率)和逾期天数趋势分布曲线,用户逾期 N 天以后回款率或者滚动率便已经趋于稳定(梯度平稳),则可以 N 天以上逾期作为筛选坏样本的依据。在某些场景下,如曾经的 Payday Loan,由于整个业务周期只有半月或 1 个月,为加快模型迭代速度,有时甚至会定义 7+甚至 1+逾期用户为坏客户。在一些银行场景中,出于坏账计提考虑,可能定义 90 天以上逾期为坏客户。总之,好坏用户的定义不能纯靠人工经验,应该以场景的数据为基础,进行数据分析之后确定。


样本规模与算法演进:携程金融的业务最早开始于 2015 年,模型进行了多个版本的迭代。下面的表格展示的是拿去花业务中,我们 A 卡模型的演进。业务初期,样本数据量极少,往往根据相关业务经验确定使用的特征和规则;随着数据的慢慢积累,开始采用部分精细特征,使用简单的机器学习算法训练;当样本数据量积累到百万级以上,我们尝试采用神经网络算法进行特征自动提取或者 end-to-end 的风控模型训练;从 18 年上半年开始,我们升级到更加先进的迁移学习体系,未来会持续落地更多的前沿算法。总之,携程金融的风控模型优化的过程,实质是紧随着业务从无到有、从小到大,数据量由少变多,特征由粗到细,模型由简单到复杂,效果由一般到突破的过程。



Fig . 6 携程金融拿去花业务 A 卡模型演进


模型的评估与监控:模型建立后,需要对模型的预测能力、稳定性进行评估。看模型效果不能只看 KS,KS 定义是从 0-1 概率之间好坏样本累计概率最大差值,实际应用中一般不会直接取这个阈值(cutoff)作为策略,因为在这种 cutoff 下,通过率可能会很低;风控不能不管业务,举个极端的例子,通过调整 cutoff,风控几乎可以做到任意想要的逾期率,但这样通过率就很低了,业务规模可能只停留在极少数资质优秀的客户;所以评估模型时,基于风险的评估及基于业务的评估是必须的。因此,模型评估可分为三层:


  • 第一层:机器学习模型评估指标。信用评分模型常用的评估指标为 KS、AUC 等。 考虑到金融业务反馈周期长的特点,除了划分训练集、测试集外,通常会预留一段训练样本覆盖时间段之外的数据集,作为 OOT(跨时间)测试集,以测量模型在时间上的稳定性;

  • 第二层:风控层面,比如在不同 bucket 下,预测概率的排序性能;

  • 第三层:业务层面的拦截率,通过率,逾期表现等。


基于上面的评估分层,我们的监控也做对应的分层监控,除了包含上述三个层面,还对输入到模型中的特征进行监控,比如特征的分布、波动率等。

「风控模型体系之贷前信用风险模型发展历程」

经历过了完全靠经验的规则模型,当积累了一定数据量时,便可以用少量的维度与数据开始训练了,当数据量较少时,使用简单的 LR 就能达到不错的效果。随着数据量的不断增加,慢慢构建起了身份属性、消费能力、用户关系、信用记录、出行记录等特征,GBDT+LR,RF,XGBOOOST,LightGBM 等更复杂的算法便可以派上用场了。当数据达到一定规模时,采用深度学习来进行自动化表征学习或者 end-to-end 的风控模型学习,我们测试过 DNN,这个算法在同等情况下,和 GBDT 之类的算法性能类似,并没有太明显的效果,一方面说明 GBDT 这类算法在处理非图像、语音、文本这类局部结构并不是特别明显的数据的优势,另一方面说明,不能直接将 CV\NLP 领域的算法拿来用,需要做一定的改造和优化,因此我们陆续使用和改造了 ResNet、FractalNet 等网络结构,相比于 DNN 和 GBDT 模型效果有比较明显的提升;再进一步,通过分析风控这个场景,我们发现,通过审批的用户与开放自然流量的数据分布差异比较明显,这一现象,基本打破了我们传统监督学习中训练集和预测集数据分布相似的假设。为解决这个问题,我们引入迁移学习框架,同等逾期条件下,通过率能明显的提升。



Fig . 7 A 卡 V1-LR 模型



Fig . 8 A 卡 V2-GBDT 模型



Fig . 9 A 卡 V3-DNN 模型



Fig . 10 A 卡 V4-分形网络模型



Fig . 11 A 卡 VX-迁移学习模型

「风控模型体系之贷中反欺诈模型」

贷中反欺诈按粒度可分为两类,用户级与交易级。用户级粒度相对粗一些,即断定当前客户为欺诈客户,可能的策略就是不允许欺诈用户在平台上发生交易行为;交易级是较细粒度的,即根据交易上下文、IP、设备、地域判断当前交易是否为欺诈交易,如果是,即不允许客户进行此笔交易。


贷中反欺诈有 3 个难点:


① 长尾分布:欺诈用户其实是极少的


② 对抗性显著:欺诈用户会想办法找出系统及规则的漏洞


③ 模仿正常行为:欺诈用户会利用伪造消费流水,前期正常还款等行为等,让金融公司放松警惕,当提额到一定程度后,便开始逾期。


在反欺诈领域,我们除了使用一般的机器学习模型,也构建了一套基于社交网络的模型体系。

「社交网络在风控模型中的应用」

基于社交网络的反欺诈,基本思想其实很简单,物以类聚,人以群分。比如一个欺诈分子,可能与其有关系(在 Graph 上表现为有直接的边连接,这种也称之为一阶亲密度;或者通过边的游走能够触达,这种称之为多阶亲密度),那么可能这些与之有关系的用户也是欺诈分子。如图所示,通过梳理携程生态内关键实体、关系,我们首先构建了一个庞大的异构社交网络,该网络包含 10 亿级别的顶点,50 亿级别的边。接下来是通过算法,发现社区(Community)。由于社交网络的数据量相对来讲是比较大的,因此在算法层面,对运算效率要求也是比较高的,同时对于社区划分的稳定性有一定要求。在实际落地中采用 LPA、改进的 Louvain,实现 T+1 的社区发现。最后基于划分的社区,可以获得社区的各种属性统计,这个作为反欺诈策略的重要参考。当有一个用户到来的时候,看其属于哪个社区,根据改社区的属性确定该用户是否为欺诈用户。


目前在携程金融的实际应用中,基于社交网络的风控指标已经覆盖了贷中 80%的贷款请求,同时通过社交网络,挖掘关系人一度或者多度关系,对严重的逾期行为,通过多度关系进行催收,提升回催率。



Fig . 12 携程金融关系网络



Fig . 13 社交网络应用的基本流程

作者介绍:


曾凡祥,携程金融大数据团队负责人。北京邮电大学博士、加拿大 McGill 大学访问学者,致力于大数据和人工智能技术在金融风控、精准营销方面的研究和应用。


本文来自 曾凡祥 在 DataFun 社区的演讲,由 DataFun 编辑整理。


2019-04-24 08:009451

评论

发布
暂无评论
发现更多内容

程序性能提高了5倍!开源阿里500页的Java程序优化笔记

Java你猿哥

Java 面试 性能优化 Java虚拟机 Java性能优化

为什么《魂斗罗》只有128KB却可以实现那么长的剧情?

Java你猿哥

Java 编程 程序员 汇编语言 优化技术

Java面试题大全(2023最新版)大厂面试题附答案详解

采菊东篱下

Java 面试

appuploader   iOS 应用自动发布

雪奈椰子

python采集评论区内容

BROKEN

三周年连更

Golden Gate(GGX)开发者见解与创新DeFi应用

股市老人

Java8 lambda 表达式 forEach 如何提前终止?

Java你猿哥

Java ssm java8 foreach

Java 数组在内存中的结构是怎样的?数组访问、遍历、复制、扩容、缩容如何编写代码?

Java架构历程

Java 数组 三周年连更

Python的常见数据结构

timerring

Python

2023年互联网Java面试题最新整理附答案

架构师之道

Java 面试

为什么有些前端一直用 div 当按钮,而不是用 button?

海拥(haiyong.site)

三周年连更

程序员如何应对失业? | 社区征文

石云升

职业规划 三周年征文 三周年连更

围绕应用的云原生转型建设

穿过生命散发芬芳

云原生 三周年连更

自动化与DevOps

阿泽🧸

自动化 三周年连更

变量,常量以及与其他语言的差异

乌龟哥哥

三周年连更

字节速通!这份软件测试八股文还怕不能拿offer?你值得拥有

Java你猿哥

MySQL 面试 软件测试 计算机 八股文

OpenHarmony应用TS&JS编程指南

鸿蒙之旅

OpenHarmony 三周年连更

Matlab实现Non-Local Means算法

袁袁袁袁满

三周年连更

Mac M1 安装SD(上)

IT蜗壳-Tango

三周年连更

一文看懂:性能监控神器JavaMelody

后台技术汇

三周年连更

Bash脚本中的Sleep命令到底有何妙用?

wljslmz

三周年连更

面试不再慌!苦学这份2023最全的Java性能优化实战笔记,已涨17k

Java你猿哥

Java 面试 JVM 多线程 Java性能优化

我懵了,如果要存 IP 地址,用什么数据类型比较好?

Java你猿哥

Java MySQL 数据库 ssm IP

Go语言开发小技巧&易错点100例(七)

闫同学

三周年连更

SpringBoot核心配置全面总结

小小怪下士

Java 程序员 后端 springboot

速通字节!阿里p8耗时6个月打造的java面试手册,看到直呼“面试有手就行”

Java你猿哥

Java spring 微服务 JVM 多线程

Python语法基础快速回顾

timerring

Python

我理解的声明式 vs 命令式

agnostic

声明式

什么是 Intelligence Enterprise 的 Business network?

汪子熙

人工智能 机器学习 数字化转型 三周年连更

分布式事务的21种武器 - 4

俞凡

架构 云原生

MySQL面试八股文:索引篇

Java你猿哥

Java MySQL ssm 索引 八股文

携程金融大数据风控算法实践_大数据_DataFunTalk_InfoQ精选文章