机器识别模型的训练及机器识别方法、装置、电子设备
技术领域
本公开涉及计算机技术领域,具体涉及一种机器识别模型的训练及机器识别方法、装置、电子设备。
背景技术
机器行为是指攻击者通过一些黑产工具,使用非正常手段模拟类人操作行为,绕过前端页面验证方式,向后台批量发起请求的一种攻击手段。被攻击的后台系统,轻者影响正常响应,重者造成经济损失。模拟类人行为的黑产工具出现,对很多风控体系构成了一定风险,主要有以下几个方面:1)批量注册,批量注册成功的垃圾帐号后续常用来套取营销资金;2)批量扫洗号造成帐号盗用风险;3)信息泄露,批量登录后爬取用户信息,造成诈骗或者舆情风险。
随着风控系统的升级,为了绕过风控策略和模型,现在的网络攻击者也变得越来越专业,他们会运用多种手段对自己的行为进行一些掩饰。例如通过改变设备号,IP地址等,绕过聚集性策略。因此,当风控系统发现一次登录请求有机器行为风险时,会出一个行为验证码,所谓行为验证码是指需要用户完成一次指定的鼠标滑动操作,在此期间,风控会记录用户的鼠标移动轨迹。而如何通过鼠标滑动轨迹识别用户行为成为了当前亟待解决的问题。
发明内容
本公开实施例提供一种机器识别模型的训练及机器识别方法、装置、电子设备及计算机可读存储介质。
第一方面,本公开实施例中提供了一种机器识别模型的训练方法。
具体的,所述机器识别模型的训练方法,包括:
获取训练样本;其中,所述训练样本包括多个正训练样本和多个第一负训练样本;所述正训练样本为人类行为在显示界面上生成的移动轨迹,所述第一负训练样本为机器模拟人类在显示界面上生成的移动轨迹;
对所述正训练样本进行机器模拟,得到多个第二负训练样本;
利用所述正训练样本、第一负训练样本和第二负训练样本进行模型训练,得到机器识别模型。
进一步地,所述对所述正训练样本进行机器模拟,得到多个第二负训练样本,包括:
利用所述正训练样本训练生成对抗网络;
根据训练好的生成对抗网络生成多个所述第二负训练样本。
进一步地,,所述获取训练样本,包括:
获取收集的轨迹采样数据;
将所述轨迹采样数据转化为移动轨迹;所述移动轨迹为二维的图像数据;
根据所述移动轨迹生成所述训练样本。
第二方面,本公开实施例中提供了一种机器识别方法。
具体的,所述机器识别方法,包括:
获取待识别的移动轨迹;
利用机器识别模型预测所述移动轨迹是否为机器模拟的移动轨迹;其中,所述机器识别模型根据上述机器识别模型的训练方法得到。
进一步地,利用机器识别模型预测所述移动轨迹是否为机器模拟的移动轨迹之前,还包括:
在所述移动轨迹在预定时间内重复出现的次数超过预设阈值时,确定所述移动轨迹为机器模拟的移动轨迹。
进一步地,所述机器识别模型为卷积神经网络模型;
利用机器识别模型预测所述移动轨迹是否为机器模拟的移动轨迹之后,还包括:
在所述机器识别模型预测出所述移动轨迹为非机器模拟的移动轨迹时,根据所述机器识别模型在预测过程中得到的所述移动轨迹的低维特征表达确定所述移动轨迹在预定时间内重复出现的次数是否超过预设阈值;
在所述移动轨迹在预定时间内重复出现的次数超过所述预设阈值时,确定所述移动轨迹为机器模拟的移动轨迹。
第三方面,本公开实施例提供了一种机器识别模型的训练装置,包括:
第一获取模块,被配置为获取训练样本;其中,所述训练样本包括多个正训练样本和多个第一负训练样本;所述正训练样本为人类行为在显示界面上生成的移动轨迹,所述第一负训练样本为机器模拟人类在显示界面上生成的移动轨迹;
模拟模块,被配置为对所述正训练样本进行机器模拟,得到多个第二负训练样本;
训练模块,被配置为利用所述正训练样本、第一负训练样本和第二负训练样本进行模型训练,得到机器识别模型。
进一步地,所述模拟模块,包括:
训练子模块,被配置为利用所述正训练样本训练生成对抗网络;
第一生成子模块,被配置为根据训练好的生成对抗网络生成多个所述第二负训练样本。
进一步地,所述第一获取模块,还包括:
获取子模块,被配置为获取收集的轨迹采样数据;
转化子模块,被配置为将所述轨迹采样数据转化为移动轨迹;所述移动轨迹为二维的图像数据;
第二生成子模块,被配置为根据所述移动轨迹生成所述训练样本。
所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,机器识别模型的训练装置结构中包括存储器和处理器,所述存储器用于存储一条或多条支持机器识别模型的训练装置执行上述第一方面中机器识别模型的训练方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述机器识别模型的训练装置还可以包括通信接口,用于机器识别模型的训练装置与其他设备或通信网络通信。
第四方面,本公开实施例提供了一种机器识别装置,包括:
第二获取模块,被配置为获取待识别的移动轨迹;
预测模块,被配置为利用机器识别模型预测所述移动轨迹是否为机器模拟的移动轨迹;其中,所述机器识别模型根据上述机器识别模型的训练装置得到。
进一步地,所述预测模块之前,还包括:
第一确定子模块,被配置为在所述移动轨迹在预定时间内重复出现的次数超过预设阈值时,确定所述移动轨迹为机器模拟的移动轨迹。
进一步地,所述机器识别模型为卷积神经网络模型;
所述预测模块之后,还包括:
第二确定子模块,被配置为在所述机器识别模型预测出所述移动轨迹为非机器模拟的移动轨迹时,根据所述机器识别模型在预测过程中得到的所述移动轨迹的低维特征表达确定所述移动轨迹在预定时间内重复出现的次数是否超过预设阈值;
第三确定子模块,被配置为在所述移动轨迹在预定时间内重复出现的次数超过所述预设阈值时,确定所述移动轨迹为机器模拟的移动轨迹。
所述功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。所述硬件或软件包括一个或多个与上述功能相对应的模块。
在一个可能的设计中,机器识别装置的结构中包括存储器和处理器,所述存储器用于存储一条或多条支持机器识别装置执行上述第二方面中机器识别方法的计算机指令,所述处理器被配置为用于执行所述存储器中存储的计算机指令。所述机器识别装置还可以包括通信接口,用于机器识别装置与其他设备或通信网络通信。
第五方面,本公开实施例提供了一种电子设备,包括存储器和处理器;其中,所述存储器用于存储一条或多条计算机指令,其中,所述一条或多条计算机指令被所述处理器执行以实现第一方面或第二方面所述的方法步骤。
第六方面,本公开实施例提供了一种计算机可读存储介质,用于存储机器识别模型的训练装置或机器识别装置所用的计算机指令,其包含用于执行上述第一方面中机器识别模型的训练方法或第二方面种机器识别方法所涉及的计算机指令。
本公开实施例提供的技术方案可以包括以下有益效果:
本公开实施例通过获取的训练样本后,利用其中的正训练样本模拟出更多的负训练样本,进而利用获取的训练样本以及模拟出的负训练样本进行模型训练,得到机器识别模型。通过本公开这种方式,可以利用正训练样本机器模拟出更多的负训练样本,在通过检测机器攻击得到的负训练样本较少或者覆盖面不全的情况下,能够扩充负训练样本的数量以及覆盖面,使得训练得到的机器识别模型的识别能力更强。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。
附图说明
结合附图,通过以下非限制性实施方式的详细描述,本公开的其它特征、目的和优点将变得更加明显。在附图中:
图1示出根据本公开一实施方式的机器识别模型的训练方法的流程图;
图2示出根据图1所示实施方式的步骤S102的流程图;
图3示出根据图1所示实施方式的步骤S101的流程图;
图4示出根据本公开一实施方式的机器识别方法的流程图;
图5示出根据图4所示实施方式的步骤S402之后对机器模拟轨迹进行进一步识别的流程图;
图6示出根据本公开一实施方式的机器识别模型的训练装置的结构框图;
图7示出根据图6所示实施方式的模拟模块602的结构框图;
图8示出根据图6所示实施方式的第一获取模块601的结构框图;
图9示出根据本公开一实施方式的机器识别装置的结构框图;
图10示出根据图9所示实施方式的预测模块902之后对机器模拟轨迹进行进一步识别的结构框图;
图11是适于用来实现根据本公开一实施方式的机器识别模型的训练方法的电子设备的结构示意图。
具体实施方式
下文中,将参考附图详细描述本公开的示例性实施方式,以使本领域技术人员可容易地实现它们。此外,为了清楚起见,在附图中省略了与描述示例性实施方式无关的部分。
在本公开中,应理解,诸如“包括”或“具有”等的术语旨在指示本说明书中所公开的特征、数字、步骤、行为、部件、部分或其组合的存在,并且不欲排除一个或多个其他特征、数字、步骤、行为、部件、部分或其组合存在或被添加的可能性。
另外还需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出根据本公开一实施方式的机器识别模型的训练方法的流程图。如图1所示,所述机器识别模型的训练方法包括以下步骤S101-S103:
在步骤S101中,获取训练样本;其中,所述训练样本包括多个正训练样本和多个第一负训练样本;所述正训练样本为人类行为在显示界面上生成的移动轨迹,所述第一负训练样本为机器模拟人类在显示界面上生成的移动轨迹;
在步骤S102中,对所述正训练样本进行机器模拟,得到多个第二负训练样本;
在步骤S103中,利用所述正训练样本、第一负训练样本和第二负训练样本进行模型训练,得到机器识别模型。
对于用户在系统显示界面上移动轨迹的人机识别,已有技术通常是提取移动轨迹日志的统计特征,例如移动范围,移动速度,移动加速度等,然后训练一个二分类模型。但是这种方案的缺点至少有以下两点:1)统计特征损失了部分信息;2)不能识别未出现过的攻击模式。
本实施例中,训练样本是通过统计用户在系统显示界面中的正常操作以及检测到机器攻击时收集的数据获取的。训练样本包括正训练样本和第一负训练样本。正训练样本为用户在系统显示界面中正常操作而生成的移动轨迹,例如用户登录账号时,系统指示用户完成移动的滑动操作,比如显示一拼图图片,指示用户通过滑动操作将拼图放入指定的位置时,记录用户在此过程中产生的移动轨迹数据,并标识为正常用户操作。如果检测出某次的移动操作是机器模拟的,则将该次移动轨迹数据记录下来,并标识为机器模拟数据,之后可以从该机器模拟数据中提取出第一负训练样本。移动轨迹可以是用户进行鼠标操作时产生的鼠标移动轨迹,也可以是用户通过手指触摸屏幕产生的手指移动轨迹,移动轨迹可以包括一系列随着时间的增加而连续移动的位置坐标。
训练样本的数量可以尽可能的多,其中正负训练样本的数量如果均衡为最佳,但是实际情况是收集正常用户操作生成的移动轨迹较为容易,而机器模拟生成的移动轨迹较难收集,可能会造成所收集的训练样本中负训练样本的数量远远小于正训练样本的情况,同时时间较短或者遭遇机器攻击较少的情况下,收集到的负训练样本不但数量较少,而且覆盖面也不广,可能很多不同机器攻击形式下的负训练样本无法收集到,如果利用这样的训练样本进行模型训练,最终会导致机器识别模型对某些机器模拟的移动轨迹识别能力低下的问题。
本实施例中,在获取了训练样本后,通过对正训练样本进行机器模拟,生成一些类似正训练样本的第二负训练样本。在一些实施例中,可以针对所有的正训练样本通过机器模拟仿造出与正训练样本类似的第二负训练样本,而在另一些实施例中,可以针对其中一部分正训练样本通过机器模拟仿造出与正训练样本类似的第二负训练样本。同一个正训练样本通过机器模拟可以仿造出与正训练样本类似的一个或多个第二负训练样本。通过这种方式不但扩充了负训练样本的数量,同时由于第二负训练样本是通过正训练样本模拟出来的,因此还扩充了负训练样本的覆盖面,使得负训练样本无论从数量还是覆盖面上都能够达到较高的要求,并且使用这些收集到的训练样本和机器模拟出来的第二负训练样本对模型进行训练,能够进一步提高机器识别模型的识别能力,并能扩大识别范围。
在收集了训练样本,并通过正训练样本模拟出了更多的第二负训练样本后,利用正训练样本、第一负训练样本和第二负训练样本对模型进行有监督的学习训练,最终得到机器识别模型。机器识别模型可以选用神经网络,也可以选用其他机器自学习模型,例如卷积神经网络、深度神经网络、支持向量机、K-means、K-neighbors、决策树、随机森林、贝叶斯网络中的一种或多种组合。训练过程中,通过不断地将训练样本输入至机器识别模型中,并将机器识别结果输出的结果与训练样本的标注结果(正训练样本的标注结果为人类,而第一负训练样本和第二负训练样本的标注结果为机器)进行对比,进而更新模型参数的方式,迭代训练,最终得到具有识别能力的机器识别模型。
本公开实施例通过获取的训练样本后,利用其中的正训练样本模拟出更多的负训练样本,进而利用获取的训练样本以及模拟出的负训练样本进行模型训练,得到机器识别模型。通过本公开这种方式,可以利用正训练样本机器模拟出更多的负训练样本,在通过检测机器攻击得到的负训练样本较少或者覆盖面不全的情况下,能够扩充负训练样本的数量以及覆盖面,使得训练得到的机器识别模型的识别能力更强。
在本实施例的一个可选实现方式中,如图2所示,所述步骤S102,即对所述正训练样本进行机器模拟,得到多个第二负训练样本的步骤,进一步包括以下步骤S201-S202:
在步骤S201中,利用所述正训练样本训练生成对抗网络;
在步骤S202中,根据训练好的生成对抗网络生成多个所述第二负训练样本。
在该可选的实现方式中,通过生成对抗网络(GANs,Generative AdversarialNetworks)对正训练样本进行机器模拟。生成对抗网络由两个模型构成,即生成模型和判别模型。判别模型用于判断一个给定的图片(这里用图片举例说明,生成对抗网络的用途很广,不仅适用于图片,还适用于其他数据)是不是真实的图片(也即判断该图片是从数据集里获取的真实图片还是生成模型生成的图片),生成模型的任务是随机创造一个看起来像真实图片一样的伪造图片。而在开始的时候这两个模型都是没有经过训练的,这两个模型一起对抗训练,生成模型产生一张图片去欺骗判别模型,然后判别模型去判断这张图片是真是假,最终在这两个模型训练的过程中,两个模型的能力越来越强,最终达到稳态,也即生成模型生成的图片接近真实图片,而判别模型对生成模型生成的接近真实图片的伪造图片的辨别能力达到一定高度。
下面以神经网络模型为例说明生成对抗网络在本实施例中的应用。其中,生成模型是一个用来生成数据实例的神经网络;判别模型则是用来评估其真实性的神经网络。
生成对抗网络的训练步骤如下:
(a)生成模型中输入一系列随机数字并返回一张伪造图像;
(b)将生成模型生成的上述伪造图像和正训练样本集中的真实图像作为训练样本分别输入至判别器;
(c)判别模型通过比较伪造图像与输入的正训练样本集中的真实图像,返回伪造图像与真实图像相似的概率值,范围可以是0~1之间的数字,其中1表示真实性的预测,0表示假的预测;
(d)修正生成模型和判别模型的模型参数;
(e)重复迭代上述步骤,直到达到迭代次数,或者使得判别模型输出的概率值达到预定值,得到生成对抗网络。
训练完成后,利用训练好的生成对抗网络生成多个伪造图像,其生成的多个伪造图像与用于训练生成对抗网络的正训练样本中的真实图像相似,但是是机器仿造的,因此将这些伪造图像作为第二负训练样本。通过这种方式,由于正训练样本的数量较多,覆盖面较广,包括各种不同类型的移动轨迹,因此利用正训练样本仿造出来的第二负训练样本同样数量较多,且覆盖面也较广,能够解决采用线上收集负训练样本数量不多、且覆盖面不全的问题。
在本实施例的一个可选实现方式中,如图3所示,所述步骤S101,即获取训练样本的步骤,进一步包括以下步骤S301-S303:
在步骤S301中,获取收集的轨迹采样数据;
在步骤S302中,将所述轨迹采样数据转化为移动轨迹;所述移动轨迹为二维的图像数据;
在步骤S303中,根据所述移动轨迹生成所述训练样本。
在该可选的实现方式中,在线收集用户产生的或者机器模拟产生的移动轨迹时,通常是对真实移动轨迹进行采样后得到轨迹采样数据,并进行保存。例如,存储结构如下表1所示:
表1
本实施例中,在生成训练样本前,可以将上述轨迹采样进行直线填充以后,生成二维的图像数据,使得移动轨迹中能够包括轨迹经过的空间信息。在生成二维的图像数据以后,根据该移动轨迹的产生主体也即人类还是机器模拟进行标注,得到训练样本。训练样本包括移动轨迹对应的二维的图像数据和标注结果,标注结果用于标注对应的移动轨迹是人类产生的还是机器模拟产生的。
图4示出根据本公开一实施方式的机器识别方法的流程图。如图4所示,所述机器识别方法包括以下步骤S401-S402:
在步骤S401中,获取待识别的移动轨迹;
在步骤S402中,利用机器识别模型预测所述移动轨迹是否为机器模拟的移动轨迹;其中,所述机器识别模型根据上述机器识别模型的训练方法得到。
本实施例中,在训练得到机器识别模型后,可以利用该机器识别模型在线检测是否为机器模拟人类行为执行操作。例如,在检测到登录系统的请求时,界面上输出一行为验证码,并指示请求者完成指定的滑动操作,在此期间记录请求者在显示界面上进行滑动操作时产生的移动轨迹数据,将该移动轨迹输入指机器识别模型进行识别。在一实施例中,所记录的移动轨迹数据为轨迹采样数据时,先将该轨迹采样数据转换成二维的图像数据后,再输入至机器识别模型中。机器识别模型可以输出一概率值,以表明输入的移动轨迹为机器模拟的可能性大小。通过本公开实施例,能够自动在线识别出机器模拟人类的行为,防止利用黑产工具套取营销资金、盗号、诈骗等风险行为。
机器识别模型相关的技术细节可参见上述对机器识别模型的训练方法的描述,在此不再赘述。
在本实施例的一个可选实现方式中,所述步骤S402,即利用机器识别模型预测所述移动轨迹是否为机器模拟的移动轨迹的步骤之前,进一步还包括以下步骤:
在所述移动轨迹在预定时间内重复出现的次数超过预设阈值时,确定所述移动轨迹为机器模拟的移动轨迹。
该可选的实现方式中,还可以通过在线检测相同移动轨迹重复出现次数的方式,防止某个或某些机器模拟的移动轨迹未被机器识别模型检测到后,黑客采用该机器模拟的移动轨迹批量攻击系统的事件。本实施例中,根据统计经验和/或各项相关实验等确定预设阈值,在线检测到移动轨迹后,匹配检测到的移动轨迹与已有移动轨迹,在匹配成功后,将该移动轨迹的出现次数加1,并在出现次数超过预设阈值后,将该移动轨迹确定为机器模拟的移动轨迹。在一实施例中,移动轨迹的出现次数可以限定为预定时间内出现的次数,在其他实施例中,也可以不限制重复出现次数的时间段,具体根据实际情况设置,在此不做限制。
在本实施例的一个可选实现方式中,所述机器识别模型为卷积神经网络模型;如图5所示,所述步骤S402,即利用机器识别模型预测所述移动轨迹是否为机器模拟的移动轨迹的步骤之后,进一步还包括以下步骤S501-S502:
在步骤S501中,在所述机器识别模型预测出所述移动轨迹为非机器模拟的移动轨迹时,根据所述机器识别模型在预测过程中得到的所述移动轨迹的低维特征表达确定所述移动轨迹在预定时间内重复出现的次数是否超过预设阈值;
在步骤502中,在所述移动轨迹在预定时间内重复出现的次数超过所述预设阈值时,确定所述移动轨迹为机器模拟的移动轨迹。
该可选的实现方式中,在存储移动轨迹时,如果移动轨迹以二维图像特征的形式进行存储,所占用的存储空间较大。本公开实施例中,机器识别模型采用神经网络模型时,其对在线检测到的移动轨迹进行识别时,会生成移动轨迹对应图像数据的低维特征表达,进而再得出识别结果。因此,该可选的实现方式中,在机器识别模型的识别结果表明当前的移动轨迹不为机器模拟(也即人类行为产生)的移动轨迹时,将该移动轨迹的低维特征表达存储起来,以便与已有的移动轨迹进行匹配,也可以供后续检测到的非机器模拟的移动轨迹与之进行匹配,这样既可以减少存储空间,也能在进行匹配时加快匹配速度。在当前识别出的非机器模拟的移动轨迹与已有的移动轨迹相匹配时,确定该移动轨迹在预定时间内重复出现的次数是否超过预设阈值,如果超过预设阈值,则可以认为该未被机器识别模型识别出来的移动轨迹实际上为机器模拟的移动轨迹。通过这种方式在防止某个或某些机器模拟的移动轨迹未被机器识别模型检测到后,黑客采用该机器模拟的移动轨迹批量攻击系统的事件的过程中,能够通过保存图像低维特征表达的方式减少存储空间以及提高匹配速度。
下述为本公开装置实施例,可以用于执行本公开方法实施例。
图6示出根据本公开一实施方式的机器识别模型的训练装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图6所示,所述机器识别模型的训练装置包括:
第一获取模块601,被配置为获取训练样本;其中,所述训练样本包括多个正训练样本和多个第一负训练样本;所述正训练样本为人类行为在显示界面上生成的移动轨迹,所述第一负训练样本为机器模拟人类在显示界面上生成的移动轨迹;
模拟模块602,被配置为对所述正训练样本进行机器模拟,得到多个第二负训练样本;
训练模块603,被配置为利用所述正训练样本、第一负训练样本和第二负训练样本进行模型训练,得到机器识别模型。
对于用户在系统显示界面上移动轨迹的人机识别,已有技术通常是提取移动轨迹日志的统计特征,例如移动范围,移动速度,移动加速度等,然后训练一个二分类模型。但是这种方案的缺点至少有以下两点:1)统计特征损失了部分信息;2)不能识别未出现过的攻击模式。
本实施例中,训练样本是通过统计用户在系统显示界面中的正常操作以及检测到机器攻击时收集的数据获取的。训练样本包括正训练样本和第一负训练样本。正训练样本为用户在系统显示界面中正常操作而生成的移动轨迹,例如用户登录账号时,系统指示用户完成移动的滑动操作,比如显示一拼图图片,指示用户通过滑动操作将拼图放入指定的位置时,记录用户在此过程中产生的移动轨迹数据,并标识为正常用户操作。如果检测出某次的移动操作是机器模拟的,则将该次移动轨迹数据记录下来,并标识为机器模拟数据,之后可以从该机器模拟数据中提取出第一负训练样本。移动轨迹可以是用户进行鼠标操作时产生的鼠标移动轨迹,也可以是用户通过手指触摸屏幕产生的手指移动轨迹,移动轨迹可以包括一系列随着时间的增加而连续移动的位置坐标。
训练样本的数量可以尽可能的多,其中正负训练样本的数量如果均衡为最佳,但是实际情况是收集正常用户操作生成的移动轨迹较为容易,而机器模拟生成的移动轨迹较难收集,可能会造成所收集的训练样本中负训练样本的数量远远小于正训练样本的情况,同时时间较短或者遭遇机器攻击较少的情况下,收集到的负训练样本不但数量较少,而且覆盖面也不广,可能很多不同机器攻击形式下的负训练样本无法收集到,如果利用这样的训练样本进行模型训练,最终会导致机器识别模型对某些机器模拟的移动轨迹识别能力低下的问题。
本实施例中,在获取了训练样本后,通过对正训练样本进行机器模拟,生成一些类似正训练样本的第二负训练样本。在一些实施例中,可以针对所有的正训练样本通过机器模拟仿造出与正训练样本类似的第二负训练样本,而在另一些实施例中,可以针对其中一部分正训练样本通过机器模拟仿造出与正训练样本类似的第二负训练样本。同一个正训练样本通过机器模拟可以仿造出与正训练样本类似的一个或多个第二负训练样本。通过这种方式不但扩充了负训练样本的数量,同时由于第二负训练样本是通过正训练样本模拟出来的,因此还扩充了负训练样本的覆盖面,使得负训练样本无论从数量还是覆盖面上都能够达到较高的要求,并且使用这些收集到的训练样本和机器模拟出来的第二负训练样本对模型进行训练,能够进一步提高机器识别模型的识别能力,并能扩大识别范围。
在收集了训练样本,并通过正训练样本模拟出了更多的第二负训练样本后,利用正训练样本、第一负训练样本和第二负训练样本对模型进行有监督的学习训练,最终得到机器识别模型。机器识别模型可以选用神经网络,也可以选用其他机器自学习模型,例如卷积神经网络、深度神经网络、支持向量机、K-means、K-neighbors、决策树、随机森林、贝叶斯网络中的一种或多种组合。训练过程中,通过不断地将训练样本输入至机器识别模型中,并将机器识别结果输出的结果与训练样本的标注结果(正训练样本的标注结果为人类,而第一负训练样本和第二负训练样本的标注结果为机器)进行对比,进而更新模型参数的方式,迭代训练,最终得到具有识别能力的机器识别模型。
本公开实施例通过获取的训练样本后,利用其中的正训练样本模拟出更多的负训练样本,进而利用获取的训练样本以及模拟出的负训练样本进行模型训练,得到机器识别模型。通过本公开这种方式,可以利用正训练样本机器模拟出更多的负训练样本,在通过检测机器攻击得到的负训练样本较少或者覆盖面不全的情况下,能够扩充负训练样本的数量以及覆盖面,使得训练得到的机器识别模型的识别能力更强。
在本实施例的一个可选实现方式中,如图7所示,所述模拟模块602,包括:
训练子模块701,被配置为利用所述正训练样本训练生成对抗网络;
第一生成子模块702,被配置为根据训练好的生成对抗网络生成多个所述第二负训练样本。
在该可选的实现方式中,通过生成对抗网络(GANs,Generative AdversarialNetworks)对正训练样本进行机器模拟。生成对抗网络由两个模型构成,即生成模型和判别模型。判别模型用于判断一个给定的图片(这里用图片举例说明,生成对抗网络的用途很广,不仅适用于图片,还适用于其他数据)是不是真实的图片(也即判断该图片是从数据集里获取的真实图片还是生成模型生成的图片),生成模型的任务是随机创造一个看起来像真实图片一样的伪造图片。而在开始的时候这两个模型都是没有经过训练的,这两个模型一起对抗训练,生成模型产生一张图片去欺骗判别模型,然后判别模型去判断这张图片是真是假,最终在这两个模型训练的过程中,两个模型的能力越来越强,最终达到稳态,也即生成模型生成的图片接近真实图片,而判别模型对生成模型生成的接近真实图片的伪造图片的辨别能力达到一定高度。
下面以神经网络模型为例说明生成对抗网络在本实施例中的应用。其中,生成模型是一个用来生成数据实例的神经网络;判别模型则是用来评估其真实性的神经网络。
生成对抗网络的训练步骤如下:
(a)生成模型中输入一系列随机数字并返回一张伪造图像;
(b)将生成模型生成的上述伪造图像和正训练样本集中的真实图像作为训练样本分别输入至判别器;
(c)判别模型通过比较伪造图像与输入的正训练样本集中的真实图像,返回伪造图像与真实图像相似的概率值,范围可以是0~1之间的数字,其中1表示真实性的预测,0表示假的预测;
(d)修正生成模型和判别模型的模型参数;
(e)重复迭代上述步骤,直到达到迭代次数,或者使得判别模型输出的概率值达到预定值,得到生成对抗网络。
训练完成后,利用训练好的生成对抗网络生成多个伪造图像,其生成的多个伪造图像与用于训练生成对抗网络的正训练样本中的真实图像相似,但是是机器仿造的,因此将这些伪造图像作为第二负训练样本。通过这种方式,由于正训练样本的数量较多,覆盖面较广,包括各种不同类型的移动轨迹,因此利用正训练样本仿造出来的第二负训练样本同样数量较多,且覆盖面也较广,能够解决采用线上收集负训练样本数量不多、且覆盖面不全的问题。
在本实施例的一个可选实现方式中,如图8所示,所述第一获取模块601,包括:
获取子模块801,被配置为获取收集的轨迹采样数据;
转化子模块802,被配置为将所述轨迹采样数据转化为移动轨迹;所述移动轨迹为二维的图像数据;
第二生成子模块803,被配置为根据所述移动轨迹生成所述训练样本。
在该可选的实现方式中,在线收集用户产生的或者机器模拟产生的移动轨迹时,通常是对真实移动轨迹进行采样后得到轨迹采样数据,并进行保存。例如,存储结构如下表1所示:
表1
本实施例中,在生成训练样本前,可以将上述轨迹采样进行直线填充以后,生成二维的图像数据,使得移动轨迹中能够包括轨迹经过的空间信息。在生成二维的图像数据以后,根据该移动轨迹的产生主体也即人类还是机器模拟进行标注,得到训练样本。训练样本包括移动轨迹对应的二维的图像数据和标注结果,标注结果用于标注对应的移动轨迹是人类产生的还是机器模拟产生的。
图9示出根据本公开一实施方式的机器识别装置的结构框图,该装置可以通过软件、硬件或者两者的结合实现成为电子设备的部分或者全部。如图9所示,所述机器识别装置包括:
第二获取模块901,被配置为获取待识别的移动轨迹;
预测模块902,被配置为利用机器识别模型预测所述移动轨迹是否为机器模拟的移动轨迹;其中,所述机器识别模型根据上述机器识别模型的训练装置得到。
本实施例中,在训练得到机器识别模型后,可以利用该机器识别模型在线检测是否为机器模拟人类行为执行操作。例如,在检测到登录系统的请求时,界面上输出一行为验证码,并指示请求者完成指定的滑动操作,在此期间记录请求者在显示界面上进行滑动操作时产生的移动轨迹数据,将该移动轨迹输入指机器识别模型进行识别。在一实施例中,所记录的移动轨迹数据为轨迹采样数据时,先将该轨迹采样数据转换成二维的图像数据后,再输入至机器识别模型中。机器识别模型可以输出一概率值,以表明输入的移动轨迹为机器模拟的可能性大小。通过本公开实施例,能够自动在线识别出机器模拟人类的行为,防止利用黑产工具套取营销资金、盗号、诈骗等风险行为。
机器识别模型相关的技术细节可参见上述对机器识别模型的训练装置的描述,在此不再赘述。
在本实施例的一个可选实现方式中,所述预测模块902之前,所述机器识别装置进一步还包括:
第一确定子模块,被配置为在所述移动轨迹在预定时间内重复出现的次数超过预设阈值时,确定所述移动轨迹为机器模拟的移动轨迹。
该可选的实现方式中,还可以通过在线检测相同移动轨迹重复出现次数的方式,防止某个或某些机器模拟的移动轨迹未被机器识别模型检测到后,黑客采用该机器模拟的移动轨迹批量攻击系统的事件。本实施例中,根据统计经验和/或各项实验等确定预设阈值,在线检测到移动轨迹后,匹配检测到的移动轨迹与已有移动轨迹,在匹配成功后,将该移动轨迹的出现次数加1,并在出现次数超过预设阈值后,将该移动轨迹确定为机器模拟的移动轨迹。在一实施例中,移动轨迹的出现次数可以限定为预定时间内出现的次数,在其他实施例中,也可以不限制重复出现次数的时间段,具体根据实际情况设置,在此不做限制。
在本实施例的一个可选实现方式中,所述机器识别模型为卷积神经网络模型;如图10所示,所述预测模块902之后,所述机器识别装置还包括:
第二确定子模块1001,被配置为在所述机器识别模型预测出所述移动轨迹为非机器模拟的移动轨迹时,根据所述机器识别模型在预测过程中得到的所述移动轨迹的低维特征表达确定所述移动轨迹在预定时间内重复出现的次数是否超过预设阈值;
第三确定子模块1002,被配置为在所述移动轨迹在预定时间内重复出现的次数超过所述预设阈值时,确定所述移动轨迹为机器模拟的移动轨迹。
该可选的实现方式中,在存储移动轨迹时,如果移动轨迹以二维图像特征的形式进行存储,所占用的存储空间较大。本公开实施例中,机器识别模型采用神经网络模型时,其对在线检测到的移动轨迹进行识别时,会生成移动轨迹对应图像数据的低维特征表达,进而再得出识别结果。因此,该可选的实现方式中,在机器识别模型的识别结果表明当前的移动轨迹不为机器模拟(也即人类行为产生)的移动轨迹时,将该移动轨迹的低维特征表达存储起来,以便与已有的移动轨迹进行匹配,也可以供后续检测到的非机器模拟的移动轨迹与之进行匹配,这样既可以减少存储空间,也能在进行匹配时加快匹配速度。在当前识别出的非机器模拟的移动轨迹与已有的移动轨迹相匹配时,确定该移动轨迹在预定时间内重复出现的次数是否超过预设阈值,如果超过预设阈值,则可以认为该未被机器识别模型识别出来的移动轨迹实际上为机器模拟的移动轨迹。通过这种方式在防止某个或某些机器模拟的移动轨迹未被机器识别模型检测到后,黑客采用该机器模拟的移动轨迹批量攻击系统的事件的过程中,能够通过保存图像低维特征表达的方式减少存储空间以及提高匹配速度。
图11是适于用来实现根据本公开实施方式的机器识别模型的训练方法的电子设备的结构示意图。
如图11所示,电子设备1100包括中央处理单元(CPU)1101,其可以根据存储在只读存储器(ROM)1102中的程序或者从存储部分1108加载到随机访问存储器(RAM)1103中的程序而执行上述图1所示的实施方式中的各种处理。在RAM1103中,还存储有电子设备1100操作所需的各种程序和数据。CPU1101、ROM1102以及RAM1103通过总线1104彼此相连。输入/输出(I/O)接口1105也连接至总线1104。
以下部件连接至I/O接口1105:包括键盘、鼠标等的输入部分1106;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分1107;包括硬盘等的存储部分1108;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分1109。通信部分1109经由诸如因特网的网络执行通信处理。驱动器1110也根据需要连接至I/O接口1105。可拆卸介质1111,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器1110上,以便于从其上读出的计算机程序根据需要被安装入存储部分1108。
特别地,根据本公开的实施方式,上文参考图1描述的方法可以被实现为计算机软件程序。例如,本公开的实施方式包括一种计算机程序产品,其包括有形地包含在及其可读介质上的计算机程序,所述计算机程序包含用于执行图1的方法的程序代码。在这样的实施方式中,该计算机程序可以通过通信部分1109从网络上被下载和安装,和/或从可拆卸介质1111被安装。
图11所示的电子设备同样适于用来实现本公开实施方式的机器识别方法。
附图中的流程图和框图,图示了按照本公开各种实施方式的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,路程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施方式中所涉及到的单元或模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元或模块也可以设置在处理器中,这些单元或模块的名称在某种情况下并不构成对该单元或模块本身的限定。
作为另一方面,本公开还提供了一种计算机可读存储介质,该计算机可读存储介质可以是上述实施方式中所述装置中所包含的计算机可读存储介质;也可以是单独存在,未装配入设备中的计算机可读存储介质。计算机可读存储介质存储有一个或者一个以上程序,所述程序被一个或者一个以上的处理器用来执行描述于本公开的方法。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离所述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。