多维度判断

我们已经知道一些发现异常的方法了,下面介绍如何使用它们。

在法庭上,判定一个人有罪或是无罪,需要有多个证据。

在风控中判定一次请求是正常或是恶意,也不能简单的只考虑一个证据。

按照维度整理数据

在上一章看到的例子中,通过观察在一台设备上登录的用户数和下单数来推测刷单,这对于一些简单场景也许足够了,但是对于大多数场景都是不够的。

我们通常将风控信息或者说风控数据按照不同维度组织。相同的一组数据按照不同维度整理,会有不同的结果。

以下是某网站的登陆记录,我们试着将数据从不同维度统计以下

用户ID IP 设备号 时间
1 50.0.0.0 DeviceA 2016-04-04 00:00:00
2 50.0.0.0 DeviceB 2016-04-04 00:00:00
3 50.0.0.0 DeviceA 2016-04-04 00:00:01
2 50.0.0.1 DeviceB 2016-04-05 00:00:00

用户维度

用户ID 登陆次数 登陆设备数
1 1 1
2 2 2
3 1 1

设备维度

设备号 登陆次数 用户数
DeviceA 2 2
DeviceB 2 1

你可以试着将IP维度的数据整理出来吗?

将数据整理完成后,我们会从多个维度来验证一次交易、一个用户甚至是一次HTTP请求。

实例

一名用户正在登陆Jim的账号,我们希望判断出是不是真的是Jim本人。

从之前刷单的例子已经知道,限制单台设备的登陆次数和人数是个不错的主意,我们看看Jim过去1个月的设备统计

设备号 登陆次数 用户数
DeviceA 10 1

如果只从设备号维度看,一切正常,虽然登陆次数是10次,但是考虑到是一个月,也不会显得很频繁,但是我们不妨试试多维度交叉分析。

我们试试用户名(假设用户名和用户ID唯一)维度。

用户名 登陆次数 登陆设备数
Jim 10 10

天,这个人在干什么?!

这个人虽然在设备A上只登陆了一次,但是他同时也在另外9个设备上登陆了。

这个人很可疑,幸好我们没有只从一个维度考虑。

不过,到底发生了什么呢?

不要急,后面的几章会慢慢解释。

参考资料

https://github.com/WalterInSH/risk-management-note/blob/master/%E5%A4%9A%E7%BB%B4%E5%BA%A6%E5%88%A4%E6%96%AD.md