写点什么

如何通过用户的行为序列来提升欺诈风险识别

  • 2019-09-02
  • 本文字数:3283 字

    阅读完需:约 11 分钟

如何通过用户的行为序列来提升欺诈风险识别

小蚂蚁说:

移动支付在带给人们便捷生活的同时,也面临着网络欺诈的空前挑战。仅在支付宝场景中,每日的欺诈举报量上千,涉案金额上百万。作为移动支付领航者的支付宝,借助大数据和 AI 技术,并历经了十多年的发展后,构建了世界级领先的风控技术能力。

本文讲述了蚂蚁金服技术团队在支付宝现有风险识别体系上,进行了深度学习的升级,基于被骗者及欺诈者行为序列进行的欺诈场景应用探索。

后期我们还会进一步深入挖掘行为序列在欺诈风险识别的应用,以提升支付宝整体的欺诈风险识别能力。

一、业务背景

1.欺诈和欺诈风险识别:

文中所指的欺诈特指电信诈骗或网络诈骗,即欺诈者使用某些话术和套路,让受害人误以为真,而自愿将资金转移给欺诈者,从而蒙受损失的欺诈行为。


常见的欺诈手法包括以刷单为由,让用户点击购买商品;冒充公检法、领导或亲友让用户进行大额转账;骗子获取了客户网络购物信息,冒充客服人员以退款为由,向用户发送钓鱼链接等。为了保护支付宝用户,净化支付宝体系,需要对这类欺诈交易和欺诈者进行识别,由此产生了欺诈风险识别的需求场景。

2.欺诈风险识别的难点:

欺诈风险识别具有一定的挑战性,主要以下有几个难点:


  • 被骗交易之前的行为大多发生在体系外,比如通过微信或 QQ 聊天,或者被电信欺诈,因此可用数据较其它风险而言相对较少。

  • 行为特征不明显,由于用户自己被骗,其操作及支付行为都是自己发起的,因此无法获取到用户的明显异常行为。

  • 欺诈交易中的收益银行卡,有相当多的是新卡,由于新卡信息少,对于风险防控来说更加具有挑战性。


二、欺诈风险识别模型的解决思路

现有模型体系:


现有风险识别模型主要是事中识别,整个模型包括了三个不同层级,四类场景构成的模型体系,从层级上有可信模型、实时模型和离线模型,场景由转账到账户、转账到卡、直连非 BD 商户和间商户这四种场景构成。


现有的变量主要从主动方支付行为的异常及被动方的收款行为进行刻画。大体上可以分为三大类变量,第一是历史信息汇总类变量,即 velocity 类,第二是衍生类变量,包括个体突变和群体概率,第三是关系类变量。


基于深度学习的升级:


现有模型体系可以识别大部分欺诈交易,但对于部分突变或收款异常特征不明显情况较难识别到,另随着风险对抗升级,这种异常行为也会逐渐转移;对被骗者及欺诈者的行为序列深入分析发现,被骗者及欺诈者的行为序列模式都有迹可循:例如正常转账交易情况下主动方登录后直接进行转账,而被骗转账交易下被骗者登录后先查看自己的芝麻分或借呗后再转账;一般正常人收到转账前无任何操作,收到钱后也不会直接转出,而欺诈者在收到转账之前,往往会查看自己账户信息或更改头像,而且会在收到钱后直接提现转出。


基于这些行为序列,我们可以通过特征工程来刻画变量,加入到现有模型中,也可以直接基于深度学习来自动学习刻画这些变量。因此我们引入了基于操作、支付以及浏览行为的事件序列,采用 LSTM 模型结构深入刻画主动方(账户)以及被动方(账户/卡 Bin)的异常行为链,以提升整体的欺诈风险识别能力。

三、LSTM 介绍

LSTM 是 RNN 的一种特殊类型,保留了循环神经网络(RNN)的链式重复神经网络模块结构来捕捉序列信息,同时利用门结构来控制模型中信息的传输量,从而可以学习长期依赖(long-term dependency)信息,在序列建模中被广泛使用。


RNN 的隐藏层只有一个状态 h,它对于短期的输入非常敏感,LSTM 中增加一个状态 c (cell state)来保存长期的状态。LSTM 中使用三个控制开关控制长期状态 c,第一个开关负责控制继续保存长期状态 c,第二个开关负责控制把即时状态输入到长期状态 c,第三个开关负责控制是否把长期状态 c 作为当前的 LSTM 的输出。三个开关的作用如下图所示:




门实际上就是一层全连接层,它的输入是一个向量,输出是一个 0 到 1 之间的实数向量。假设 W 是门的权重,b 是偏置项,那么门可以表示为。T 时刻 LSTM 的输入有三个:当前时刻网络的输入值、上一时刻 LSTM 的输出值、以及上一时刻的单元状态,LSTM 的输出有两个:当前时刻 LSTM 输出值、和当前时刻的单元状态,LSTM 的前向计算如下图所示:





LSTM 的训练算法仍然是反向传播算法,主要有下面三个步骤:


前向计算每个神经元的输出值,对于 LSTM 来说,即五个向量的值。


反向计算每个神经元的误差项值。与循环神经网络一样,LSTM 误差项的反向传播也是包括两个方向:一个是沿时间的反向传播,即从当前 t 时刻开始,计算每个时刻的误差项;一个是将误差项向上一层传播。


根据相应的误差项,计算每个权重的梯度。

四、欺诈防控应用

4.1 转账到账户场景

一笔转账到账户交易涉及两个主体即支出账户及收款账户。在风控事件中除了账户交易行为还包括账户的操作行为及日志等信息,其中账户作为主动方的行为包括支出,改密,加好友,改头像等等,账户作为被动方的行为包括收款,被举报,被加好友等等,针对一笔转账交易,我们可以基于支出账户的行为和收款账户的行为进行序列挖掘分析,并且针对账户的短期行为及历史长期行为进行不同长短时间窗的挖掘,识别账户异常行为序列,提升欺诈防控。具体我们构造了 8 个行为序列,如下所示:


序列 1:支出账户的实时事件序列


序列 2:支出账户的实时 RPC 序列


序列 3:收款账户的实时事件序列


序列 4:收款账户的实时 RPC 序列


序列 5:支出账户的历史事件序列


序列 6:收款账户的历史事件序列


序列 7:支出账户与收款账户历史序列


序列 8:支出账户与收款账户实时事件序列



实时序列中序列向量为小时维度,计算每个小时中事件或 rpc 的汇总,同时做 log 处理,历史序列中序列向量为天维度,计算每天的事件或 RPC 汇总,同样做 log 处理。支出账户与收款账户的实时序列均将其作为主动方序列与被动方序列合并为一个向量,另我们尝试发现实时序列用小时维度汇总比直接事件序列输入效果要好,因为很多收款账户并非很短时间内完成欺诈序列,而是在近 1 天内的行为链路异常。序列建模主要流程如上图,分别基于 8 种不同序列建立 LSTM 模型,将序列隐藏层最后一步输出接一个全连接层最终输出风险分值,将 8 个序列风险分值与现有变量合并建模,输出最终欺诈风险分。目前输出 8 个行为序列分值作为最终模型变量,在模型 130 变量中基于 IV 值评估:8 个序列分值 3 个排在 top5 内,7 个排在 top35 内。将序列模型分加入到现有模型中最终建模评估在高分段可提升 5%+的可见案件覆盖率,具体效果如下:


4.2 转账到卡场景

如前面已提到转账到卡场景欺诈的防控难点在于新卡的防控。根据历史经验群体变量及 FTG 变量对于新卡有一定的防控效果,目前在转账到卡场景已刻画城市、年龄及卡 bin 等维度的 FTG 变量。为了进一步防控新卡风险,我们从群体及 FTG 变量的思路出发,利用深度学习序列建模生成卡维度的 embedding,然后将卡维度的 embedding 再汇总到卡 bin 维度,汇总的 embedding 提炼了该卡 bin 的行为信息,从而对于新卡来说只要其卡 bin 出现过就可以获取其卡 bin 行为特征。最后将生成的 embedding 变量与现有变量合并建模,输出整体欺诈风险分值,具体流程图如下:



我们主要刻画卡的收款序列,取每个收款事件上卡的属性及行为特征作为向量输入训练 LSTM 模型,将序列隐藏层最后一步输出接一个全连接层最终输出 embedding 向量。另我们尝试了不同位数的卡 bin 截断,尽量保证新卡能被历史卡 bin 覆盖同时粒度不能太粗,最终选择 10 位及 12 位两种截断方式。我们将卡维度的 embedding 及卡 bin 维度汇总的 embedding 变量 T+1 推送线上,GBDT Retrain 模型的效果如下:模型在全量卡交易评估同打扰下可提升 2-3%的覆盖率,在全量卡交易评估同打扰下可提升 3-4%的覆盖率:



五、小结


本文只是行为序列在欺诈场景应用探索的开始,目前仍在行为序列的刻画方式及其它业务场景做更多尝试,例如我们发现将账户的事件序列和 RPC 序列合并效果比单独一个序列要好,目前是单独输出后再合并后维持同效果,另例如在欺诈者销赃环节对欺诈者行为序列建模,在资金流出环节进行拦截等,后面会进一步深入挖掘行为序列在欺诈风险识别的应用。


本文转载自公众号蚂蚁金服科技(ID:Ant-Techfin)。


原文链接:


https://mp.weixin.qq.com/s/KfYYCKbb4YSIMicBDOO99w


2019-09-02 09:565509

评论

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

微服务该如何拆分?

xcbeyond

微服务 方法论 架构设计原则 28天写作

前端大佬们都在推荐的“绿宝书”你值得拥有

华章IT

JavaScript typescript 大前端 web开发 犀牛书

智联招聘的微前端落地实践——Widget

智联大前端

大前端

2021,加料!

云原生

距离Java开发者玩转 Serverless,到底还有多远?

博文视点Broadview

Dubbo 就是靠它崭露头角!

yes

dubbo 后端 RPC

【JS】防止浏览器控制台被直接查看(2)

德育处主任

JavaScript chrome 大前端 js 28天写作

这5个让人窒息的烂代码,你看完都忍不了

华为云开发者联盟

GitHub 代码 代码注释 null

Redis学习笔记01:SDS 简单动态字符串

架构精进之路

redis 七日更 28天写作

云上独享资源池 自主灵活更安全

产品推荐

28天瞎写的第二百一五天:为了看片儿折腾 Linux 的故事

树上

28天写作

SpringCloud 从入门到精通 06--- Eureka服务端

Felix

Java单例7种测试实践

叫练

单例模式 单例 手写单例 饿汉式 懒汉式

hive JOIN操作分析

梧桐

做视频最大的困难是什么?为什么要保持日更? | 视频号 28 天 (05)

赵新龙

28天写作

基于网络开放可编程技术构建新一代网络设备运管平台

华为云开发者联盟

运维 网络 运维自动化 金融

智能合约APP开发|智能合约系统软件开发

系统开发

代码编译时自动完成白盒测试,这真的可以

华为云开发者联盟

c++ 测试 代码 框架

2020中国云计算生态峰会召开 浪潮云摘得三项大奖

云服务

生产环境全链路压测建设历程 27:FAQ 之 业务模型相关

数列科技杨德华

28天写作

作为社畜,如何做好精力管理

熊斌

精力管理 28天写作

Python解释器和IPython

程序那些事

Python 数据分析 ipython 程序那些事 Python解释器

为什么泡泡玛特是一个好生意

lidaobing

28天写作 泡泡玛特

技术干货!HDFS读写原理和代码简单实现

华为云开发者联盟

hadoop hdfs 架构 MRS 元数据

5 天开发接口系统技术小结

老魚

laravel 建站 接口开发 28天写作

新官上任,如何开始你的管理工作(下)

一笑

团队管理 管理 28天写作

没有调查,就没有发言权 Jan 12, 2021

王泰

28天写作

Elasticsearch 核心概念

escray

elasticsearch elastic 28天写作 死磕Elasticsearch 60天通过Elastic认证考试

SpringCloud 从入门到精通 07--- 订单服务和支付服务注册进Eureka

Felix

HDFS SHELL详解(5)

罗小龙

hadoop 28天写作 hdfs shell

kafka如何做到无消息丢失配置

topsion

kafka 消息不丢失

如何通过用户的行为序列来提升欺诈风险识别_文化 & 方法_决策模型 睿晓_InfoQ精选文章