产品战略专家梁宁确认出席AICon北京站,分享AI时代下的商业逻辑与产品需求 了解详情
写点什么

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

  • 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:564712

评论

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

重磅升级|ONES Resource 资源管理解决方案

万事ONES

为什么说 Go 语言字符串是不可变的?

AlwaysBeta

Go 源码 面试 字符串

Django笔记四十一之Django中使用es

Hunter熊

Python django elasticsearch

真香!阿里最新产出分布式进阶实战手册,涵盖分布式架构所有操作

Java你猿哥

Java 架构 Spring Cloud Spring Boot ssm

QR防伪溯源系统追溯原理是什么?

天翼云开发者社区

防伪溯源 防伪技术 QR技术

ChatGpt账号注册

楚少AI

ChatGPT chatgpt注册

文心一言 VS 讯飞星火 VS chatgpt (29)-- 算法导论5.2 1题

福大大架构师每日一题

ChatGPT 文心一言

以技术实践赋能开源安全|2023开放原子全球开源峰会开源安全技术与实践分论坛即将启幕

开放原子开源基金会

开源 开源软件供应链 开源安全技术

Nautilus Chain:我们将支持EIP6969

BlockChain先知

Generative AI 新世界 | 大型语言模型(LLMs)概述

亚马逊云科技 (Amazon Web Services)

机器学习 tensorflow 开源 PyTorch Amazon SageMaker

Nautilus Chain:我们将支持EIP6969

股市老人

【Python金融-001】如何快速计算股票的收益?1行代码,高效做T

程序员晚枫

Python 金融 股票

Spring Boot 开发离不开这些注解,快来学习啦!

Java你猿哥

spring Spring Boot ssm spring aop java框架

总结vue3 的一些知识点:Vue.js 安装

雪奈椰子

推进开源法律知识普及|2023开放原子全球开源峰会开源法律与合规分论坛即将启幕

开放原子开源基金会

开源 法律与合规

深度学习入门系列(一):一文看懂 MNIST

U2647

神经网络 机器学习 深度学习 keras

IOS上架流程详解,包含审核避坑指南!

雪奈椰子

技术分享 | 如何编写同时兼容 Vue2 和 Vue3 的代码?

LigaAI

JavaScript vue.js Vue 前端 企业号 6 月 PK 榜

ChatGPT介绍与使用场景

楚少AI

openai ChatGPT ChatGPT4

2023-06-02:给定一个二进制数组 nums 和一个整数 k, k位翻转 就是从 nums 中选择一个长度为 k 的 子数组, 同时把子数组中的每一个 0 都改成 1 ,把子数组中的每一个 1

福大大架构师每日一题

golang 算法 rust 福大大

JavaScript深度剖析之变量、函数提升:从表面到本质

Immerse

以后我准备告别String.format()了,因为它不够香!

Java你猿哥

Java 编程 string 格式化 format

2023年互联网Java工程师高级面试八股文汇总(1260道题目附解析)

架构师之道

Java 面试

存储接口测试简介与测试方法

天翼云开发者社区

测试 存储

ChatGPT App苹果版下载

楚少AI

ChatGPT ChatGPT4 chatgpt app

C语言编程-共用体

梦笔生花

6 月 优质更文活动

Nautilus Chain:我们将支持EIP6969

大瞿科技

北美 2023 被裁员的感悟

HoneyMoose

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