文章作者:携程技术团队

编辑整理:Hoh

内容来源:《携程人工智能实践》

导读:支付欺诈风险是携程金融风控团队的主要防控对象,它一般是指用户卡片信息或账号信息泄露后,欺诈分子利用这些信息在携程平台进行销赃,侵害用户资金安全,给用户和携程平台带来损失。携程金融风控团队需要在不影响正常用户自由出行的前提下,对这样的风险交易进行精准识别并实时拦截,从而保护用户资金安全。支付欺诈风险具备以下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专注于大数据、人工智能技术应用的分享与交流。发起于2017年,在北京、上海、深圳、杭州等城市举办超过100场线下沙龙、论坛及峰会,已邀请近500位专家和学者参与分享。其公众号DataFunTalk累计生产原创文章300+,百万+阅读,6万+精准粉丝。

随机森林python反欺诈_携程金融自动化迭代反欺诈模型体系相关推荐

  1. 深度学习核心技术精讲100篇(七十九)-深度学习应用实战案例:携程金融自动化迭代反欺诈模型体系

    前言 支付欺诈风险是携程金融风控团队的主要防控对象,它一般是指用户卡片信息或账号信息泄露后,欺诈分子利用这些信息在携程平台进行销赃,侵害用户资金安全,给用户和携程平台带来损失. 1. 高对抗性 欺诈分 ...

  2. python关键字数据驱动_携程大牛谈自动化测试里的数据驱动和关键字驱动思路的理解...

    对于初次接触自动化测试时,对数据驱动和关键字驱动不甚理解,觉得有点故弄玄虚,不就是参数和函数嘛!其中也体现了测试所不同与开发的一些特点(主要指系统测试),以及和对技术发展的脉络的展现. 一.录制/回放 ...

  3. 随机森林计算特征重要性_随机森林中计算特征重要性的3种方法

    随机森林计算特征重要性 The feature importance describes which features are relevant. It can help with a better ...

  4. 携程基于大数据分析的实时风控体系

    携程反欺诈体系经过超过10年的发展和积累,在大数据实时并行计算和实时多维关联分析方面已经非常成熟,是整个体系稳定高效运行的基础. 近两年来,我们在大数据和人工智能方向投入研发资源,产出了设备指纹.CD ...

  5. 百亿节点、毫秒级延迟,携程金融基于 NebulaGraph 的大规模图应用实践

    作者:霖雾,携程数据开发工程师,关注图数据库等领域. 0. 背景 2017 年 9 月携程金融成立,在金融和风控业务中,有多种场景需要对图关系网络进行分析和实时查询,传统关系型数据库难以保证此类场景下 ...

  6. 干货 | 千人千面营销系统在携程金融支付的实践

    作者简介 房英明,携程支付中心数据负责人,目前负责支付离线数据仓库建设及BI业务需求.主要兴趣点为并行计算.数据处理及应用等领域. 一.引言 携程金融核心产品为:拿去花.借去花.信用卡.理财.其中拿去 ...

  7. R语言分类模型:逻辑回归模型LR、决策树DT、推理决策树CDT、随机森林RF、支持向量机SVM、Rattle可视化界面数据挖掘、分类模型评估指标(准确度、敏感度、特异度、PPV、NPV)

    R语言分类模型:逻辑回归模型LR.决策树DT.推理决策树CDT.随机森林RF.支持向量机SVM.Rattle可视化界面数据挖掘.分类模型评估指标(准确度.敏感度.特异度.PPV.NPV) 目录

  8. 随机森林python反欺诈_WePay机器学习反欺诈实践:Python+scikit-learn+随机森林

    摘要:在这篇博文中,WePay介绍了支付行业构建机器学习模型应对很难发现的shell selling欺诈的实践心得.WePay采用了流行的Python.scikit-learn开源学习机器学习工具以及 ...

  9. python携程酒店评论_携程酒店评论爬虫心得

    携程酒店评论爬虫心得 发布时间:2018-09-02 15:58, 浏览次数:613 携程酒店评论爬虫心得 这次爬取数据,遇到了不少的困难,也走了很多弯路,特此写下帮助记忆.以下基本是我爬取数据的过程 ...

  10. 随机森林python实例_用Python实现随机森林算法的示例

    这篇文章主要介绍了用Python实现随机森林算法,小编觉得挺不错的,现在分享给大家,也给大家做个参考. 拥有高方差使得决策树(secision tress)在处理特定训练数据集时其结果显得相对脆弱.b ...

最新文章

  1. 怎么用python读取csv文件、并且是读取行-python读取csv文件指定行的2种方法详解...
  2. Spring学习之Bean的配置
  3. EOJ_1024_表达式
  4. Airflow的SimpleHttpOperator不支持https问题解决
  5. 关于“wap2app仅支持对已通过ICP备案的域名站点进行打包”问题解决
  6. 剑指offer之二维数组中查找
  7. 【TypeScript系列教程09】条件语句的使用
  8. 设计师如何了解行业方向?推荐设计师交流平台
  9. java.util.HashMap
  10. Material UI 4.10 Skeleton 骨架
  11. java零基础从入门到精通(全)
  12. Java项目实战教程|最完整的Javaweb项目推荐(资料+源码分享)
  13. js分割字符串转数组
  14. 抖音网红穿的服装品牌,那些爆款女装号都是怎么拍的呢?
  15. 争对让望对思野葛对山栀注解_《笠翁对韵》四 支(4)
  16. 邮箱app哪个好用,能在手机用的邮箱app推荐下
  17. 斑马旅游在千帆竞发的出境游市场能否找到属于自己的道路?
  18. SharePoint上面搜索不到内容
  19. 【对比Java学Kotlin】协程-创建和取消
  20. excel转tsv格式

热门文章

  1. photoshop cs6 界面字体太小解决方法
  2. linux wget 整站克隆/仿站 整个网站的静态源码下载到本地 4种扒站工具(webzip、ha_TeleportPro、Offline Explorer、wget)
  3. 有盘和无盘服务器,网吧系统的终极解决之道:无盘系统+有盘(转)
  4. 云更新无盘计算机配置,云更新网吧管理系统
  5. iperf3的交叉编译
  6. VS2010 .net4.0 登录QQ 获取QQ空间日志 右键选中直接打开日志 免积分 源码下载
  7. C语言链表翻转的三种实现方式(栈、头插法、递归法)
  8. 安装dbVisualizer报错:the java_home environment viariable does not point to a working 32-bit JDK OR JRE
  9. 有线异步通信原理_【对讲机的那点事】揭秘对讲机系统集群网关的应用原理
  10. Windows Server 2019 Datacenter x64 安装 SHARP AR-2048N 打印机驱动