基于数据挖掘与多模型融合技术的防欺诈识别方法研究
2022-01-25毕佳佳李京文
毕佳佳,李京文
(安徽职业技术学院 信息工程学院,安徽 合肥 230011)
近些年来,社会上电信诈骗的案例屡见不鲜,导致许多受害者遭受财产损失。传统的预防电信诈骗的治理方法是通过对诈骗号码的呼叫次数、主叫次数、规范性等进行统计分析,制定不同的规则去匹配诈骗号码。这种方式分析的因素比较单一,规则制定比较简单,准确性较低。基于大数据诈骗电话分析技术通过机器学习方法,结合诈骗用户的历史行为进行分析,将此问题转换成有监督的二分类模型,将电话号码划分为诈骗电话和非诈骗电话两种类别,发现诈骗号码的潜在规律,提高识别诈骗号码的准确率。
国内已经有一些学者对防欺诈的方法进行了深入的研究,取得了一定的成效。如刘辉[1]等采用朴素贝叶斯的方式建立电信欺诈分类模型。刘道宏[2]采用决策树预测模型建立了电信欺诈预测系统。李梦琳[3]采用了基于CHAID 的决策树算法建立了电信诈骗模型。叶柏椿[4]等结合大数据技术、选择号码标记等手段,探讨了预防电信诈骗的措施和对策。
本文以用户基础信息、语音通话、短信收发、账户信息、终端信息、网站及APP 访问记录为基础,构建了基础特征和统计特征,通过大数据中机器学习算法以及模型融合技术,构建识别电信诈骗号码的预测模型。该模型采用命中率、覆盖率的调和平均值F1进行评价,F1越大表诈骗号码识别效果越准确,能够为有效预防电信诈骗提供一定的支撑。
1 基于多模型融合的防欺诈识别方法
1.1 总体思路
电信诈骗号码识别模型首先对采集到的原始数据进行数据清洗,如对离群点的剔除、缺失值的处理等方法来提升数据质量,为进一步构造特征、提升模型效果奠定基础。
数据清洗后,进行特征工程,构造训练集宽表。特征工程主要从两方面进行构造特征:一是根据专家经验构造基础的特征群,二是构建一些统计特征群。
特征工程后,数据集中可能会包含一些无用的、冗余的特征,会造成维数灾难,为了提高模型的效果及效率,需要对数据集进行特征选择,选择对模型效果比较好的特征来进行建模。
实际的电话号码中,诈骗电话只是占很少的一部分,诈骗电话和非诈骗电话的分布是及不平衡的,因此在训练时需要对不平衡数据进行相对平衡化处理,提高识别的效果。
最后采用在各大类竞赛中最常用的分类算法XGBoost[5]与 LightGBM[6]算法进行训练,并采用Bagging[7]模型融合技术,提升模型的识别准确率。整个流程图如图1所示。
图1 电信防欺诈模型流程图
1.2 数据处理
为了提高防电信诈骗模型的准确率,在提取用户的通信数据之后,需要对数据进行处理,保证数据质量。数据处理部分主要包括对原始数据的清洗,对数据进行特征工程、特征选择以及不平衡数据的处理。
1.2.1 数据提取
模型中所用数据由某运营商提供,原始数据包括用户基础信息、通话信息、短信信息、上网及访问网站信息、渠道终端信息及账户信息,如表1至表6所示。其中,表1中的“是否欺诈用户”是已经标记的是否欺诈号码的标签列,即本次建立模型中的目标列,其余特征是用户的基础信息,欺诈用户与非欺诈用户在这些特征的表现上有所不同。表2 至表4 提供了连续60 天期间内用户产生的脱敏后的通信行为数据,通过从用户这几方面信息挖掘特征,找出欺诈用户的规律。
表1 用户基础信息
表2 用户通话信息
表3 用户短信信息
表4 上网及网站访问信息
表5 渠道终端信息
表6 用户账户信息
1.2.2 数据清洗
数据清洗主要针对数据中的脏数据进行处理,比如缺失数据、异常数据等,脏数据往往会对模型的效果造成一定的影响,因此先对用户基础信息、语音、短信等原始数据进行数据清洗处理,保证数据质量。
如果数据中特征的缺失值比例大于50%,代表该特征信息丢失比较严重,对于模型效果没有参考意义,则直接删除该特征数据;否则对于数值型特征采用该特征平均值来填充,对于分类型特征采用该特征的众数来填充。对异常值的处理方法参考缺失值的处理方式,采用平均值或众数来替换。
通过对数据的探索分析发现,数据中“付费模式”“入网时长”“年龄”“终端品牌”字段缺失比率均小于20%,因此对“入网时长”“年龄”这两个特征的缺失值采用对应特征的平均值进行填充;“付费模式”“终端品牌”两个特征的缺失值均采用其众数进行填充。“年龄”中存在小于0 的数值,对于小于0 的异常值使用“年龄”的平均值进行替换。
用户的通话信息可以体现出欺诈用户的一些规律特征,但在通话数据中也会存在一些异常的、无意义的数据,为了更好的提取欺诈用户的规律,需要对这些特殊的通话记录进行处理。针对通话数据中重复的通话记录,去除冗余的记录,保留一条不重复的记录。根据专家经验分析,正常用户的通话时长应大于1 秒,且每月只有一次通话记录的情况很少,针对这类异常的通话记录,进行了清除处理。
1.3 特征工程
特征工程是影响诈骗电话识别模型的关键步骤,主要根据原始数据构造影响识别诈骗电话的特征宽表。笔者主要从两方面进行特征构造,即基础特征群及统计特征群。基础特征群是基于原始数据集上的一些简单计算与扩充,统计特征群是对基础特征通过统计方法进一步聚合的新特征。通过两种方式构造出一些潜在的、相关的特征,用于建立防欺诈模型。
1.3.1 基础特征群构建
诈骗分子一般会遵循一定的诈骗模型,专家经验构造特征法是通过分析诈骗号码的行为,总结出诈骗用户的规律,发现骚扰诈骗电话和正常用户的通话行为之间的差异,找出影响指标,如主被叫占比不均衡、呼叫频次高、呼叫具有单向性等。笔者从简单到复杂层次构建了基础特征群、统计特征群。
基础特征群是在原始特征的基础上的一些简单扩充与统计,主要从用户基础信息、渠道终端信息及账户信息3 个数据表中直接提取了用户号码的一些基础特征。在提取的基础特征中,对“付费模式”“信用度等级”“会员级别”“行业类型”“渠道大类编码”“终端厂商”“手机终端型号”“终端品牌”等分类型特征,进行了One-Hot 独热编码处理。
1.3.2 统计特征群构建
由于通话信息、短信信息、上网及访问网站信息提取的是60 个自然日的基础信息,为了建模需要,对这三个数据表中的字段进行了合并处理,处理后的特征即为统计特征群。
针对数值类型的字段,如“24 小时内呼叫次数”“24 小时内接通次数”“试呼次数”“被叫号码数”等字段,先按照“用户号码”进行分组,分别统计出这些数值类型字段在60 个自然日内的均值、最大值、总数、标准差、最小值,并将统计结果作为新的统计特征。例如,基于“试呼次数”字段可统计出“试呼次数_mean”“试呼次数_max”“试呼次数_sum”“试呼次数_std”“试呼次数_min”5个统计特征,这些统计特征分别代表了该用户号码在60个自然日内尝试呼出的平均次数、最高次数、总次数、标准差、最小次数。
对于分类型特征,如“是否有短信群发情况”,将其60 条记录合并成一条记录,合并的策略为将有短信群发的天数作为其填充值,例如某个号码在60 天中有25 天都存在短信群发情况,那就将25作为合并后该字段的值。
1.4 特征选择
在特征工程部分,构建了一系列通话信息、用户基本信息等基础特征以及统计特征等,所有特征加起来将近120 维,高维特征的数据不仅可能会导致维数灾难,而且还容易使训练的模型产生过拟合的情况。采用特征选择方法可以将冗余无效的特征进行剔除,不仅可以降低模型运行时间,还可以提升模型的效果。
常用的特征选择方法有皮尔森相关系数(Pearson Correlation)[8]、互信息和最大信息系数(MIC)[9]、基于学习模型的特征排序(Model based ranking)以及距离相关系数等。通过采用比较高效的基于学习模型的特征排序方法选择top N 重要性更强的特征,这种方法是直接使用某种机器学习算法,输出每个单独特征对目标变量的重要度。一般针对非线性关系的模型,机器学习算法可采用一些基于树的方法,如随机森林、GBDT、XGBoost 等。本文采用 GBDT[10]算法的训练过程,对特征的重要性进行排序,剔除重要性较低的特征,进行重新训练,提高识别模型效果。经过试验,最终选定重要度大于60 的特征作为最终用于建立模型的输入特征。
1.5 类别不平衡的处理
诈骗号码用户只占所有电信号码用户的极小一部分,分布极不平衡。数据分布不平衡会导致模型预测的结果倾向于类别多的那一类,从而影响到模型的识别准确率。为了降低类别不平衡对识别诈骗号码的影响,笔者同时采用两种方法来解决。
一是采用抽样方法,随机抽取部分非诈骗号码用户,使得诈骗号码类别和非诈骗号码类别相对平衡。二是在训练模型时设置类别权重,即代价敏感学习,将类别较少的诈骗号码的权重设得更高,将另一类非诈骗号码的权重设低。首先通过抽样的方法使诈骗号码与非诈骗号码的比例达到1:4 左右,再通过训练模型时,设置两种类别的权重为5和1。通过对类别的不平衡处理,有效提高了模型的欺诈号码的识别准确率。
2 模型建立与验证
2.1 模型设计与建立
2.1.1 算法设计
建立防电信诈骗模型的算法采用以决策树为基分类器的 XGBoost、LightGBM 算法。XGBoost是在GBDT 算法的基础上做了许多改进,进一步提升了继承决策树算法的效率及效果。LightGBM是一个由微软开源的梯度boosting 框架,是一种分布式的,高效的决策树集成分类算法,该算法针对大规模的数据具有更快的训练效率、更高的准确率,并且还支持并行化处理方式。
2.1.2 模型融合
模型融合是一种模型优化方式,能够进一步提高模型识别的准确率。该技术通过将建立的几种效果较好的单模型再进行一次融合,最终结果按照模型的Bagging 机制进行处理,如图2 所示。Bagging 机制即投票机制,在多个单模型预测的结果中,哪种类别的个数多,最终融合后的结果即为该类别。通过将XGBoost、LightGBM 等多种单一模型进行融合,进一步提升了欺诈号码识别的准确性。
图2 模型融合的流程图
2.2 模型评估与验证
建模使用的数据采集于某省某运营商相关业务数据,真实有效。本次提取的数据集中共涉及800000 个号码的相关信息,其中属于电信诈骗的号码有3000 个。经过不平衡处理后,非诈骗号码有12000 个记录,诈骗号码3000 个记录,80%左右作为训练集,20%左右作为验证集,验证模型效果。模型的评估指标采用F1 值进行评估,F1 值代表了诈骗用户的查准率和查全率的调和平均值,F1 值越高,代表模型效果越好。F1 的计算公式如下:
其中,TP 代表样本是电信诈骗号码且模型预测结果也为诈骗号码的个数,FP 代表样本实际为非诈骗号码但模型预测结果为诈骗号码的个数,FN 代表样本实际为诈骗号码但模型预测结果为非诈骗号码的个数,TP+FP 代表模型预测为诈骗号码的样本总数,TP+FN 代表实际为诈骗号码的样本总数。
通过对 GBDT、XGBoost、LightGBM 单模型以及Bagging融合模型进行了实验和验证,效果如表7所示。
表7 模型效果对比表
根据表7 所示,经过模型融合技术的模型效果在查准率、查全率和F1结果上均优于其他单模型,选取模型融合技术建立最终的电信防欺诈模型。模型训练好之后可以去预测其他号码是否为诈骗电话,并根据预测出来属于诈骗电话的概率值进行降序排序,将概率大于90%的电话定为诈骗电话,并采取标记预警监控等措施,进行及时预警,防止用户受到这类电话的诈骗。
3 结语
利用用户号码的移动通信数据,通过机器学习和数据挖掘技术,建立了电信防欺诈识别模型。在建立模型过程中,通过对原始数据进行清洗、特征工程、特征选择、类别不平衡处理以及不断对模型进行调参、优化,最终研究出一种多模型融合模型,有效地提高了防欺诈电话的识别率。但由于训练数据中,诈骗电话样本量占比较少,识别的准确率有待进一步提高,后续会加入诈骗电话样本量,提高模型的效果,更准确地识别出诈骗电话的规律。同时,在多模型融合技术中,采取的是Bag⁃ging 机制,后续会进一步研究stacking 模型融合技术,将其有效地应用在电信防欺诈模型中。