一种基于流行度分类特征的托攻击检测算法

文档序号:8488058阅读:139来源:国知局
一种基于流行度分类特征的托攻击检测算法
【技术领域】
[0001] 本发明涉及信息安全领域,具体涉及一种基于流行度分类特征的托攻击检测算 法。
【背景技术】
[0002] 推荐系统是电子商务领域中为用户选择潜在感兴趣项目的重要工具。协同过滤是 推荐系统中广泛应用的一种技术,这种方法通过为目标用户寻找最相似用户作为最近邻, 利用最近邻的购买信息产生推荐结果。这种工作模式在实际中十分有效,但是却容易受到 托攻击(Shillingattacks)。托攻击者通过注入一定的虚假概貌成为正常用户的最近邻干 扰推荐系统的推荐结果,从而增加或者减少目标项目的推荐频率,分别称为推攻击和核攻 击(PushandNukeAttacks),如何防范和检测托攻击成为当前推荐系统研宄领域的热点 之一。
[0003] 如果把托攻击检测看成对正常用户与虚假用户进行分类,那么其中就涉及到分类 特征的选择,即寻找一系列的特征区分这两类用户。当前使用的分类特征大多是与用户对 项目评分相关的,即从正常用户与虚假用户对项目评分的方式不同入手寻找相应的检测指 标,这种方式的检测手段有两个问题:(1)某些正常用户与虚假用户的评分方式类似,容易 造成对此类正常用户的误判;(2)实际中的攻击大多是经过混淆的,如对目标项目不评最 高(低)分而是评次高(低)分或在原始评分基础上加入一个随机数作为噪音干扰,这样 当前的检测指标难以胜任托攻击方式的各种变化。

【发明内容】

[0004] 针对现有技术存在的上述问题,本发明的目的是提供一种基于流行度分类特征的 托攻击检测算法。
[0005] 为实现上述目的,本发明采用如下技术方案:一种基于流行度分类特征的托攻击 检测算法,包括如下步骤:
[0006]S1:设存在一个具有N个用户的用户集,该用户集中的元素由正常用户和虚假用 户两种类别组成,两类用户分别使用类标签〇和1进行标注,〇表示正常用户,1表示虚假用 户,nu为用户集的元素,表示第u个用户,u= 1,2, 3,...,N;用户集中所有用户评价过的项 目的并集构成项目集,项目集中共有M个项目,mi为项目集的元素,i= 1,2, 3,...,M;
[0007] 获取用户集中所有用户对项目集中所有项目的历史评分数据,构建NXM的用户 评分矩阵B,bui为用户评分矩阵的元素,表示第u个用户对第i个项目的评分,b&的值为评 分数,如果第u个用户对第i个项目没有评分,则令匕为0 ;
[0008]S2:统计项目集中每个项目被正常用户评价的次数,采用项目流行度表示,记为 d,屯表示项目m满项目流行度;
[0009]S3 :根据步骤S1得到的用户评分矩阵和S2得到的项目流行度,确定用户流行度向 量,方法如下:
[0010] 1)设用户nu对项目mi做出过评价,则定义用户nu与项目m廣联系;
[0011] 2)令u= 1 ;
[0012] 3)i遍历其取值,所有与用户nu有联系的项目构成联系项目集,联系项目集中共有 Gu个元素,guk为联系项目集的元素,其表示第k个与用户nu有联系的项目;
[0013] 4)设k=l;
[0014] 5)确定项目集中与项目guk相应的项目,然后调用S2中该项目的项目流行度作为 guk的项目流行度d' k;
[0015] 6)保存与用户nu有联系的项目guk的项目流行度d' k;
[0016] 7)令k=k+l;
[0017] 8)如果k彡Gu,则返回步骤5),否则执行下一步;
[0018] 9)与用户nu有联系的所有项目的项目流行度形成一个一维向量Du,记向量Du为 用户流行度向量,^
【主权项】
1. 一种基于流行度分类特征的托攻击检测算法,其特征在于:包括如下步骤: 51 :设存在一个具有N个用户的用户集,该用户集中的元素由正常用户和虚假用户两 种类别组成,两类用户分别使用类标签0和1进行标注,0表示正常用户,1表示虚假用户, nu为用户集的元素,表示第u个用户,u= 1,2, 3,. ..,N;用户集中所有用户评价过的项目 的并集构成项目集,项目集中共有M个项目,mi为项目集的元素,i= 1,2, 3,...,M; 获取用户集中所有用户对项目集中所有项目的历史评分数据,构建NXM的用户评分 矩阵B,bui为用户评分矩阵的元素,表示第u个用户对第i个项目的评分,bui的值为评分 数,如果第u个用户对第i个项目没有评分,则令buiS0 ; 52 :统计项目集中每个项目被正常用户评价的次数,采用项目流行度表示,记为d,屯表 示项目1^的项目流行度; 53 :根据步骤S1得到的用户评分矩阵和S2得到的项目流行度,确定用户流行度向量, 方法如下: 1) 设用户nu对项目mi做出过评价,则定义用户nu与项目m1有联系; 2) 令u= 1 ; 3. i遍历其取值,所有与用户nu有联系的项目构成联系项目集,联系项目集中共有Gu个 元素,guk为联系项目集的元素,其表示第k个与用户nu有联系的项目; 4) 设k= 1 ; 5) 确定项目集中与项目guk相应的项目,然后调用S2中该项目的项目流行度作为guk 的项目流行度d'k; 6) 保存与用户nu有联系的项目guk的项目流行度d' k; 7) 令k=k+1 ; 8) 如果k<Gu,则返回步骤5),否则执行下一步; 9) 与用户nu有联系的所有项目的项目流行度形成一个一维向量Du,记向量Du为用户 流行度向量,输出Du; 10) 令u=u+1 ;
11) 如果u<N,则返回步骤3),否则结束循环; 54 :计算基于流行度的分类特征值,所述基于流行度的分类特征值包括用户流行度均 值、用户流行度极差和用户流行度上分位点,方法如下: 1) 根据公式(3)计算用户流行度均值MUD:
其中,MUDU表示用户nu的用户流行度均值,d'k表示用户nu的用户流行度向量Du中的 元素,Gu表示与用户nu有联系的项目的总数; 2) 根据公式(4)计算用户流行度极差RUD: RUDU=d,max-d,min,u= 1,2, 3. ??,N(4); 其中,RUDU表示用户nu的用户流行度极差,d'max表示用户nu的用户流行度向量Du的 元素中值最大的项目流行度,d'^表示用户nu的用户流行度向量Du的元素中值最小的项 目流行度; 3)根据公式(5)计算用户流行度上四分位数QUD: QUDU=d,k,u= 1,2, 3. ??,N(5); 其中,QUDU表示nu的用户流行度上四分位数,d'k表示用户nu的用户流行度向量Du中 元素按照其值由小到大排序后,处于前四分之一位置处的项目流行度; 55 :根据用户的类标签及其相应的基于流行度分类特征,采用分类算法得到分类器; 56 :对任何一个新用户,采用步骤S3-S4所述方法计算该新用户基于流行度的分类特 征值,然后将该新用户的分类特征值输入步骤S5确定的分类器中进行分类,判定该新用户 的类别。
2.如权利要求1所述的基于流行度分类特征的托攻击检测算法,其特征在于:所述步 骤S5中的分类算法为决策树算法,步骤如下: S2a:由已知正常用户和虚假用户组成的所述用户集记为当前用户集S,S= {n"n2, ? ? ?,nu, ? ? ?,%},用户nu的属性向量为PU,PU= {alu,a2u, ? ? ?atu, ? ? ?aLN}T,其中L= 3, alu,a2u和a3u分别表不MUDu,RUDU和QUDu; S2b:采用连续属性离散化的方法,对当前用户集S中所有用户的属性向量中的元素进 行处理,经过处理后,所有用户的每个属性根据其值被分箱分为V个子区间; S2c:以属性MUD为根节点,根据当前用户集S中用户的MUD值将用户分到V个子区间 中,形成V个当前用户子集; 以属性RUD为根节点,根据当前用户集S中用户的RUD值将用户分到V个子区间中,形 成V个当前用户子集; 以属性QUD为根节点,根据当前用户集S中用户的QUD值将用户分到V个子区间中,形 成V个当前用户子集; S2d:根据公式(6)至(10)计算当前用户集S在每个属性下的信息增益率:
其中,At,t= 1,2, 3,At表示属性,GainRatio(S,At)表示当前用户集S在属性At下的 分类信息增益率,Gain(S,At)表示当前用户集S在属性At下的分类信息增益,Entropy(S) 表示当前用户集S的信息j:商,Sv表示第v个当前用户子集,Entropy(Sv)表示前用户子集Sv 的信息熵,|SV|表示第v个当前用户子集\中用户的数量,|S|表示当前用户集S中用户 的数量,Z表示当前用户集S中正常用户的数量,J表示当前用户集S中虚假用户的数量,Zv 表示第v个当前用户子集Sv中正常用户的数量,Jv表示第v个当前用户子集Sv中虚假用户 的数量; S2f:选择以信息增益率最大的属性为根节点将当前用户集S分成的V个当前用户子 集; S2g:判断每个当前用户子集中用户的数量和类别: 如果每个当前用户子集中用户的数量等于1或0,或者每个当前用户子集中用户的类 标签相同时,执行步骤S2i;否则执行下一步; S2h:v遍历其取值,v= (1,2, 3,. . .,V),v每取一个值,将第v个当前用户子集作为当 前用户集S,更新当前用户集S,并执行步骤S2c至步骤S2g所述的方法; S2i:分类结束,输出分类器。
【专利摘要】本发明涉及一种基于流行度分类特征的托攻击检测算法,该算法首先统计用户对项目的评分,构建用户评分矩阵;然后统计项目的项目流行度;其次确定用户流行度向量;再次计算基于流行度的分类特征值MUD,RUD和QUD;然后构建分类器,最后将新用户的用户流行度向量中的元素输入分类器中,即可判定该新用户为正常用户或虚假用户。本发明提供的检测算法,对用户类别有较好的判定效果,无论是在单纯的随机攻击、评价攻击、流行攻击或混淆技术干扰时的攻击时都有非常好的托攻击检测性能,并且计算代价低,检测时间更短。
【IPC分类】G06F17-30, G06F21-55
【公开号】CN104809393
【申请号】CN201510238156
【发明人】李文涛, 高旻, 田仁丽, 熊庆宇, 文俊浩, 梁山
【申请人】重庆大学
【公开日】2015年7月29日
【申请日】2015年5月11日
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1