NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

携程金融自动化迭代反欺诈模型体系

  • 2020-06-24
  • 本文字数:4036 字

    阅读完需:约 13 分钟

携程金融自动化迭代反欺诈模型体系

导读: 支付欺诈风险是携程金融风控团队的主要防控对象,它一般是指用户卡片信息或账号信息泄露后,欺诈分子利用这些信息在携程平台进行销赃,侵害用户资金安全,给用户和携程平台带来损失。携程金融风控团队需要在不影响正常用户自由出行的前提下,对这样的风险交易进行精准识别并实时拦截,从而保护用户资金安全。支付欺诈风险具备以下 3 点特性。

1. 高对抗性

欺诈分子的作案手段绝非一成不变,他们也会根据我们的策略拦截结果对作案方式不断调整,不断形成风险转移,如果我们的策略模型不及时追踪这种变化,则无法做到"见招拆招"。

2. 复杂性

为了躲避风险控制的策略规则,欺诈分子也会尽力模仿正常用户的消费行为,而且从目前的数据来看,支付欺诈场景的批量操作行为比业务作弊场景少很多,原因是在携程平台上,欺诈分子相当于一个承接正常用户需求的代订中介,在没有需求的情况下,他们没有必要通过走量的形式进行销赃。这样的业务特性导致支付欺诈多为无规律性的单点攻击,普通规则在模拟这种复杂逻辑场景的时候会存在一定劣势,通常要么精度不够,造成误拦截过多,要么无法捕捉作案手法。与普通规则不同的是,模型可以在多变量前提下进行数据拟合,从而捕捉复杂作案手法。

3. 坏样本稀少

在支付反欺诈场景中,坏样本的主要来源有两部分:在风控运营过程中,人工拦截或规则、模型自动拦截的风险订单;风控策略无法识别并最终产生损失的风险订单。在风险订单中,风控策略能够拦截的占绝大部分,而我们需要注意的恰恰是无法识别的那部分,但这部分案件样本相当稀少,这给规则和模型的学习带来不小的挑战。


携程金融风控团队为了应对支付欺诈风险的特性,使用了一套自动化迭代反欺诈模型体系,以加快模型迭代速度,学习最新作案手法,在整个过程中尽量减少工程师的人力投入成本,并且用生成式对抗网络辅助,增加稀少案件样本的数量,使模型的学习更加充分,最终达到"见招拆招"的目的。

01 风控变量体系

数据决定模型的上限。图 1 是风控变量体系。该体系主要基于携程平台的账户、支付、出行、金融及 IP Location 等数据构建。我们的风控变量体系主要从衍生方法的多样性、业务含义的完备性两个角度去考虑。



图 1 风控变量体系

02 自动化迭代模型框架

上文介绍了我们的风控变量体系,下面介绍自动化迭代反欺诈模型框架,如图 2 所示。



图 2 自动化迭代反欺诈模型框架

1. 迭代触发

迭代触发的条件可以自行设定,该模型可以按照时间周期迭代,也可以在实际业务效果下降后触发迭代。

2. 变量库

我们的变量库由线上实时计算的变量和离线 T+1 清洗的变量组成,当新的模型触发迭代时,近期的样本会构成候选变量池。

3. 变量处理和变量筛选

我们对候选变量先进行一轮特征工程。这主要包含两个步骤。


  • 变量检查。我们将包括变量自身分布的稳定性指标 ( PSI ) 在内的有问题的变量剔除。

  • 缺失值/特殊值填充。因为我们的流程中会用到 DNN 深度学习的方法,而此类方法对缺失值较为敏感,所以我们需要将这部分特殊情况用正常的取值情况去替代。我们目前使用的替代方法是找到与特殊值黑样本率最接近的正常值区间,用区间中的值进行特殊值替代。如果变量是离散型变量,那么我们需要将其转成 one-hot 形式。

4. 算法衍生变量

利用上一步的结果,通过深度学习的方法进行表征学习,目的是在基于业务衍生的变量之外,通过算法自动生成一些变量。由于目前对深度学习的弱解释性没有较好的解决方案,所以,为了保证主模型的可控性,我们建议限制深度学习模型的网络结构复杂性,同时控制最终入选模型的变量个数。我们以业务衍生变量为主,以算法衍生变量为辅。

5. GANs

我们利用 GANs 模型,通过对真实欺诈样本集数据分布的学习,自动合成符合该分布的欺诈样本,将人造欺诈样本纳入样本库,改善欺诈案件稀少的情况,增强模型对欺诈样本的学习。

6. 主模型

原则上主模型的类型没有限制,只要能实现分类器的功能都可以。为了提高自动化迭代效率,我们推荐使用随机森林、GBM、GBDT、XGBoost 或 LGBM 等基于决策树的模型作为主模型,原因如下。


  • 此类模型能实现在每次拆分时自行从候选变量池中挑选变量的功能,可以节省根据变量重要性手动挑选入模变量的时间。

  • 此类模型可以捕捉变量与目标之间的非线性关系,并且自动交互组合变量,减少特征工程时间。

  • 此类模型在每次拆分时,能够有效利用变量的碎片化信息。

7. 部署

框架输出:输出 PMML 格式模型打分文件、特征工程过程代码、算法衍生变量生成方法。其中,特征工程过程代码可以认为是原始变量到入模变量之间的映射方法。


变量配置:如果模型有新变量 ( 原本生产环境未配置,只能离线清洗计算 ) 入选,则需要将这部分变量配置至生产环境。

8. 确定阈值

在传统情况下,我们一般通过跨期测试集的效果来确定模型的阈值,由于支付欺诈场景的高对抗性,我们建议将近期样本放入模型中进行训练,这样可以压缩跨期测试集的空间,甚至使模型没有跨期测试集。针对这种情况,我们采用的方案是,先将模型部署上线但不使其生效,短期观察一段时间后,根据生产环境的真实表现确定阈值,参考的依据主要有阈值以上的交易占比及相应的准确率。


与传统建模流程相比,自动化迭代模型框架在追求快捷高效的同时有两个问题。


  • 自动化迭代模型框架缺少了对所有入模变量人工审核的过程,减少了我们对入模变量的了解,降低了模型的可控性。

  • 由于支付欺诈场景的高对抗性,所以我们建议使近期样本进入训练集,让模型学习近期的风险特征,这样会造成每次迭代几乎没有用来检验模型是否会出现过拟合的跨期测试集。


针对这些问题,为了最终实现自动化迭代模型体系对支付欺诈风险的高对抗性、复杂性的克服,达到模型效果与模型可控性的平衡,我们需要一套完备的监控体系为模型保驾护航。

9. 监控体系

变量监控:对生产环境中的变量监控 PSI、特殊值 ( 包括缺失率 ) 占比变化。


模型监控:通过模型打分进行 PSI 监控。


业务效果监控:针对支付反欺诈场景,我们主要监控模型线上交易的真实拦截率与预估拦截率是否有差异,以及通过事后的人工定性监控模型拦截的准确率是否符合预期。


在运营维护自动化迭代模型框架的过程中,我们认为除了新变量配置流程目前需要人工介入,对业务的深入了解和对支付欺诈案件的人工分析也是不能节省人工投入的,毕竟任何模型算法只是工具,一个好的业务沉淀转化的变量给模型的效果带来的提升,要远远大于算法优化带来的提升。

03 RNN 表征学习

在支付反欺诈场景中,传统方法衍生的特征一般刻画用户在某个时间窗口内进行了几笔交易、换了几张信用卡、累计消费了多少金额等,也就是量化用户在这段时间内干了什么,但是这种衍生方法在用户时序行为信息表达上有不足之处,它没有刻画用户先干了什么后干了什么。我们可以利用 RNN 捕捉时序行为的特性,在主模型进行训练前,先基于用户 UBT 行为数据训练一个 RNN 子模型,将这个模型的隐藏层输出作为主模型的输入变量,如图 3 所示。



图 3 RNN 结构示例图


UBT 数据主要分为 action、pageview 数据,action 是指用户在浏览时进行的细节操作,如筛选、排序、填写等,pageview 数据是用户在浏览的页面的 ID,每个页面都有对应的 ID,同样是酒店详情页,如果酒店不相同,则页面的 ID 也不一样。我们以 pageview 数据的应用为例,介绍利用 UBT 数据建模的主要步骤。

1. 业务转化

如果直接将 pageview 数据作为模型的输入,那么会出现两个问题。


  • 用户的相同的浏览动作,如浏览页面详情,会因页面来自不同的酒店或航司而产生不同输入,即输入不稳定。

  • 页面的 ID 在作为输入时,从业务角度理解起来过于枯燥,不够生动。


针对以上问题,我们花了大量时间对 UBT 数据进行了人工汇总,以业务理解为核心,有选择地将原本枯燥无味的页面转化为用户的行为动作,并将用户在页面的停留按照停留时长的分组转化为几种输入动作。业务转化示例如图 4 所示。



图 4 业务转化示例

2. 动作字典

我们将希望能采集到的用户浏览动作汇编成一个输入字典,如表 1 所示。



表 1 输入字典

3. one-hot

用传统的 one-hot 的方式将这些动作逐一量化为向量,使其生成矩阵,并将矩阵输入模型。


最后,在训练完模型后,提取模型隐藏层的输出,将它们作为特征输入主模型。由于这部分特征表达的是用户的时序行为信息,其数据来源和表达信息的维度都与以往传统的衍生变量有所不同,所以我们在实践中发现,这部分特征与传统衍生特征之间的冗余性非常低,对主模型来说是一个非常好的信息补充。

04 自动化与传统方法的效果对比

1. 传统方法

在传统情况下,我们构建一个模型的时间成本要高于构建规则的时间成本,因此以往当我们上线一个模型时,稳定性是我们参考的重要指标。我们希望上线一个模型后,模型能正常表现几个月甚至半年。然而,以风控支付反欺诈模型──天眼模型为例,在天眼一期的时候,我们构建了一个模型,在 OOT1 ( 第一个跨期测试数据集 ) 中,当准确率为 80%时,模型的召回率为 12%以上;仅仅过了一个月,在 OOT2 ( 第二个跨期测试数据集 ) 中,同样当准确率为 80%时,模型的召回率衰减到 7.9%左右,如图 5 所示。



图 5 天眼一期效果


由于模型的衰减发生在两个跨期测试集之间,而不是发生在训练集与测试集之间的,所以我们排除了模型本身的过拟合造成的效果衰退。分析后发现,造成模型覆盖率降低的原因是支付欺诈场景的高对抗性,欺诈分子在不断变换他们的欺诈手法,因此历史数据训练的模型无法覆盖最新的手法。

2. 自动化迭代 vs 传统方法

在天眼二期的时候,我们采用了自动化迭代的流程框架,在降低建模成本的同时使模型与欺诈形势保持同步。如图 6 所示:



图 6 天眼二期效果 vs 天眼一期效果


在天眼一期效果已经下降的 OOT2 中,天眼二期的召回率能在准确率为 80%的情况下重新回到 11.5%左右。


以上内容选自携程技术团队新书《携程人工智能实践》


本文来自 DataFunTalk


原文链接


https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247502151&idx=1&sn=4dbd1c11b3d101c21ae50bf79a93e5c4&chksm=fbd77b2bcca0f23df991b9bfe595e93816e984c415db03d6c00bce9fdb609b8ce96fdd1b4f3e&scene=27#wechat_redirect


公众号推荐:

跳进 AI 的奇妙世界,一起探索未来工作的新风貌!想要深入了解 AI 如何成为产业创新的新引擎?好奇哪些城市正成为 AI 人才的新磁场?《中国生成式 AI 开发者洞察 2024》由 InfoQ 研究中心精心打造,为你深度解锁生成式 AI 领域的最新开发者动态。无论你是资深研发者,还是对生成式 AI 充满好奇的新手,这份报告都是你不可错过的知识宝典。欢迎大家扫码关注「AI前线」公众号,回复「开发者洞察」领取。

2020-06-24 14:072373

评论

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

13分钟彻底搞懂分布式系统服务注册与发现原理,写给互联网大厂员工的真心话

Java 程序员 后端

2021Java开发现状分析,看完这一篇你就懂了

Java 程序员 后端

2021Java者未来的出路在哪里,kafka从入门到精通

Java 程序员 后端

2021大厂Java社招最全面试题,2021年Java开发者常见面试题

Java 程序员 后端

2021Java面试心得,shiro框架视频尚硅谷,最新Java开发进阶

Java 程序员 后端

2021Java面试笔试总结,jdk使用教程,Java高级工程师必备知识

Java 程序员 后端

上云,能打破低代码“内卷”吗?

海比研究院

低代码

2021Java精选面试实战总结整理,架构师必备

Java 程序员 后端

2021Java精选面试实战总结整理,讲的太透彻了

Java 程序员 后端

月经逆行、体能差、雌激素影响心态……女性进入太空,要经历哪些科技伪命题?

脑极体

实时即未来!Flink Forward Asia 2021 议程正式上线!

Apache Flink

大数据 flink

2021大厂Java面试真题集锦,京东健康Java面试

Java 程序员 后端

万物智联与烟火人间,一场跨越20年的双向奔赴

脑极体

15个经典面试问题及回答思路,Java面试你必须要知道的那些知识

Java 程序员 后端

2021Java常见笔试题,牛客网java编程题送信,字节Java面试题

Java 程序员 后端

2021Java开发面试解答,数据库mysql教程视频教程,90%的人看完都说好

Java 程序员 后端

2021大厂Java开发面试总结+解答,Java基础笔试题大全带答案

Java 程序员 后端

2020-2021蚂蚁金服Java面试真题解析,2021最新Java面试真题解析

Java 程序员 后端

2021Java开发学习路线,两年Java开发经验

Java 程序员 后端

2021Java高级面试题总结,kafka面试常见问题

Java 程序员 后端

2021Java高级面试题汇总解答,Java开发新手入门教程

Java 程序员 后端

2021Java进阶者的新篇章,Java全栈知识体系

Java 程序员 后端

Activity重启引起的重复发送消息Bug分析

轻口味

android 10月月更

2021大厂Java开发面试总结+解答,【一步教学,一步到位】

Java 程序员 后端

做一名真正的软件工程师

百度开发者中心

程序员 最佳实践 分享 工程师

2021Java网络编程总结篇,百度技术三面四面,最全Java知识总结

Java 程序员 后端

2021Java高级面试题,极客时间vip年卡,看懂这些帮你轻松解决就业问题

Java 程序员 后端

2021一位Java中级程序员的跳槽面经,最全的BAT大厂面试题整理

Java 程序员 后端

2020-2021京东Java面试真题解析,在线面试指南

Java 程序员 后端

2021Java常见面试题,牛客网中级项目异步队列,Java高级面试题及答案整理

Java 程序员 后端

2021Java高级进阶学习资料,字节跳动Java高级工程师

Java 程序员 后端

携程金融自动化迭代反欺诈模型体系_软件工程_DataFunTalk_InfoQ精选文章