具体实施方式
下面结合附图和实施例对本公开作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释相关发明,而非对该发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与有关发明相关的部分。
需要说明的是,在不冲突的情况下,本公开中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本公开。
图1示出了可以应用本公开的实施例的用于识别异常行为用户的方法或用于识别异常行为用户的装置的实施例的示例性系统架构100。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送数据等。终端设备101、102、103上可以安装有各种客户端应用,例如购物类软件、股票基金交易类软件、社交平台软件等。
终端设备101、102、103可以是硬件,也可以是软件。当终端设备101、102、103为硬件时,可以是具有显示屏并且支持页面浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture Experts Group Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving Picture Experts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。当终端设备101、102、103为软件时,可以安装在上述所列举的电子设备中。其可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。后台服务器可以基于预设用户集合中的用户在目标时间段内对终端设备执行的操作的操作信息,生成频繁模式树,进而确定异常行为用户。作为示例,服务器105可以是云端服务器。
需要说明的是,服务器可以是硬件,也可以是软件。当服务器为硬件时,可以实现成多个服务器组成的分布式服务器集群,也可以实现成单个服务器。当服务器为软件时,可以实现成多个软件或软件模块(例如用来提供分布式服务的软件或软件模块),也可以实现成单个软件或软件模块。在此不做具体限定。
还需要说明的是,本公开的实施例所提供的用于识别异常行为用户的方法通常由服务器执行,相应地,用于识别异常行为用户的装置包括的各个部分(例如各个单元、子单元、模块、子模块)通常设置于服务器中。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本公开的用于识别异常行为用户的方法的一个实施例的流程200。该用于识别异常行为用户的方法,包括以下步骤:
步骤201,获取预设用户集合中的用户在目标时间段内对目标应用执行的操作的操作信息。
在本实施例中,用于识别异常行为用户的方法的执行主体(例如图1所示的服务器或终端设备)可以通过有线连接方式或者无线连接方式获取预设用户集合中的用户在目标时间段内对目标应用执行的操作的操作信息。
其中,上述预设用户集合可以是预先确定的用户的集合。作为示例,该预设用户集合可以是使用目标应用的所有用户,也可以是在预设时间范围(例如2019年8月30日至2019年9月3日)使用目标应用的用户,还可以是对目标应用执行了预先确定的一个或多个操作(例如支付、抽奖等)的用户。
上述目标时间段可以是预先确定的时间段,也可以是符合预设条件的时间段。示例性的,上述预设条件可以是:时间段的起始时间为第1个用户使用目标应用的时间,时间段的终止时间为第1000个用户使用目标应用的时间。
当上述执行主体为终端设备时,上述目标应用可以是安装于上述执行主体上的各种应用;当上述执行主体为服务器时,上述目标应用可以是上述执行主体支持的各种应用。作为示例,上述目标应用可以是购物类软件、抢票类软件、理财类软件、股票基金交易软件等等。
上述操作信息可以用于指示用户对目标应用的操作。作为示例,操作信息可以是用户使用的终端设备的型号、用户使用的网络之间互连的协议(Internet Protocol,IP)、用户执行操作的时间等等。可以理解,技术人员可以根据实际需求、针对目标应用的特点来自行设置操作信息,本公开的实施例对此不作限定。
步骤202,基于所获取的操作信息,生成频繁模式树。
在本实施例中,基于步骤201所获取的操作信息,上述执行主体可以生成频繁模式树。其中,频繁模式树的路径用于指示预设用户集合中的用户在目标时间段内对目标应用执行的操作序列。
上述频繁模式树(Frequent Pattern Tree,FP-Tree)在2004年的文章《MiningFrequent Patterns without Candidate Generation》中提出。频繁模式树可以是一种包括节点(又称结点,node)的数据结构。频繁模式树的每个节点可以有0个、1个、2个或多个子节点;没有父节点的节点称为根节点(又称根结点或树根,root);每一个非根节点有且只有一个父节点;从根节点到树中某节点经过的分支构成了路径。
在本实施例中,频繁模式树中的非根节点可以包括频繁项和频繁项对应的用户数。其中,频繁项可以用于指示上述预设用户集合中的用户在上述目标时间段内对上述目标应用执行的操作(例如支付、浏览、退款等)。上述频繁项对应的用户数可以用于指示上述预设用户集合中执行该频繁项所在的节点与根节点之间的路径指示的操作序列中的各个操作的用户的数量。
在这里,上述执行主体可以基于所获取的全部或者部分操作信息,生成频繁模式树。
作为示例,假设上述执行主体在步骤201中所获取的用户执行的全部操作的操作信息如下:
那么,上述执行主体可以采用如下方式基于所获取的部分操作信息,生成频繁模式树。
第一步,针对预设用户集合(例如包括用户编号1-5的用户)中的用户,采用如下步骤计算该用户对应的操作信息中的每个操作信息的支持度:将上述预设用户集合中执行该操作信息指示的操作的用户的数量,作为该操作信息的支持度。可以理解,支持度可以用于指示上述预设用户集合中执行该操作信息指示的操作的用户的数量。例如,对于上述表格,操作信息“f”的支持度为“4”,操作信息“a”的支持度为“3”,操作信息“c”的支持度为“4”,操作信息“d”的支持度为“1”。其中,操作信息可以作为频繁模式树的频繁项。
第二步,针对预设用户集合中的单个用户,对于支持度大于或等于预设阈值(例如3)的操作信息,按照支持度降序排列。在这里,需要说明的是,对于支持度相等的操作信息可以按照预定排序方式进行排序。作为示例,上述预定排序方式可以是按照操作信息的名称正序或倒序的顺序排列,也可以是与用户执行的操作的先后顺序相对应的顺序排列。
这里,对于支持度相等的操作信息按照操作信息的名称倒序的方式进行排序,并且,将上述预设数值设置为3。由此,可以获得对应每个用户的排序后的频繁项:
用户编号 |
操作信息 |
频繁项 |
1 |
f、a、c、d、g、i、m、p |
f、c、p、m、a |
2 |
a、b、c、f、l、m、o |
f、c、m、b、a |
3 |
b、f、h、j、o |
f、b |
4 |
b、c、k、s、p |
c、p、b |
5 |
a、f、c、e、l、p、m、n |
f、c、p、m、a |
第三步,遍历每一个用户对应的频繁项(例如,上述表格中用户1对应的频繁项为:f、c、p、m、a),根据用户对应的频繁项生成节点路径,节点路径以实线相连。路径中的节点指示的操作每被一个用户执行,该节点包括的用户数就累加1。例如,在上述示例中,路径“(f:4)→(c:3)→(p:2)”指示的操作序列中的各个操作被用户1和用户5均执行,因此,最后一个节点(即终节点)包括的用户数为2。由于不同的操作序列可能包含相同的频繁项,因此,存在不同节点的频繁项名称一致的情况,这里,对于频繁项名字一致的节点使用虚线进行连接。由此,可以获得如图3所示的频繁模式树。图3中,将频繁项和频繁项对应的的用户数以“:”分割,例如,f:4的含义为节点的频繁项为f,用户数为4。可以理解,频繁模式树包括的频繁项对应的支持度为该频繁项对应的各个用户数之和。
可选的,上述执行主体也可以采用如下方式基于所获取的全部操作信息,生成频繁模式树。
首先,对每一个用户对应的操作信息按照支持度降序的顺序排序,对于支持度相等的操作信息可以按照预定排序方式进行排序。作为示例,上述预定排序方式可以是按照操作信息的名称正序或倒序的顺序排列,也可以是与用户执行的操作的先后顺序相对应的顺序排列,从而获得排序后的频繁项。例如,对上述示例中的操作信息进行排序,可以获得如下排序后的频繁项:
用户编号 |
操作信息 |
频繁项 |
1 |
f、a、c、d、g、i、m、p |
f、c、p、m、a、i、g、d |
2 |
a、b、c、f、l、m、o |
f、c、m、b、a、o、l |
3 |
b、f、h、j、o |
f、b、o、j、h |
4 |
b、c、k、s、p |
c、p、b、s、k |
5 |
a、f、c、e、l、p、m、n |
f、c、p、m、a、n、e、l |
然后,遍历每一个用户对应的操作信息,根据用户对应的操作信息生成节点路径,节点路径以实线相连。路径中的节点指示的操作每被一个用户执行,该节点包括的用户数就累加1。对于频繁项名字一致的节点使用虚线进行连接。由此,可以获得如图4所示的频繁模式树。
步骤203,基于频繁模式树,从预设用户集合中识别异常行为用户。
在本实施例中,上述执行主体可以基于步骤202中生成的频繁模式树,从预设用户集合中识别异常行为用户。
实践中,用户可能采用模拟器等进行虚假交易,从而非法、违规获利。在一些情况下,对于异常行为用户,需要对其权限(例如访问权限)进行限制,以保证目标应用的正常运行,以及保证交易对方的利益。
在本实施例的一些可选的实现方式中,上述执行主体可以采用如下步骤(包括第一步和第二步)来执行该步骤203:
第一步,对于频繁模式树中的至少一个频繁项,基于至少一个频繁项中的每个频繁项执行如下步骤:在频繁模式树中存在包括该频繁项的目标节点的情况下,生成该频繁项的条件树。其中,包括该频繁项的目标节点与频繁模式树中的根节点之间的路径的长度大于或等于预设长度阈值。在这里,两个节点(包括目标节点与频繁模式树中的根节点)之间的路径的长度即两个节点间的边的数量。
具体地,上述执行主体可以遍历频繁模式树中每个节点包括的频繁项,以生成该频繁项的条件树。
在这里,假设上述预设阈值为3(即频繁项的支持度大于或等于3),并且,最终希望找到的频繁项数目(即上述预设长度阈值)大于或等于3,对该步骤进行说明,但需要说明的是,下面的说明仅仅是示例性的,不应该对本公开的实施例起到限制作用。
示例性的,假设最终希望找到的频繁项数目大于或等于3,并且,频繁项的支持度要大于或等于3的用户。由于生成上述示例中的频繁模式树的过程中已经考虑了单个节点的支持度,因此,在这里不需要再次根据支持度排除频繁项。在生成条件树时,仅需考虑包含至少有一个节点路径长度大于或等于3的频繁项。例如,对于图3中的频繁项f,仅节点(f:4)包含该频繁项,并且包括该频繁项f的节点与频繁模式树中的根节点之间的路径的长度为1,该长度小于3,因此,不生成该频繁项f的条件树。而对于频繁项m,包含该频繁项有节点(m:1)和(m:2),包括该频繁项的节点与频繁模式树中的根节点之间的路径“(f:4)→(c:3)→(p:2)→(m:2)”的长度为4,该长度大于或等于3,因此需要生成该频繁项m的条件树。可以理解,条件树包括的频繁项对应的支持度为该频繁项对应的各个用户数之和。
因此,对于图3的频繁模式树而言,需要生成条件树的频繁项为p、m、a、b。下面以频繁项m为例子建立条件树。经过频繁项m的路径有两条,(f:4)→(c:3)→(p:2)→(m:2)和(f:4)→(c:3)→(m:1)。因此,根据这两条路径重新计算节点上的用户数。具体的计算方法如下:叶节点的用户数不作修改,父节点的用户数等于其子节点的用户数之和,例如频繁项p所在的节点只有一个子节点(m:2),因此其用户数为2。频繁项c所在的节点有两个子节点(p:2)和(m:1),因此其用户数为3。因此,频繁项m的条件树如图5所示。
在本实施例的一些可选的实现方式中,该频繁项的条件树符合以下条件:条件树中的叶节点为频繁模式树中包括该频繁项的节点;以及,条件树中的父节点包括的用户数为该父节点的各个子节点包括的用户数之和,其中,用户数指示预设用户集合中执行过该用户数所在的节点与根节点之间的路径指示的操作序列中的各个操作的用户的数量。
第二步,基于所生成的全部或者部分条件树,从预设用户集合中识别异常行为用户。
在本实施例的一些可选的实现方式中,上述执行主体可以采用如下步骤(包括第一步骤和第二步骤),来执行上述第二步:
第一步骤,对于所生成的条件树中的至少一个条件树,基于至少一个条件树中的每个条件树执行如下第一子步骤和第二子步骤:
第一子步骤,基于该条件树包括的频繁项和频繁项对应的支持度,生成该条件树对应的路径。其中,条件树对应的路径中的节点包括频繁项和频繁项对应的支持度,条件树对应的路径指示的节点序列按照包括的支持度降序的顺序排列。需要说明的是,当支持度相等时,可以按照预定排序方式进行排序。作为示例,上述预定排序方式可以是按照频繁项的名称正序或倒序的顺序排列。
以图5所示的条件树为例,上述执行主体可以采用如下步骤生成该条件树的对应的路径:
该条件树包括:频繁项f,该频繁项f对应的支持度3;频繁项c,该频繁项c对应的支持度3;频繁项p,该频繁项p对应的支持度2;频繁项m,该频繁项m对应的支持度3。可以理解,频繁项对应的支持度为该频繁项对应的用户数之和。由此,当支持度相等时,按照频繁项的名称倒序的顺序排列。因此,该条件树对应的路径可以为“(m:3)→(f:3)→(c:3)→(p:2)”。
第二子步骤,从该条件树对应的路径中,提取与该条件树对应的路径的起始节点相同并且长度大于或等于预设长度阈值的子路径。
在这里,当预设长度阈值为3时,上述执行主体可以提取出子路径“(m:3)→(f:3)→(c:3)”和“(m:3)→(f:3)→(c:3)→(p:2)”。
第二步骤,从所提取的子路径中,确定终节点包括的支持度最大的路径,作为目标路径。
在这里,当上述执行主体提取出的子路径包括(m:3)→(f:3)→(c:3)和(m:3)→(f:3)→(c:3)→(p:2)时,由于终节点“(c:3)”包括的支持度3,大于终节点“(p:2)”包括的支持度2,因此,包括的支持度最大的路径为“(m:3)→(f:3)→(c:3)”,即目标路径为“(m:3)→(f:3)→(c:3)”。
第三步骤,从预设用户集合中的、执行过目标路径指示的操作序列中的各个操作的用户中,识别异常行为用户。例如,上述执行主体可以将预设用户集合中执行过目标路径指示的操作序列中的各个操作的用户,确定为异常行为用户;也可以从预设用户集合中的、执行过目标路径指示的操作序列中的各个操作的用户中,选取预设数量个(例如10个)用户,作为异常行为用户。
在上述示例中,在上述执行主体将“(m:3)→(f:3)→(c:3)”确定为目标路径的情况下,上述执行主体可以将预设用户集合中执行过目标路径指示的操作序列中的各个操作(即m、f、c)的用户,作为异常行为用户。由此,上述执行主体可以确定出异常行为用户为编号为1、2、5的用户。
在这里,需要说明的是,用户执行上述操作序列中的操作的顺序可以是任意的。例如,用户可以按照m、f、c的顺序执行操作序列,也可以按照f、m、c的顺序执行操作序列。可以理解,无论用户按照怎样的顺序来执行操作序列中的各个操作,都算作执行过操作序列中的各个操作的用户。
可选的,上述执行主体也可以采用如下方式,执行上述第二步:
首先,上述执行主体可以从条件树的根节点开始,从该节点的子节点中确定包括的用户数最大的节点,然后,从最近确定的节点开始,从该节点的子节点中确定包括的用户数最大的节点,直到所确定出的节点的数量大于或等于上述预设阈值。由此,当预设阈值为3时,以图5所示的条件树为例,上述执行主体可以确定出子节点“(f:3)”、“(c:3)”、“(p:2)”。进而,上述执行主体可以将预设用户集合中执行过该路径指示的操作序列中的各个操作(即f、c、p)的用户,作为预设用户集合中的异常行为用户。
可选的,上述执行主体还可以采用如下方式来执行该步骤203:
首先,上述执行主体可以从频繁模式树的根节点开始,从该节点的子节点中确定包括的用户数最大的节点,然后,从最近确定的节点开始,从该节点的子节点中确定包括的用户数最大的节点,直到所确定出的节点的数量大于或等于上述预设阈值。由此,当预设阈值为3时,以图5所示的条件树为例,上述执行主体可以确定出子节点“(f:3)”、“(c:3)”、“(p:2)”。进而,上述执行主体可以将预设用户集合中执行过该路径指示的操作序列中的各个操作(即f、c、p)的用户,作为预设用户集合中的异常行为用户。
在本实施例的一些可选的实现方式中,频繁模式树包括的频繁项的支持度大于或等于预设阈值,异常行为用户的数量大于或等于预设阈值。
可以理解,由于支持度可以用于指示上述预设用户集合中执行操作信息指示的操作的用户的数量。因而,上述执行主体所确定出的异常行为用户的数量可以大于或等于上述预设阈值。
作为示例,如果在生成频繁模式树的过程中,基于支持度大于或等于上述预设阈值的频繁项(而不基于支持度小于上述预设阈值的频繁项),来生成频繁模式树,那么,预设用户集合中,执行所生成的频繁模式树包括的每个频繁项知识的操作的用户的数量也将大于或等于该预设阈值。
继续参见图6,图6是根据本实施例的用于识别异常行为用户的方法的应用场景的一个示意图。在图6的应用场景中,服务器601首先获取预设用户集合中的用户在目标时间段内对目标应用执行的操作的操作信息6011(图示中,服务器601通过终端设备602-606获取到预设用户集合中的用户在目标时间段内对目标应用执行的操作的操作信息)。然后,服务器601基于所获取的操作信息6011,生成频繁模式树6012(例如图3所示的频繁模式树)。其中,频繁模式树6012的路径用于指示预设用户集合中的用户在目标时间段内对目标应用执行的操作序列。之后,服务器601基于频繁模式树6012,从预设用户集合中识别异常行为用户6013。作为示例,请参考图6,其中,服务器601确定上述预设用户集合中的异常行为用户为使用终端设备602、603和606的用户,可选的,服务器601可以对使用终端设备602、603和606的用户的权限(例如访问权限)进行限制。
传统的异常检测,通常根据非正常行为(系统行为或用户行为)或使用计算机的非正常资源,来检测入侵行为,进而确定异常行为用户。其关键在于建立用户正常行为轮廓(Profile),通过检测实际活动来判断其是否背离正常轮廓。
现有的异常检测算法主要构造连续性的特征,对于正常用户而言,通常在各个特征维度上分布会相对集中;但是,对于异常行为用户而言,则可能会在某个特定的特征上出现分布离群的现象。
目前的异常检测算法主要从多个连续性的特征(例如具有大小关系的价格、具有先后顺序的时间等特征)上,识别出在某个关键特征分布上离群点,进而根据识别出的离群点确定异常行为用户。此外,目前的异常检测算法采用连续性特征来检测异常行为用户,通常需要具备较强的业务经验(例如确定异常行为用户所具备的特征以及异常行为用户不具备的特征),否则容易将正常用户识别成异常行为用户。例如某些高活跃正常用户,分布偏离整体的特征分布,但是该部分用户并没有发生高危的风险行为。
本公开的上述实施例提供的用于识别异常行为用户的方法,通过获取预设用户集合中的用户在目标时间段内对目标应用执行的操作的操作信息,然后,基于所获取的操作信息,生成频繁模式树,其中,频繁模式树的路径用于指示预设用户集合中的用户在目标时间段内对目标应用执行的操作序列,之后,基于频繁模式树,从预设用户集合中识别异常行为用户,由此,实现了基于非连续性特征的异常行为用户的检测。此外,本公开的上述实施例提供的用于识别异常行为用户的方法,还通过生成频繁模式树,实现了基于用户执行的操作序列确定用户集合中的异常行为用户,有助于避免由于异常行为用户的操作而导致的目标应用的运行异常,异常行为用户非法、违规获利等情况的发生。
在本实施例的一些可选的实现方式中,上述执行主体可以对步骤203中所识别出的异常行为用户的权限(例如访问权限)进行限制。
可以理解,为保证目标应用的正常运行,以及保证交易对方的利益,上述执行主体可以对识别出的异常行为用户的权限进行限制,从而限制异常行为用户对上述目标应用的操作。
进一步参考图7,其示出了用于识别异常行为用户的方法的又一个实施例的流程700。该用于识别异常行为用户的方法的流程700,包括以下步骤:
步骤701,获取预设用户集合中的用户在目标时间段内对目标应用执行的操作的操作信息。
在本实施例中,用于识别异常行为用户的方法的执行主体可以获取预设用户集合中的用户在目标时间段内对目标应用执行的操作的操作信息。
在本实施例中,步骤701与图2对应实施例中的步骤201基本一致,这里不再赘述。
步骤702,基于所获取的操作信息,生成频繁模式树。
在本实施例中,上述执行主体可以基于所获取的操作信息,生成频繁模式树。
在本实施例中,步骤702与图2对应实施例中的步骤202基本一致,这里不再赘述。
步骤703,对于频繁模式树包括的至少一个频繁项中的每个频繁项,响应于频繁模式树中存在包括该频繁项的目标节点,生成该频繁项的条件树。
在本实施例中,对于频繁模式树包括的至少一个频繁项中的每个频繁项,上述执行主体可以在频繁模式树中存在包括该频繁项的目标节点的情况下,生成该频繁项的条件树。其中,包括该频繁项的目标节点与频繁模式树中的根节点之间的路径的长度大于或等于预设长度阈值。
在本实施例中,步骤703的具体执行方式可以参考图2中对该步骤的相关描述,这里不再赘述。
步骤704,对于所生成的条件树中的至少一个条件树,基于该至少一个条件树中的每个条件树执行步骤7041和步骤7042:
步骤7041,基于该条件树包括的频繁项和频繁项对应的支持度,生成该条件树对应的路径。
在本实施例中,上述执行主体可以基于该条件树包括的频繁项和频繁项对应的支持度,生成该条件树对应的路径。其中,条件树对应的路径中的节点包括频繁项和频繁项对应的支持度,条件树对应的路径指示的节点序列按照包括的支持度降序的顺序排列。需要说明的是,当支持度相等时,可以按照预定排序方式进行排序。作为示例,上述预定排序方式可以是按照频繁项的名称正序或倒序的顺序排列。
在本实施例中,步骤704的具体执行方式可以参考图2中对该步骤的相关描述,这里不再赘述。
步骤7042,从该条件树对应的路径中,提取与该条件树对应的路径的起始节点相同并且长度大于或等于预设长度阈值的子路径。
在本实施例中,上述执行主体可以从该条件树对应的路径中,提取与该条件树对应的路径的起始节点相同并且长度大于或等于预设长度阈值的子路径。
在本实施例中,步骤7042的具体执行方式可以参考图2中对该步骤的相关描述,这里不再赘述。
步骤705,从所提取的子路径中,确定终节点包括的支持度最大的路径,作为目标路径。
在本实施例中,上述执行主体还可以从所提取的子路径中,确定终节点包括的支持度最大的路径,作为目标路径,以及将预设用户集合中执行过目标路径指示的操作序列中的各个操作的用户,作为预设用户集合中的异常行为用户。
在本实施例中,步骤705的具体执行方式可以参考图2中对该步骤的相关描述,这里不再赘述。
步骤706,将预设用户集合中执行目标路径指示的操作序列中的各个操作的用户作为目标用户集合,将目标路径指示的操作序列作为目标操作序列,将目标用户集合中的用户执行目标操作序列中的各个操作的时间段作为目标期间,预测目标用户集合中的用户在目标期间执行过目标操作序列中的各个操作的概率。
在本实施例中,上述执行主体可以将预设用户集合中执行目标路径指示的操作序列中的各个操作的用户作为目标用户集合,将目标路径指示的操作序列作为目标操作序列,将目标用户集合中的用户执行目标操作序列中的各个操作的时间段作为目标期间,预测目标用户集合中的用户在目标期间执行过目标操作序列中的各个操作的概率。
在这里,预设用户集合中执行目标路径指示的操作序列中的各个操作的用户的数量可以是一个,也可以是多个。实践中,在上述执行主体基于所获取的全部操作信息,生成频繁模式树的情况下,执行目标路径指示的操作序列中的各个操作的用户的数量可以是一个;在上述执行主体基于所获取的部分操作信息(例如对应的用户数大于或等于2的操作信息),生成频繁模式树的情况下,执行目标路径指示的操作序列中的各个操作的用户的数量可以是多个。
在这里,上述执行主体可以采用多种方式预测目标用户集合中的用户在目标期间执行过目标操作序列中的各个操作的概率。
作为示例,当执行目标路径指示的操作序列中的各个操作的用户(即目标用户集合中的用户的数量)的数量是多个(大于或等于2个)时,上述执行主体可以采用如下方式预测目标用户集合中的用户在目标期间执行过目标操作序列中的各个操作的概率:
在此应用场景下,由于目标用户集合中可能包括正常用户(相对异常行为用户而言),这里假设异常行为用户中的各个用户执行的操作在时间上表现出一定的集中性。例如500个异常行为用户,该500个异常行为用户中的用户在3天内,连续在1个小时内执行操作(例如参与营销活动)。正常用户执行操作(例如参与营销活动)的时间分布应该与整体的用户的时间分布相近。因此,可以通过计算行为(例如上述目标用户集合中的用户在目标期间执行过目标操作序列中的各个操作)的发生概率,来证明该行为是小概率事件,进而证明执行该小概率事件的行为的用户为异常行为用户。
具体地,上述执行主体可以首先统计产品提供方(例如商家)在每个小时内的用户人数与全天的总人数的比值。假设产品提供方s在一天(即24小时内)的概率Ps为:
Ps(X=h)=Psh
其中,s用于标识产品提供方,h用于标识时间,并且,h为大于或等于1且小于或等于24的整数,Psh为产品提供方s在时间h时执行操作的用户的人数,X为自变量,用于表示时间。
这里,假设目标用户集合中的用户的数量为N,该目标用户集合中的用户在时间h的期望人数(即正常用户的人数),服从均值为NPsh、方差为NPsh(1-Psh)的二项分布。当NPsh大于或等于5时,二项分布接近正态分布,其中,为正态分布函数。因此,上述概率可以表示为:
其中,X大于
由此,可以预测目标用户集合中的用户在目标期间执行过目标操作序列中的各个操作的概率。
作为又一示例,当执行目标路径指示的操作序列中的各个操作的用户的数量(即目标用户集合中的用户的数量)是1个时,上述执行主体可以采用如下方式预测目标用户集合中的用户在目标期间执行过目标操作序列中的各个操作的概率:
首先,获取上述执行目标路径指示的操作序列中的各个操作的用户的用户信息。其中,上述用户信息可以用于指示该用户的信用评分。
然后,判断上述用户信息指示的信用评分与预先确定的最高信用评分的比值,确定为目标用户集合中的用户在目标期间执行过目标操作序列中的各个操作的概率。
可以理解,在此应用场景下,目标用户集合中的用户的数量为1。
步骤707,响应于概率小于或等于预设概率阈值,将目标用户集合中的用户确定为异常行为用户。
在本实施例中,在步骤706获得的概率小于或等于预设概率阈值的情况下,上述执行主体可以将目标用户集合中的用户确定为异常行为用户。
可以理解,通常情况下,发生概率较低(例如概率小于或等于上述预设概率阈值的)的行为(例如上述目标用户集合中的用户在目标期间执行过目标操作序列中的各个操作)一旦发生,则此情况下出现异常行为用户的概率较大,由此,可以通过将执行低概率行为的用户判定为异常行为用户,从而对其访问权限进行限制,进而在一定程度上避免由于异常行为用户的操作而导致的目标应用的运行异常,异常行为用户非法、违规获利等情况的发生。
需要说明的是,除上面所记载的内容外,本实施例还可以包括与图2对应的实施例相同或类似的特征、效果,在此不再赘述。
从图7中可以看出,本实施例中的用于识别异常行为用户的方法的流程700可以通过预测目标用户集合中的用户在目标期间执行过目标操作序列中的各个操作的概率,从而在概率小于或等于预设概率阈值的情况下,将目标用户集合中的用户作为异常行为用户,由此,有助于降低将正常用户误判为异常行为用户而限制了正常用户的其权限的情况的发生,提高了识别异常行为用户的准确度。
进一步参考图8,作为对上述图2所示方法的实现,本公开提供了一种用于识别异常行为用户的装置的一个实施例,该装置实施例与图2所示的方法实施例相对应,除下面所记载的特征外,该装置实施例还可以包括与图2所示的方法实施例相同或相应的特征,以及产生与图2所示的方法实施例相同或相应的效果。该装置具体可以应用于各种电子设备中。
如图8所示,本实施例的用于识别异常行为用户的装置800包括:获取单元801、生成单元802和识别单元803。其中,获取单元801被配置成获取预设用户集合中的用户在目标时间段内对目标应用执行的操作的操作信息;生成单元802被配置成基于所获取的操作信息,生成频繁模式树,其中,频繁模式树的路径用于指示预设用户集合中的用户在目标时间段内对目标应用执行的操作序列;识别单元803被配置成基于频繁模式树,从预设用户集合中识别异常行为用户。
在本实施例中,用于识别异常行为用户的装置800的获取单元801可以通过有线连接方式或者无线连接方式获取预设用户集合中的用户在目标时间段内对目标应用执行的操作的操作信息。
其中,上述预设用户集合可以是预先确定的用户的集合。上述目标时间段可以是预先确定的时间段,也可以是符合预设条件的时间段。示例性的,上述预设条件可以是:时间段的起始时间为第1个用户使用目标应用的时间,时间段的终止时间为第1000个用户使用目标应用的时间。上述操作信息可以用于指示用户对目标应用的操作。
在本实施例中,基于获取单元801所获取的操作信息,上述生成单元802可以生成频繁模式树。其中,频繁模式树的路径用于指示预设用户集合中的用户在目标时间段内对目标应用执行的操作序列。
在本实施例中,上述识别单元803可以基于生成单元802生成的频繁模式树,从上述预设用户集合中识别异常行为用户。
在本实施例的一些可选的实现方式中,上述装置800还可以包括:限制单元,被配置成对识别单元803所确定出的用户的权限进行限制。
在本实施例的一些可选的实现方式中,频繁模式树中的非根节点包括频繁项,频繁项用于指示预设用户集合中的用户在目标时间段内对目标应用执行的操作;以及,识别单元803还被配置成:对于频繁模式树中的至少一个频繁项,基于该至少一个频繁项中的每个频繁项执行如下步骤:响应于频繁模式树中存在包括该频繁项的目标节点,生成该频繁项的条件树,其中,包括该频繁项的目标节点与频繁模式树中的根节点之间的路径的长度大于或等于预设长度阈值;基于所生成的条件树,从预设用户集合中识别异常行为用户。
在本实施例的一些可选的实现方式中,识别单元803进一步被配置成:对于所生成的条件树中的至少一个条件树,基于该至少一个条件树中的每个条件树执行如下步骤:基于该条件树包括的频繁项和频繁项对应的支持度,生成该条件树对应的路径,其中,条件树对应的路径中的节点包括频繁项和频繁项对应的支持度,条件树对应的路径指示的节点序列按照包括的支持度降序的顺序排列;从该条件树对应的路径中,提取与该条件树对应的路径的起始节点相同并且长度大于或等于预设长度阈值的子路径;以及,识别单元803进一步还被配置成:从所提取的子路径中,确定终节点包括的支持度最大的路径,作为目标路径;从预设用户集合中的、执行过目标路径指示的操作序列中的各个操作的用户中,识别异常行为用户。
在本实施例的一些可选的实现方式中,识别单元还被配置成:将预设用户集合中执行过目标路径指示的操作序列中的各个操作的用户作为目标用户集合,将目标路径指示的操作序列作为目标操作序列,将目标用户集合中的用户执行目标操作序列中的各个操作的时间段作为目标期间,预测目标用户集合中的用户在目标期间执行过目标操作序列中的各个操作的概率;响应于概率小于或等于预设概率阈值,将目标用户集合中的用户确定为异常行为用户。
在本实施例的一些可选的实现方式中,频繁模式树包括的频繁项的支持度大于或等于预设阈值,异常行为用户的数量大于或等于预设阈值。
在本实施例的一些可选的实现方式中,该频繁项的条件树符合以下条件:条件树中的叶节点为频繁模式树中包括该频繁项的节点;以及,条件树中的父节点包括的用户数为该父节点的各个子节点包括的用户数之和,其中,用户数指示预设用户集合中执行过该用户数所在的节点与根节点之间的路径指示的操作序列中的各个操作的用户的数量。
本公开的上述实施例提供的用于识别异常行为用户的装置,通过获取单元801获取预设用户集合中的用户在目标时间段内对目标应用执行的操作的操作信息,然后,生成单元802基于所获取的操作信息,生成频繁模式树,其中,频繁模式树的路径用于指示预设用户集合中的用户在目标时间段内对目标应用执行的操作序列,之后,识别单元803基于频繁模式树,从预设用户集合中识别异常行为用户,由此,实现了基于非连续性特征的异常行为用户的检测。此外,本公开的上述实施例提供的用于识别异常行为用户的方法,还通过生成频繁模式树,实现了基于用户执行的操作序列确定用户集合中的异常行为用户,有助于避免由于异常行为用户的操作而导致的目标应用的运行异常,异常行为用户非法、违规获利等情况的发生。
下面参考图9,其示出了适于用来实现本公开的实施例的电子设备(例如图1中的服务器或终端设备)900的结构示意图。本公开的实施例中的终端设备可以包括但不限于诸如移动电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、车载终端(例如车载导航终端)等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。图9示出的终端设备/服务器仅仅是一个示例,不应对本公开的实施例的功能和使用范围带来任何限制。
如图9所示,电子设备900可以包括处理装置(例如中央处理器、图形处理器等)901,其可以根据存储在只读存储器(ROM)902中的程序或者从存储装置908加载到随机访问存储器(RAM)903中的程序而执行各种适当的动作和处理。在RAM 903中,还存储有电子设备900操作所需的各种程序和数据。处理装置901、ROM 902以及RAM903通过总线904彼此相连。输入/输出(I/O)接口905也连接至总线904。
通常,以下装置可以连接至I/O接口905:包括例如触摸屏、触摸板、键盘、鼠标、摄像头、麦克风、加速度计、陀螺仪等的输入装置906;包括例如液晶显示器(LCD)、扬声器、振动器等的输出装置907;包括例如磁带、硬盘等的存储装置908;以及通信装置909。通信装置909可以允许电子设备900与其他设备进行无线或有线通信以交换数据。虽然图9示出了具有各种装置的电子设备900,但是应理解的是,并不要求实施或具备所有示出的装置。可以替代地实施或具备更多或更少的装置。图9中示出的每个方框可以代表一个装置,也可以根据需要代表多个装置。
特别地,根据本公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信装置909从网络上被下载和安装,或者从存储装置908被安装,或者从ROM 902被安装。在该计算机程序被处理装置901执行时,执行本公开的实施例的方法中限定的上述功能。
需要说明的是,本公开的实施例所述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开的实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开的实施例中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被该电子设备执行时,使得该电子设备:获取预设用户集合中的用户在目标时间段内对目标应用执行的操作的操作信息;基于所获取的操作信息,生成频繁模式树,其中,频繁模式树的路径用于指示预设用户集合中的用户在目标时间段内对目标应用执行的操作序列;基于频繁模式树,从预设用户集合中识别异常行为用户。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的实施例的操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开的实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的单元也可以设置在处理器中,例如,可以描述为:一种处理器包括获取单元、生成单元和识别单元。其中,这些单元的名称在某种情况下并不构成对该单元本身的限定,例如,获取单元还可以被描述为“获取预设用户集合中的用户在目标时间段内对目标应用执行的操作的操作信息的单元”。
以上描述仅为本公开的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本公开中所涉及的发明范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述发明构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本公开中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。