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

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
简介:

小蚂蚁说:

移动支付在带给人们便捷生活的同时,也面临着网络欺诈的空前挑战。仅在支付宝场景中,每日的欺诈举报量上千,涉案金额上百万。 作为移动支付领航者的支付宝,借助大数据和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序列合并效果比单独一个序列要好,目前是单独输出后再合并后维持同效果,另例如在欺诈者销赃环节对欺诈者行为序列建模,在资金流出环节进行拦截等,后面会进一步深入挖掘行为序列在欺诈风险识别的应用。

参考文献

[1]Rafal,Jozefowicz,Wojciech Zaremba,Ilya Sutskever.An Empirical Exploration of Recurrent Network Architectures[J].International Conference on International Conference on Machine Learning,2015:2342-2350

[2] Long Short-Term Memory in Recurrent Neural Networks, Felix Gers, PhD Thesis @ EPFL

[3]https://zybuluo.com/hanbingtao/note/581764

[4]http://colah.github.io/posts/2015-08-Understanding-LSTMs/

[5]http://lib.csdn.net/article/deeplearning/45380


— END —

蚂蚁金服官方唯一对外技术传播渠道

投稿邮箱:anttechpr@service.alipay.com

欢迎留言及个人转发,媒体转载请联系授权

目录
相关文章
|
4月前
|
自然语言处理 算法 搜索推荐
字符串相似度算法完全指南:编辑、令牌与序列三类算法的全面解析与深入分析
在自然语言处理领域,人们经常需要比较字符串,这些字符串可能是单词、句子、段落甚至是整个文档。如何快速判断两个单词或句子是否相似,或者相似度是好还是差。这类似于我们使用手机打错一个词,但手机会建议正确的词来修正它,那么这种如何判断字符串相似度呢?本文将详细介绍这个问题。
273 1
|
5月前
|
存储 算法 数据可视化
哈希表法快速求解最长连续序列 | 力扣128题详细解析
哈希表法快速求解最长连续序列 | 力扣128题详细解析
|
5月前
|
SQL 关系型数据库 MySQL
MySQL外键约束行为解析:CASCADE, NO ACTION, RESTRICT, SET NULL
MySQL外键约束行为解析:CASCADE, NO ACTION, RESTRICT, SET NULL
327 0
|
6月前
|
域名解析 缓存 监控
【域名解析 DNS 专栏】DNS 查询日志分析:洞察网络行为与优化建议
【5月更文挑战第28天】DNS查询日志分析对于理解和优化网络行为至关重要。通过日志,可洞察用户访问偏好、流量分布,进而进行缓存优化、负载均衡和安全检测。简单Python代码示例展示了如何读取和分析日志。根据分析结果,可针对性设置优化策略,提升网络性能、稳定性和安全性。不断探索新的分析方法,充分挖掘DNS查询日志的价值,以驱动网络持续优化。
320 3
|
6月前
|
存储 算法
从动态规划到贪心算法:最长递增子序列问题的方法全解析
从动态规划到贪心算法:最长递增子序列问题的方法全解析
49 1
|
6月前
|
存储 算法
从动态规划到贪心算法:最长递增子序列问题的方法全解析
从动态规划到贪心算法:最长递增子序列问题的方法全解析
300 2
|
6月前
|
JavaScript 前端开发 开发者
深入比较Input、Change和Blur事件:Vue与React中的行为差异解析
深入比较Input、Change和Blur事件:Vue与React中的行为差异解析
|
6月前
|
存储 数据库 Python
|
6月前
|
存储 缓存
【Qt 全局属性相关】 Qt 应用程序行为的全局属性 Qt::ApplicationAttribute枚举解析
【Qt 全局属性相关】 Qt 应用程序行为的全局属性 Qt::ApplicationAttribute枚举解析
202 0
|
6月前
|
存储 监控 数据管理
Lua代码解析:实现上网行为监管软件的自定义规则引擎
在当今数字化时代,网络安全和数据隐私保护备受关注。为了确保网络安全和合规性,许多组织和机构需要监管和管理其员工或用户的上网行为。为了实现这一目标,开发一款高效的上网行为监管软件至关重要。本文将介绍如何使用Lua语言开发一种自定义规则引擎,以实现上网行为监管软件的自定义规则引擎。
226 0

推荐镜像

更多