实施例1
本申请实施例提供一种识别机器辅助作弊的方法,用于识别待评估设备或帐户在操作时是否有机器辅助作弊的嫌疑。图1是本实施例的识别机器辅助作弊的方法的一个流程示意图,如图1所示,该方法可以包括:
S101:根据待评估设备或账户的操作时间,生成时间间隔序列;
S102:离散化所述时间间隔序列,形成离散化时间间隔序列;
S103:计算所述离散化时间间隔序列的熵率;
S104:当所述熵率小于预设的第一阈值时,识别为所述待评估设备或账户在操作时使用机器辅助作弊。
在本实施例中,通过分析待评估设备或账户的操作时间的间隔序列,并计算熵率,来评估该时间间隔序列的规律性和节奏性,由此,判断该账户或者该设备上是否有机器辅助作弊的嫌疑。
下面,对每个步骤分别进行说明。
图2是步骤S101的一个流程示意图。如图2所示,步骤S101可以包括:
S201:提取所述待评估设备上所有帐户的操作时间,或所述待评估帐户在所有设备上的操作时间,生成第一时间序列;
S202:按照时间的先后顺序,对所述第一时间序列重新排序,形成第二时间序列;
S203:提取所述第二时间序列中相邻时间的时间间隔,形成时间间隔序列。
在S201中,对于待评估设备,可以提取该设备上的所有帐户的操作时间,该操作时间例如可以是账户注册、登录以及激活等操作发生的时间,由此,生成该待评估设备对应的第一时间序列。在本实施例中,可以根据手机号、ip、mac、umid和/或tmid等信息来标记该待评估设备,从而便于提取该设备上的账户的操作时间。
例如,在设备号为IC6F65B6EFBB的待评估设备上,总共有过上百个账户注册,基于这些账户的注册、登录以及激活等操作的时间,可以生成如图3所示的第一时间序列,当然,图3仅显示了第一时间序列的一部分。
在本实施例的S201中,对于待评估账户,可以提取该帐户在所有设备上的账户注册、登录以及激活等操作发生的时间,从而生成该第一时间序列。
在步骤S202中,可以按照时间的先后顺序,对所述第一时间序列中的每一个时间重新排序,生成第二时间序列。例如,在该第二时间序列中,可以将在先的时间排列在前,也可以将在先的时间排列在后。
在S203中,可以计算该第二时间序列中的相邻时间的时间间隔,形成时间间隔序列,例如,可以针对该第二时间序列中的每一个时间,计算该时间与前一个时间的差,由此,形成如图4的最右列所示的时间间隔序列,其中,该时间间隔序列的第一项为零。需要说明的是,本实施例并不限于此,也可以使用其他方法形成时间间隔序列,例如,计算第二时间序列中的每一个时间与后一个时间的差,来形成时间间隔序列。
此外,在本实施例中,还可以判断生成的时间间隔序列的元素数量,当该元素数量少于预设的阈值时,不对该时间间隔序列进行后续的处理,而是重新选择待评估设备或账户,进行上述步骤S101,例如,该预设的阈值可以是20或其它的数值。由此,能够保证对时间间隔序列的熵率计算的有效性,因为如果时间间隔序列的元素数量过少,可能说明该设备或账户活动太少,从而没有足够的信息帮助判断是否存在机器辅助作弊。
接下来,在步骤S102中,以小时、天或月作为标准,对步骤S203生成的时间间隔序列进行离散化处理,以生成离散化时间间隔序列。
一般情况下在计算序列熵率时,会采用“(最大值-最小值)/桶数”的方法,来对序列进行离散化处理,这对具有相对稳定的上限和下限值的序列,非常有效。
但是对本实施例的时间间隔序列而言,时间间隔跨度有可能非常大,也有可能非常小,其上限值和下限值并不稳定;并且,有些机器辅助作弊以非常高频的方式进行,而另一些机器辅助作弊为了绕过反作弊规则,以类似定时任务的形式分散在天或者周的时间范围内。如果仍然采用原始的(最大值-最小值)/桶数”,来对时间间隔序列进行离散化处理,会遇到如下两种问题:
1、有些时间间隔的上限值过大,导致对比较小的时间间隔没有区分度;
2、有些时间间隔的上限值过小,导致对时间间隔序列的划分的太精细。
而时间间隔的上限值过大或过小都可能与机器辅助作弊相关,属于需要被检测出来的情况。在本实施例中,以小时、天或月作为划分单位,对时间间隔序列进行划分,即离散化处理,由此形成离散化时间间隔序列,不仅符合人们的理解,也能够满足反作弊的需求。
在步骤S103中,计算该离散化时间间隔序列的熵率。在本实施例中,根据对该离散化时间间隔序列不同的分段结果,可以得到不同的多个熵率,并且,可以将该多个熵率中的最小值,作为该离散化时间间隔序列的熵率。当然,本实施例并不限于此,还可以采用其他的方法该离散化时间间隔序列的熵率。
图5是该步骤S103的一个流程示意图。如图5所示,计算该离散化时间间隔序列的熵率可以包括如下步骤:
步骤S501,根据不同的阶数,对所述离散化时间间隔序列进行与所述阶数对应的分段处理,形成不同的分段结果;
步骤S502,计算各分段结果所对应的修正条件熵;
步骤S503,将各分段结果所对应的修正条件熵中的最小值,确定为所述离散化时间间隔序列的熵率。
在步骤S501中,可以将离散化时间间隔序列分别按照与1阶、2阶、……K阶对应的方式进行分段,并且,作为每一阶数的分段结果,可以得到m-L+1个分段后的元素,其中,m代表该离散化时间间隔序列的元素总数,L代表阶数,且1≤L≤K。
例如,对于离散化时间间隔序列为“12312345678”的,其1阶分段结果、2阶分段结果和3阶分段结果分别为:
1阶分段:1,2,3,1,2,3,4,5,6,7,8
2阶分段:12,23,31,12,23,34,45,56,67,78
3阶分段:123,231,312,123,234,345,456,567,678
在上述举例中,该离散化时间间隔序列的元素总数m为11,1阶分段结果包含11个元素,2阶分段结果包括10个元素,3阶分段结果包括11个元素。
在步骤502中,计算各个分段结果所对应的熵率(Entropy Rate,ER),并且,在步骤S503中,将步骤S502所计算得到的熵率中的最小值,确定为该离散化时间间隔序列的熵率。
熵率衡量了一个随机过程的复杂性,熵率低代表有规律的序列,熵率高代表一个趋于随机的序列。熵率被定义为,给定一个长度为N的随机变量序列,该序列的熵随N的增长率。
在本实施例中,对于离散化时间序列的有限性,可以通过计算与各阶数对应的分段结果的修正条件熵(Corrected Conditional Entropy,CCE),来计算该离散化时间序列的熵率。
例如,在本实施例中,可以通过下式(1),来计算各分段结果的修正条件熵:
其中,各参数含义如下:
CE代表条件熵的估计值,衡量了L-1阶到L阶空间信息变化的增量,并且,CE=0代表长度为N的序列几乎能被长度为N-1的序列完全预测,比如123123123…;CE=E(1),代表序列每个元素完全独立,每个新的元素给序列增加了E(1)左右的信息量;
E(L)代表L阶分段后所得到的序列的熵,衡量了L阶分段后所得到的序列的信息量;
PL代表L阶分段后所得到的序列中的每个元素在全部元素中的比例,例如,在上述1阶分段的结果中,元素“1”、“2”、“3”、“4”的数量分别为2、2、2、1,因此,该元素“1”、“2”、“3”、“4”在全部11个元素中的比例P1分别为2/11、2/11、2/11、1/11;
Bias代表条件熵相对于熵率的偏移量,用来对条件熵CE进行修正;
perc(L)代表与阶数L对应的分段结果中的单点元素在全部元素中的比例,例如,在上述1阶分段的结果中,元素“4”、“5”、“6”、“7”、“8”都属于单点元素,因此,单点元素的数量为5个,其比例perc(1)为5/11;
E(1)代表Scale因子,表示该序列同分布的理论白噪音值,其数值等于1阶分段后所得到的序列的熵其中,P1代表阶数为1的分段结果中的每一元素在全部元素中的比例。
在上述式(1)中,随着L增大,单点变多,导致CE下降,Bias增大,因此,对于CCE=CE+Bias而言,则存在CCE的极小值,该极小值可作为有限序列熵率的最佳估值。
图6示出了条件熵CE和熵率随阶数L的变化曲线,图7示出了条件熵CE、偏移量、以及修正的条件熵CCE随阶数L的变化曲线。由图6和图7可以看出,CCE的极小值与熵率接近,因此,可以将CCE的该极小值作为有限序列熵率的最佳估值。
因此,在步骤S503中,可以将步骤S502所计算出的与多个阶数L对应的分段结果的修正条件熵CCE中的最小值,作为该离散化时间间隔序列的熵率。
下表1示出了根据上述式(1),对上述步骤S501所得到的1阶分段、2阶分段和3阶分段所得到的序列分别进行计算的结果。
表1:
此外,在另一个实例中,如果离散化时间间隔序列为123123123123,那么,计算得到熵率为0。
在步骤S104中,将步骤S503所得到的熵率与预设的第一阈值进行比较,当该熵率小于预设的第一阈值时,识别为所述待评估设备或账户在操作时使用机器辅助作弊。
在本实施例中,可以通过在红包作弊账户数据与正常账户样本序列上验证,分别计算生成熵率结果,评估正负样本结果,以确定该第一阈值。例如,该第一阀值可以是0.8,即,当离散化时间间隔序列的熵率小于0.8时,可以识别为该设备或该账户在操作时使用机器辅助作弊。
根据本申请的上述实施例,通过计算离散化时间间隔序列的熵率,能够准确区分有节奏的操作还是无节奏的操作,从而准确识别机器辅助作弊。
与背景技术提及的方法一相比,本实施例就可以准确区分是有节奏的操作还是无节奏的操作,对于正常用户即使是参加营销活动,或者遇到***操作异常,也不会有比较大规模的操作节奏性存在,所以可以起到很好的区分作用;与背景技术提及的方法二相比,由于通过同设备上动作时间间隔序列的节奏性,比如同ip上1天内登录1000次,且登录时间间隔为123123123123…,该序列熵率为0,因此,根据本实施例产出的低熵率值可以准确过滤出一批典型的可能存在机器作弊的设备或账户;与背景技术提及的方法三相比,本实施例兼顾了时间间隔序列的顺序性,以小时、日、月为标准对时间间隔序列进行离散化处理,从而以一个更合理的相对值来帮助判断时间间隔序列是否有规律有节奏。
实施例2提供一种识别机器辅助作弊的装置,与实施例1的识别机器辅助作弊的方法对应。
图8是本实施例的识别机器辅助作弊的装置的一个组成示意图,如图8所示,该装置800包括生成单元801、离散化单元802、计算单元803和识别单元804。
其中,生成单元801用于根据待评估设备或账户的操作时间,生成时间间隔序列;离散化单元802用于离散化所述时间间隔序列,以形成离散化时间间隔序列;计算单元803用于计算所述离散化时间间隔序列的熵率;识别单元804用于在所述熵率小于预设的第一阈值时,识别为所述待评估设备或账户在操作时使用机器辅助作弊。
图9是本实施例的生成单元的一个组成示意图,如图9所示,该生成单元801包括第一提取单元901、排序单元902和第二提取单元903。
其中,第一提取单元901用于提取所述待评估设备上所有帐户的操作时间,或所述待评估帐户在所有设备上的操作时间,以生成第一时间序列;排序单元902用于按照时间的先后顺序,对所述第一时间序列重新排序,以形成第二时间序列;第二提取单元903用于提取所述第二时间序列中的相邻时间的时间间隔,以形成时间间隔序列。
在本实施例中,该离散化单元802以小时、天或月作为划分单位,对时间间隔序列进行划分,以形成所述离散化时间间隔序列。此外,在本实施例中,当所述时间间隔序列中的元素少于预设的阈值时,该离散化单元802可以不对该时间间隔序列进行离散化处理。
图10是本实施例的计算单元的一个组成示意图,如图10所示,该计算单元803包括分段单元1001、修正条件熵计算单元1002和确定单元1003。
其中,分段单元1001用于根据不同的阶数,对所述离散化时间间隔序列进行与所述阶数对应的分段处理,形成不同的分段结果;修正条件熵计算单元1002用于计算各分段结果所对应的修正条件熵;确定单元1003用于将各分段结果所对应的修正条件熵中的最小值,确定为所述离散化时间间隔序列的熵率。
在本实施例中,识别单元804可以将计算单元803所计算出来的所述熵率与预设的第一阀值比较,当该熵率小于该预设的第一阈值时,可以识别为该设备或该账户在操作时使用机器辅助作弊。
关于识别机器辅助作弊的装置800中各单元的详细说明,请参考实施例1的相应步骤,本实施例不再重复说明。
根据本申请的上述实施例,通过计算离散化时间间隔序列的熵率,能够准确区分有节奏的操作还是无节奏的操作,从而准确识别机器辅助作弊。
本申请的识别机器辅助作弊的装置800或其中的单元具体可以由芯片或实体实现,或者由具有某种功能的产品来实现。
为了描述的方便,描述以上装置或单元时以功能分为各种单元分别描述。当然,在实施本发明时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
通过以上的实施方式的描述可知,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例或者实施例的某些部分所述的方法。
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于***实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本发明可用于众多通用或专用的计算***环境或配置中。例如:个人计算机、服务器计算机、手持设备或便携式设备、平板型设备、多处理器***、基于微处理器的***、置顶盒、可编程的消费电子设备、网络PC、小型计算机、大型计算机、包括以上任何***或设备的分布式计算环境等等。
本发明可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,希望所附的权利要求包括这些变形和变化而不脱离本发明的精神。