首页> 中国专利> 一种基于变长序列模式挖掘的用户异常行为检测方法

一种基于变长序列模式挖掘的用户异常行为检测方法

摘要

本发明提供一种基于变长序列模式挖掘的用户异常行为检测方法,包括用户正常行为训练阶段和用户异常行为检测阶段,其中:用户正常行为训练阶段包括:步骤一、对数据库中用户正常行为日志数据进行预处理,以获取多个用户正常行为变长序列流;步骤二、根据多个用户正常行为变长序列流中每个用户正常行为变长序列流及其出现的次数,构建生成用户正常行为模式;用户异常行为检测阶段包括:步骤一、将待检测的用户行为在线数据生成多个变长序列;步骤二、将变长序列与所述用户的正常行为模式中的各变长序列流进行匹配对比,以判断待检测的用户行为变长序列是否为异常用户行为数据。该方法可以实现在线异常检测,可以准确描述用户的复杂行为。

著录项

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-11-27

    授权

    授权

  • 2016-01-20

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20150820

    实质审查的生效

  • 2015-12-23

    公开

    公开

说明书

技术领域

本发明实施例涉及数据分析技术领域,尤其涉及一种基于变长序列模式挖 掘的用户异常行为检测方法。

背景技术

互联网的迅猛发展催生了电子商务的繁荣,其中虚拟资产交易的增长尤为 迅速。目前,我国已经开展了基于eID的网域空间虚拟资产管理与保全技术研 究,实现对虚拟资产的规范统一管理。虚拟资产保全系统全面准确的记录了对 虚拟资产的各种操作,但如何从这些记录数据中间挖掘出异常的用户交易行为 仍然面临诸多挑战。针对网络虚拟资产交易信息规模巨大,增长速度非常快的 特点,自动地从海量的虚拟资产交易信息中发现以及预测用户异常行为,从而 对已经发生以及可能发生的犯罪行为进行有效的检测显得极为迫切。

现在用户行为的异常检测方法中对离线分析研究的较多,如基于聚类和基 于分类的异常发现技术,离线分析即是针对历史数据进行分析,如果发现异常 数据,那么再对异常数据进行追溯,找到异常源头。离线异常检测存在时效性 很低等问题。而在线分析方法研究较少,现存的一些在线分析方法存在检测准 确率低、不能准确描述用户的复杂行为等问题。

发明内容

本发明提供的一种基于变长序列模式挖掘的用户异常行为检测方法,可以 实现快速高效的在线检测用户异常行为,解决现有技术只能离线分析导致不能 准确描述用户复杂行为的问题。

本发明提供的一种基于变长序列模式挖掘的用户异常行为检测方法,包括 用户正常行为训练阶段和用户异常行为检测阶段,其中:

所述用户正常行为训练阶段包括:

步骤一、对数据库中用户正常行为日志数据进行预处理,以获取多个用户 正常行为变长序列流;

步骤二、根据所述多个用户正常行为变长序列流中每个用户正常行为变长 序列流及其出现的次数,构建生成用户正常行为模式;

所述用户异常行为检测阶段包括:

步骤一、将待检测的用户行为在线数据生成多个变长序列;

步骤二、将所述变长序列与所述用户的正常行为模式中的各变长序列流进 行匹配对比,以判断待检测的用户行为变长序列是否为异常用户行为数据。

进一步地,在上述技术方案的基础上,在所述用户正常行为训练阶段还包 括:

在由每个用户正常行为变长序列流及其出现的次数构建生成用户正常行为 模式的基础上,计算每个用户正常行为变长序列流的IDF值,并根据所述IDF 值更新所述用户正常行为模式以获取优化的用户正常行为模式。

进一步地,在上述技术方案的基础上,在所述用户正常行为训练阶段对数 据库中用户正常行为日志数据进行预处理时只对用户正常行为日志数据中的 数据概要进行预处理;

相应地,在所述用户异常行为检测阶段将待检测的用户行为在线数据生成 多个变长序列时,也只针对待检测的用户行为在线数据的数据概要生成多个变 长序列。

进一步地,在上述技术方案的基础上,所述数据概要包括用户ID、商品 ID、商品类别以及操作类型。

进一步地,在上述技术方案的基础上,在所述用户异常行为检测阶段判断 待检测的用户行为变长序列是否为异常用户行为数据时,还包括:

设置一预定IDF阀值;

计算待检测的各用户行为变长序列的IDF值,若低于所述预定IDF阀值时, 则将此用户行为变长序列删除以省略对此用户行为变长序列的判断。

进一步地,在上述技术方案的基础上,还包括:

根据用户行为变长序列中不同序列长度而对应设置不同的预定IDF阀值, 判断时当所有判决值均大于其对应长度的IDF值时判断为用户正常行为。

和现有技术相比,本发明提供的一种基于变长序列模式挖掘的用户异常行 为检测方法,首先通过在离线系统中使用用户的历史行为数据建模计算出用户 的正常行为模式,最后在在线系统中提取用户的当前行为模式与数据库中的正 常行为模式进行匹配看当前行为是否异常,可以实现在线检测用户异常行为, 提高了检测用户异常行为的准确性和实时性。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描 述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出 创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1为本发明提供的基于变长序列模式挖掘的用户异常行为检测方法的实 施例一的流程图;

图2为本发明提供的基于变长序列模式挖掘的用户异常行为检测方法的实 施例二的流程图;

图3为本发明提供的基于变长序列模式挖掘的用户异常行为检测方法的实 施例三的流程图。

具体实施方式

为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明 实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然, 所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中 的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其 他实施例,都属于本发明保护的范围。

实施例一

图1为本发明提供的基于变长序列模式挖掘的用户异常行为检测方法的实 施例的流程图,如图1所示,该方法包括两个阶段,分别是:

第一阶段1:用户正常行为训练阶段,该阶段主要是在离线系统中使用用户 的历史行为数据建模计算出用户的正常行为模式;

第二阶段2:用户异常行为检测阶段,该阶段主要是在在线系统中提取用户 的当前行为模式与数据库中的正常行为模式进行匹配看当前行为是否异常。

具体地,在用户正常行为训练阶段包括以下步骤:

步骤11、对数据库中用户正常行为日志数据进行预处理,以获取多个用户 正常行为变长序列流;此步骤中,优选地,在所述用户正常行为训练阶段对数 据库中用户正常行为日志数据进行预处理时只对用户正常行为日志数据中的数 据概要进行预处理;

步骤12、根据所述多个用户正常行为变长序列流中每个用户正常行为变长 序列流及其出现的次数,构建生成用户正常行为模式。

具体地,在用户异常行为检测阶段包括以下步骤:

步骤21、将待检测的用户行为在线数据生成多个变长序列;

相应地,此步骤中优选地,在所述用户异常行为检测阶段将待检测的用户 行为在线数据生成多个变长序列时,也只针对待检测的用户行为在线数据的数 据概要生成多个变长序列。

步骤22、将所述变长序列与所述用户的正常行为模式中的各变长序列流进 行匹配对比,以判断待检测的用户行为变长序列是否为异常用户行为数据。

在所述用户正常行为训练阶段对数据库中用户正常行为日志数据进行预处 理时只对用户正常行为日志数据中的数据概要进行预处理。

实施例二

图2为本发明提供的基于变长序列模式挖掘的用户异常行为检测方法的实 施例二的流程图,如图2所示,实施例二在实施例一的基础上,进一步地,在 所述用户正常行为训练阶段还包括:

步骤15、在由每个用户正常行为变长序列流及其出现的次数构建生成用户 正常行为模式的基础上,计算每个用户正常行为变长序列流的IDF(Inverse DocumentFrequency)值,并根据所述IDF值更新所述用户正常行为模式以获取 优化的用户正常行为模式。IDF值反映了一个序列的重要性,某一短序列的IDF 值越高,说明该序列对用户越重要,其辨识度越高,即通过此序列更能区分当 前用户和其他用户;IDF值越低,说明该序列对用户越不重要,其辨识度越低。

实施例三

图3为本发明提供的基于变长序列模式挖掘的用户异常行为检测方法的实 施例三的流程图,如图3所示,本实施例在上述实施例的基础上,在用户异常 行为检测阶段用户异常行为检测阶段判断待检测的用户行为变长序列是否为 异常用户行为数据时,还包括:

步骤22、计算待检测的各用户行为变长序列的IDF值,若低于所述预定 IDF阀值时,则将此用户行为变长序列删除以省略对此用户行为变长序列的判 断。此步骤可以筛选很多不必要的检测,提高检测效率。且进一步地,还可以 根据用户行为变长序列中不同序列长度而对应设置不同的预定IDF阀值,判断 时当所有判决值均大于其对应长度的IDF值时判断为用户正常行为。进一步精 确定位用户行为变长序列,提供检测精度。

上述任意实施例首先通过在离线系统中使用用户的历史行为数据建模计算 出用户的正常行为模式,最后在在线系统中提取用户的当前行为模式与数据库 中的正常行为模式进行匹配看当前行为是否异常,可以实现在线检测用户异常 行为,与现有检测方法相对,提高了检测用户异常行为的准确性和实时性。

实施例四

下面采用上述实施例提供的方法,以用户操作虚拟资产的网上操作行为为 例对该实施例提供的方法进行详细解释和说明。

一、用户正常行为训练阶段:

可分为以下三个主要步骤:对数据库中的用户正常行为日志数据进行预处 理、提取用户正常行为模式以及计算每个用户正常行为模式中每个序列的IDF 值优化更新用户正常行为模式。

(1)对数据库中的用户正常行为日志数据进行预处理。

在一般虚拟资产的用户行为日志数据字段中,一般包括:用户ID、操作 类型、相关商品ID、相关商品类别、操作时间等(实际数据会更复杂,这里 只以这些关键字段为例,而且在本发明中不考虑用户的静态属性——如IP地 址等,只考虑用户的行为数据)。如下表1所示,为某一个用户在一个小时内 的行为操作数据,示例数据中Type=1表示操作类型为浏览(只考虑四种操作 类型:1-浏览,2-收藏,3-加入购物车,4-下订单)。预处理阶段可分为两个主 要步骤:

(a)根据数据库中所有用户的行为数据,构造出User-Item矩阵,矩阵中 第i行第j列的元素aij表示Useri对Itemj的累积积分,具体积分规则为:当Useri对Itemj的操作类型为1时,aij加0.1;当Useri对Itemj的操作类型为2时,aij加0.5;当Useri对Itemj的操作类型为3时,aij加0.8;当Useri对Itemj的操作 类型为4时,aij加1。得到User-Item矩阵之后,可以计算出任意两个商品之间 的相似度,本发明中使用余弦相似度计算两个商品之间的相似度,具体如下公 式一所示,其中n为用户个数,mitem为商品数量。

公式一:

Simitem(Itemj1,Itemj2)=Σi=0naij1*aij2Σi=0naij12*Σi=0naij22,j1,j2=1,2,3...mitem

类似地,也可以构造出User-Category矩阵,矩阵中第i行第j列的元素bij表示Useri对Categoryj的累积积分。也可以根据User-Category矩阵计算出任意 两个商品类型的相似度。具体公式如下公式二所示,其中n为用户个数, mcategory为商品。

公式二:

Simcategory(Categoryj1,Categoryj2)=Σi=0nbij1*bij2Σi=0nbij12*Σi=0nbij22,j1,j2=1,2,3...mcategory

(b)设定义的变长序列的长度集合为K={k(1),k(2)…k(W)},其中k(i)表示第 i种变长序列的长度,且k(1)<k(2)<···<k(W),这里W表示序列长度的种类数, 当W确定的情况下,K也有多种不同的选择,例如当W=4时,K可以为{2,3,4,5}, 也可以为{2,5,7,10}或其他组合。这里值得注意的是,W和K对检测性能都有直 接的影响,W越大,计算成本和存储成本越大;当W确定时,K(i)越大,计算 成本和存储成本也越大。与此同时,W越大,能挖掘出的用户行为模式就越多 样化,模型的表示能力也就越强。

定义1:设某一个用户的所有的行为数据为D={d1,d2,d3…dr},di为按时间顺 序排列的用户的第i条记录,该用户共r条记录。分别用S1、S2、S3···SW表示 由D生产的W个序列长度分别为k(1),k(2),k(3)···k(n)的行为序列流,其中Si包含r-k(i)+1个行为序列。S={S1,S2,S3···SW}即为用户的行为变长序列流。

定义2:用户的行为变长序列流S中的元素其中 即表示以用户第j条记录为起点、以第j+k(i)-1条 记录为终点的一个行为序列。中元素:

sj+l=(typej+l,Simitem(Itemj,Itemj+l),Simcategory(Categoryj,Categoryj+l)),其中 typej+l为用户的第j+l记录的操作类型(1,2,3,4),Simitem(Itemj,Itemj+l)为第j条记 录的相关商品与第j+l条记录的相关商品两者之间的相似度, Simcategory(Categoryj,Categoryj+l)为第j条记录的相关商品类别和第j+l条相关商 品类别两者之间的相似度。

这里Simitem(Itemj,Itemj+l)、Simcategory(Categoryj,Categoryj+l)均采用四舍五 入的方式保留一位小数点。

值得注意的是,由上述定义可知,任何一个行为序列中的第一个元素, 即sj,均为(typej,1.0,1.0)。表1中的示例数据根据定义可转化为如表2所示的 11个长度为5个序列。

表1用户51816656行为数据示例

表2长度为5的序列流

(2)提取用户正常行为模式

经过第(1)步的数据预处理,得到用户的规范化的行为序列流 S={S1,S2,S3···SW}。针对每一个长度的序列提 取其中的频繁项集。

定义3:一个长度为k(i)的序列在Si中出现的次数除以Si中序列总个数表 示序列在Si中的支持度,其描述了序列在Si中的出现概率。

公式三:

Support(S+i)=number(S+i)/(r-k(i)+1),

其中表示序列在Si中出现的次数。

定义4:当某个序列的支持度大于或等于其序列长度所对应的最小支持度 时,称之为频繁序列模式。

设置W个最小支持度:minsup(1),minsup(2),minsup(3)…minsup(W)。其中minsup(i) 是针对序列长度为k(i)(1<i<W)的序列流设置的一个最小支持度,并且考虑到 长序列模式对短序列模式的相容性,minsup(1)≥minsup(2)≥…≥minsup(W)。

对用户行为序列流S={S1,S2,S3···SW}进行计算,提取其中的频繁模式。对 于1<i<W,将Si中支持度大于或等于minsup(i)的序列提取出来,构成长度为k(i) 的频繁序列模式Profilei。最后,将W个Profilei及Profilei中每个频繁序列对应 的存储起来,构成用户的正常行为模式:Profile={(Profile1,number1), (Profile2,number2),(Profile3,number3)…(ProfileW,numberW)},其中: Profilei={P1i,P2i,P3i,...Pp(i)i},numberi={number(P1i),number(P2i),number(P3i)...number(Pp(i)i)},p(i)r-k(i)+1.

(3)计算每个用户正常行为模式中每个序列的IDF值,优化更新正常行为 模式

定义5:用户的某一个序列长度的频繁模式Profilei(1<i<W)中,对任意一 序列用户总数除以正常行为模式中包含序列的用户个数并取对数,称之 为的IDF(InverseDocumentFrequency)值。即:

公式四:

IDF(Pji)=log|user||{j:PjiProfileuserj}|,

其中,|user|为用户总数量,为用户userj提取到的正常行为模式, 为提取到正常行为模式中包含序列的用户个数。

根据上述两个定义,对步骤(2)中得到的用户正常行为模式: Profile={(Profile1,number1),(Profile2,number2),(Profile3,number3)…(ProfileW,numberW)},进 行进一步计算,计算Profile中每个序列IDF值,得到:

IDFi={IDF(P1i),IDF(P2i),IDF(P3i)...IDF(Pp(i)i)}.

最后,对步骤(2)中得到正常行为模式Profile进行更新,得到最终的用 户正常行为模式:

Profile={(Profile1,IDF1),(Profile2,IDF2),(Profile3,IDF3)…(ProfileW,IDFW)}。

二、用户异常行为检测阶段:

设滑动窗口大小为e,从用户当前行为所流入在线检测系统中的第一条操 作行为数据开始,详细检测步骤如下:

(1)将待检测的用户行为在线数据提取数据概要。

对流入滑动窗口的数据进行数据概要提取,只留下关键字段数据,在本发 明中只考虑用户的行为数据,不考虑用户的静态属性信息,所以,只留下用户 ID、相关商品ID、相关商品类别、操作类型这四个字段关键数据。

(2)生成变长序列。

设用户当前行为所流入在线检测系统的行为操作数据为第条数据,即此 时在线检测系统中拥有用户条数据(包括当前时刻流入的第条数据),表示 为按时间排序,为用户当前行为进入的第一条行为操 作数据,为最近一条行为操作数据。

当时,按照训练阶段步骤(1)中所述,将转换成变长序列 流其中是序列长度为k(i)的序列流: Si={Sk(i)i,Sk(i)+1i,Sk(i)+2i...Sri},其中Sji={sj-k(i)+1,sj-k(i)+2...sj-1,sj},即表示以用 户第j条记录为终点、以第j-k(i)+1条记录为起点的一个行为序列。

值得注意的是,在训练阶段利用用户所有行为数据产生变长序列时采用的 是滑动窗口向前截取的方式;而在检测阶段,因为数据是不断地流入滑动窗口 的,所以采用的是滑动窗口向后截取的方式,这样更符合逻辑并且有利于实时 检测。

(3)对当前行为生成的W个变长序列与用户正常行为模式进行匹配。

将步骤(2)得到的当前行为序列流中的所有序列与数据 库中的用户正常行为模式Profile={(Profile1,IDF1),(Profile2,IDF2),(Profile3, IDF3)…(ProfileW,TFW,IDFW)}中的Profilei(1<i<W)进行匹配,如果匹配成功,则视此 短序列为正常行为模式序列,并记同时获取所匹配到的序列在 Profile中对应的IDF值;若匹配不成功,则视此短序列为异常行为模式序列, 同时两个相应的值均为0。具体可以为公式五、公式六所示:

公式五:

calss(Sji)=0ifSjiProfilei(1<i<W)1ifSjiProfilei(1<i<W);

公式六:

IDFResult(Sji)=0ifSjiProfilei(1<i<W)valueidfifSjiProfilei(1<i<W)

其中,valueidf指的是所匹配到的序列在Profile中相应的IDF值。

(4)判决值的计算。在进行判决时,需要关注到两个关键性的问题: 异常用户可能在短时间内行为跟正常用户的正常行为模式没有太大差别,但在 较长时间段内所表现的行为特征通常会与正常用户的正常行为模式差别较大; 正常用户可能在短时间内行为产生波动,使其行为偏离了训练得到的正常行为 模式,但在较长时间段内所表现的行为特征会与正常行为模式比较吻合。

考虑到上面两点,使用通过窗口平滑的方法来得到判决值。具体为:将滑 动窗口中所有短序列匹配所得到的结果:

{class(Sj-e+1i),class(Sj-e+2i),class(Sj-e+3i)...class(Sji)}求平均值,即:

公式七:

Di(j)=1eΣl=j-e+1jclass(Sli),

Di(j)表示为用户本次行为流进在线检测系统的第j条数据对应的判决值, 其反映了以为终点的e个行为操作短序列中正常行为模式序列的比例,其中 由此也显然可知当用户本次行为执行完第e+k(W)-1个行为操 作后,即用户本次行为第e+k(W)-1条数据流入滑动窗口之后,在线检测系统才 对其行为做第一次判决。可以注意到,滑动窗口e的大小对检测性能有很大的 影响,e越大,越能有效地解决上述提到的两个关键问题,即检测准确率会越 高;e越小,则用户需要非常多的行为操作之后才会被在线检测系统判决是否 异常,这会使得系统实时性降低很多,甚至可能用户已经下线了系统还没有开 始对其行为作出判决。

又考虑到正常行为模式库中一些行为模式IDF值比较低,即其辨识度比较 低,表现为很大一部分用户都有这种行为模式,所以当某用户的当前行为与正 常行为模式库中的这种IDF值比较低的行为模式匹配成功时,不能相信这次行 为是由合法用户产生的,当然也不能相信这次行为是非法用户产生的。本发明 处理这个问题的方案是:将这种IDF值低于某个设定阈值的行为序列略过,不 作为判决依据,即不参与到Di(j)的计算。具体操作步骤如下:

I:将将滑动窗口中所有短序列匹配所得到的结果:

{class(Sj-e+1i),class(Sj-e+2i),class(Sj-e+3i)...class(Sji)}记为对中出现 的所有短序列判断其在Profile中对应的IDF值,若其IDF值小于阈值Thresholdidf, 则将该短序列在中删除;

II:计算判决值,采用以下公式:

公式八:

Di(j)=Di(j-1)ifClassji.size=0,j>e+k(W)-11Classji.sizeΣl=0Classji.sizeClassji(l)ifClassji.size>0,

其中,为中短序列的个数;为中第个短序列。当j=e+k(W)-1时,若则不计算第 e+k(W)-1次操作所对应的判决值,即用户当前行为进行了e+k(W)-1操作之 后检测系统依然不对其进行判决,检测系统等待新的操作数据流入,直至出现 不为0才开始判决。

(5)对用户当前行为进行判决。

针对不同长度的序列流产生的判决值D1(j),D2(j)...DW(j),分别设置不同的 阈值ThresholdD1,ThresholdD2...ThresholdDW(0ThresholdDi1),当成立,即W个判决值均大于对应的阈值时,则把当前用户 行为判断为正常行为;否则,将当前行为判断为异常行为。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其 限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术 人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者 对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相 应技术方案的本质脱离本发明各实施例技术方案的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号