CN108905209B - 游戏中的外挂检测方法及系统、电子设备和存储介质 - Google Patents
游戏中的外挂检测方法及系统、电子设备和存储介质 Download PDFInfo
- Publication number
- CN108905209B CN108905209B CN201810592491.1A CN201810592491A CN108905209B CN 108905209 B CN108905209 B CN 108905209B CN 201810592491 A CN201810592491 A CN 201810592491A CN 108905209 B CN108905209 B CN 108905209B
- Authority
- CN
- China
- Prior art keywords
- player
- target
- plug
- model
- behavior sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 238000003860 storage Methods 0.000 title claims abstract description 18
- 238000001514 detection method Methods 0.000 claims abstract description 179
- 238000012549 training Methods 0.000 claims abstract description 116
- 230000006399 behavior Effects 0.000 claims description 232
- 239000013598 vector Substances 0.000 claims description 81
- 239000011159 matrix material Substances 0.000 claims description 76
- 238000009826 distribution Methods 0.000 claims description 64
- 238000005070 sampling Methods 0.000 claims description 39
- 230000011218 segmentation Effects 0.000 claims description 25
- 238000000605 extraction Methods 0.000 claims description 22
- 238000013145 classification model Methods 0.000 claims description 20
- 238000013508 migration Methods 0.000 claims description 12
- 230000005012 migration Effects 0.000 claims description 12
- 238000007781 pre-processing Methods 0.000 claims description 11
- 230000002457 bidirectional effect Effects 0.000 claims description 9
- 238000012952 Resampling Methods 0.000 claims description 8
- 238000013507 mapping Methods 0.000 claims description 7
- 230000015654 memory Effects 0.000 claims description 6
- 238000013528 artificial neural network Methods 0.000 claims description 5
- 210000002569 neuron Anatomy 0.000 claims description 5
- 230000000306 recurrent effect Effects 0.000 claims description 5
- 238000007621 cluster analysis Methods 0.000 claims description 3
- 230000002354 daily effect Effects 0.000 description 37
- 238000010586 diagram Methods 0.000 description 20
- 230000008569 process Effects 0.000 description 20
- 230000000694 effects Effects 0.000 description 17
- 238000004422 calculation algorithm Methods 0.000 description 13
- 230000009471 action Effects 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 6
- 230000007774 longterm Effects 0.000 description 5
- 238000002360 preparation method Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000011156 evaluation Methods 0.000 description 3
- 230000003203 everyday effect Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006403 short-term memory Effects 0.000 description 3
- 238000013526 transfer learning Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 238000013527 convolutional neural network Methods 0.000 description 2
- 239000013604 expression vector Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000003252 repetitive effect Effects 0.000 description 2
- 241000723353 Chrysanthemum Species 0.000 description 1
- 235000005633 Chrysanthemum balsamita Nutrition 0.000 description 1
- 230000003542 behavioural effect Effects 0.000 description 1
- 230000001680 brushing effect Effects 0.000 description 1
- 238000007635 classification algorithm Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000007619 statistical method Methods 0.000 description 1
- 208000015041 syndromic microphthalmia 10 Diseases 0.000 description 1
Images
Classifications
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F13/00—Video games, i.e. games using an electronically generated display having two or more dimensions
- A63F13/70—Game security or game management aspects
- A63F13/75—Enforcing rules, e.g. detecting foul play or generating lists of cheating players
-
- A—HUMAN NECESSITIES
- A63—SPORTS; GAMES; AMUSEMENTS
- A63F—CARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
- A63F2300/00—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
- A63F2300/50—Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
- A63F2300/55—Details of game data or player data management
- A63F2300/5586—Details of game data or player data management for enforcing rights or rules, e.g. to prevent foul play
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Business, Economics & Management (AREA)
- Computer Security & Cryptography (AREA)
- General Business, Economics & Management (AREA)
- Image Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开公开了一种游戏中的外挂检测方法及系统、电子设备和存储介质。其中,该外挂检测系统包括:外挂模型训练模块,用于对玩家行为序列进行训练,以确定出目标外挂检测模型,其中,目标外挂检测模型输出待检测的目标玩家为外挂玩家的概率;在线检测模块,与外挂模型训练模块连接,用于根据目标外挂检测模型和新输入的目标玩家的玩家行为序列,获取目标玩家为外挂玩家的概率,并根据目标玩家为外挂玩家的概率,确定目标玩家是否为外挂玩家。本公开解决了相关技术中检测游戏外挂的效率较低且准确率低的技术问题。
Description
技术领域
本公开涉及游戏外挂检测技术领域,具体而言,涉及一种游戏中的外挂检测方法及系统、电子设备和存储介质。
背景技术
在相关技术中,游戏外挂是指针对某一款游戏设计的、修改游戏中部分程序的程序,游戏外挂可以快速完成游戏目标,破坏游戏公平性。游戏外挂有很多种类,对于当前的游戏产品来说,自动挂是首要关注的对象,自动挂通过一些程序脚本实现玩家自动进行任务、刷怪、升级、打钱等操作,并进行金钱转移汇集,严重破坏了游戏的生态圈,降低了游戏的公平性和可玩性。
当前在游戏外挂检测方面,也有多种方式,包括以下四种:
方案一:通过游戏进程进行检测,检测游戏客户端是否开启了黑名单中的外挂进程;
方案二:利用一些经验特征对玩家游戏行为进行统计分析,根据这些经验特征对玩家进行盘查;
方案三:通过客户端屏幕检测,识别出屏幕上外挂软件窗口;
方案四:基于传统机器学习的方法进行外挂检测。
但是,上述的外挂检测方法存在较多问题,非常容易被外挂开发者针对性的应对并破解,如对于方案一:外挂开发者可以快速对客户端外挂进程进行修改与隐藏,这样游戏外挂的检测不会与黑名单匹配,也就不会检测到游戏的外挂了;而对于方案二:人力成本比较高,同时外挂的特征往往会发生变化,经验特征经常性失效;对于方案三:外挂玩家擅长隐藏外挂软件窗口,导致游戏外挂检测失效;最后,对于方案四:大多是先手动提取特征,再进行后续建模,提取到的特征无法完整表达玩家行为,也无法表达时序上的完整信息,这样不仅需要手动提取特征,还需要确定行为时序特征,外挂检测的效率会有很大的降低。
针对上述的相关技术中检测游戏外挂的效率较低的技术问题,目前尚未提出有效的解决方案。
发明内容
本公开实施例提供了一种游戏中的外挂检测方法及系统、电子设备和存储介质,以至少解决相关技术中检测游戏外挂的效率较低且准确率低的技术问题。
根据本公开实施例的一个方面,提供了一种游戏中的外挂检测系统,包括:外挂模型训练模块,用于对玩家行为序列进行训练,以确定出目标外挂检测模型,其中,所述目标外挂检测模型输出待检测的目标玩家为外挂玩家的概率;在线检测模块,与所述外挂模型训练模块连接,用于根据所述目标外挂检测模型和新输入的目标玩家的玩家行为序列,获取所述目标玩家为外挂玩家的概率,并根据所述目标玩家为外挂玩家的概率,确定所述目标玩家是否为外挂玩家。
进一步地,所述玩家行为序列的特征至少包括:玩家的目标事件、所述目标事件的次数、玩家等级、时间差,其中,所述时间差用于指示目标事件距离上一事件的时间间隔。
进一步地,所述外挂模型训练模块包括:预训练模块,用于根据历史记录的多个玩家的全量数据,分析出目标向量矩阵和目标权重矩阵,其中,所述全量数据用于指示记录的多个玩家在游戏中的操作数据;模型训练模块,与所述预训练模块连接,用于将所述目标向量矩阵和所述目标权重矩阵作为初始参数,根据新输入的目标玩家的所述玩家行为序列,输出所述目标玩家为外挂玩家的概率。
进一步地,所述预训练模块包括:第一预训练模型,用于将事件映射为一个固定长度的向量表示,采用相邻目标事件的时间间隔的改进初始子模型,并根据全量数据和第一公式,确定每一个目标事件的向量矩阵,其中,所述第一公式为:
其中,为目标事件的向量矩阵,w(ej,et)为预设事件ej相对于目标事件et时间间隔的权重,vj为预设事件ej的向量矩阵;第二预训练模型,与所述第一预训练模型连接,用于将所述每一个目标事件的向量矩阵作为初始参数,根据多个玩家的玩家行为序列,确定所述向量矩阵和所述目标权重矩阵,以重构所述玩家行为序列。
进一步地,所述第二预训练模型包括:编码器,用于提取所述玩家行为序列中每一个时间段的隐藏行为状态,以将所述隐藏行为状态作为玩家行为序列的向量矩阵,其中,所述隐藏行为状态用于表征所述玩家行为序列;解码器,与所述编码器连接,用于对所述向量矩阵进行解码,其中,所述编码器为一层双向循环神经网络RNN,所述解码器为一层单向RNN。
进一步地,所述模型训练模块包括:分类模型,用于根据所述目标玩家的玩家行为序列,确定所述目标玩家为正常玩家和外挂玩家的概率分布,并将所述分类模型作为所述目标外挂检测模型;迁移学习模型,用于对多个任务进行迁移学习,以将所述多个任务中预设任务的向量矩阵迁移到目标任务中,其中,所述多个任务至少包括:主线任务、日常任务和场景任务。
进一步地,所述分类模型包括:第一概率子模块,用于根据所述玩家行为序列的第一特征和第二公式,确定所述目标玩家为正常玩家和外挂玩家的第一概率分布,其中,所述第一特征为:目标事件,所述第二公式为:其中,x为玩家随机变量,α为伽马分布中的形状参数,β为伽马分布中的尺度参数,所述伽马分布为对正常玩家和外挂玩家进行拟合的伽马分布;第二概率子模块,用于根据所述玩家行为序列的第二特征和第三公式,确定所述目标玩家为正常玩家和外挂玩家的第二概率分布,其中,所述第二特征为:时间差,所述第三公式为: Ii,h=f(ti;αi,h,βi,h),Ii,b=f(ti;αi,b,βi,b),其中,Ii,h为玩家行为序列中的第i个目标事件的时间差表现偏向正常玩家的概率,Ii,b为玩家行为序列中的第i个目标事件的时间差表现偏向外挂玩家的概率;第三概率子模块,用于根据所述玩家行为序列的第三特征和第四公式,确定所述目标玩家为正常玩家和外挂玩家的第三概率分布,其中,所述第三特征为:目标事件的次数,所述第四公式为:Ci,h=f(ci;αc,h,βc,h),Ci,b=f(ci;αc,b,βc,b),其中,Ci,h为玩家行为序列中的第i个目标事件的次数表现偏向正常玩家的概率,Ci,b为玩家行为序列中的第i个目标事件的次数表现偏向外挂玩家的概率;第四概率子模块,用于根据所述玩家行为序列的第四特征和第五公式,确定所述目标玩家为正常玩家和外挂玩家的第四概率分布,其中,所述第四特征为:目标等级,所述第五公式为:其中,为目标等级li出现外挂玩家的总数,为目标等级li出现正常玩家的总数,bot表示外挂玩家,human表示正常玩家。
进一步地,所述分类模型还包括:分类子模型,与所述第一概率子模块、第二概率子模块、第三概率子模块和所述第四概率子模块连接,用于根据所述第一概率分布、第二概率分布、第三概率分布和所述第四概率分布,确定目标特征向量;概率模型,与所述分类子模型连接,用于根据所述目标特征向量和预设参数,确定玩家行为序列的目标数据,并将所述目标数据接入神经元,以确定所述目标玩家为正常玩家的第一概率和外挂玩家的第二概率。
进一步地,所述在线检测模块包括:分类检测模块,用于将所述目标玩家为正常玩家和外挂玩家的概率分布输出至运营端,以确定所述玩家是否为外挂玩家;聚类检测模块,与所述分类检测模块连接,用于对外挂玩家进行聚类分析,得到外挂玩家簇,以根据所述外挂玩家簇确定所述外挂玩家的目标类型,其中,所述目标类型为下述之一:正常外挂、新类型外挂和变异外挂。
进一步地,所述外挂检测系统还包括:数据预处理模块,用于对多个玩家的全量数据进行特征提取,得到玩家的多个行为特征,以确定玩家的原始行为序列;分段模块,用于根据目标任务,对所述原始行为序列进行分段,其中,所述目标任务为下述之一:主线任务、日常任务和场景任务;提取模块,用于根据玩家标签,对所述全量数据进行特征提取,以得到所述玩家行为序列,其中,所述玩家标签指示所述玩家为正常玩家或外挂玩家。
进一步地,所述分段模块包括:主线分段子模块,用于在所述目标任务为主线任务时,根据玩家等级对所述原始行为序列进行分段,以确定目标等级段的玩家行为序列;日常分段子模块,用于在所述目标任务为日常任务时,根据日期间隔对所述原始行为序列进行分段,以得到分段后的玩家行为序列;场景分段子模块,用于在所述目标任务为场景任务时,根据玩家进入场景的第一时间点和离开场景的第二时间点对所述原始行为序列进行分段,以得到分段后的玩家行为序列。
进一步地,所述提取模块包括:第一采样子模块,用于在所述玩家标签指示玩家为正常玩家时,将玩家等级分为多个子等级段,并根据第六公式对玩家进行采样,其中,所述第六公式为: 其中,n表示有n个子等级段,P={p1,p2,…,pn},lstart表示玩家开始等级,lend表示玩家结束等级,[lstart,lend]为玩家等级范围,pk表示第k个子等级段,表示向下取整,(·]表示左开右闭区间;第二采样子模块,用于在所述玩家标签指示玩家为外挂玩家时,对所述目标玩家的玩家行为序列的目标向量矩阵聚类,以确定多个玩家簇,并计算出每个所述玩家簇的密度分布,以根据每个所述玩家簇的密度分部确定采样频率,其中,所述采样频率用于指示对玩家簇的采样数量。
进一步地,所述外挂检测系统还包括:模型迭代模块,用于根据新输入的玩家行为序列和检测结果,对所述外挂模型训练模块的模型进行调整,以得到调整后的外挂检测模型,其中,所述检测结果为检测目标玩家是否为外挂玩家的结果。
进一步地,所述模型迭代模块包括:重新采样模块,用于在确定出所述目标玩家为正常玩家时,根据预设间隔时间,重新采样所述目标玩家的全量数据,以更新所述外挂模型训练模块中多个模型的正常玩家数据;聚类子模块,用于在确定出所述目标玩家为外挂玩家时,根据外挂玩家的目标类型和外挂玩家簇,更新所述外挂模型训练模块中多个模型的外挂玩家数据。
进一步地,所述聚类子模块包括:加载子模块,用于在所述外挂玩家的目标类型为新类型外挂或变异外挂时,将所述外挂玩家的玩家行为序列和特征数据加载至所述外挂模型训练模块中。
根据本公开实施例的另一方面,还提供了一种游戏中的外挂检测方法,包括:获取新输入的目标玩家的玩家行为序列,其中,所述玩家行为序列用于指示后台系统记录的所述目标玩家在游戏中的行为序列,所述玩家行为序列的特征至少包括:玩家的目标事件、所述目标事件的次数、玩家等级、时间差;将所述目标玩家的所述玩家行为序列输入至目标外挂检测模型,其中,所述目标外挂检测模型输出所述目标玩家为外挂玩家的概率;根据所述目标外挂检测模型输出的所述目标玩家为外挂玩家的概率,确定所述目标玩家是否外挂玩家。
根据本公开实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储所述处理器的可执行指令;其中,所述处理器配置为经由执行所述可执行指令来执行上述游戏中的外挂检测方法。
根据本公开实施例的另一方面,还提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行上述游戏中的外挂检测方法。
在本公开实施例中,可以对玩家行为序列进行训练,以确定出目标外挂检测模型,其中,玩家行为序列是对历史记录的多个玩家的全量数据进行特征提取得到的,在得到目标外挂检测模型后,可以将新输入的目标玩家的玩家行为序列输入至目标外挂检测模型中,从而获取到目标玩家为外挂玩家的概率,并根据目标玩家为外挂玩家的概率,确定目标玩家是否为外挂玩家。在本公开中,可以通过对全量数据进行特征提取,然后对特征提取后的玩家行为序列进行分析,从而确定玩家是否为外挂玩家,即通过对玩家行为序列进行分析可以更好地确定出玩家的行为特征,并利用训练好的模型来确定玩家的类型,并通过对模型不断的迭代优化,更快速分析出玩家是否为外挂玩家,减少大量人工的参与,同时在建模过程中,整理了玩家的行为序列的时序,玩家的行为序列更有时序性,可以较为准确的提高外挂检测的准确度,也提高了外挂检测的效率,从而解决相关技术中检测游戏外挂的效率较低且准确率低的技术问题。
附图说明
此处所说明的附图用来提供对本公开的进一步理解,构成本公开的一部分,本公开的示意性实施例及其说明用于解释本公开,并不构成对本公开的不当限定。在附图中:
图1是根据本公开实施例的一种游戏中的外挂检测系统的示意图;
图2是根据本公开实施例的另一种游戏中的外挂检测系统的示意图;
图3是根据本公开实施例的一种可选的玩家行为序列的多个特征的示意图;
图4是根据本公开实施例的一种基于玩家行为序列的外挂检测框架的示意图;
图5是根据本公开实施例的一种可选的SA-ABLSTM模型的示意图;
图6是根据本公开实施例的一种可选的监督学习实施效果的示意图;
图7是根据本公开实施例的一种可选的无监督学习实施效果的示意图一;
图8是根据本公开实施例的另一种可选的无监督学习实施效果的示意图二;
图9是根据本公开实施例的另一种可选的无监督学习实施效果的示意图三;
图10是根据本公开实施例的一种可选的无监督学习方案中检测变异外挂和新类型外挂的示意图;
图11是根据本公开实施例的一种可选的外挂检测框架使用自动迭代模块的效果示意图;以及
图12是根据本公开实施例的一种游戏中的外挂检测方法的流程图。
具体实施方式
为了使本技术领域的人员更好地理解本公开方案,下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分的实施例,而不是全部的实施例。基于本公开中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本公开保护的范围。
需要说明的是,本公开的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
为便于用户理解本公开,下面对本公开各实施例中涉及的部分术语或名词做出解释:
MMORPG,Massive Multiplayer Online Role Playing Game,大型多人在线角色扮演游戏,是电脑游戏中网络游戏的一种。
NGUARD,一种通用的基于玩家游戏行为序列的MMORPG外挂检测框架,目标在于帮助目标游戏维护好游戏内的秩序。
FPS,First-person shooting game,第一人称射击类游戏,是电脑游戏中网络游戏的一种。
MOBA,Multiplayer Online Battle Arena,多人在线战术竞技游戏,是电脑游戏中网络游戏的一种。
Bot:游戏中的使用外挂的玩家。
Human:游戏中的正常玩家。
Main quest:MMORPG中的主线任务,在主线任务中,玩家需要完成一系列的主线剧情以解锁后续的支线任务。
Daily quest:MMORPG中的日常任务。日常任务是指游戏中每天可以进行的重复性任务,一般都是一些相对简单的任务。
Instanced quest:MMORPG中的场景任务。场景任务通常是在游戏本身基础上半独立、在任务的团队内完全独立的任务,它通常在团队配合、协调之下能够顺利地完成。
EventID:玩家特征之一,事件ID,描述了玩家当前的详细行为。
Interval:玩家特征之一,时间差,指示当前事件距离上一事件的时间差。
Count:玩家特征之一,事件计数,玩家事件在当前时间窗口中连续发生的次数。
Level:玩家特征之一,事件等级,玩家事件发生时的当前角色等级。
Word2vec:一种用于将词映射成词向量的算法。
App2vec:一种用于将App映射成App向量的算法。
Time-interval Event2vec:本公开提出的一种算法,用于将玩家事件映射成一个向量表征。
RNN:recurrent neural network,循环神经网络,用于序列模型建模。
Sequence Autoencoder:一种用于序列学习的自动编码器。
ABLSTM:attention based long short term memory,基于注意力机制的长短期记忆模型,一种用于序列构建分类器的算法。
DBSCAN:density-based spatial clustering of applications with noise,一种常用的基于密度的聚类算法。
SA-DBSCAN:本公开中的一种先进行序列自编码学习,后基于密度聚类的方法。
SA-ABLSTM:本公开中的一种先进行序列自编码学习预训练,后使用注意力机制长短期记忆模型分类的算法。
TL-ABLSTM:本公开中的一种基于迁移学习的注意力机制长短期记忆模型分类的算法。
LSTM,Long Short-Term Memory,长短期记忆网络。
本公开中涉及到游戏中的任务,玩家通过做任务以达到相应的游戏目的,其中,本公开主要包括了三种任务:主线任务、日常任务和场景任务。其中,主线任务(Main quest):在主线任务中,玩家需要完成一系列的主线剧情以解锁后续的支线任务。正常玩家往往会被主线剧情所吸引,从而完成整个主线阶段的游戏任务。然而,外挂可以轻而易举地自动进行主线任务,并且在创建账号以后,通过完成主线任务可以获得大量的游戏金钱,往往在达到某一特定等级后将他们积累的金钱资产转出。
对于日常任务(Daily quest),本公开中的日常任务是指游戏中每天可以进行的重复性任务,一般都是一些相对简单的任务,由于不具有唯一性,奖励通常不高,日常任务通常会给予玩家一个可积累的物品,当其达到一定数量时,便可兑换相应的奖励。日常任务能让玩家对游戏产生每天登入的想法,延长游戏的生命周期。然而,外挂可以通过自动脚本完成这些日常任务,并且从中赚取经验和金钱。
而对于场景任务(Instanced quest),场景任务通常是在游戏本身基础上半独立、在任务的团队内完全独立的任务,它通常在团队配合、协调之下能够顺利地完成。副本任务通常是一些游戏里多经验和多金钱的任务,是众游戏玩家所倾向的任务。外挂在进入场景后,可以自动杀怪并赚取金钱,给正常玩家带来了不公平性。
本公开针对上述的三种任务设置了三种采样方式,以得到多种类型的玩家行为序列,对于每一种任务,由于其数据类型不同,需要采样或者说分离的地点不同,因此,对于每一种任务都会有一种采样方式,这样,得到的玩家行为序列也会不同,对于后续将玩家行为序列的分析和确定玩家是否为外挂玩家的方式也会不同。而且,在本公开中通过分类方式,利用目标外挂检测模型确定出玩家为外挂玩家的概率后,可以在确定外挂玩家的同时,还可以根据不同的任务进行迁移学习,例如,将主线任务迁移到场景任务,以更好地分析该玩家是否为外挂玩家,或者外挂玩家的类型,提高准确度。
本公开下述实施例中可以应用于各种游戏外挂检测的环境中,对于具体的游戏类型和具体的目标游戏不做限定,本公开中的游戏类型包括但不限于:电脑端游戏、手游端游戏等。本公开中在检测游戏外挂时,游戏服务器端可以基于海量的游戏日志数据,结合技术分析,确定出一种基于玩家行为序列的游戏外挂检测系统或者检测框架,其中,本公开中的玩家行为序列可以是在采集到玩家的游戏日志(对应于下述的全量数据)后,对游戏日志进行采样和整理,按照时间顺序对玩家在游戏中的行为进行排序,确定多个事件,从而为后续根据判断玩家是否外挂玩家做数据准备。
本公开在检测时,可以利用监督学习的方法,对已有标记的游戏外挂进行检测,同时利用无监督学习的方法,对新类型以及发生变异的游戏外挂进行检测,结合监督检测与无监督检测的结果,提出了一种长短期模型自动迭代机制,以达到线上模型长期稳定检测游戏外挂的目标,从而可以稳定的检测到游戏外挂。本公开中摒弃了传统的外挂检测方法,基于玩家的游戏行为序列进行建模,能够更完整丰富地表达玩家的时序行为信息,同时通过深度学习的方法进行外挂检测,有更高的检测精度和泛化能力。下面结合不同的实施例对本公开进行说明。
实施例一
图1是根据本公开实施例的一种游戏中的外挂检测系统的示意图,如图1所示,该外挂检测系统可以包括:外挂模型训练模块11和在线检测模块12,其中,
外挂模型训练模块11,用于对玩家行为序列进行训练,以确定出目标外挂检测模型,其中,目标外挂检测模型输出待检测的目标玩家为外挂玩家的概率。其中,玩家行为序列可以是对历史记录的多个玩家的全量数据进行特征提取得到的,该目标外挂检测模型用于根据新输入的玩家行为序列确定目标玩家是否为外挂玩家。
其中,玩家行为序列的特征至少包括:玩家的目标事件、目标事件的次数、玩家等级、时间差,其中,时间差用于指示目标事件距离上一事件的时间间隔。该目标事件可以指示玩家在游戏的操作行为,例如,使用了一个技能,跑动了一个地图,获得了一个物品等,本公开中对于具体事件不做限定,可以根据不同的游戏和玩家操控的虚拟对象在游戏的操作所确定。而目标时间的次数可以指示目标事件在时间差中连续发生的次数。
而全量数据可以是游戏服务器端收集到的玩家游戏日志,该游戏日志一般是非结构化或半结构化的数据,该全量数据不仅包括上述的玩家行为序列中的各个特征,还可以包括其它的数据,如使用技能的时间等。在对全量数据进行采样后,可以得到玩家行为序列,即玩家在游戏中的行为序列。
本公开实施例中包括了多个外挂检测模型,其中,本公开实施例中设置的目标外挂检测模型可以指示下述的模型训练模块中的分类模型,即指示SA-ABLSTM主模型。
在线检测模块12,与外挂模型训练模块连接,用于根据目标外挂检测模型和新输入的目标玩家的玩家行为序列,获取目标玩家为外挂玩家的概率,并根据目标玩家为外挂玩家的概率,确定目标玩家是否为外挂玩家。
上述的在线检测模块12,是可以将新输入的玩家行为序列输入至目标外挂检测模型,从而通过该模型确定出玩家为正常玩家的概率和玩家为外挂玩家的概率。
通过上述外挂检测系统,可以利用外挂模型训练模块11对玩家行为序列进行训练,以确定出目标外挂检测模型,其中,玩家行为序列是对历史记录的多个玩家的全量数据进行特征提取得到的,在得到目标外挂检测模型后,将新输入的目标玩家的玩家行为序列输入至目标外挂检测模型,通过在线检测模块12获取目标玩家为外挂玩家的概率,并根据目标玩家为外挂玩家的概率,确定目标玩家是否为外挂玩家。即在该实施例中,可以通过对全量数据进行特征提取,然后对特征提取后的玩家行为序列进行分析,从而确定玩家是否为外挂玩家,通过对玩家行为序列进行分析可以更好地确定出玩家的行为特征,并利用训练好的模型来确定玩家的类型,并通过对模型不断的迭代优化,可以利用模型更快速分析出玩家是否为外挂玩家,减少大量人工的参与,同时在建模过程中,调整了玩家的行为序列的时序,对行为序列的数据来说更有时序性,可以较为准确的提高外挂检测的准确度,也提高了外挂检测的效率,从而解决相关技术中检测游戏外挂的效率较低且准确率低的技术问题。
可选的,外挂模型训练模块包括:预训练模块,用于根据历史记录的多个玩家的全量数据,分析出目标向量矩阵和目标权重矩阵,其中,全量数据用于指示记录的多个玩家在游戏中的操作数据;模型训练模块,与预训练模块连接,用于将目标向量矩阵和目标权重矩阵作为初始参数,根据新输入的目标玩家的玩家行为序列,输出目标玩家为外挂玩家的概率。
其中,上述的预训练模块是对服务器收集到游戏日志数据(即上述的全量数据)进行训练,以得到想要的向量矩阵和权重矩阵,对每个玩家都可以建立相应的向量矩阵和权重矩阵;而模型训练模块可以对预训练模块得到数据进行模型建立,以得到包含输入层、特征层、事件向量层、输出层的模型,利用该模型,可以对输入的玩家行为序列进行分析,确定出该玩家行为序列对应的玩家为外挂玩家的概率。其中,该向量矩阵可以目标事件的向量矩阵,而权重矩阵可以为循环神经网络RNN,这两个矩阵作为后续模型训练模块中的目标外挂检测模型的初始化参数,可以加速模型的训练过程。
进一步地,上述的预训练模块包括:第一预训练模型,用于将事件映射为一个固定长度的向量表示,采用相邻目标事件的时间间隔的改进初始子模型,并根据全量数据和第一公式,确定每一个目标事件的向量矩阵,其中,第一公式为: 其中,为目标事件的向量矩阵,w(ej,et)为预设事件ej相对于目标事件et时间间隔的权重,vj为预设事件ej的向量矩阵;第二预训练模型,与第一预训练模型连接,用于将每一个目标事件的向量矩阵作为初始参数,根据多个玩家的玩家行为序列,确定向量矩阵和目标权重矩阵,以重构玩家行为序列。可选的,上述第一预训练模型中的改进初始子模型中的初始子模型可以为下述的word2vec模型。在该第一预训练模型中,对于事件到目标事件的时间间隔,需要对相邻的事件的时间间隔进行确认,以为后续预测事件所对应的行为是否为外挂行为做准备。
可选的,上述的第一预训练模型在本公开中可以为Time-interval Event2vec,在目标事件的时间差(也可以理解为时间间隔)越小时,越容易预测目标事件,从而确定出玩家在进行目标事件时是否外挂操作。
其中,在上述第一公式之前,可以先定义某事件ei相对于目标事件et的权重为:
w(ei,et)=αl,其中,α可以取0.8,l表示当前玩家行为序列中的事件ei距离目标事件et的时间间隔,可选的,该时间间隔可以以秒为单位。
而对于第二预训练模型,在本公开中可以为Sequence Autoencoder,通过该第二预训练模型可以对大量无标签数据进行训练,以确定出玩家数据所指示的内容。其中,标签数据可以指示玩家为外挂玩家还是正常玩家的标签对应的数据。该第二预训练模型作为无监督学习模型,其输入序列和输出序列可以是同一个玩家的行为序列,即可以将一个玩家的玩家行为序列输入至该第二预训练模型,然后第二预训练模型在学习并整理后,可以输出整理后的玩家行为序列,从而通过该第二预训练模型重构输入序列。
需要说明的是,在本公开中第二预训练模型可以包括:编码器,用于提取玩家行为序列中每一个时间段的隐藏行为状态,以将隐藏行为状态作为玩家行为序列的向量矩阵,其中,隐藏行为状态用于表征所述玩家行为序列;解码器,与编码器连接,用于对向量矩阵进行解码,其中,编码器为一层双向循环神经网络RNN,解码器为一层单向RNN。
即可以提取编码器在同一个时间间隔上的隐藏行为状态,以作为玩家行为序列的向量表示。可选的,本公开中的RNN单元都是由LSTM单元构成。
可选的,本公开中的第二预训练模型中的嵌入层的初始参数可以是上述第一预训练模型中得到的事件向量矩阵,这一点已经在上述提及,在这里不做过多赘述。
对于本公开实施例来说,模型训练模块可以包括:分类模型,用于根据目标玩家的玩家行为序列,确定目标玩家为正常玩家和外挂玩家的概率分布,并将分类模型作为所述目标外挂检测模型;迁移学习模型,用于对多个任务进行迁移学习,以将多个任务中预设任务的向量矩阵迁移到目标任务中,其中,多个任务至少包括:主线任务、日常任务和场景任务。
即可以通过上述的分类模型确定玩家为外挂玩家的概率,从而为后续外挂的检测做准备,并且可以更新外挂检测模型。而且,本公开中还可以对不同的任务进行迁移学习,迁移预设任务到目标任务上,从而避免重新训练主线任务的第一预训练模型,节省时间成本。可选的,上述的分类模型在本公开中可以为SA-ABSLTM,将Sequence Autoencoder和基于注意力机制的双向LSTM(Attention-based Bidirectional LSTM) 相结合,作为监督学习模型来对正常玩家和外挂玩家进行分类,其中,Sequence Autoencoder中编码器的事件向量矩阵和LSTM权重矩阵将作为ABLSTM对应层的初始化参数。
可选的的,分类模型包括:第一概率子模块,用于根据玩家行为序列的第一特征和第二公式,确定目标玩家为正常玩家和外挂玩家的第一概率分布,其中,第一特征为:目标事件,第二公式为:其中,x为玩家随机变量,α为伽马分布中的形状参数,β为伽马分布中的尺度参数,伽马分布为对正常玩家和外挂玩家进行拟合的伽马分布;第二概率子模块,用于根据玩家行为序列的第二特征和第三公式,确定目标玩家为正常玩家和外挂玩家的第二概率分布,其中,第二特征为:时间差,第三公式为:Ii,h=f(ti;αi,h,βi,h),Ii,b=f(ti;αi,b,βi,b),其中,Ii,h为玩家行为序列中的第i个目标事件的时间差表现偏向正常玩家的概率(这里i指示上述的 Interval,即时间差,h指示human,即正常玩家),Ii,b为玩家行为序列中的第i个目标事件的时间差表现偏向外挂玩家的概率(这里i指示上述的Interval,即时间差, b指示bot,即外挂玩家);第三概率子模块,用于根据玩家行为序列的第三特征和第四公式,确定目标玩家为正常玩家和外挂玩家的第三概率分布,其中,第三特征为:目标事件的次数,第四公式为:Ci,h=f(ci;αc,h,βc,h),Ci,b=f(ci;αc,b,βc,b),其中, Ci,h为玩家行为序列中的第i个目标事件的次数表现偏向正常玩家的概率(这里c指示目标事件的次数,即上述的count,h即human,指示正常玩家,b即bot,指示外挂玩家),Ci,b为玩家行为序列中的第i个目标事件的次数表现偏向外挂玩家的概率;第四概率子模块,用于根据玩家行为序列的第四特征和第五公式,确定目标玩家为正常玩家和外挂玩家的第四概率分布,其中,第四特征为:目标等级,第五公式为:其中,为目标等级li出现外挂玩家的总数(这里的L指示目标等级,即上述的Level),为目标等级li出现正常玩家的总数,bot表示外挂玩家,human表示正常玩家。
其中,上述的第一概率子模块可以用到目标时间,由于事件的发生多符合泊松分部,可以对正常玩家和外挂玩家分别拟合伽马分布,从而确定第一概率分布。
可选的,上述的分类模型还包括:分类子模型,与第一概率子模块、第二概率子模块、第三概率子模块和第四概率子模块连接,用于根据第一概率分布、第二概率分布、第三概率分布和第四概率分布,确定目标特征向量;概率模型,与分类子模型连接,用于根据目标特征向量和预设参数,确定玩家行为序列的目标数据,并将目标数据接入神经元,以确定目标玩家为正常玩家的第一概率和外挂玩家的第二概率。
其中,这里可以引入一个偏置来表示对于某一事件,其外挂出现的概率:
结合以上统计量,可以获得一个扩展后的特征向量H′=[h′1,…,h′n]T。
hi′=hi Ii,hIi,b Ci,hCi,b Li Bi,然后,这里可以引入self-attention机制:
其中,ri表示在第i个时间段上经过self-attention的表达向量,通过 element-wise相乘ai和hi′得到,整个序列的表达R=[r1,…,rn]接到一个神经元,经过 sigmoid激活函数得到最终的分类概率,该分类概率即为上述的确定目标玩家为正常玩家的第一概率和外挂玩家的第二概率。
另外,对于上述的迁移学习模型,在本公开中可以为TL-ABSLTM,即可以对于不同任务,可以进行迁移学习,迁移给定任务的Sequence Autoencoder到目标任务上。而对于上述的预设任务和目标任务,不限定任务是什么,其都可以是上述的主线任务、日常任务和场景任务中的一种,预设任务和目标任务可以是不同的。
可选的,对于本公开实施例中的在线检测模块,其可以包括:分类检测模块,用于将目标玩家为正常玩家和外挂玩家的概率分布输出至运营端,以确定玩家是否为外挂玩家;聚类检测模块,与分类检测模块连接,用于对外挂玩家进行聚类分析,得到外挂玩家簇,以根据外挂玩家簇确定外挂玩家的目标类型,其中,目标类型为下述之一:正常外挂、新类型外挂和变异外挂。
即可以通过上述的分类检测模块确定出玩家是否为外挂玩家,并在确定玩家为外挂玩家时,可以通过聚类检测模块,确定该外挂玩家对应的外挂类型。其中,上述的分类检测模块可以采用上述的分类模型进行分类,在输入了玩家行为序列后,可以通过模型反馈玩家是外挂的概率给运营端,由运营端确定是否对该玩家封号。
而对于聚类检测模块,可以采用SA-DBSCAN来进行外挂检测,其中,该SA-DBSCAN可以结合第一预训练模型(即Sequence Autoencoder模型)和DBSCAN聚类算法,通过第一预训练模型提取玩家行为序列中的向量表示,然后对每个玩家行为序列的向量表示采用DBSCAN算法进行聚类,通过该DBSCAN可以得到具有高度行为相似性的玩家簇,从而确定玩家簇所对应的外挂的类型。本公开中可以利用正常玩家和外挂玩家的数量簇来区分,在游戏中,正常玩家基数很大,因此很容易定位到正常玩家簇,就是包含样本数最多的那个簇。而围绕在正常玩家簇周围的小簇,均为不同形式的外挂,从而根据玩家簇得到外挂类型。
可选的,本公开中外挂检测系统除了包括上述的外挂模型训练模块和在线检测模块之外,还可以包括其它数据模块,例如,对全量数据进行处理,得到玩家行为序列的各个模块,和在确定出玩家是否为外挂玩家后,根据确定出相应的内容,对模型进行优化调整的各个模块。
图2是根据本公开实施例的另一种游戏中的外挂检测系统的示意图,如图2所示,该外挂检测系统除了包括上述的外挂模型训练模块11和在线检测模块12之外,还可以包括:数据预处理模块21,用于对多个玩家的全量数据进行特征提取,得到玩家的多个行为特征,以确定玩家的原始行为序列;分段模块22,用于根据目标任务,对原始行为序列进行分段,其中,目标任务为下述之一:主线任务、日常任务和场景任务;提取模块23,用于根据玩家标签,对全量数据进行特征提取,以得到玩家行为序列,其中,玩家标签指示玩家为正常玩家或外挂玩家。
即可以通过对全量数据进行特征提取,从而可以得到玩家的多个行为特征,以确定出玩家的原始行为序列,并通过分段模块22根据目标任务对原始行为序列进行分段处理,从而在分段后,利用提取模块23得到玩家行为序列。
对于数据预处理模块21,由于从游戏服务端收集到的原始用户日志(对应了全量数据)一般都是非结构化或半结构化的文本数据,这样我们可以通过数据预处理模块 21来全量数据转换成结构化数据:一个玩家可以表示成一个玩家行为序列,玩家行为序列由玩家发生的事件按照时间戳排序。
其中,上述的分段模块可以包括:主线分段子模块,用于在目标任务为主线任务时,根据玩家等级对原始行为序列进行分段,以确定目标等级段的玩家行为序列;日常分段子模块,用于在目标任务为日常任务时,根据日期间隔对原始行为序列进行分段,以得到分段后的玩家行为序列;场景分段子模块,用于在目标任务为场景任务时,根据玩家进入场景的第一时间点和离开场景的第二时间点对原始行为序列进行分段,以得到分段后的玩家行为序列。
即上述的分段模块中,可以根据不同的任务进行分段处理,每种任务对应的目标不同,因此采用的分段方式也不同,这样确定出的玩家行为序列也不相同。在本公开中可以针对三种不同类型的游戏任务分别进行了游戏行为序列的分段处理,在当前游戏检测过程中,外挂与外挂之间的行为存在一定的相似性,而正常玩家与外挂玩家之间存在着一定的差异,并且正常玩家的行为序列颇具多样性,通过对正常玩家和外挂玩家的分段和采样,可以将外挂玩家的行为序列和正常玩家的行为序列区分,从而为后续模型分析,确定出玩家为外挂玩家和正常玩家的概率做准备,即可以通过上述正常玩家和外挂玩家之间的相似性这一特性,准确地构建外挂和正常玩家的分类模型。
其中,本公开在构建玩家行为序列时,主要提取玩家的四个特征,包括:事件、时间差、事件次数、玩家等级,这里可以通过不同的形式进行标示,如,通过EventID 表示事件,该EventID表示玩家事件ID,描述了玩家当前的详细行为。通过Interval 标示时间差,该时间差指示当前事件距离上一事件的时间差,可以通过Count指示事件次数,该Count可以指示玩家事件在当前时间窗口(即时间差内)中连续发生的次数,然后可以通过Level表示玩家等级,即玩家当前等级。
可选的,每一个事件都会对应有上述的另三个特征,即事件对应有时间差、事件次数、玩家等级。
图3是根据本公开实施例的一种可选的玩家行为序列的多个特征的示意图,如图3所示,其表示在一个目标事件(对应了EventID)下各个特征出现的频度,其包括了主线任务(即Main quest)、日常任务(即图3中Daily quest)和场景任务(即图3 中的Instancedquest),每一种任务会对应有三个玩家行为序列的特征,即对应有时间差(Interval)、事件次数(即图3中的Count)、玩家等级(即图3中的Level),在图3中的左侧都是表示每一个特征所对应出现的相对频度(即图3中标示的 Relative Frequency)。另外,图3中的human表示正常玩家,bot表示外挂玩家。
对图3进行分析可知,正常玩家和外挂玩家的值有很大的区别,可以看到外挂的频度曲线往往偏右上,由于外挂都是自动程序,他仅仅需要很短的时间间隔来完成一个特定事件,所以外挂玩家的时间差往往小于正常玩家的时间差;同样,在图3中还可以看到外挂的频度(即事件次数)曲线往往偏左下,由于外挂没有正常玩家灵活,在完成一个任务时往往需要消耗更多的技能或物品,所有外挂的事件次数往往比正常玩家的事件次数大很多;另外,对于玩家等级(即Level),在图3中,可以发现外挂集中的等级峰值在不同任务中也不太一样,主线任务中,由于外挂常选择到达某等级后再进行转钱的操作,外挂集中在某些特定等级点。而对于日常任务和场景任务,外挂集中在玩家等级比较低的范围,由于随着等级升高,这些类型外挂变得越来越难完成任务。从以上分析中,可以看出特征事件、时间差、事件次数和玩家等级对于外挂检测均有着比较重要的影响。
另外,对于分段模块来说,根据不同的任务进行不同的分段操作,对于主线任务,由于主线剧情是随着玩家等级的升高而展开的,并且外挂往往在等级到达预设等级(如 30级)后将游戏金钱转出(即上述根据玩家等级进行分段),即可以根据玩家等级来对玩家游戏行为序列进行截断,只取等级在预设等级范围内(如1-30级)之间玩家游戏行为序列。而对于日常任务,由于日常任务是每天都重复进行的相同任务,这里可以对预设时间段(如取玩家一天(24h))的游戏行为序列,按日期进行分段(即上述的按照时间间隔进行分段)。另外,对于场景任务,在这里可以取玩家在进入场景之后、离开场景之前的游戏行为序列(即上述根据玩家进入场景的第一时间点和离开场景的第二时间点对原始行为序列进行分段,以得到分段后的玩家行为序列),这段序列包含了场景任务的大部分信息。
可选的,下面对提取模块进行说明。其中,该提取模块是说明对正常玩家和外挂玩家的数据进行采样。
上述的提取模块可以包括:第一采样子模块,用于在玩家标签指示玩家为正常玩家时,将玩家等级分为多个子等级段,并根据第六公式对玩家进行采样,其中,第六公式为:其中,n表示有n个子等级段,P={p1,p2,…,pn},lstart表示玩家开始等级,lend表示玩家结束等级,[lstart,lend]为玩家等级范围,pk表示第k个子等级段,表示向下取整,(·]表示左开右闭区间;第二采样子模块,用于在玩家标签指示玩家为外挂玩家时,对目标玩家的玩家行为序列的目标向量矩阵聚类,以确定多个玩家簇,并计算出每个玩家簇的密度分布,以根据每个玩家簇的密度分部确定采样频率,其中,采样频率用于指示对玩家簇的采样数量。
即可以对不同标签的玩家采取不同的采样方式,本公开中的玩家标签可以是预先提取的,根据玩家的行为数据,初步进行标识,以供后续参考。其中,本公开对于正常玩家,可以通过上述的公式进行采集,保证每个等级段的正常玩家样本都包含在训练集中。而对于标签指示为外挂玩家的,可以根据玩家的密度来采样,这样可以对行为相似的玩家,确定玩家簇,即玩家行为较为接近的玩家可以集中采集数据。这样在确定玩家簇后,可以根据分布的密度进行采样,对于数据分布密度较高的玩家簇,采样的频率适当降低,而对于数据分布密度较低的簇,采样的频率可以适当提高。
如图2所示,上述的外挂检测系统还可以包括模型迭代模块24,用于根据新输入的玩家行为序列和检测结果,对外挂模型训练模块的模型进行调整,以得到调整后的外挂检测模型,其中,检测结果为检测目标玩家是否为外挂玩家的结果。
其中,模型迭代模块包括:重新采样模块,用于在确定出目标玩家为正常玩家时,根据预设间隔时间,重新采样目标玩家的全量数据,以更新外挂模型训练模块中多个模型的正常玩家数据;聚类子模块,用于在确定出目标玩家为外挂玩家时,根据外挂玩家的目标类型和外挂玩家簇,更新外挂模型训练模块中多个模型的外挂玩家数据。
即可以通过上述的模型迭代模块来对模型进行调整和改进,以适应不断变化的游戏环境,更快速和准确的分析出玩家是否为外挂玩家。在调整时,可以根据最新分析的玩家行为序列和分析结果,来调整模型。对于正常玩家,可以通过重新采样模块进行调整,即可以对正常玩家的数据重新进行采样,这样就可以适应线上正常玩家的变化。
另外,对于外挂玩家的外挂数据,可以及时输入到模型中,从而可以调整模型数据,其中,对于上述分析得到的正常玩家簇周边的小簇都是外挂簇,这里可以将外挂群体分为:新类型外挂、变异外挂和正常外挂,这里的正常外挂可以指示已经出现过并且更新到模型中的外挂,即可以直接检测到。而对于变异外挂,可以指示相对于已经出现过的外挂的数据出现了改变,但是仍然可以检测出来,而对于新类型外挂,其可以指示没有记录,且没有出现过的新的外挂。对于上述的正常外挂,可以再次更新一下参数即可,而对于变异外挂和新类型外挂需要重点关注,需要重新记录外挂信息,并且对于新类型外挂还需要分配外挂表格块,以记录新类型外挂。即在模型更新的过程中,关注变异外挂和未知的新类型外挂,从而使得我们的模型可以应对外挂的实时变化。对上述聚类得到的每一个外挂簇,我们可以采用目标外挂检测模型(如 SA-ABLSTM)来进行监督学习,预测簇中玩家是外挂的概率。这样,对每个外挂簇都可以得到一个输出概率分布,方便我们区分这三种外挂群体:对于监督模型预测概率都很高的簇,可以判定其为已知类型外挂;对于那些群体监督模型预测概率存在0.5随机状态附近的簇,表明这批外挂已经开始发生一定的变异,监督学习方案的性能已经开始降低,可以判定其为变异外挂;对于监督模型预测概率很低的簇,监督学习方案已经不起作用,可以判定其为未知的新类型外挂。通过以上方法,我们可以提取到变异外挂和未知的新类型外挂,这对于更新模型以线上环境变化十分重要。
另一种可选的实施方式,聚类子模块包括:加载子模块,用于在外挂玩家的目标类型为新类型外挂或变异外挂时,将外挂玩家的玩家行为序列和特征数据加载至外挂模型训练模块中。
对于本公开实施例中,基于上述提取到的正常玩家、变异外挂和未知的新类型外挂可以进行短期自动迭代,即根据最新的内容更新模型训练模块。我们将原始训练集中的正常玩家全部替换成提取到的线上正常玩家数据,并将提取到的变异外挂和未知的新类型外挂数据增加到原始训练集中,以增加模型检测不同形式外挂的能力。短期自动迭代是针对SA-ABLSTM,我们基于重构的训练集,以较短的周期更新ABLSTM部分。
上述实施例中,可以通过监督学习和无监督学习相结合的方法,能够更准确的检测外挂并且发现新型外挂以及外挂变异,在本公开提出了预训练模块和模型训练模块,对外挂的检测会有更高的效率和准确度。同时我们提出的模型自动迭代机制,帮助我们的线上模型保持长期稳定的线上外挂检测效果。本公开实施例相比于相关技术中的外挂检测系统,可以减少大量人工的参与,释放人力,同时在建模的过程中,考虑到了用户行为序列的时序性,模型能够更好地捕捉到用户行为的时序信息,因此通过该框架进行外挂检测会有更高的准确率,更适合解决游戏中的外挂问题。
下面通过一种具体地实施例对本公开进行说明。
实施例二
图4是根据本公开实施例的一种基于玩家行为序列的外挂检测框架的示意图,其中,该外挂检测框架可以指示为NGUARD,其具体可以包括四个模块,分别为数据预处理模块41(对应上述的数据预处理模块、分段模块、采样模块)、离线训练模块42(对应上述的模型训练模块11)、在线推理模块43(对应于上述的在线训练模块12)、模型自动迭代模块44(对应于上述的模型迭代模块),下面对每一种模块进行分析说明。
其中,数据预处理模块41,其可以根据游戏服务器端采集到的游戏日志,对该游戏日志进行特征提取,从而得到原始的玩家行为序列。并在得到原始的玩家行为序列后,通过分段和采样方式,得到预处理后的玩家游戏行为序列。
可选的,本公开实施例中,对三种不同的任务进行了说明,每一种任务都会对应有一种玩家行为序列,即每一个行为序列中的事件会对应多个特征,包括:
EventID:玩家事件ID,描述了玩家当前的详细行为。
Interval:当前事件距离上一事件的时间差。
Count:玩家事件在当前时间窗口中连续发生的次数。
Level:玩家当前等级。
可选的,在得到原始的玩家行为序列后,可以对我们对玩家的原始行为序列进行分段和采样,以提取有效信息,构建高质量的训练集。
其中,分段是对三种不同类型的游戏任务,分别采用了三种不同的分段方法。
可选的,对于主线任务,由于主线剧情是随着玩家等级的升高而展开的,并且外挂往往在等级到达30级后将游戏金钱转出,这里可以根据玩家等级来对玩家游戏行为序列进行截断,取等级在1-30级之间玩家游戏行为序列。对于日常任务,由于日常任务是每天都重复进行的相同任务,这里可以取玩家一天(24h)的游戏行为序列,按日期进行分段。对于场景任务,这里可以取玩家在进入场景之后、离开场景之前的游戏行为序列。
另外,对于采样方式,为了获得高质量的训练集并且减少计算成本,我们需要对原始的全量数据集进行采样。对于外挂和正常玩家,我们分别采取了不同的采样方法。
对于正常玩家,先将玩家等级分成n个子等级段:P={p1,p2,…,pn},假设玩家等级范围为[lstart,lend],pk表示第k个子等级段:
对于外挂玩家,本公开实施例中可以对原始数据集进行聚类以区分其密度分布来进行采样。首先,对原始数据集用后续章节提到算法SA-DBSCAN(Sequence Autoencoder 和DBSCAN)进行聚类,对于行为相似的玩家,可以得到对应的玩家簇(针对不同的游戏任务(主线、日常、场景等)需要分别进行聚类,这里聚类研究的对象都是外挂玩家,也就是说我们对外挂玩家也会做一定的区分,目的是从外挂样本中进行合理的采样,这里得到的聚类簇还是指游戏玩家群体,同一个簇中玩家的游戏行为比较相近(外挂本身也有差异,我们得到几种不同行为类型的外挂簇))。其次,可以根据数据分布的不均衡控制采样的频率。对于数据分布密度较高的簇,采样的频率适当降低;对于数据分布密度较低的簇,采样的频率适当提高。
对于上述的离线训练模块42,可以分为三个部分:预训练部分(对应于上述的预训练模块)、主模型部分(对应于上述的目标外挂检测模型)和迁移学习部分。
在预训练部分中,可以基于全量数据集先训练Time-interval Event2vec模型得到EventID的事件向量矩阵,将其作为Sequence Autoencoder模型嵌入层的初始参数。具体过程如下:训练Time-interval Event2vec以得到EventID的预训练事件向量矩阵,将其作为Sequence Autoencoder中嵌入层的初始参数,再训练Sequence Autoencoder,得到预训练的事件向量矩阵和预训练的RNN权重矩阵,这两个矩阵可以作为后续主模型的初始化参数。这样不仅可以加速Sequence Autoencoder的训练过程也可以提升SequenceAutoencoder的性能。
在主模型部分中,训练集是在预处理模块中采样得到的数据集,这里提出了一种SA-ABLSTM模型,将Sequence Autoencoder和ABLSTM相结合。其中,ABLSTM作为二分类器,其事件向量层和rnn单元的初始化参数都是由预训练的Sequence Autoencoder提供的,这样同样可以使ABLSTM更快收敛并且性能更优。
而在迁移学习部分,针对三种不同类型的游戏任务(即上述的主线任务、日常任务和场景任务),可以对预训练好的Sequence Autoencoder模型进行迁移。例如,我们需要训练主线任务的分类器ABLSTM,可以将日常任务预训练Sequence Autoencoder 得到的预训练的事件向量矩阵和预训练的RNN权重矩阵作为主线任务的分类器ABLSTM 的初始化参数。
下面,可以详细说明本公开中的四个模型,包括:Time-interval Event2vec(对应上述的第一预训练模型)、Sequence Autoencoder(对应于上述的第二预训练模型) 和SA-ABSLTM(对应于上述的分类模型,即本公开中的主模型,检测玩家为外挂玩家和正常玩家的概率)、TL-ABLSTM(对应于上述的迁移学习模型)。
(1)Time-interval Event2vec
Time-interval Event2vec模型目标是将事件映射为一个固定长度的向量表示,同样采用一个考虑到事件之间时间间隔的改进word2vec模型。某一事件到目标事件的时间间隔越小,它对于预测目标事件就更有利,因此,与其对每一个事件都赋予相同的权重,不如赋予距离目标事件时间上更近的事件更大的权重,这样有利于抓取到相对更重要信息。
可选的,这里可以定义某事件ei相对于目标事件et的权重为:w(ei,et)=αl,
其中,α可以取为0.8,l是当前序列中的事件ei距离目标事件et的时间间隔(可以以秒为单位)。
其中,w(ej,et)为某事件ej相对于目标事件et的权重,vj为某事件ej的向量表示。
在该外挂检测框架中,通过Time-interval Event2vec模型得到每一个事件对应的事件标识(EventID)的向量表示,并作为Sequence Autoencoder中嵌入层的初始参数。
(2)Sequence Autoencoder
Sequence Autoencoder模型,作为一个无监督学习过程,模型结构和半监督序列学习结构相同,其中输入序列和输出序列是同一个玩家的行为序列,通过该模型可以重构输入序列本身。
可选的,本公开实施例中该模型可以提取编码器在每一个时间步长上的隐藏状态,作为玩家行为序列的向量表示。其中,编码器为一层双向RNN,解码器为一层的单向RNN。所有RNN单元包括多个LSTM单元,在Sequence Autoencoder模型中,嵌入层的初始参数是Time-interval Event2vec训练得到的事件向量矩阵。
另外,本公开实施例中还可以将预训练好的Sequence Autoencoder的部分参数作为后续分类器ABLSTM的初始参数,即将Sequence Autoencoder的解码器部分去掉,保留训练好的事件向量矩阵和LSTM权重矩阵,作为ABLSTM部分层的初始值。
(3)SA-ABSLTM
SA-ABLSTM模型,将Sequence Autoencoder和基于注意力机制的双向LSTM(Attention-based Bidirectional LSTM)相结合,作为监督学习模型来对正常玩家和外挂玩家进行分类,其中,Sequence Autoencoder中编码器的事件向量矩阵和LSTM 权重矩阵将作为ABLSTM对应层的初始化参数。
图5是根据本公开实施例的一种可选的SA-ABLSTM模型的示意图,如图5所示,该模型包括了:输入层(输入事件ID、等级、事件计数、时间间隔)、统计层(包括确定伽马分布、设置比例和输入的偏置参数)、特征拼接层、额外特征层、事件向量层、双向LSTM层、注意力层、输出层,在该模型中可以使用上述Time-interval Event2vec 和Sequence Autoencoder模型得到的RNN权重矩阵和事件向量矩阵,其中,在图5 中可以看出Time-intervalEvent2vec包括输入层(输入游戏日志或者全量数据)、隐含层和输出层(输出预训练的事件向量矩阵),在将预训练的事件向量矩阵输入至图5 中左上角的Sequence Autoencoder模型后,通过序列自编码器(正向和方向)提取序列在时间间隔上的隐藏状态,得到预训练的事件向量矩阵和预训练的RNN权重矩阵。
可选的,上述的输入层输入的事件ID即上述的目标事件对应的ID,而等级为玩家的当前等级(level),事件计数为目标事件的次数(count),时间间隔对应了时间差(interval)。
在本公开实施例中,每一个玩家事件都被赋予了一个EventID,每一组玩家行为序列可以表示为{E1,…,En},以将该玩家行为序列作为模型中输入层的输入参数,经过一个嵌入层映射为{e1,…,en},再经过双向LSTM层,能够更好地表达全局信息,输出其隐层状态向量H={h1,…,hn}。
另外,在图5中,还会用到之前提到的三个特征:Interval,Count和Level。和EventID不同的是,Interval特征不包含明显的时序信息。因此,我们基于先验知识对其进行分析:
由于事件的发生多符合泊松分布,我们对正常玩家和外挂玩家分别拟合一个伽马分布(对应图5中的Gamma分布),即Intervalh~Γ(αh,βh),Intervalb~Γ(αb,βb),其概率密度函数为:
对于序列中的第i个事件的Interval特征ti,我们可以计算两个如下概率,以有效地区分正常和外挂玩家:
Ii,h=f(ti;αi,h,βi,h),Ii,b=f(ti;αi,b,βi,b),其中,Ii,h为序列中的第i个事件的Interval特征表现偏向正常玩家的概率,Ii,b为序列中的第i个事件的Interval特征表现偏向外挂玩家的概率。
同样,针对特征Count,我们也可以得到如下两个概率:
Ci,h=f(ci;αc,h,βc,h),Ci,b=f(ci;αc,b,βc,b),其中,Ci,h为序列中的第i个事件的Count特征表现偏向正常玩家的概率,Ci,b为序列中的第i个事件的Count特征表现偏向外挂玩家的概率。
对于特征Level,给定事件ei和等级li,取如下条件概率,代表为外挂的可能性:
最后,我们引入一个偏置(即图5中输入的偏置)来表示对于某一事件,外挂出现的概率:
结合以上统计量,可以获得一个扩展后的特征向量H′=[h′1,…,h′n]T。
hi′=hi Ii,hIi,b Ci,hCi,b Li Bi,随后,我们引入self-attention机制:
其中,ri是在第i个时间步上经过 self-attention的表达向量,通过element-wise相乘ai和hi′得到。整个序列的表达 R=[r1,…,rn]接到一个神经元,经过sigmoid激活函数得到最终的分类概率。在图5 中,可以得到最上面的一个分类概率结果。
上述的SA-ABSLTM模型,作为本公开中的主模型,通过该模型可以根据输入的玩家行为序列,确定出该玩家行为序列对应的玩家为外挂玩家的概率,以为后续运营端分析做准备。在本公开中,该SA-ABSLTM模型综合上述两个预训练模型的参数得到,可以得到相应的结果。
(4)TL-ABSLTM
该模型可以作为迁移学习的模型,由于不同任务(主线任务、日常任务和场景任务)之间,迁移给定任务的Sequence Autoencoder到目标任务上。例如,在日常任务上预训练好的Sequence Autoencoder,我们可以利用其参数作为主线任务中训练 ABLSTM的初始参数。通过该模型,可以避免重新训练主线任务的Sequence Autoencoder,尽管效果没有训练出的SA-ABLSTM模型好,但是可以节省时间成本,效果优于未经任何预训练的ABLSTM。
另外,对于上述的在线推理模块43,可以包括两个方案:分类方案(对应于上述的分类模块)和聚类方案(对应于上述的聚类模块),以通过这两个方案进行外挂的检测,并将检测结果发送给游戏运营团队。
在分类方案中,可以采用离线训练模块中训练好的SA-ABLSTM和TL-ABLSTM来检测外挂,通过SA-ABLSTM模型,确定出玩家为外挂玩家的概率,并将该概率发送给运营端,由运营决定是否封号。
在聚类方案中,可以采用一种新的SA-DBSCAN方法来检测外挂。其中,该SA-DBSCAN结合了上述Sequence Autoencoder模型和DBSCAN聚类算法。首先,可以通过离线训练模块43中训练好的Sequence Autoencoder模型来提取玩家游戏行为序列的向量表示;其次,对每个玩家游戏行为序列的向量表示采用DBSCAN算法进行聚类;DBSCAN 算法是MartinEster提出的一种基于密度的聚类算法,这里可以通过DBSCAN得到具有高度行为相似性的玩家的簇。由于正常玩家基数很大,因此很容易定位到正常玩家簇,就是包含样本数最多的那个簇。而围绕在正常玩家簇周围的小簇,均为不同形式的外挂。因此,我们可以采用SA-DBSCAN方法来检测外挂。
最后,对于模型自动迭代模块44,由于游戏环境或者游戏类型不断变化,外挂的类型也会有相应的变化,大多数现有的数据挖掘框架往往只强调一个顺序过程:加载数据,预处理,拟合模型,做出预测。这种方式无法跟上游戏环境的变化,检测的效果和效率必然降低,而本公开外挂检测框架中,可以随着线上服务递增、外挂更新换代,自动进行模型的迭代、调整和改进。
当然,本公开中对于模型自动迭代模块44,可以根据不同的玩家采用不同的迭代方式:
对于正常玩家,可以进行训练集重采样,本公开实施例中,可以定时从线上拉取玩家数据,对其重新进行采样。正常玩家训练集的重采样能够让模型更快适应线上正常玩家行为的变化。
而对于新类型外挂玩家,对该玩家数据采用SA-DBSCAN方法进行聚类,可以定位到正常玩家簇周边的小簇,都属于外挂簇。我们将外挂群体分三大类:已知类型外挂 (即上述的正常外挂,也可以理解为监督学习学到的外挂类型),变异外挂(已知类型外挂的部分行为已经发生改变),未知的新类型外挂。在模型更新的过程中,需要重视变异外挂和未知的新类型外挂,从而使得我们的模型可以应对外挂的实时变化。对 SA-DNSCAN聚类得到的每一个外挂簇,可以采用上述的SA-ABLSTM主模型中的监督学习方法,预测簇中的玩家是外挂玩家的概率。这样,对每个外挂簇都可以得到一个输出概率分布,方便我们区分这三种外挂群体:对于监督模型预测概率都很高的簇,可以判定其为已知类型外挂;对于那些群体监督模型预测概率存在0.5随机状态附近的簇,表明这批外挂已经开始发生一定的变异,监督学习方案的性能已经开始降低,可以判定其为变异外挂;对于监督模型预测概率很低的簇,监督学习方案已经不起作用,可以判定其为未知的新类型外挂。通过以上方法,我们可以提取到变异外挂和未知的新类型外挂,这对于更新模型以线上环境变化十分重要。
在本公开对于迭代的过程可以分为短期自动迭代和长期自动迭代,其中,短期自动迭代,基于上述两步提取到的正常玩家、变异外挂和未知的新类型外挂,可以重新构建离线训练数据集,这里可以将原始训练集中的正常玩家全部替换成提取到的线上正常玩家数据,并将提取到的变异外挂和未知的新类型外挂数据增加到原始训练集中,以增加模型检测不同形式外挂的能力。短期自动迭代是针对SA-ABLSTM,我们基于重构的训练集,以较短的周期更新ABLSTM部分。
而对于长期自动迭代,Time-interval word2vec和Sequence Autoencoder以长周期进行更新以节省时间成本。最后,保存新训练好的模型的参数并传送到在线模型上。
通过上述模型自动迭代模块,可以自动更新模型参数,并且可以随着游戏环境的变化自动更新模型,以为后续的外挂检测进行更好地服务。
上述的外挂检测框架,在数据预处理模块中,可以分析玩家游戏日志各特征的统计描述,并据此提取主要特征,确认我们检测模型所需要的输入。我们对原始玩家游戏行为序列中的重要部分进行分段,同时对标记样本进行采样以得到高质量的数据集;而离线训练模块主要负责线下模型的训练工作;在线推理模块主要提供线上实时外挂检测服务;在模型自动迭代模块中,可以定时收集线上监督模型与无监督模型的结果反馈,对监督模型进行增量学习。通过监督学习和无监督学习相结合的方法,能够更准确的检测外挂并且发现新型外挂以及外挂变异,同时我们提出的模型自动迭代模块,帮助我们的线上模型保持长期稳定的线上外挂检测效果。
下面可以对本公开的实施效果进行描述。
图6是根据本公开实施例的一种可选的监督学习实施效果的示意图,如图6所示,比较了SA-ABLSTM、TL-ABLSTM、ABLSTM和其他三个模型(现有的):MLP、CNN和Bi-LSTM,以precision(指示准确度)、recall(召回率)和f1(为precision和recall计算出的一种评价指标)为评判标准,可以看到,ABLSTM比MLP、CNN和Bi-LSTM表现的都更优,TL-ABLSTM在ABLSTM的基础上也提升了很多,SA-ABLSTM性能最优。
其中,图6中体现了对于三种不同类型的任务,采用不同的模型和评判标准,得到的结果也不同,即对于主线任务(Main quest)、日常任务(Daily quest)和场景任务(Instanced quest),得到不同的检测结果。
图7是根据本公开实施例的一种可选的无监督学习实施效果的示意图一,如图7所示,图7中示出了对于主线任务(即Main quests)的外挂玩家和正常玩家的检测精度,其中,图7中的Bot为外挂玩家簇,Hunman为正常玩家簇,而对于图7中标示的检测精度,基本都超出了99%,说明检测精度较高。
图8是根据本公开实施例的另一种可选的无监督学习实施效果的示意图二,如图8所示,图8中示出了对于日常任务(即Daily quests)的外挂玩家和正常玩家的检测精度,其中,图8中的Bot为外挂玩家簇,Hunman为正常玩家簇。
图9是根据本公开实施例的另一种可选的无监督学习实施效果的示意图三,如图9所示,图9中示出了对于场景任务(即Instanced quests)的外挂玩家和正常玩家的检测精度,其中,图9中的Bot为外挂玩家簇,Hunman为正常玩家簇。
上述图7至图9中分别示出了三种不同任务的检测精度的示意图,对于不同的任务,主线任务(Main quest)、日常任务(Daily quest)和场景任务(Instanced quest),有不同的玩家簇,由于正常玩家和正常玩家之间会聚合在一起,其相似度会很高,而外挂玩家和外挂玩家聚合在一起,其相似度也会很高,这样就会使得同类型的玩家聚集在一起,形成了玩家簇,对于正常玩家周围的小簇,都可以确定为外挂玩家簇,从而为后续分析玩家是否外挂玩家提供了准备。
图10是根据本公开实施例的一种可选的无监督学习方案中检测变异外挂和新类型外挂的示意图,如图10所示,有6个小图,其中,每个小图中的横坐标表示为该外挂玩家的概率,纵坐标表示玩家频度,对于图10中(a)可以指示其为正常玩家,由于其监督模型预测概率很低,属于正常玩家,而(b)和(d)可以指示其为变异玩家,由于监督模型预测概率位于0.5随机状态附近,属于变异外挂;而对于(c),可以指示其为新类型外挂,由于预测该外挂的概率很低,属于新类型外挂;对于(e),可以指示其为已知类型的外挂,对于该类型的外挂预测概率很高,与模型已知的外挂匹配度很高,可以较高概率的预测到该种类型的外挂为正常外挂。
可选的,上述图10中cluster指示类型,bot指示外挂,而human指示正常玩家。
另外,本公开中的外挂检测框架使用了自动迭代模块,可以自动更新外挂检测模型,这样可以长期、稳定的检测到外挂,其性能只在短周期内有略微下滑,在长周期中基本保持不变。这样可以保持高效率、稳定的检测到游戏中的外挂。
图11是根据本公开实施例的一种可选的外挂检测框架使用自动迭代模块的效果示意图,如图11所示,对应于三种任务,主线任务(Main quest)、日常任务(Daily quest)和场景任务(Instanced quest),每种任务对应了上面的未使用自动迭代模块和下面的使用了自动迭代模块的实施效果,从图11中可以看出,上面三幅没有使用自动迭代模块的外挂检测中,其检测外挂的效果会随着时间的推进,检测精度有明显的下降,而下面三幅图中,使用了本公开中的自动迭代模块后,其检测精度随着时间的推进仍然保持了较高的检测精度。
实施例三
下面结合另一种实施例来说明本发明,该实施例中公开了对于游戏中的外挂检测方法,其具体实现方式对应于上述的游戏中的外挂检测系统,以实现对玩家是否为外挂玩家的检测。
图12是根据本公开实施例的一种游戏中的外挂检测方法的流程图,如图12,所示,该方法包括下述步骤S1201至步骤S1205,其中,
步骤S1201,获取新输入的目标玩家的玩家行为序列,其中,玩家行为序列用于指示后台系统记录的目标玩家在游戏中的行为序列,玩家行为序列的特征至少包括:玩家的目标事件、目标事件的次数、玩家等级、时间差。
步骤S1203,将目标玩家的玩家行为序列输入至目标外挂检测模型,其中,目标外挂检测模型输出目标玩家为外挂玩家的概率。
步骤S1205,根据目标外挂检测模型输出的目标玩家为外挂玩家的概率,确定目标玩家是否外挂玩家。
在本公开实施例中,在获取到新输入的目标玩家的玩家行为序列后,可以将新输入的目标玩家的玩家行为序列输入至目标外挂检测模型中,从而获取到目标玩家为外挂玩家的概率,并根据目标玩家为外挂玩家的概率,确定目标玩家是否为外挂玩家。在本公开中,可以预先对玩家行为序列进行训练,得到目标外挂检测模型,该外挂检测模型可以包括输入端和输出端,利用输出端,可以输出该目标玩家为外挂玩家的概率,其中,在训练时,可以通过对全量数据进行特征提取,然后对特征提取后的玩家行为序列进行预训练,具体实现方式可以如上述实施例一和实施例二中预训练模块说明的,这里不再一一赘述,在得到目标外挂检测模型后,可以确定玩家的类型,并通过对模型不断的迭代优化,更快速分析出玩家是否为外挂玩家,减少大量人工的参与,同时在建模过程中,整理了玩家的行为序列的时序,玩家的行为序列更有时序性,可以较为准确的提高外挂检测的准确度,也提高了外挂检测的效率,从而解决相关技术中检测游戏外挂的效率较低且准确率低的技术问题。
需要说明的是,对于前述的方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的游戏中的外挂检测方法方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
根据本公开实施例的另一方面,还提供了一种电子设备,包括:处理器;以及存储器,用于存储处理器的可执行指令;其中,处理器配置为经由执行可执行指令来执行上述游戏中的外挂检测方法。
根据本公开实施例的另一方面,还提供了一种存储介质,存储介质包括存储的程序,其中,在程序运行时控制存储介质所在设备执行上述游戏中的外挂检测方法。
可选的,上述的存储介质在运行程序时,可以执行如下程序:获取新输入的目标玩家的玩家行为序列,其中,玩家行为序列用于指示后台系统记录的目标玩家在游戏中的行为序列,玩家行为序列的特征至少包括:玩家的目标事件、目标事件的次数、玩家等级、时间差;将目标玩家的玩家行为序列输入至目标外挂检测模型,其中,目标外挂检测模型输出目标玩家为外挂玩家的概率;根据目标外挂检测模型输出的目标玩家为外挂玩家的概率,确定目标玩家是否外挂玩家。
上述本公开实施例序号仅仅为了描述,不代表实施例的优劣。
在本公开的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本公开所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本公开的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本公开原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本公开的保护范围。
Claims (15)
1.一种游戏中的外挂检测系统,其特征在于,包括:
外挂模型训练模块,用于对玩家行为序列进行训练,以确定出目标外挂检测模型,其中,所述目标外挂检测模型输出待检测的目标玩家为外挂玩家的概率;
在线检测模块,与所述外挂模型训练模块连接,用于根据所述目标外挂检测模型和新输入的目标玩家的玩家行为序列,获取所述目标玩家为外挂玩家的概率,并根据所述目标玩家为外挂玩家的概率,确定所述目标玩家是否为外挂玩家,
所述外挂检测系统还包括:数据预处理模块,用于对多个玩家的全量数据进行特征提取,得到玩家的多个行为特征,以确定玩家的原始行为序列;分段模块,用于根据目标任务,对所述原始行为序列进行分段,其中,所述目标任务为下述之一:主线任务、日常任务和场景任务;提取模块,用于根据玩家标签,对所述全量数据进行特征提取,以得到所述玩家行为序列,其中,所述玩家标签指示所述玩家为正常玩家或外挂玩家,
所述外挂模型训练模块包括:预训练模块,用于根据历史记录的多个玩家的全量数据,分析出目标向量矩阵和目标权重矩阵,其中,所述全量数据用于指示记录的多个玩家在游戏中的操作数据;模型训练模块,与所述预训练模块连接,用于将所述目标向量矩阵和所述目标权重矩阵作为初始参数,根据新输入的目标玩家的所述玩家行为序列,输出所述目标玩家为外挂玩家的概率,
所述模型训练模块包括:分类模型,用于根据所述目标玩家的玩家行为序列,确定所述目标玩家为正常玩家和外挂玩家的概率分布,并将所述分类模型作为所述目标外挂检测模型;迁移学习模型,用于对多个任务进行迁移学习,以将所述多个任务中预设任务的向量矩阵迁移到目标任务中,其中,所述多个任务至少包括:主线任务、日常任务和场景任务。
2.根据权利要求1所述的外挂检测系统,其特征在于,所述玩家行为序列的特征至少包括:玩家的目标事件、所述目标事件的次数、玩家等级、时间差,其中,所述时间差用于指示目标事件距离上一事件的时间间隔。
4.根据权利要求3所述的外挂检测系统,其特征在于,所述第二预训练模型包括:
编码器,用于提取所述玩家行为序列中每一个时间段的隐藏行为状态,以将所述隐藏行为状态作为玩家行为序列的向量矩阵,其中,所述隐藏行为状态用于表征所述玩家行为序列;
解码器,与所述编码器连接,用于对所述向量矩阵进行解码,
其中,所述编码器为一层双向循环神经网络RNN,所述解码器为一层单向RNN。
5.根据权利要求1所述的外挂检测系统,其特征在于,所述分类模型包括:
第一概率子模块,用于根据所述玩家行为序列的第一特征和第二公式,确定所述目标玩家为正常玩家和外挂玩家的第一概率分布,其中,所述第一特征为:目标事件,所述第二公式为:
其中,x为玩家随机变量,α为伽马分布中的形状参数,β为伽马分布中的尺度参数,所述伽马分布为对正常玩家和外挂玩家进行拟合的伽马分布;
第二概率子模块,用于根据所述玩家行为序列的第二特征和第三公式,确定所述目标玩家为正常玩家和外挂玩家的第二概率分布,其中,所述第二特征为:时间差,所述第三公式为:
Ii,h=f(ti;αi,h,βi,h),Ii,b=f(ti;αi,b,βi,b),
其中,Ii,h为玩家行为序列中的第i个目标事件的时间差表现偏向正常玩家的概率,Ii,b为玩家行为序列中的第i个目标事件的时间差表现偏向外挂玩家的概率;
第三概率子模块,用于根据所述玩家行为序列的第三特征和第四公式,确定所述目标玩家为正常玩家和外挂玩家的第三概率分布,其中,所述第三特征为:目标事件的次数,所述第四公式为:
Ci,h=f(ci;αc,h,βc,h),Ci,b=f(ci;αc,b,βc,b),
其中,Ci,h为玩家行为序列中的第i个目标事件的次数表现偏向正常玩家的概率,Ci,b为玩家行为序列中的第i个目标事件的次数表现偏向外挂玩家的概率;
第四概率子模块,用于根据所述玩家行为序列的第四特征和第五公式,确定所述目标玩家为正常玩家和外挂玩家的第四概率分布,其中,所述第四特征为:目标等级,所述第五公式为:
6.根据权利要求5所述的外挂检测系统,其特征在于,所述分类模型还包括:
分类子模型,与所述第一概率子模块、第二概率子模块、第三概率子模块和所述第四概率子模块连接,用于根据所述第一概率分布、第二概率分布、第三概率分布和所述第四概率分布,确定目标特征向量;
概率模型,与所述分类子模型连接,用于根据所述目标特征向量和预设参数,确定玩家行为序列的目标数据,并将所述目标数据接入神经元,以确定所述目标玩家为正常玩家的第一概率和外挂玩家的第二概率。
7.根据权利要求1所述的外挂检测系统,其特征在于,所述在线检测模块包括:
分类检测模块,用于将所述目标玩家为正常玩家和外挂玩家的概率分布输出至运营端,以确定所述玩家是否为外挂玩家;
聚类检测模块,与所述分类检测模块连接,用于对外挂玩家进行聚类分析,得到外挂玩家簇,以根据所述外挂玩家簇确定所述外挂玩家的目标类型,其中,所述目标类型为下述之一:正常外挂、新类型外挂和变异外挂。
8.根据权利要求1所述的外挂检测系统,其特征在于,所述分段模块包括:
主线分段子模块,用于在所述目标任务为主线任务时,根据玩家等级对所述原始行为序列进行分段,以确定目标等级段的玩家行为序列;
日常分段子模块,用于在所述目标任务为日常任务时,根据日期间隔对所述原始行为序列进行分段,以得到分段后的玩家行为序列;
场景分段子模块,用于在所述目标任务为场景任务时,根据玩家进入场景的第一时间点和离开场景的第二时间点对所述原始行为序列进行分段,以得到分段后的玩家行为序列。
9.根据权利要求1所述的外挂检测系统,其特征在于,所述提取模块包括:
第一采样子模块,用于在所述玩家标签指示玩家为正常玩家时,将玩家等级分为多个子等级段,并根据第六公式对玩家进行采样,其中,所述第六公式为:
其中,n表示有n个子等级段,P={p1,p2,…,pn},lstart表示玩家开始等级,lend表示玩家结束等级,[lstart,lend]为玩家等级范围,pk表示第k个子等级段,表示向下取整,(·]表示左开右闭区间;
第二采样模块,用于在所述玩家标签指示玩家为外挂玩家时,对所述目标玩家的玩家行为序列的目标向量矩阵聚类,以确定多个玩家簇,并计算出每个所述玩家簇的密度分布,以根据每个所述玩家簇的密度分部确定采样频率,其中,所述采样频率用于指示对玩家簇的采样数量。
10.根据权利要求1所述的外挂检测系统,其特征在于,所述外挂检测系统还包括:
模型迭代模块,用于根据新输入的玩家行为序列和检测结果,对所述外挂模型训练模块的模型进行调整,以得到调整后的外挂检测模型,其中,所述检测结果为检测目标玩家是否为外挂玩家的结果。
11.根据权利要求10所述的外挂检测系统,其特征在于,所述模型迭代模块包括:
重新采样模块,用于在确定出所述目标玩家为正常玩家时,根据预设间隔时间,重新采样所述目标玩家的全量数据,以更新所述外挂模型训练模块中多个模型的正常玩家数据;
聚类子模块,用于在确定出所述目标玩家为外挂玩家时,根据外挂玩家的目标类型和外挂玩家簇,更新所述外挂模型训练模块中多个模型的外挂玩家数据。
12.根据权利要求11所述的外挂检测系统,其特征在于,所述聚类子模块包括:
加载子模块,用于在所述外挂玩家的目标类型为新类型外挂或变异外挂时,将所述外挂玩家的玩家行为序列和特征数据加载至所述外挂模型训练模块中。
13.一种游戏中的外挂检测方法,其特征在于,包括:
获取新输入的目标玩家的玩家行为序列,其中,所述玩家行为序列用于指示后台系统记录的所述目标玩家在游戏中的行为序列,所述玩家行为序列的特征至少包括:玩家的目标事件、所述目标事件的次数、玩家等级、时间差;
将所述目标玩家的所述玩家行为序列输入至目标外挂检测模型,其中,所述目标外挂检测模型输出所述目标玩家为外挂玩家的概率;
根据所述目标外挂检测模型输出的所述目标玩家为外挂玩家的概率,确定所述目标玩家是否外挂玩家,
所述外挂检测方法还包括:对多个玩家的全量数据进行特征提取,得到玩家的多个行为特征,以确定玩家的原始行为序列;根据目标任务,对所述原始行为序列进行分段,其中,所述目标任务为下述之一:主线任务、日常任务和场景任务;根据玩家标签,对所述全量数据进行特征提取,以得到所述玩家行为序列,其中,所述玩家标签指示所述玩家为正常玩家或外挂玩家,
所述外挂检测方法还包括:根据历史记录的多个玩家的全量数据,分析出目标向量矩阵和目标权重矩阵,其中,所述全量数据用于指示记录的多个玩家在游戏中的操作数据;将所述目标向量矩阵和所述目标权重矩阵作为初始参数,根据新输入的目标玩家的所述玩家行为序列,输出所述目标玩家为外挂玩家的概率,
所述外挂检测方法还包括:分类模型,用于根据所述目标玩家的玩家行为序列,确定所述目标玩家为正常玩家和外挂玩家的概率分布,并将所述分类模型作为所述目标外挂检测模型;对多个任务进行迁移学习,以将所述多个任务中预设任务的向量矩阵迁移到目标任务中,其中,所述多个任务至少包括:主线任务、日常任务和场景任务。
14.一种电子设备,其特征在于,包括:
处理器;以及
存储器,用于存储所述处理器的可执行指令;
其中,所述处理器配置为经由执行所述可执行指令来执行权利要求13中所述的游戏中的外挂检测方法。
15.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求13中所述的游戏中的外挂检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810592491.1A CN108905209B (zh) | 2018-06-11 | 2018-06-11 | 游戏中的外挂检测方法及系统、电子设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810592491.1A CN108905209B (zh) | 2018-06-11 | 2018-06-11 | 游戏中的外挂检测方法及系统、电子设备和存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108905209A CN108905209A (zh) | 2018-11-30 |
CN108905209B true CN108905209B (zh) | 2022-03-22 |
Family
ID=64418035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810592491.1A Active CN108905209B (zh) | 2018-06-11 | 2018-06-11 | 游戏中的外挂检测方法及系统、电子设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108905209B (zh) |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109858549B (zh) * | 2019-01-30 | 2021-05-18 | 腾讯科技(深圳)有限公司 | 应用对象识别及其识别模型的训练方法、装置和介质 |
CN110102051B (zh) * | 2019-05-06 | 2022-12-06 | 网易(杭州)网络有限公司 | 游戏外挂的检测方法及装置 |
CN110665233B (zh) * | 2019-08-29 | 2021-07-16 | 腾讯科技(深圳)有限公司 | 游戏行为识别方法、装置、设备及介质 |
CN111298447B (zh) * | 2020-02-25 | 2023-03-31 | 网易(杭州)网络有限公司 | 游戏中外挂检测的方法、装置、服务器及存储介质 |
CN111389012B (zh) * | 2020-02-26 | 2021-01-15 | 完美世界征奇(上海)多媒体科技有限公司 | 一种用于反外挂的方法、装置和系统 |
CN111417021B (zh) * | 2020-03-16 | 2022-07-08 | 广州虎牙科技有限公司 | 外挂识别方法、装置、计算机设备和可读存储介质 |
CN111569433B (zh) * | 2020-05-11 | 2023-09-12 | 上海米哈游天命科技有限公司 | 游戏作弊检测方法、装置、设备和存储介质 |
CN113750538A (zh) * | 2020-06-02 | 2021-12-07 | 盛趣信息技术(上海)有限公司 | 一种基于大数据的手游安全平台构建方法及系统 |
CN111744204B (zh) * | 2020-06-18 | 2024-02-02 | 网易(杭州)网络有限公司 | 游戏外挂检测方法及装置、计算机存储介质、电子设备 |
CN111803956B (zh) * | 2020-07-22 | 2024-02-09 | 网易(杭州)网络有限公司 | 游戏外挂行为的确定方法、装置、电子设备及存储介质 |
CN112138403B (zh) * | 2020-10-19 | 2021-08-06 | 腾讯科技(深圳)有限公司 | 交互行为的识别方法和装置、存储介质及电子设备 |
CN113289346B (zh) * | 2021-05-21 | 2024-07-16 | 网易(杭州)网络有限公司 | 任务模型训练方法、装置、电子设备及存储介质 |
CN113318455B (zh) * | 2021-05-24 | 2024-04-19 | 网易(杭州)网络有限公司 | 游戏数据的处理方法和装置 |
CN113244627B (zh) * | 2021-06-24 | 2021-11-19 | 腾讯科技(深圳)有限公司 | 识别外挂的方法、装置、电子设备以及存储介质 |
CN113521749B (zh) * | 2021-07-15 | 2024-02-13 | 珠海金山数字网络科技有限公司 | 异常账号检测模型训练方法和异常账号检测方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006004856A2 (en) * | 2004-06-28 | 2006-01-12 | Airplay Network, Inc. | Method and apparatus for distributed gaming over a mobile device |
CN107158707A (zh) * | 2017-04-27 | 2017-09-15 | 浙江大学 | 一种针对MMORPGs游戏的异常检测方法及装置 |
CN107944915A (zh) * | 2017-11-21 | 2018-04-20 | 北京深极智能科技有限公司 | 一种游戏用户行为分析方法及计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107866072B (zh) * | 2017-10-31 | 2020-06-16 | 浙江大学 | 一种采用增量决策树进行外挂检测的系统 |
-
2018
- 2018-06-11 CN CN201810592491.1A patent/CN108905209B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2006004856A2 (en) * | 2004-06-28 | 2006-01-12 | Airplay Network, Inc. | Method and apparatus for distributed gaming over a mobile device |
CN107158707A (zh) * | 2017-04-27 | 2017-09-15 | 浙江大学 | 一种针对MMORPGs游戏的异常检测方法及装置 |
CN107944915A (zh) * | 2017-11-21 | 2018-04-20 | 北京深极智能科技有限公司 | 一种游戏用户行为分析方法及计算机可读存储介质 |
Non-Patent Citations (1)
Title |
---|
V社:用深度学习检测CSGO中的开挂行为;论智;《https://zhuanlan.zhihu.com/p/37471948》;20180530;第3页第5-10段、第4页第2段 * |
Also Published As
Publication number | Publication date |
---|---|
CN108905209A (zh) | 2018-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108905209B (zh) | 游戏中的外挂检测方法及系统、电子设备和存储介质 | |
US11551479B2 (en) | Motion behavior pattern classification method, system and device | |
JP7399277B2 (ja) | 情報処理方法、装置、コンピュータプログラム及び電子装置 | |
US11712621B2 (en) | Video clip classification using feature vectors of a trained image classifier | |
CN110339569B (zh) | 控制游戏场景中虚拟角色的方法及装置 | |
CN109464807A (zh) | 检测游戏外挂的方法、装置和终端 | |
CN105229677A (zh) | 用于机器学习的资源分配 | |
CN108304853B (zh) | 游戏相关度的获取方法、装置、存储介质和电子装置 | |
CN112791414B (zh) | 外挂识别模型训练方法、装置、电子设备及存储介质 | |
CN111339675B (zh) | 基于机器学习构建模拟环境的智能营销策略的训练方法 | |
CN112107866A (zh) | 用户行为数据处理方法、装置、设备及存储介质 | |
CN112153426A (zh) | 一种内容账号管理方法、装置、计算机设备及存储介质 | |
CN111973996A (zh) | 一种游戏资源投放方法和装置 | |
CN105225135B (zh) | 潜力客户识别方法以及装置 | |
CN113343089B (zh) | 用户召回方法及装置、设备 | |
CN113069769B (zh) | 云游戏界面显示方法、装置、电子设备以及存储介质 | |
CN109815631A (zh) | 一种游戏数据的处理方法和装置 | |
CN109464808A (zh) | 检测游戏外挂的方法、装置和终端 | |
CN113918826A (zh) | 投放信息处理方法、资源预测模型训练方法及装置 | |
CN112245934B (zh) | 虚拟场景应用中虚拟资源的数据分析方法、装置及设备 | |
Calegari et al. | Human computation vs. machine learning: an experimental comparison for image classification | |
CN110347916A (zh) | 跨场景的项目推荐方法、装置、电子设备及存储介质 | |
CN112231220B (zh) | 一种游戏测试方法和装置 | |
KR102187916B1 (ko) | 게임 이벤트 가이드를 위한 방법 및 장치 | |
CN114491410A (zh) | 运动模式的识别方法、系统、智能穿戴设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |