APP下载

基于电商平台的恶意支付账户识别算法研究

2020-06-16樊春美朱建生

计算机技术与发展 2020年6期
关键词:用户数聚类账户

樊春美,朱建生

(中国铁道科学研究院,北京 100081)

0 引 言

随着互联网技术和电子商务的蓬勃发展,第三方支付机构利用互联网技术在支付领域快速拓展,支付账户以其便捷的支付功能被公众广泛使用[1]。当前中国使用较多的第三方支付主要有微信、支付宝。由于它们不仅具有虚拟货币的功能,还能够社交,因此人们在日常生活中使用的频率越来越高,同时也带来了一些安全问题。一些学者[2-5]探讨了电子商务面临的一些安全问题,如电脑系统漏洞、账户被盗用、密码被篡改等等。但是大部分学者主要关注财产是否被盗用,及这些安全问题的解决方案。文中则重点关注以第三方支付账户为工具从事恶意行为的现象。利用网上支付账户申请的便利性注册支付账户,主要用来从事电商活动中的交易,但是由于网络支付账户现在一般需要实名制,人脸验证等各种安全措施,所以非法用户会存在使用较集中的支付账户为多个电商用户发起支付行为,从而达到获利的目的。

在过去,银行每天的交易量较少,大部分的安全问题主要通过人工审核来完成。然而现在银行支持了网络支付,交易量剧增,再通过人工审核来发现其中的问题会耗费巨大的人力同时效率较低。与此同时,机器学习的应用[6-9]变得越来越火热,通过算法来自动识别恶意的行为,减少人工干预,可以大大地提高风险识别的效率。因此文中主要使用机器学习的算法,研究如何发现在电子商务平台使用的恶意支付账号,从而提高甄别电子商务平台恶意用户的行为。

1 相关工作

针对支付账户的研究,邵建利等[10]采用Logistic回归构建第三方支付的欺诈风险识别模型,对欺诈风险进行量化估计,大大地提高风险识别能力,对第三方支付机构的风险管理具有重要作用。杜煜男[11]介绍了支付宝与其他同业机构间的差异,支付宝的风险分析优势在于风险识别、风险评估过程中对各种模型算法的创新与应用,如神经网络的深度学习、决策树、随机森林复合模型的应用。由于一些社交账户具有虚拟货币的功能,也会存在一些恶意行为,如在促销活动中作弊等,通过大量的恶意社交账户达到获取金钱利益的目的。Zhou Yadong等人[8]以腾讯QQ为例,详细地分析了在社交网络中恶意账户的识别情况。总的来说,现在大部分学者和公司都在使用机器学习算法来识别欺诈风险。

但是目前的一些识别算法大都是针对第三方支付平台风险的研究,而对于电子商务中的电商平台,并不能获取这些支付账户的详细信息,只能看到这些账户的在电商平台的消费记录,因此分析的维度变得受限了。文中主要从商户的角度出发,对支付账户的交易行为进行区分,结合支付账户的一些特征,提出了发现专门用来从事作恶行为的支付账户的算法。

2 恶意支付账户识别算法

基于电商平台交易记录的恶意支付账户识别算法主要包括四部分内容:(1)基础特征构建;(2)样本标记;(3)特征筛选;(4)分类模型。

2.1 基础特征构建

获取电商平台的交易记录日志,根据业务特点分析可选取的特征。

(1)关联的用户数。

一个支付账户在短时间内支付的用户数过多,说明这个支付账户是不正常的,一般情况下,一个支付账户不会给多个用户名去支付,除非一个人操作了多个用户名。

(2)活跃度情况。

一个恶意的支付账户,为了获取利益,使用的频率也会比较高,因此可以考虑这些支付账户使用的活跃度情况。

(3)支付时间间隔。

一般恶意行为不是由人来操作的,往往是机器自动完成的,因此在时间上,机器的响应速度会比人快很多,所以通过分析在短时间内连续两笔订单的支付时间间隔,可以很好地区分人和机器人。

(4)消费额度。

虽然每件商品价格不同,但是如果一个支付账户连续多次支付,必然会与正常支付账户的消费额度不同。

结合业务特点分析的结果,以一个小时出现的账户为分析对象,为了更能全面地分析账户的特征,需要综合短期、中长期、长期的特征指标。所以分析的时间维度分为小时、天、周、月。因此最终选取的特征如表1所示。

表1 特征维度

支付的用户数特征具体为:该账户每小时共支付的用户数hour_user_num;该账户每天共支付的用户数day_user_num;该账户每周共支付的用户数week_user_num;该账户每月共支付的用户数month_user_num。

支付的订单数特征具体为:该账户每小时共支付的订单hour_sequence_no_num;该账户每天共支付的订单数day_sequence_no_num;该账户每周共支付的订单数week_sequence_no_num;该账户每月共支付的订单数month_sequence_no_num。

支付的金额特征具体为:该账户每小时共支付的总金额hour_amount_num;该账户每天共支付的总金额day_amount_num;该账户每周共支付的总金额week_amount_num;该账户每月共支付的总金额month_amount_num。

该账户一个小时内连续支付两次的平均时间间隔hour_avg_time。

活跃度:该账户在一天平均每个小时支付的订单数day_active;该账户在一个星期内平均每天支付的订单数week_active;该账户在一个月内平均每天支付的订单数month_active。

支付的天数:该账户在一个星期内共支付的天数week_acday;该账户在一个月内共支付的天数month_acday。

2.2 样本标记

对样本的标记需要结合业务的实际情况,制定一些有效规则。虽然明显的规则可以参考帮助人们去识别样本,但是面对大量的数据样本,人工分析样本的方式显得力不从心。于是文中提出使用无监督的聚类算法,先将数据进行划分,划分后最有问题的类别和最没有问题的账户可以很容易地得到,对于那些混合的数据再进行人工标识。该算法可以极大地提高样本标记的效率。

其中k-means[12-13]是应用比较广泛的聚类算法,该算法是通过多次迭代找到满足终止条件的划分方法,具有运算简单、速度快的优势。使用该算法对特征数据进行划分时,首先获取最适合的分类个数,以和方差SSE[14]为衡量的指标,其中

(1)

2.3 特征筛选

(1)关联分析。

为了使恶意支付账户识别模型更加高效,对冗余特征进行挖掘,通过计算各个特征之间的Person相关系数[15],来判定各个特征之间是否具有强关联性。Person相关系数的计算公式为:

(2)

如果关联系数大于0.9,就认为具有强关联性,故将强关联性的数据去掉。

(2)重要性分析。

Xgboost[16]是GDBT[17]实现的一种算法,GDBT是一种迭代的决策树算法,它基于集成学习中的boosting思想,每次迭代都在减少残差的梯度方向新建立一棵决策树,迭代多少次就会生成多少棵决策树。其算法思想使其可以发现数据中有区分性的特征以及特征组合。因此使用GBDT的实现算法Xgboost来筛选特征,该算法最大的特点是能够自动利用CPU的多线程进行并行计算,效率较高。

2.4 建 模

风险识别模型现在使用较多的算法有逻辑回归[18]和随机森林[19]。其中逻辑回归(logistic regression)是用于处理因变量为分类变量的回归问题,常见的是二分类或二项分布问题,也可以处理多分类问题,它实际上属于一种分类方法。二分类问题的概率与自变量之间的关系图形往往是一个S型曲线,采用Sigmoid函数实现。其中逻辑回归模型的计算公式为:

(3)

Logistic回归的最终结果是得到各个变量的系数。Logistic回归做分类的最大问题是,当自变量有较多的定性变量或者定性变量的水平较多时,Logistic回归完全无法进行。而随机森林是通过集成学习的思想将多棵树集成的一种算法,它的基本单元是决策树,它的核心是集成学习(ensemble learning)方法,体现的是bagging思想,集成了所有的分类投票结果,将投票次数最多的类别指定为最终的输出。随机森林对数据的要求相对来说较少,具有更广泛的适用性。

3 恶意支付账户识别算法验证

从电商网站中大量的交易日志获取原始数据,其中每条日志记录了支付时间、用户名、订单、支付账户、下单金额等一些关键信息,原始日志存储在hive大数据平台中,使用时需要从大数据平台数据库中导出本地文件。

3.1 数据提取

为了得到表1所示的数据特征,需要对原始的日志信息进行一定的预处理。在数据预处理时去掉支付账户为空的恶意日志信息,在计算一个小时内里连续支付两次的平均时间间隔时,对于只支付了一次的支付账户,给一个固定值。在对用户数和订单数进行计算时,需要对这些维度的数据进行去重。通过hive脚本在大数据平台计算出一个小时的支付账户对应的特征数据。

在该电商平台中同时支持微信、支付宝、网上银行各种网络支付方式,因此日志里记录了多种平台的账户,由于文中旨在探索发现恶意支付账户的方法,对于不同第三方的平台的账户分析方法将会是一样的,所以这里选取使用量比较多的支付宝账户进行分析。

3.2 基础特征分析

(1)关联的用户数特征分布如图1所示,从中可以发现正常支付账户和恶意支付账户在一个月内支付的用户名个数分布区别比较大,因此可以考虑这个作为数据的特征。

(2)以在一个月内使用的天数month_acday,作为活跃度的一个特征,该特征的分布如图2所示,从中可以看到大部分支付账户在一个月内支付的天数大部分都小于6天,而一部分支付账户在一个月内使用的天数达到了30天,每天都有操作,这是非常不正常的一个行为,因此该特征具有较好的说明性。

图1 一个支付账户支付的用户名个数分布

图2 一个支付账户支付的用户名个数分布

(3)支付时间间隔特征分布如图3所示,可以看到比较集中在两端,时间间隔在1 000秒以内,都不可能是人为操作的,因此该指标也可以作为一个参考指标。一个小时的支付金额的分布也类似,具有较明显的区别。

图3 一个支付账户连续两次支付的时间间隔

3.3 样本标记

使用2.2介绍的标记算法进行标记,首先寻找最适合的聚类个数,运行结果如图4所示。

图4 聚类个数

从图中可以看出,划分3类是比较合适的,于是将类别个数带入k-means算法的参数中,为了从图形展示k-means聚类的效果,使用主成分分析法,将多个变量压缩成两个变量分别为x0,x1,k-means的聚类结果展示如图5所示。

图5 聚类结果

从图5可以看到,将样本分成了较明显的三部分,结合原始日志可以发现,“△”表示是非常恶意的支付账户,这些账户大都连续支付30天,而“-”表示的样本活跃度较低,支付的用户名也比较单一,可以认为是正常的用户名。从聚类结果中可以很容易得到正负样本,从而降低了标注的成本,使得样本标注的时间减少了90%。

3.4 特征筛选

计算支付的用户数和支付的订单数的Person相关系数r=0.99,因此可以认为二者具有强相关性,保留其中一个即可。去掉强关联性的特征之后,使用Xgboost对特征的重要性进行计算,Xgboost选择的特征重要性如图6所示。

图6 特征的重要性

结合Xgboost的特征重要性的输出,最终选择month_active,hour_avg_time,month_acday,week_acday,month_amount,hour_amount,day_user_num,week_active,week_amount共8个特征,从中可以看到筛选的特征几乎覆盖了文中分析的全部业务特点。

3.5 建 模

主要对比了Logistic回归、随机森林两种算法的准确率、召回率、F-measure、运行效率等指标。

(1)Logistic回归。

根据文中的样本数据得到ROC曲线[20],在面积为0.99时,阈值为0.7,因此用此值作为最佳的分割点。Logistic回归模型的主要参数设置如下:

采用惩罚项penalty='l2',优化算法选择solver='liblinear',是否存在截距fit_intercept=True。

最终求得的logistic回归模型结果:

系数为:

[-2.11432978e-08 -2.36863219e-08

-9.11727486e-05 -1.47211550e-09

-7.55707456e-09 -3.37322802e-09

-3.46007946e-08 1.95984958e-08

-9.14759102e-10 -6.14976655e-08

-1.49284610e-04 -1.17324171e-04

-2.80855483e-06 8.93945312e-06]

截距为:[-2.38195295e-08]

模型的效果如表2所示。

(2)随机森林。

随机森林的主要参数设置如下:使用bootstrap=True,特征的重要性通过计算criterion='gini'来实现,max_depth=20,树的最大深度设置为20。

文中算法是在内存为125 G、28个CPU的Linux服务器上,通过python语言实现的,模型的测试效果如表2所示。

表2 算法结果对比

从表2可以看到两种算法的准确率和召回率差别不是很大,但是误伤率和运行效率相差较大,从实验结果可以发现,随机森林的误伤率低于Logistic回归的误伤率,并且在模型的训练效率上,随机森林训练模型时耗时更短,效率更高。

4 结束语

从电商平台的角度挖掘恶意的第三方支付账户,提出了一种有效的恶意支付账户识别算法。实验表明文中选取的特征具有较强的区分性,而且标记的算法可以提升建模的效率,选取的随机森林算法具有较高的准确率和运行效率。恶意的行为复杂多变,后续需要挖掘更多的维度进行分析。提出的分析方法对于电商平台分析恶意数据具有一定的指导意义,还可以辅助发现相关联的电商平台账户的异常,因此文中研究的问题具有一定的现实意义。

猜你喜欢

用户数聚类账户
一种傅里叶域海量数据高速谱聚类方法
基于知识图谱的k-modes文本聚类研究
一种改进K-means聚类的近邻传播最大最小距离算法
我国IPTV总用户数3.07亿户,同比增长6.7%
如何切换Windows 10本地账户与微软账户
基于模糊聚类和支持向量回归的成绩预测
Windows10账户的删除、禁用与启用
上交所:将允许一人开设多个证券账户
投连险半月收益率红黑榜
支付宝用户数达到两亿