CN114357849A - 用户行为异常检测方法、系统及终端设备 - Google Patents
用户行为异常检测方法、系统及终端设备 Download PDFInfo
- Publication number
- CN114357849A CN114357849A CN202011091429.8A CN202011091429A CN114357849A CN 114357849 A CN114357849 A CN 114357849A CN 202011091429 A CN202011091429 A CN 202011091429A CN 114357849 A CN114357849 A CN 114357849A
- Authority
- CN
- China
- Prior art keywords
- suffix
- probability
- act
- behavior
- subsequence
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Complex Calculations (AREA)
Abstract
本申请实施例公开了一种用户行为异常检测方法、系统及终端设备,支持有监督训练和无监督更新,既具有很高的序列异常预测准确性,又可以适应待测用户行为序列集中包含新增行为打点的子序列的异常预测场景。该方案有效解决了传统方法不能快速适应业务新增行为打点的需求,可以大大减少模型应用过程中人工重新标注的工作量,此外还有效降低了模型检测异常行为的误判率,可适用于未人工标注并且路径分支多的场景。
Description
【技术领域】
本申请涉及终端设备技术领域,尤其涉及一种用户行为异常检测方法、系统及终端设备。
【背景技术】
随着全球信息电子产业的快速发展,各式各样的智能手机、电商平台、应用软件层出不穷。如何准确评估用户在使用上述产品的真实感受,是提升产品质量和竞争力的关键之一。目前,通常采用的方案是在用户授权的前提下,采集用户在操作过程中的非隐私行为数据,并从大数据的维度分析用户操作行为序列中的异常问题。例如,用户在某电商平台浏览的很多,但购买行为相对很少,说明商品的价格或种类不能满足用户的需求。对于如何从用户行为大数据中挖掘出异常行为序列,业界已有的方案包括基于条件转移概率的隐马尔科夫模型、聚类模型、深度学习模型等。这些模型对样本的质量要求较高,并且很难适应当前版本迭代更新快速的业务场景。
如图1所示的是现有技术中一种常用的基于隐马尔科夫模型的异常检测方法,其构建基于隐马尔科夫模型的用户行为异常检测模型。该模型的状态集合对应于预先定义的用户行为模式类型,观测值集合即为用户原始的行为数据,采用正常的行为数据训练得到隐马尔科夫模型的概率参数,最终根据模型输出的预测概率值判断用户行为序列是否正常。但该技术方案的缺点是需要将用户原始的行为数据按照行为模式进行分类。而实际中,不同业务产品对应的用户行为模式不尽相同,很难进行统一描述,并且对新增的行为数据适应能力较差,需要对模型参数重新训练。
如图2所示的是现有技术中另一种常用的基于聚类的异常检测方法,其按照一定的距离度量规则,采用聚类方法将用户行为数据划分为若干类,将偏离各类群较远的离群点确定为用户异常行为。但该聚类方法仅依靠距离的远近判断行为序列之间的相似度,聚类结果具有较大的不可预知性。此外,当用户行为序列较长时,聚类方法无法发现序列中局部的异常问题,导致出现较高的漏检率。
如图3所示的是现有技术中另一种常用的基于特征抽取的异常检测方法,其原理为抽取用户行为序列中特征,并组成特征向量,即对用户行为序列进行量化,例如使用次数、使用时长等。然后构建深度学习或神经网络的分类模型,采用有监督的方式对模型进行训练,进而得到可区分正常行为序列和异常行为序列的分类模型。但该方案需要人工确定行为特征的抽取方法,工作量较大,而且存在对未知异常行为漏检的风险。此外,模型的训练需要大量的带标签样本,而对于异常检测场景,异常样本的数量通常远远小于正常样本数量,因此导致模型的训练更加困难。
【发明内容】
有鉴于此,本申请实施例提供了一种用户行为异常检测方法、系统及终端设备,用以解决现有技术中存在的对业务新增行为打点适应能力差以及行为异常检测准确性低的技术问题。
第一方面,本申请实施例提供了一种用户行为异常检测方法,该方法包括以下步骤:基于用户行为序列集建立概率分布模型;基于所述用户行为序列集训练所述概率分布模型,得到初始的概率分布模型;基于所述初始的概率分布模型对待测用户行为序列集Seqs进行异常检测,对于所述待测用户行为序列集Seqs中包含新增行为打点的子序列采用无监督的方式进行更新。
通过本实施例提供的方案,通过对概率分布模型的有监督训练,使得该概率分布模型能够对待测用户行为序列集进行异常检测与无监督更新,从而能够提高对待测用户行为序列集中包含新增行为打点的子序列的异常预测场景的适应能力,提高行为异常检测的准确性,尤其是对提高待测用户行为序列集中复杂、多分支的行为序列异常检测的准确性是有益的。
在一种优选的实施方案中,所述基于所述用户行为序列集,训练所述概率分布模型,得到初始的概率分布模型的步骤中,所述概率分布模型具有后缀概率树的结构,该步骤包括:采用所述用户行为序列集中的正常行为序列对所述概率分布模型进行训练,得到初始的后缀概率树;对于所述待测用户行为序列中包含新增行为打点的子序列的情况,采用无监督的方式对所述初始的后缀概率树进行在线更新,得到更新的后缀概率树;其中,所述待测用户行为序列集Seqs={seq1,seq2,…,seqn},所述包含新增行为打点的子序列seqi={…newActp,…,newActq,…},newActp表示新增行为打点。
通过本实施例提供的方案,采用后缀概率树的结构来表示概率分布模型,基于后缀概率树进行有监督训练和无监督更新,确保该概率分布模型对待测用户行为序列集的异常检测的基本准确性,以及对业务新增行为打点的动态适应性。
在一种优选的实施方案中,所述基于所述初始的概率分布模型对待测用户行为序列集Seqs进行异常检测,对于所述待测用户行为序列集Seqs中包含新增行为打点的子序列采用无监督的方式进行更新的步骤,包括:检测所述待测用户行为序列集中每个行为actp-1的后缀;若行为actp-1的后缀为newActp,则遍历所述后缀概率树中节点末位为actp-1的所有节点,在每个节点的后缀概率向量中添加newActp的无监督后缀概率向量P(newActp|[actp-k,…,actp-1]),最终获取更新的后缀概率树;若行为actp-1是新增行为打点newActp-1,则从所述后缀概率树的根节点依次添加末位为newActp-1的前缀节点及其无监督后缀概率向量[P(act’p|[actp-k,…,newActp-1]),P(act”p|[actp-k,…,newActp-1]),…],最终获取更新的后缀概率树。
通过本实施例提供的方案,将包含新增行为打点的待测用户行为序列集Seqs直接输入概率分布模型,该概率分布模型在线更新后缀概率树中节点的无监督后缀概率向量,并根据无监督后缀概率向量分布的特点,判断包含新增行为打点的子序列是否异常,从而避免重新标注样本和训练模型。
在一种优选的实施方案中,在获取更新的后缀概率树之后,包括以下步骤:在所述更新的后缀概率树中遍历每个用户行为actp的前缀节点集合{[actp-1],…,[actp-k,…,actp-1]},分别得到包含所述用户行为的后缀概率向量Vm=[…,P(actp|prefixm),…];其中,prefixm表示第m个后缀包含actp的前缀子序列;判断所述前缀子序列prefixm的后缀概率向量Vm的类型;若所述前缀子序列prefixm的后缀概率向量Vm为有监督概率向量,则判断P(actp|prefixm)与预设的第一阈值Pthresh的大小关系;若小于,则输出子序列异常的结果;若大于,则输出子序列正常的结果;若所述前缀子序列prefixm的后缀概率向量Vm为无监督概率向量,则判断P(actp|prefixm)与预设的第二阈值P’ thresh的大小关系;若小于,则分析所述后缀概率向量Vm的概率分布集中性;若大于,则输出子序列正常的结果。
通过本实施例提供的方案,通过遍历后缀概率树,匹配待测用户行为序列集Seqs上局部的子序列,并根据对应的后缀概率向量是有监督还是无监督的情况,采用不同的转移概率阈值判断该子序列是否异常,进而实现对整个待测用户行为序列集的异常检测,不受序列长度的限制,避免根据序列距离相似度检测异常而造成的对局部异常的漏检问题。
在一种优选的实施方案中,所述分析所述后缀概率向量Vm的概率分布集中性的步骤,包括:判断所述无监督概率向量Vm的标准差Std(Vm)与预设的集中性阈值Sthresh的大小关系;若所述标准差Std(Vm)大于所述集中性阈值Sthresh,则判断P(actp|prefixm)与所述第二阈值P’ thresh的大小关系;若小于,则输出子序列异常的结果;若大于,则输出子序列正常的结果;若所述标准差Std(Vm)小于所述集中性阈值Sthresh,则将所述待测用户行为序列集Seqs中包含actp的序列反向后构建无监督的反向后缀概率树,再遍历所述无监督的反向后缀概率树,搜索所述反向后缀概率树中末位为actp的节点,得到所述节点的后缀概率向量preVm;判断所述节点的后缀概率向量preVm的标准差Std(preVm)与集中性阈值Sthresh的大小关系;若所述节点的后缀概率向量preVm的标准差Std(preVm)大于集中性阈值Sthresh,则判断P(prefixm|actp)与所述第二阈值P’ thresh的大小关系;若小于,则输出子序列异常的结果;若大于,则输出子序列正常的结果;若所述节点的后缀概率向量preVm的标准差Std(preVm)小于集中性阈值Sthresh,则输出子序列正常的结果;其中,所述打点序列seqi={…newActp,…,newActq,…},newActp表示新增行为打点。
通过本实施例提供的方案,对于包含新增行为打点的子序列,特别是存在多分支的复杂子序列,采用概率集中性分析与反向后缀概率树相结合的判别方法,从后缀概率向量的分布和前缀概率向量的分布两个维度判断子序列中行为转移是否异常,减少仅根据转移概率的大小来判断而造成的大量误判问题。
在一种优选的实施方案中,所述第一阈值Pthresh与所述第二阈值P’ thresh的大小不同,且所述第二阈值P’ thresh不为零。
通过本实施例提供的方案,对于有监督情况,设置概率阈值Pthresh的目的是为了避免人工标注存在偏差的情况,例如人工标注actp-1到actp的子序列是正常的,但P(actp|actp-1)的值没有达到预期Pthresh,依然说明该路径存在问题。对于无监督情况,设置概率阈值P’thresh的目的是在人工未标注的前提下将低概率子序列判断为异常子序列。因此,Pthresh可以为0,但P’thresh不能为0。
在一种优选的实施方案中,所述后缀概率树包括多个节点,所述节点包括所述用户行为序列的局部前缀子序列和相对应的后缀概率向量,所述后缀概率向量包括初始的有监督后缀概率向量和无监督更新后缀概率向量。
第二方面,本申请实施例提供了一种用户行为异常检测系统,其特征在于,该系统包括:创建模块,用于基于用户行为序列集建立概率分布模型;训练模块,用于基于所述用户行为序列集训练所述概率分布模型,得到初始的概率分布模型;检测模块,用于基于所述初始的概率分布模型对待测用户行为序列集Seqs进行异常检测,对于所述待测用户行为序列集Seqs中包含新增行为打点的子序列采用无监督的方式进行更新。
通过本实施例提供的方案,通过训练模块对概率分布模型的有监督训练,使得检测模块通过该概率分布模型能够对待测用户行为序列集进行异常检测与无监督更新,从而能够提高对待测用户行为序列集中包含新增行为打点的子序列的异常预测场景的适应能力,提高行为异常检测的准确性,尤其是对提高待测用户行为序列集中复杂、多分支的行为序列异常检测的准确性是有益的。
第三方面,本申请实施例提供了一种终端设备,包括:存储器和处理器;所述存储器,用于存储计算机程序;所述处理器,用于执行所述存储器中存储的计算机程序,以使所述终端设备执行如第一方面所述的方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,包括程序或指令,当所述程序或指令在计算机上运行时,如第一方面所述的方法被执行。
与现有技术相比,本技术方案至少具有如下有益效果:
本申请实施例所公开的用户行为异常检测方法、系统及终端设备,支持有监督训练和无监督更新,既具有很高的序列异常预测准确性,又可以适应待测用户行为序列集中包含新增行为打点的子序列的异常预测场景。该方案有效解决了传统方法不能快速适应业务新增行为打点的需求,可以大大减少模型应用过程中人工重新标注的工作量,此外还有效降低了模型检测异常行为的误判率,可适用于未人工标注并且路径分支多场景。
【附图说明】
为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是现有技术中采用基于隐马尔科夫模型的异常检测方法的示意图;
图2是现有技术中采用基于聚类的异常检测方法的示意图;
图3是现有技术中采用基于特征抽取的异常检测方法的示意图;
图4是本申请实施例2所提供的用户行为异常检测方法的总步骤示意图;
图5是本申请实施例2所提供的用户行为异常检测方法中步骤Step200的步骤示意图;
图6是本申请实施例2所提供的用户行为异常检测方法中步骤Step300的步骤示意图;
图7是本申请实施例2所提供的用户行为异常检测方法中概率分布模型的训练过程;
图8是本申请实施例2所提供的用户行为异常检测方法中执行完步骤Step304后的步骤示意图;
图9是本申请实施例2所提供的用户行为异常检测方法中步骤Step311的具体流程图;
图10是对于包含新增行为打点的序列,纯有监督方法与本申请实施例2所提供的用户行为异常检测方法的检测结果对比图;
图11是本申请实施例3所提供的用户行为异常检测系统的示意图。
附图标记:
10-创建模块;20-训练模块;30-检测模块。
【具体实施方式】
为了更好的理解本申请的技术方案,下面结合附图对本申请实施例进行详细描述。
应当明确,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
实施例1
本申请实施例1公开了一种终端设备,包括:存储器和处理器:该存储器用于存储计算机程序;该处理器,用于执行存储器中存储的计算机程序,以使终端设备执行实施例2所公开的方法。
该终端设备可以是移动电话(又称智能终端设备)、平板电脑(tablet personalcomputer)、个人数字助理(personal digital assistant)、电子书阅读器(e-bookreader)或虚拟现实交互设备(virtual reality interactive device)等,该终端设备可以接入各种类型的通信系统中,例如:长期演进(long term evolution,LTE)系统,未来的第五代(5th Generation,5G)系统,新一代无线接入技术(new radio access technology,NR),及未来的通信系统,如6G系统;还可以是无线局域网(wireless local areanetworks,WLAN)等。
实施例2
如图4所示的是本申请实施例2所提供的用户行为异常检测方法,该方法是基于变阶马尔科夫概率分布模型的用户行为异常检测方法,该方法具备有监督训练和无监督更新的能力,用以解决诸现有技术中存在的两个技术问题:1)对业务新增行为打点适应能力差,现有方法通常需要重新标注序列样本并重新训练模型;2)行为异常检测准确性低,特别是复杂的多分支的行为操作序列。
因此,本实施例的用户行为异常检测方法,具体包括以下步骤:
Step100:基于用户行为序列集建立概率分布模型。
在该步骤Step100中,建立用户行为序列的变阶马尔科夫概率分布模型,该模型采用后缀概率树结构表示,用于在实际应用中描述作为样本集的待测用户行为序列集中子序列的前后转移概率分布情况。
在本实施例的方法中,概率分布模型采用后缀概率树表示,后缀概率树包括多个节点,节点包括用户行为序列的局部前缀子序列和相对应的后缀概率向量,后缀概率向量包括初始的有监督后缀概率向量和无监督更新后缀概率向量,从根节点到叶子节点的路径表示前缀逐步向前扩展的过程,后缀概率树的深度表示变阶马尔可夫模型的最大阶数。
Step200:基于所述用户行为序列集训练所述概率分布模型,得到初始的概率分布模型。
在该步骤Step200中,概率分布模型经历了有监督初始化的过程,即采用人工标注的用户正常行为序列集对模型的概率分布参数进行初始化,形成对用户正常行为序列的概率表达。
Step300:基于所述初始的概率分布模型对待测用户行为序列集Seqs进行异常检测,对于所述待测用户行为序列集Seqs中包含新增行为打点的子序列采用无监督的方式进行更新。
在该步骤Step300中,概率分布模型经历了无监督更新的过程,在该无监督更新的过程中,包含新增行为打点的子序列未人工标注。对于包含业务新增行为打点的待测用户行为序列集Seqs中的子序列,更新概率分布模型中相应位置上的节点信息,使模型可以表达新增行为打点在行为序列中的前后转移概率分布。
在本实施例的用户行为异常检测方法中,为了保证行为异常检测的准确性,对于待测用户行为序列集Seqs中未包含新增行为打点的子序列,直接采用有监督初始化得到后缀转移概率向量判断是否异常;对于待测用户行为序列集Seqs中包含新增行为打点的子序列,采用无监督更新得到的后缀转移概率向量并结合概率集中性分析与反向后缀概率树,判断子序列是否异常。
根据上述用户行为异常检测方法的步骤,基于由后缀概率树的结构表示的概率分布模型的训练过程分为两个阶段:其一为有监督初始化,即采用用户正常行为序列样本对概率分布模型进行训练,得到包含局部子序列后缀概率分布的初始后缀概率树。其二为无监督更新,即对于业务新增的用户行为打点,将包含新增打点的行为序列集输入上述初始后缀概率树,对后缀概率树进行在线更新。
通过对概率分布模型的有监督训练与无监督更新,使得该概率分布模型能够对待测用户行为序列集进行异常检测,从而提高对待测用户行为序列集中包含新增行为打点的子序列的异常预测场景的适应能力,提高用户行为异常检测的准确性,尤其是对提高待测用户行为序列集中复杂、多分支的行为序列异常检测的准确性是有益的。
如图5所示,在本实施例的用户行为异常检测方法中,步骤Step200具体包括以下步骤:
Step201:采用用户行为序列集中的正常行为序列对概率分布模型进行训练,得到初始的后缀概率树。
Step202:对于待测用户行为序列Seqs中包含新增行为打点的子序列seqi的情况,采用无监督的方式对初始的后缀概率树进行在线更新,得到更新的后缀概率树。
建立一个包含有监督概率分布和无监督概率分布的概率分布模型,采用后缀概率树的结构来表示概率分布模型,其中有监督概率分布由用户正常样本集生成,确保模型对行为序列异常检测的基本准确性;无监督概率分布由包含新增行为打点的样本集更新生成,实现对业务新增行为打点的动态适应,基于后缀概率树进行有监督训练和无监督更新,确保该概率分布模型对待测用户行为序列集的异常检测的基本准确性,以及对业务新增行为打点的动态适应性。
如图6和图7所示,在本实施例的用户行为异常检测方法中,步骤Step300具体包括以下步骤:
Step301:检测待测用户行为序列集Seqs中每个行为actp-1的后缀;若行为actp-1的后缀为newActp,则执行Step302;若行为actp-1是新增行为打点newActp-1,则执行Step303。
在步骤Step301中,对于业务新增的用户行为打点,将包含新增打点的行为序列集输入上述初始后缀概率树,对后缀概率树进行在线更新。为了便于描述,令待测用户行为序列集为Seqs={seq1,seq2,…,seqn},包含新增行为打点的子序列seqi={…newActp,…,newActq,…},newActp表示新增的行为打点。依次遍历包含新增行为打点的子序列seqi中的行为打点,以更新后缀概率树。
Step302:遍历后缀概率树中节点末位为actp-1的所有节点,在每个节点的后缀概率向量中添加newActp的无监督后缀概率向量P(newActp|[actp-k,…,actp-1]);并执行步骤Step304。其中,该无监督后缀概率P(newActp|[actp-k,…,actp-1])=Count([actp-k,…,actp-1,newActp])/Count([actp-k,…,actp-1]),k表示马尔可夫链的阶数,[actp-k,…,actp-1]表示newActp的前缀子序列。
Step303:从后缀概率树的根节点依次添加末位为newActp-1的前缀节点及其无监督后缀概率向量[P(act’p|[actp-k,…,newActp-1]),P(act”p|[actp-k,…,newActp-1]),…];并执行步骤Step304。
Step304:获取更新的后缀概率树。
在本实施例的用户行为异常检测方法中,将包含新增行为打点的待测用户行为序列集Seqs直接输入概率分布模型,该概率分布模型在线更新后缀概率树中节点的无监督后缀概率向量[P(act’p|[actp-k,…,newActp-1]),P(act”p|[actp-k,…,newActp-1]),…],并根据无监督后缀概率向量[P(act’p|[actp-k,…,newActp-1]),P(act”p|[actp-k,…,newActp-1]),…]分布的特点,判断包含新增行为打点的子序列seqi是否异常,从而避免重新标注样本和训练模型。
如图8所示,在本实施例的用户行为异常检测方法中,在步骤Step304之后,进一步包括以下步骤:
Step305:在更新的后缀概率树中遍历每个用户行为actp的前缀节点集合{[actp-1],…,[actp-k,…,actp-1]},分别得到包含用户行为的后缀概率向量Vm=[…,P(actp|prefixm),…];其中,prefixm表示第m个后缀包含actp的前缀子序列。
对于序列中的某个用户操作actp,按照深度优先原则遍历每个用户行为actp的前缀节点集合。
Step306:判断前缀子序列prefixm的后缀概率向量Vm的类型;若前缀子序列prefixm的后缀概率向量Vm为有监督概率向量,则执行步骤Step307;若前缀子序列prefixm的后缀概率向量Vm为无监督概率向量,则执行步骤Step308。
Step307:判断P(actp|prefixm)与预设的第一阈值Pthresh的大小关系;若小于,则执行步骤Step309;若大于,则执行步骤Step310。
Step308:判断P(actp|prefixm)与预设的第二阈值P’ thresh的大小关系;若小于,则执行步骤Step311;若大于,则执行步骤Step310。
Step309:输出子序列异常的结果。
Step310:输出子序列正常的结果。
Step311:分析后缀概率向量Vm的概率分布集中性。
本实施例的用户行为异常检测方法中,在获取更新的后缀概率树后,通过遍历更新的后缀概率树,匹配待测用户行为序列集Seqs上局部的子序列,并根据对应的后缀概率向量是有监督还是无监督的情况,采用不同的转移概率阈值判断该子序列是否异常,进而实现对整个待测用户行为序列集的异常检测,不受序列长度的限制,避免根据序列距离相似度检测异常而造成的对局部异常的漏检问题。
第一阈值Pthresh与第二阈值P’ thresh的大小不同,且第二阈值P’ thresh不为零。对于有监督情况,设置概率阈值Pthresh的目的是为了避免人工标注存在偏差的情况,例如人工标注actp-1到actp的子序列是正常的,但P(actp|actp-1)的值没有达到预期Pthresh,依然说明该路径存在问题。对于无监督情况,设置概率阈值P’thresh的目的是在人工未标注的前提下将低概率子序列判断为异常子序列。因此,Pthresh可以为0,但P’thresh不能为0。
如图9所示,在本实施例的用户行为异常检测方法中,对于用户行为打点比较繁杂的业务场景,用户的下一步操作行为往往有多种可能。此时,对于后缀概率向量Vm为无监督概率向量的情况,如果P(actp|prefixm)<P’thresh,就不能确定子序列一定是异常的,需要进一步分析Vm的概率分布集中性,故应当根据概率分布的集中性进一步判断子序列是否异常,此处采用标准差Std(Vm)表示Vm概率分布的集中性。
因此,步骤Step311包括以下步骤:
Step312:判断无监督概率向量Vm的标准差Std(Vm)与预设的集中性阈值Sthresh的大小关系;即Std(Vm)>Sthresh是否成立,若标准差Std(Vm)大于集中性阈值Sthresh,则执行步骤Step313;若标准差Std(Vm)小于集中性阈值Sthresh,则执行步骤Step314。
Step313:判断P(actp|prefixm)与第二阈值P’ thresh的大小关系;即P(actp|prefixm)<P’ thresh是否成立,若小于,则执行步骤Step309;若大于,则执行步骤Step310。
如果Std(Vm)>Sthresh(Sthresh表示给定的集中性阈值),则表示无监督概率向量Vm的概率分布是集中的,即对于正常的用户行为序列,前缀子序列prefixm的下一个行为是已知确定的。此时,如果P(actp|prefixm)<P’thresh,则说明子序列是异常的(参见图9路径①→②→③);否则为正常子序列(参见图9路径①→②→④)。
Step314:将待测用户行为序列集Seqs中包含actp的序列反向后构建无监督的反向后缀概率树,再遍历无监督的反向后缀概率树,搜索反向后缀概率树中末位为actp的节点,得到所述节点的后缀概率向量preVm。
Step315:判断节点的后缀概率向量preVm的标准差Std(preVm)与集中性阈值Sthresh的大小关系;即Std(preVm)>Sthresh是否成立,若节点的后缀概率向量preVm的标准差Std(preVm)大于集中性阈值Sthresh,则执行步骤Step316;若节点的后缀概率向量preVm的标准差Std(preVm)小于集中性阈值Sthresh,则执行步骤Step317。
Step316:判断P(prefixm|actp)与第二阈值P’thresh的大小关系;即P(prefixm|actp)<P’thresh是否成立,若小于,则执行步骤Step309;若大于,则执行步骤Step310。
Step317:输出子序列为随机行为。
如果Std(Vm)<Sthresh,则表示无监督概率向量Vm的概率分布是分散的,即对于正常的用户行为序列,前缀子序列prefixm的下一个行为是不确定的。那么前缀子序列prefixm到actp的子序列可分为如下三种场景:
(1)是异常子序列;
(2)是正常子序列,只不过prefixm到actp的样本偏少;
(3)actp是随机行为,即actp可以出现在用户行为序列的任意位置。
为了准确识别以上三种场景,本实施例提出基于反向后缀概率树的判别方法。反向后缀概率树是将包含新增行为打点的序列反向,然后构建无监督的后缀概率树。该无监督的后缀概率树的特征是:每个节点的后缀概率向量表示当前节点在原行为序列中的前缀概率分布。遍历反向后缀概率树,搜索末位为actp的节点,假设该节点的后缀概率向量为preVm。那么,识别上述三种场景的步骤如下:
(1)如果Std(preVm)>Sthresh,则表示actp的前缀概率分布是集中的。结合Std(Vm)<Sthresh表示无监督概率向量Vm的概率分布是分散的条件可知,prefixm的下一个行为是不确定的,但actp的前一个行为是已知确定的。因此,如果P(prefixm|actp)<P’thresh,则说明子序列是异常的(参见图9路径①→⑤→⑥→⑦→⑨);否则为正常子序列(参见图9路径①→⑤→⑥→⑦→④)。
(2)如果Std(preVm)<Sthresh,则表示actp的前缀概率分布是分散的。结合Std(Vm)<Sthresh表示无监督概率向量Vm的概率分布是分散的条件可知,actp出现在prefixm后面是不确定,反过来actp的上一个行为也是不确定。这说明actp是随机行为(参见图9路径①→⑤→⑥→⑧)。此时,模型将prefixm到actp的子序列判别为正常序列。
在步骤Step311中,对于包含新增行为打点的子序列,特别是存在多分支的复杂子序列,采用概率集中性分析与反向后缀概率树相结合的判别方法,从后缀概率向量的分布和前缀概率向量的分布两个维度判断子序列中行为转移是否异常,减少仅根据转移概率的大小来判断而造成的大量误判问题。
参见图10,图10表示对于新增行为打点,采用纯有监督方法得到的用户异常行为序列占比,以及采用本申请提出的有监督和无监督相结合方法得到的用户异常行为序列占比。从附图10中可以看出,两种方法的结果很接近,说明本申请技术方案的异常序列检测结果是可信的,但避免了传统纯有监督方式需要重新对新增行为打点进行标注和模型训练。
相比于图4至图8所示的用户行为异常检测方法,图9所示的用户行为异常检测方法针对包含新增行为打点并且路径分支较多的场景,提出了概率集中性分析与反向后缀概率树相结合的方法,从后缀和前缀两个方向判断当前子序列是否异常,减少仅依赖转移概率值判断是否异常而造成的误判问题。
实施例3
如图11所示的是本申请实施例3所提供的用户行为异常检测系统,该系统包括创建模块10、训练模块20和检测模块30。
其中,创建模块10,用于基于用户行为序列集建立概率分布模型;训练模块20,用于基于所述用户行为序列集训练所述概率分布模型,得到初始的概率分布模型;检测模块30,用于基于所述初始的概率分布模型对待测用户行为序列集Seqs进行异常检测,对于所述待测用户行为序列集Seqs中包含新增行为打点的子序列采用无监督的方式进行更新。
该系统通过训练模块20对概率分布模型的有监督训练,使得检测模块30通过该概率分布模型能够对待测用户行为序列集进行异常检测与无监督更新,从而能够提高对待测用户行为序列集中包含新增行为打点的子序列的异常预测场景的适应能力,提高行为异常检测的准确性,尤其是对提高待测用户行为序列集中复杂、多分支的行为序列异常检测的准确性是有益的。
实施例4
本申请实施例4提供了一种终端设备,包括:存储器和处理器;存储器用于存储计算机程序;处理器用于执行存储器中存储的计算机程序,以使终端设备执行本申请实施例2所公开的方法。
本实施例的终端设备包括但不限于具备用户操作行为打点功能的网站、应用软件、智能手机等产品,特别适用于软件版本更新迭代快(不同版本可能合入新的功能)并且用户行为打点繁杂的场景。
实施例5
本申请实施例5提供了一种计算机可读存储介质,包括程序或指令,当所述程序或指令在计算机上运行时,如本申请实施例2所述的方法被执行。
本申请实施例所公开的用户行为异常检测方法、系统及终端设备,支持有监督训练和无监督更新,既具有很高的序列异常预测准确性,又可以适应待测用户行为序列集中包含新增行为打点的子序列的异常预测场景。该方案有效解决了传统方法不能快速适应业务新增行为打点的需求,可以大大减少模型应用过程中人工重新标注的工作量,此外还有效降低了模型检测异常行为的误判率,可适用于未人工标注并且路径分支多场景。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如,高密度数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如,固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
以上仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。
Claims (10)
1.一种用户行为异常检测方法,其特征在于,该方法包括以下步骤:
基于用户行为序列集建立概率分布模型;
基于所述用户行为序列集训练所述概率分布模型,得到初始的概率分布模型;
基于所述初始的概率分布模型对待测用户行为序列集Seqs进行异常检测,对于所述待测用户行为序列集Seqs中包含新增行为打点的子序列采用无监督的方式进行更新。
2.根据权利要求1所述的用户行为异常检测方法,其特征在于,所述基于所述用户行为序列集,训练所述概率分布模型,得到初始的概率分布模型的步骤中,所述概率分布模型具有后缀概率树的结构,该步骤包括:
采用所述用户行为序列集中的正常行为序列对所述概率分布模型进行训练,得到初始的后缀概率树;
对于所述待测用户行为序列中包含新增行为打点的子序列的情况,采用无监督的方式对所述初始的后缀概率树进行在线更新,得到更新的后缀概率树;
其中,所述待测用户行为序列集Seqs={seq1,seq2,…,seqn},所述包含新增行为打点的子序列seqi={…newActp,…,newActq,…},newActp表示新增行为打点。
3.根据权利要求2所述的用户行为异常检测方法,其特征在于,所述基于所述初始的概率分布模型对待测用户行为序列集Seqs进行异常检测,对于所述待测用户行为序列集Seqs中包含新增行为打点的子序列采用无监督的方式进行更新的步骤,包括:
检测所述待测用户行为序列集中每个行为actp-1的后缀;
若行为actp-1的后缀为newActp,则遍历所述后缀概率树中节点末位为actp-1的所有节点,在每个节点的后缀概率向量中添加newActp的无监督后缀概率向量P(newActp|[actp-k,…,actp-1]),最终获取更新的后缀概率树;
若行为actp-1是新增行为打点newActp-1,则从所述后缀概率树的根节点依次添加末位为newActp-1的前缀节点及其无监督后缀概率向量[P(act’p|[actp-k,…,newActp-1]),P(act”p|[actp-k,…,newActp-1]),…],最终获得更新的后缀概率树。
4.根据权利要求3所述的用户行为异常检测方法,其特征在于,在获取更新的后缀概率树之后,包括以下步骤:
在所述更新的后缀概率树中遍历每个用户行为actp的前缀节点集合{[actp-1],…,[actp-k,…,actp-1]},分别得到包含所述用户行为的后缀概率向量Vm=[…,P(actp|prefixm),…];其中,prefixm表示第m个后缀包含actp的前缀子序列;
判断所述前缀子序列prefixm的后缀概率向量Vm的类型;
若所述前缀子序列prefixm的后缀概率向量Vm为有监督概率向量,则判断P(actp|prefixm)与预设的第一阈值Pthresh的大小关系;若小于,则输出子序列异常的结果;若大于,则输出子序列正常的结果;
若所述前缀子序列prefixm的后缀概率向量Vm为无监督概率向量,则判断P(actp|prefixm)与预设的第二阈值P’thresh的大小关系;若小于,则分析所述后缀概率向量Vm的概率分布集中性;若大于,则输出子序列正常的结果。
5.根据权利要求4所述的用户行为异常检测方法,其特征在于,所述分析所述后缀概率向量Vm的概率分布集中性的步骤,包括:
判断所述无监督概率向量Vm的标准差Std(Vm)与预设的集中性阈值Sthresh的大小关系;
若所述标准差Std(Vm)大于所述集中性阈值Sthresh,则判断P(actp|prefixm)与所述第二阈值P’thresh的大小关系;若小于,则输出子序列异常的结果;若大于,则输出子序列正常的结果;
若所述标准差Std(Vm)小于所述集中性阈值Sthresh,则将所述待测用户行为序列集Seqs中包含actp的序列反向后构建无监督的反向后缀概率树,再遍历所述无监督的反向后缀概率树,搜索所述反向后缀概率树中末位为actp的节点,得到所述节点的后缀概率向量preVm;
判断所述节点的后缀概率向量preVm的标准差Std(preVm)与集中性阈值Sthresh的大小关系;
若所述节点的后缀概率向量preVm的标准差Std(preVm)大于集中性阈值Sthresh,则判断P(prefixm|actp)与所述第二阈值P’thresh的大小关系;若小于,则输出子序列异常的结果;若大于,则输出子序列正常的结果;
若所述节点的后缀概率向量preVm的标准差Std(preVm)小于集中性阈值Sthresh,则输出子序列正常的结果;
其中,所述打点序列seqi={…newActp,…,newActq,…},newActp表示新增行为打点。
6.根据权利要求4所述的用户行为异常检测方法,其特征在于,所述第一阈值Pthresh与所述第二阈值P’thresh的大小不同,且所述第二阈值P’thresh不为零。
7.根据权利要求2所述的用户行为异常检测方法,其特征在于,所述后缀概率树包括多个节点,所述节点包括所述用户行为序列的局部前缀子序列和相对应的后缀概率向量,所述后缀概率向量包括初始的有监督后缀概率向量和无监督更新后缀概率向量。
8.一种用户行为异常检测系统,其特征在于,该系统包括:
创建模块,用于基于用户行为序列集建立概率分布模型;
训练模块,用于基于所述用户行为序列集训练所述概率分布模型,得到初始的概率分布模型;
检测模块,用于基于所述初始的概率分布模型对待测用户行为序列集Seqs进行异常检测,对于所述待测用户行为序列集Seqs中包含新增行为打点的子序列采用无监督的方式进行更新。
9.一种终端设备,其特征在于,包括:存储器和处理器:
所述存储器,用于存储计算机程序;
所述处理器,用于执行所述存储器中存储的计算机程序,以使所述终端设备执行如权利要求1至7任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,包括程序或指令,当所述程序或指令在计算机上运行时,如权利要求1至7中任一项所述的方法被执行。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011091429.8A CN114357849A (zh) | 2020-10-13 | 2020-10-13 | 用户行为异常检测方法、系统及终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011091429.8A CN114357849A (zh) | 2020-10-13 | 2020-10-13 | 用户行为异常检测方法、系统及终端设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114357849A true CN114357849A (zh) | 2022-04-15 |
Family
ID=81089952
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011091429.8A Pending CN114357849A (zh) | 2020-10-13 | 2020-10-13 | 用户行为异常检测方法、系统及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114357849A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116599861A (zh) * | 2023-07-18 | 2023-08-15 | 海马云(天津)信息技术有限公司 | 检测云服务异常的方法、服务器设备和存储介质 |
-
2020
- 2020-10-13 CN CN202011091429.8A patent/CN114357849A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116599861A (zh) * | 2023-07-18 | 2023-08-15 | 海马云(天津)信息技术有限公司 | 检测云服务异常的方法、服务器设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110166462B (zh) | 访问控制方法、系统、电子设备及计算机存储介质 | |
CN111651636B (zh) | 视频相似片段搜索方法及装置 | |
CN108520470B (zh) | 用于生成用户属性信息的方法和装置 | |
US20120221508A1 (en) | Systems and methods for efficient development of a rule-based system using crowd-sourcing | |
CN110781818B (zh) | 视频分类方法、模型训练方法、装置及设备 | |
CN111431819A (zh) | 一种基于序列化的协议流特征的网络流量分类方法和装置 | |
CN112883990A (zh) | 数据分类方法及装置、计算机存储介质、电子设备 | |
CN114385869A (zh) | 检测数据异常的方法、装置、存储介质及计算机设备 | |
CN115025497A (zh) | 异常数据检测方法、装置、电子设备及存储介质 | |
CN115759748A (zh) | 风险检测模型生成方法和装置、风险个体识别方法和装置 | |
CN110019845B (zh) | 一种基于知识图谱的社区演化分析方法及装置 | |
CN114897085A (zh) | 一种基于封闭子图链路预测的聚类方法及计算机设备 | |
CN114357849A (zh) | 用户行为异常检测方法、系统及终端设备 | |
US11698775B2 (en) | Smart code editor for detecting and visualizing deviations | |
CN113822144A (zh) | 一种目标检测方法、装置、计算机设备和存储介质 | |
CN116542673B (zh) | 应用于机器学习的欺诈行为识别方法及系统 | |
CN117272312A (zh) | 一种基于强化学习的可解释性智能合约漏洞检测及定位方法 | |
CN111612022A (zh) | 用于分析数据的方法、设备和计算机存储介质 | |
CN112651467B (zh) | 卷积神经网络的训练方法和系统以及预测方法和系统 | |
CN115345600A (zh) | 一种rpa流程的生成方法和装置 | |
CN114662580A (zh) | 数据分类模型的训练方法、分类方法、装置、设备和介质 | |
CN115718696B (zh) | 源码密码学误用检测方法、装置、电子设备和存储介质 | |
US20240078320A1 (en) | Method and apparatus of anomaly detection of system logs based on self-supervised learning | |
US20180300372A1 (en) | Inflationary segment approach to temporal data partitioning for optimized model scoring | |
CN117478434B (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 |