近年来,随着移动互联网的兴起,各种传统的业务逐渐转至线上,互联网金融,电子商务迅速发展,商家针对营销及交易环节的推广活动经常以返利的形式进行。由于有利可图,此类线上推广迅速滋生了针对返利的系统性的优惠套利欺诈行为,俗称薅羊毛。由于移动设备的天然隐蔽性和欺诈行为的多变性,传统的防范手段,比如规则系统等就显得有些笨拙和捉襟见肘了,使得薅羊毛看起来仿佛防不胜防。但是正所谓魔高一尺,道高一丈。在实践中,我们发现,一个基于统计和机器学习的多层动态风险评分体系和决策系统能有效地抵御“羊毛党”的攻击。那如何打造这样一个系统呢?
首先,我们来了解下此系统的核心部分之一:特征工程。
特征工程,又称特征学,是学习一个特征的技术的集合,将原始数据转换成为能够被机器学习来有效开发的一种形式。通俗地讲,特征工程对原始数据进行加工,将其转换为精确的,可量化的数据。
著名法国小说《小王子》中有这样的描述:“如果你对大人们说‘我看到一幢用玫瑰色的砖盖成的漂亮的房子,它的窗户上有天竺葵,屋顶上还有鸽子……‘,他们想象不出来房子有多好,必须对他们说‘我看见了一幢价值十万法郎的房子’他们才能理解房子有多好。”文中,从房屋模糊的文学性描述到“十万法郎”就是一个特征学习的例子。
特征工程转换后的数据能被更好的理解和运算,方便我们从貌似渣乱无章的原始数据中找出那些可疑的异常数据。它是机器学习中很重要的一步,也许是最重要的一步。在机器学习领域里有一个不成文的共识, 数据和特征决定了机器学习的上限,而模型和算法只是逼近这个上限而已。
在反欺诈的实践中,我们发现从网络及设备终端、用户行为信息、业务事件频次,欺诈网络图谱这四大维度提取特征,并在此基础上对有组织的薅羊毛行为层层筛查,对风险加以甄别,就能让羊毛党无所遁形。
设备终端与网络
设备终端与网络层面的特征是防范羊毛党的第一道防线,为了规避筛查,或者方便适用自动化工具,欺诈者首先选择在终端做手脚。他们或者适用PC或服务器以脚本或模拟器冒充终端设备,或者在终端设备上,Root, 越狱,打开调试模式,安装一键新机软件,按键精灵等等,也有的正常用户不幸安装了木马程序,而沦为任人摆布的肉鸡。除了终端,网络也是欺诈者最常摆弄的,他们经常适用代理,VPN, 或和一些机房的网络管理人员合作,分散IP,进而冒充来自不同的地域。
为了对抗上面所提到的种种作弊行为,在实践中,我们通常按下面的方法来构造一个设备指纹系统:1)根据收集到的历史数据,形成操作系统签名数据库。这个数据库被用于判断一个设备的操作系统签名是否和声明的操作系统及厂商,型号等吻合,进而判断设备是否是脚本程序或模拟器伪装,是否使用了代理或VPN,是否篡改了UA等设备信息等等;2)对设备的IP来源进行分析,看是否有可疑行为的历史,是否来自机房,从而判断其自动化或作弊的可能性;3)根据设备相关的三十多个特征将设备进行关联,赋予其唯一的身份识别符,此ID是上层特征,即用户行为、频次及欺诈网络图谱的基础。
用户行为信息
在坚实的设备指纹的基础上,需要在会话和账号两层采集和提取用户行为信息。在会话的层面上,借助基于概率的聚类模型和模式挖掘算法(sequential pattern mining),将用户的行为模式,比如事件发生的次序以及事件发生的间隔时间,归为几类。并在此基础上识别出异常行为模式。这些标示特征为区分正常用户和欺诈者或自动化工具提供了重要信息;更进一步,在账号的层面上:首先以账号为索引,将会话层面上提取到的行为信息特征按时间串联起来,得到账户层面的异常行为标示特征。其次根据账号相关联的历史行为数据,提取出用户的偏好属性,比如是否为僵尸账号,相邻登录的平均地理距离等。最后,我们将这些信息综合起来,形成特有的用于反欺诈的用户画像。
当一个账号再次出现在业务中时,用户画像中的特征就可以帮助我们评估对应业务事件的风险。在实践中,我们还发现,由“羊毛党”控制的账号,通常具有某些相似性,比如所用手机号码都来自某个号段,用户名都由三个小写字母,五个大写字母和四个数字组成。据此,我们就可以定义账号之间的相似度。这样即使一个账号首次出现,我们也可以使用用户画像,对其风险做一个大致的评估。
用户画像除了本身能直接应用于欺诈行为的判断外。还可作为网络图谱模型的输入,为欺诈网络的发现提供线索和依据。
业务事件频次特征
典型的薅羊毛行为的特征表现为短时期,小欺诈额,高频次。从业务角度上来看:由于薅羊毛的欺诈行为有别于正常用户的行为模式,会引起业务事件在某些颗粒度的时间+空间上分布异常。从反欺诈的防范要求角度上来看:需要对异常事件能快速响应,这就要求对客户行为做实时或者近实时的统计、计算。并且综合时间序列分析,个体差异分析以及当前趋势分析这三方面的评估,实时并动态地对异常频次数做标记。
以某互联网公司一个实际的交易薅羊毛案例为例
被监控的交易事件,随着时间,在整体上会形成一个有规律可循的时间分布曲线。一个时间曲线,比如上图的最上面一个小图,其实是由三种效应叠加起来的:
1. 数据整体随时间的趋势效应,上图的第二小图;
2.数据随时间的周期效应,图中的第三小图。这个其实包含两个方面,一个是同一天各个小时间的个体差异,一个是某一小时对历史上同一小时的惯性关系。
3. 统计噪音效应。(这部分数据通常被用来做异常分析)
当数据累积到一定量的时候,比如整体分布曲线,能很好的被ARIMA模型(也就是时间序列模型)模拟和预测。ARIMA是统计学中一类模型的统称;ARIMA能自动处理时间维度上的周期变化,动态变化,噪音污染等问题。并对每个小时动态生成一系列异常检验规则。可以理解为如下的一系列规则:某一天10点钟,交易200次以下为正常,200-250为轻度异常,250-350为重度异常等等。
上图是实际的模拟效果,绿色是原始值,红色虚线是预测值,黑线是误差,此案例预测的效果较好。
上面这些结果都是针对整体分布曲线而言的。但是在反优惠套利欺诈的场景里面,我们常常希望在某细颗粒度上制定检测规则:比如某个地域/IP网段每小时交易超过多少为异常。也就是说在时间维度的基础上加入空间维度。这是因为通常来说,欺诈行为会引起在某个空间细颗粒度上,时间分布曲线异常;但不会引起整体层面上的异常,也就是说异常数据会被正常数据淹没掉;而且,整体层面上的模型是无法区分细颗粒度上的差别。换句话说,它只能笼统地告诉我们,数据在某个时段出现了异常,但无法告诉我们在这个时段,按空间维度分比如城市,哪些是异常的,哪些依然是正常的。
在时间维度上加入空间维度,面临两方面的困难:一方面,细颗粒度的维度过高,以网段举例,数据中出现的网段有近十万个,分别建模成本过高;另一方面,细颗粒上的数据通常累积量不够,难以满足时间序列模型所需的条件。通过反复建模实践,我们发现基于贝叶斯框架的生成式模型能较完美地克服上述困难,完成建模目标。由于这类模型综合考虑了事件的时间和空间分布,我们不妨叫它“时空动能模型”。
上图中的两张图是两个不同网段的交易数据分布图。 每副图中蓝色曲线是网段交易曲线,对应着左边的坐标系。红色曲线是整体的分布曲线,对应着右边的坐标系。 蓝色曲线上的红色点是模型得到的异常点,而红色曲线上的蓝点是前述红点所对应时间上的整体分布曲线上的点。
左图上下对比,可以看到,时空动能模型能在整体不异常的情况下,在细颗粒度上面找到异常点。
左右对比,这两张图显现的分别是不常用网段和常用网段,它们的分布曲线完全不相似。是无法用同一模型模拟的。但时空动能模型自动的为两个网段分别建模,自动适应这种动态变化。
上面的例子证明,综合了统计和机器学习技术的模型能在反欺诈异常检测中发挥巨大的作用。
欺诈网络图谱
羊毛党经常通过网络发起组织,在一些单点特征上,同正常用户一样呈现出分散的特点,使得单点特征防御难以奏效。但如果将用户行为用网络的形式建模展示,会发现在一些特殊的图形特征上,欺诈行为明显异于正常行为。实践中,我们借助于图学习(Graph Learning)的一些模型,发现网络图谱模型对于羊毛党的发现特别有效。当然欺诈网络发现依赖于设备指纹以及建立在其基础上的同人模型。
在上面的网络图谱里面,红色点表示不同设备;绿色点表示不同账号;蓝色点表示不同APP。红色点和绿色点之间的虚线表示:该设备注册了这个账号;蓝色点与绿色点之间的虚线表示该账号领取了这个APP的某些奖励。
上面的左图是正常用户的行为网络图谱:不同设备的行为是分散的,不一致的。而右边是“公会式羊毛党”的行为网络图谱。在网络图谱上,羊毛党的设备行为会呈现出高度的一致性和集中性。
以上,我们对网络及设备终端、用户行为信息、业务事件频次,欺诈网络图谱这四大维度的特征工程做了一个简单的介绍。在反欺诈实践中,这些提取出来的特征,结合多层动态模型,能有效地识别出高风险薅羊毛行为,帮助企业打击“羊毛党”。