下面讲讲每个部分的具体实现过程。
第一个模块是基于SDK的实时数据采集,获取一手数据。
我在去年加入了宜人贷,当时就在想,这么多的用户行为数据为什么不用来做反欺诈呢?用户的淘宝数据、消费数据,以及其他的很多临时性数据都可以作假,但是用户的行为数据一般不会去模仿,我们做了一个
SDK采集框架
,分成三层。
第一部分是数据采集
,覆盖宜人贷所有客户触达终端的采集能力,采集用户行为、设备指纹等相关信息,比如型号、是否模拟器、各项物理层,以及网络源信息,这部分非常重要,它连接着一些上网轨迹,还有Location,我们发现很多团伙都在一个地点,好几十个坏用户聚在一个基站下面。以上是采集层。
中间是实时数据处理
,我们做了一层相应的配置,对于哪些数据是可用的,我们花了很多力气做数据清洗,刚开始的时候在这方面踩了不少坑,然后后续实时的时候会做一些数据回填,才达到一个比较好的运算。数据处理层分为离线和实时。实时数据直接灌到知识图谱里,离线数据做一些特征处理和建模分析。
在数据应用层
,最简单的就是流量统计分析,分析用户的行为。其中
两个方面跟反欺诈有关,一个是反欺诈前置,另一个是流量反作弊
,对每个渠道过来的激活都需要做是否作弊的评分。在反欺诈前置方面,我们会对每个用户进行实时的欺诈评分。
这是
SDK采集的基础框架
。
数据采集
方面数据由固定表头信息+事件信息组成,每条记录都是一个事件,包含如获取定位行为、或者设备信息行为、用户点击行为、页面加载行为。
数据发送
有些策略:实时发送、满N条发送、默认15条、失败重发等等。
采集的内容分为几个模块。设备数据
主要有手机品牌、手机型号、操作系统、设备ID、App列表。
行为数据
主要包括账号登录、页面进入、按钮点击、信息输入、广告浏览、操作时间等。我们有很多流程,比如,新手机运营商授权的密码,很多人都记不住,但是欺诈分子一下子就输入了,他的输入速度非常可疑,我们通过聚类把这种用户聚在一起。
位置数据
现在主要用四个:GPS、IP、基站信息、WIFI列表。比较精准的是GPS和WIFI,基站大概有100~200米误差。很多欺诈分子喜欢用代理IP。
基于以上,把用户实时行为数据采集完之后,对每个用户会形成一个实时的欺诈评分。
这是一个
实时预警流程
。我们真正用的模型不只是只有行为,但是它的权重非常高,我们还用到很多的其他数据,需要用户授权的一些数据,我们都会放到欺诈的特征里面。
我们做了一个
FICO评分标准
,评分越高用户信用风险就会越小。此外还有一个
规则引擎
,我们会发现一些强有力的单条规则,或者多条单一规则组成的策略,对每个预警用户非常有效。
预警出来会分成两部分,一部分信用好的就直接拒了,另一部分交给反欺诈调研,形成黑名单。所有流程都是实时的,保证跟业务系统完全解耦,有快的反馈速度,十分钟放款,就要判断出他是否是欺诈。
模型训练,我们有一个好的点给大家分享下,大家可能做过,正负样本非常不平衡,欺诈领域也有这个问题,我们面临的是想要找出一些坏用户,但很不易。
坏用户常见的定义就是MOB6里面的M3+(逾期三个月),不能把有信用风险的用户刨除掉,这个用户不一定是欺诈,他是违约了,但有可能就是没钱还,要把欺诈跟信用解耦出,可以信用风险的方式做信用定价。我们
构建了基于欺诈标注的自动化学习,可疑对实时新增的欺诈标注,快速反馈回模型训练。