APP下载

铁路互联网售票异常行为分类技术的研究与应用

2019-12-05周亮瑾阎志远戴琳琳

中国铁道科学 2019年6期
关键词:购票账号阈值

周亮瑾,阎志远,戴琳琳

(1.中国铁道科学研究院 研究生部,北京 100081;2.中国铁道科学研究院集团有限公司 电子计算技术研究所,北京 100081)

与传统基于铁路内网的铁路电子商务系统不同的是,铁路互联网售票系统是面向互联网的电子商务网站,面临着更为复杂的风险防控要求。自从2011年铁路互联网售票启动以来,互联网售票网站、手机APP购票成为旅客购票的主渠道,为广大旅客提供了更加便利快捷的购票服务。2018年春运期间,互联网售票量单日高峰已超过1000万张,平均每天售票量达到铁路全渠道总售票量的70%。在节假日购票高峰,一些不法分子利用非法收集用户信息、使用抢票软件或搭建高性能抢票服务器等手段,对热门火车票进行“秒杀”,严重干扰了公平公正的购票秩序,对广大旅客正常购票造成了影响。如何从海量购票请求中有效区分异常购票行为,是解决“黄牛抢票”的关键所在。

异常购票行为是指不同于正常用户人工购票过程中的单个或一系列行为的组合,包括通过非法简化预设的购票流程,压缩购票关键步骤的执行时间,以及通过大量并发提交同一个用户的购票请求以提高非法购票成功率等行为。对铁路互联网售票系统产生较大影响的异常购票请求主要来源于其他电商网站,这些电商通过非法解析网站购票接口,构建抢票服务器,模拟购票请求和自动化购票流程,从而获得比正常用户人工操作更快的速度实现非法“抢票”。这些电商抢票使用的网站账号信息,部分是其通过非法收集证件提前建立和认证的网站账号,部分是其诱导用户提供本人已注册的网站账号和密码。

对于这些异常购票行为的区分可从分析购票请求的用户账号和行为两方面入手。从购票请求的用户账号分析,主要是使用基于用户关系特征的识别算法。比如,根据用户常用命名方法识别机器人账号,或是利用贝叶斯网络、神经网络分类法进行用户和购票人关系分析[1-4]。但是,由于建立深度学习分析的网络需要大量复杂样本进行训练,同时越来越多非法“抢票”利用正常用户账号进行操作,使其行为更具隐蔽性。从购票请求的行为分析,主要是基于行为特征的分类识别算法,例如贝叶斯算法、决策树分类算法和SVM算法等。这些算法普遍具有运行效率高、训练样本简单的特点,但是如何选择有效属性,特别是确定属性阈值,是这些算法实现精确分类需要解决的问题。

本文提出基于朴素贝叶斯分类算法的异常行为分类技术,同时结合使用遗传算法计算属性阈值,从而进一步提高分类算法的准确性,可有效解决异常行为分类问题。

1 基于朴素贝叶斯分类算法的异常行为分类框架

1.1 确定购票行为关键属性

如果把1个互联网订票请求操作划分为独立的步骤,那么可分为登录、选择目标车次、查询目标车次余票信息、选择乘坐旅客信息、确认订单信息、提交订单信息、支付等步骤,每个步骤都有1个操作停留时间,其中每步是相对独立的。为了达到抢票目的,订票请求中各个步骤的操作时间必须是远低于正常人工操作时间。这里可把查询目标车次余票信息(Query Ticketing Step,QTS)、选择乘坐旅客(Select Passenger Step,SPS)、提交订单(Submit Order Step,SOS)、完成支付(Pay Order Step,POS)4个步骤的停留时间作为购票行为的4个关键属性。

目前第三方电商推出了高度自动化的“抢票”服务,其实现原理是通过模拟器或者真机黑厂,使用程序自动调用互联网售票服务接口来模拟用户的正常购票流程,因此停留时间的计算定义为:在购票流程中,上个接口调用完成后,与目标接口调用之间的延时值。

由于非法电商自己构建的用户账号里的常用联系人会定期变化,同时非法电商为了实现更快抢购车票,从中获得代理费用,会使用其他用户添加该用户为常用联系人,使用多个账号进行并发购票。因此,发起购票请求的用户,其常用联系人更新频率和相关性(User Relevance Information,URI),可以在一定程度上表明该用户是否被网上代买服务利用;出行人的信息在多个账号内关联性(Passenger Relevance Information,PRI),可以表明该出行人是否经常在第三方电商上购买代买服务;在短时间内接到多个用户对某个出行人的购票请求(Concurrent Request Information,CRI),在一定程度表明该出行人可能目前正在使用非法“抢票”软件。

(1)

(2)

(3)

(4)

定义5 请求用户账号更新联系人属性(guri)。该属性反映了用户账号常用联系人变化的频率。用mun表示该用户账号下常用联系人更新个数,用nuc表示常用联系人更新次数,因此,请求用户账号更新联系人属性guri的公式为

(5)

定义6 常用联系人相关性属性(gpri)。该属性反映了常用联系人与用户账号的黏性,数值越小表明乘车人经常使用固定用户账号进行购票,与用户账号的黏性比较强,这也符合正常旅客购票习惯。用bi表示购票请求中乘车人,在所有关联的用户账号中购票次数,因此,常用联系人相关性属性gpri的公式为

(6)

定义7 并发购票请求属性(gcri)。该属性反映同一乘车人同时使用多个账号进行并发购票请求的异常情况。用t表示计算的时间区间,用qi表示该时间区间内,不同用户账号为同一旅客提交的并发购票请求量,因此,并发购票请求属性gcri的公式为

(7)

查询目标车次余票信息属性tQTS、选择乘坐旅客属性tSPS、提交订单属性tSOS和完成支付属性tPOS,这些属性值在每次请求中是动态变化,是下一步使用异常行为识别模型进行判断的基本属性。同时配合基于请求用户特征统计的静态属性,如请求用户账号更新联系人属性guri,常用联系人相关性属性gpri,以及同一乘车人的并发购票请求属性gcri,结合用户是否有异常操作历史记录、购票请求设备指纹是否属于模拟器或黑厂等其他属性对异常购票行为进行综合判断。

1.2 基于朴素贝叶斯分类算法的异常行为识别模型

对于一个未分类的数据E,E由i个特征属性组成,可以表示为E={t1,t2,…,ti}。对于类别集合C={a1,a2},其中a1是正常用户请求类别,a2是异常用户请求类别。分别计算P(a1│E),P(a2|E)。如果P(ak│E)=max{P(a1│E),P(a2│E)},则E∈ak。

根据贝叶斯定理可以得到

(8)

那么对于每个分类来说,分母P(E)都相同,想要比较1个最大值,只需要分子P(E│ak)P(ak)最大化就行。

由于事件的特征属性都是独立的,那么可以得到

P(E│ak)P(ak)

=P(t1│ak)P(t2│ak)…P(ti│ak)P(ak)

(9)

这里的P(ak)就是基于样本中统计1个请求属于正常请求和异常请求的先验概率,P(tm│ak)可以通过查询属性阈值矩阵和相应的概率矩阵获得,这样就可以得到未分类的数据E的分类值。

1.3 确定属性阈值

本文设计了一个通过遗传算法来确定每个属性的阈值以及持续细化阈值的方法[5]。首先将人工标记的样本作为训练样本,根据遗传算法对训练样本的每个属性求解出阈值的最优值,然后应用于样本进行准确率校验。

采用遗传算法进行最优值计算时,需要通过编码方式确定每个阈值使用多少位的二进制来代表基因染色体编码,随机初始化若干阈值矩阵父代,选取适应度函数作为阈值矩阵优化的目标函数,通过选择算法和遗传变异算法会产生若干阈值矩阵子代,迭代确定出最终阈值矩阵,这是属性一次阈值矩阵的计算过程,可以使用相同过程持续细化阈值。

1.3.1 编码方式

每个二进制代码对应的十进制值为

(10)

在取值区间内对应的值为

(11)

1.3.2 适应度函数

1.3.3 选择算法

根据遗传算法,适应度函数值越高的个体就越有可能繁殖后代,但也并非适应度越高的就肯定后代越多,都是从概率上进行估算。本文采用常用的选择函数轮盘赌(Roulette Wheel Selection)选择法。假设种群数目n,某个体适应度为f,则其被选中继续繁衍的概率为

(12)

显然适应度越高对应的选择概率也就越大。按照这样的比例组成1个“轮盘”,转动“轮盘”随机选择其中个体进入遗传变异阶段,选择后保持种群规模不变。

1.3.4 遗传变异

二进制阈值矩阵的基因重组是,2个矩阵中同1个属性的二进制编码在随机几个位置上进行交换;基因变异时,阈值矩阵本身每个属性的随机几个位置上按照概率进行取反。同时,为了加快遗传算法的进化速度,而又能保证后期能够比较精确地收敛到最优解上,采取动态改变步长的方法,使用基因重组概率Pcom和基因变异概率Pvar来动态调节。对于适应度较高的个体,对应的Pcom和Pvar值较低,使得优良的基因得以保持;对于适应度较低的个体,对应的Pcom和Pvar值较高,加速其进化速度;当种群中每个个体的适应度趋于一致时,加大Pcom和Pvar值;当种群中每个个体的适应度比较分散时,适当减少Pcom和Pvar值[6]。

(13)

(14)

式中:Pc1为基因重组的常数概率,表明进行基因重组的可能性大小;λ为适应性权重系数;fc为要基因重组的2个个体中适应函数较高的值;fv为要基因变异的个体中适应函数值;favg为适应函数值的平均值;Pc2为基因变异的常数概率,表明进行基因变异的可能性大小;μ为变异权重系数。

1.3.5 确定阈值矩阵

1.3.6 持续细化阈值

当通过遗传算法[7-9]计算出第1个阈值矩阵后,每个属性可以进一步细化阈值,通过类似的算法进行下1个阈值计算,直到阈值个数超出预设值∂c后退出。

1.4 异常行为分类算法运行框架

由于铁路购票请求具有规律性,在节假日期间,购票压力大,使用非法抢票软件的可能性大,而在非节假日期间,购票请求相对平稳,因此在异常行为分析中,需要充分考虑到铁路售票自身的特点,需要根据不同时期、长短途票等特点,选取不同样本进行训练,生成应用于不同时期异常行为分析的算法数据,这是本文设计的异常行为分类算法运行框架第1步。

异常行为分类算法运行框架第2步需要根据样本集分别进行算法训练,如图1所示,分为以下步骤。

步骤1:前期收集人工标识好的属性样本集S,据训练样本提取当前待细化的阈值矩阵。

步骤2:根据得到的阈值矩阵,计算训练样本中的异常行为分类条件概率表,将该条件概率表应用于样本,进行准确率、召回率、调和平均值计算[10-12],得到种群中每个个体的适应值。

步骤3:根据得到的当前待细化的阈值矩阵[13],计算属性阈值区间,并确定相应的基因编码方式,随机生成6~10个阈值矩阵种群进入遗传算法进行优化计算。

步骤4:根据个体适应值,使用轮盘赌选择法,选择个体进入基因重组变异,通过选择后依然保持种群规模不变,适应性强的个体更有可能多次入选。

步骤5:根据个体适应值计算得到的基因重组概率Pcom和基因变异概率Pvar进行基因重组变异产生新一代属性矩阵种群,根据设置的进化代数∂g,重复步骤4,直到得到最后的阈值矩阵。

步骤6:将得到的阈值矩阵计算适应值,与之前阈值矩阵对比,如果有提升同时控制阈值细度不高于6个,分别得到子阈值矩阵,继续重复步骤2,直至退出。

图1 异常行为分类算法运行框架—算法训练流程图

异常行为分类算法运行框架第3步根据需要选择合适的算法数据对实际购票请求进行分类,根据分类结果进行处理。同时,将购票请求及分析结果进行存储,作为后续算法改进的数据依据,如图2所示。

2 算例验证

为了区分正常请求和异常请求,预先在几个非法电商上注册200个用户账号,按照不同热门车次、乘车时间进行购票请求,在铁路互联网售票系统后台根据预先标识的用户和购买车次对请求进行区分,并对各个属性值进行统计;然后再使用100个用户账号在网站及手机应用进行正常购票模拟,并在后台系统进行数据统计。先后整理和分类春运售票期间4 000个实际网站用户请求,其中1 500个正常请求,2 500个异常请求,同时还收集了同一时期的1 500个标识测试样本进行验证。

图2 异常行为分类算法运行框架-系统结构图

如图3所示,通过调整遗传代数∂g值,计算样本准确率βacc、召回率βrec以及调和平均值fm,以准确率值为主要参考值。在算例中,遗传代数∂g值在5~15时比较平稳,但是随着∂g值的增加,准确率也随之上升,在40~45达到较高值,并趋于稳定。由于召回率和调和平均值也相对稳定,因此∂g值可以在40~50之间进行选择。

图3 遗传代数对算法准确率、召回率、调和平均值的影响测试结果

如图4所示,通过调整阈值矩阵细化次数∂c值,计算样本准确率βacc、召回率βrec以及调和平均值fm,以准确率为主要参考值。随着阈值细化次数增加,一开始准确率也随之上升,但随着细化次数的进一步增加,准确率值逐渐下探,表明阈值矩阵细化到一定程度后,对于算法判断没有增益,反而会降低算法计算性能和判断准确度。因此,阈值矩阵细化次数∂c取值2次,此时算法综合运行效果较好。

图4 阈值矩阵细化次数对算法准确率、召回率、调和平均值的影响测试结果

如图5所示,与决策树算法相比,本文算法的准确率、召回率以及调和平均值都有优势,可以达到97.1%分类准确率,与决策树算法相比,有接近3%~5%的提升。

图5 本文算法与决策树算法对比测试结果

图6 细化阈值矩阵对算法影响测试结果

如图6所示,进行阈值矩阵细化算法对朴素贝叶斯分类算法(NBC)的运行效果影响对比测试。实验表明,在增加了阈值矩阵细化算法后,本文算法比NBC算法有了6.5%的准确率提升。

3 结 语

为了更严厉地打击异常用户购票行为,目前铁路互联网售票网站基于购票行为的风险控制机制往往会增加正常用户的误伤率。为了更好地实现铁路互联网售票系统异常购票行为的有效识别,通过分析提取购票行为的特征属性,有机结合了贝叶斯分类算法和遗传算法,实现了铁路互联网异常购票行为识别分类器,通过特征阈值的细化分类后的概率矩阵能够准确地识别异常用户购票行为。通过实验数据测试表明,本文设计的识别和分类用户请求算法,基于简单的样本训练,就可以达到97.1%的分类控制的效果,与决策树算法相比,准确率有接近3%~5%的提升,同时算法运行效率很高,可以满足1000TPS高并发请求分类的要求。

猜你喜欢

购票账号阈值
土石坝坝体失稳破坏降水阈值的确定方法
彤彤的聊天账号
施诈计骗走游戏账号
采用红细胞沉降率和C-反应蛋白作为假体周围感染的阈值
直击痛点的“候补购票”可多来一些
抢不到票?铁路候补购票服务扩大到全部旅客列车
铁路候补购票服务扩大到全部列车
Google Play游戏取消账号绑定没有Google账号也能玩
基于迟滞比较器的双阈值稳压供电控制电路
一种改进的小波阈值降噪方法