当前位置: 首页 > 专利查询>重庆大学专利>正文

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

技术编号:11809617 阅读:74 留言:0更新日期:2015-08-01 03:30
本发明专利技术涉及一种基于流行度分类特征的托攻击检测算法,该算法首先统计用户对项目的评分,构建用户评分矩阵;然后统计项目的项目流行度;其次确定用户流行度向量;再次计算基于流行度的分类特征值MUD,RUD和QUD;然后构建分类器,最后将新用户的用户流行度向量中的元素输入分类器中,即可判定该新用户为正常用户或虚假用户。本发明专利技术提供的检测算法,对用户类别有较好的判定效果,无论是在单纯的随机攻击、评价攻击、流行攻击或混淆技术干扰时的攻击时都有非常好的托攻击检测性能,并且计算代价低,检测时间更短。

【技术实现步骤摘要】
一种基于流行度分类特征的托攻击检测算法
本专利技术涉及信息安全领域,具体涉及一种基于流行度分类特征的托攻击检测算法。
技术介绍
推荐系统是电子商务领域中为用户选择潜在感兴趣项目的重要工具。协同过滤是推荐系统中广泛应用的一种技术,这种方法通过为目标用户寻找最相似用户作为最近邻,利用最近邻的购买信息产生推荐结果。这种工作模式在实际中十分有效,但是却容易受到托攻击(Shillingattacks)。托攻击者通过注入一定的虚假概貌成为正常用户的最近邻干扰推荐系统的推荐结果,从而增加或者减少目标项目的推荐频率,分别称为推攻击和核攻击(PushandNukeAttacks),如何防范和检测托攻击成为当前推荐系统研究领域的热点之一。如果把托攻击检测看成对正常用户与虚假用户进行分类,那么其中就涉及到分类特征的选择,即寻找一系列的特征区分这两类用户。当前使用的分类特征大多是与用户对项目评分相关的,即从正常用户与虚假用户对项目评分的方式不同入手寻找相应的检测指标,这种方式的检测手段有两个问题:(1)某些正常用户与虚假用户的评分方式类似,容易造成对此类正常用户的误判;(2)实际中的攻击大多是经过混淆的,如对目标项目不评最高(低)分而是评次高(低)分或在原始评分基础上加入一个随机数作为噪音干扰,这样当前的检测指标难以胜任托攻击方式的各种变化。
技术实现思路
针对现有技术存在的上述问题,本专利技术的目的是提供一种基于流行度分类特征的托攻击检测算法。为实现上述目的,本专利技术采用如下技术方案:一种基于流行度分类特征的托攻击检测算法,包括如下步骤:S1:设存在一个具有N个用户的用户集,该用户集中的元素由正常用户和虚假用户两种类别组成,两类用户分别使用类标签0和1进行标注,0表示正常用户,1表示虚假用户,nu为用户集的元素,表示第u个用户,u=1,2,3,...,N;用户集中所有用户评价过的项目的并集构成项目集,项目集中共有M个项目,mi为项目集的元素,i=1,2,3,...,M;获取用户集中所有用户对项目集中所有项目的历史评分数据,构建N×M的用户评分矩阵B,bui为用户评分矩阵的元素,表示第u个用户对第i个项目的评分,bui的值为评分数,如果第u个用户对第i个项目没有评分,则令bui为0;S2:统计项目集中每个项目被正常用户评价的次数,采用项目流行度表示,记为d,di表示项目mi的项目流行度;S3:根据步骤S1得到的用户评分矩阵和S2得到的项目流行度,确定用户流行度向量,方法如下:1)设用户nu对项目mi做出过评价,则定义用户nu与项目mi有联系;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),否则结束循环;S4:计算基于流行度的分类特征值,所述基于流行度的分类特征值包括用户流行度均值、用户流行度极差和用户流行度上分位点,方法如下: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'min表示用户nu的用户流行度向量Du的元素中值最小的项目流行度;3)根据公式(5)计算用户流行度上四分位数QUD:QUDu=d'k,u=1,2,3...,N(5);其中,QUDu表示nu的用户流行度上四分位数,d'k表示用户nu的用户流行度向量Du中元素按照其值由小到大排序后,处于前四分之一位置处的项目流行度;S5:根据用户的类标签及其相应的基于流行度分类特征,采用分类算法得到分类器;S6:对任何一个新用户,采用步骤S3-S4所述方法计算该新用户基于流行度的分类特征值,然后将该新用户的分类特征值输入步骤S5确定的分类器中进行分类,判定该新用户的类别。作为优化,所述步骤S5中的分类算法为决策树算法,步骤如下:S2a:由已知正常用户和虚假用户组成的所述用户集记为当前用户集S,S={n1,n2,...,nu,...,nN},用户nu的属性向量为Pu,Pu={a1u,a2u,...atu,...aLN}T,其中L=3,a1u,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的信息熵,Sv表示第v个当前用户子集,Entropy(Sv)表示前用户子集Sv的信息熵,|Sv|表示第v个当前用户子集Sv中用户的数量,|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:分类结束,输出分类器。相对于现有技术,本专利技术具有如下优点:本专利技术提供的检测算法,对用户类别有较好的判定效果,无论是在单纯的随机攻击、评价攻击、流行攻击或混淆技术干扰时的攻击时,都有非常好的托攻击检测性能,并且计算代价低,检测时间更短。附图说明图1为本专利技术方法的流程图。图2为项目流行度分布图,其中横坐标Degree表示项目流行度值,纵坐标Fraction表示频率值。图本文档来自技高网...
一种基于流行度分类特征的托攻击检测算法

【技术保护点】
一种基于流行度分类特征的托攻击检测算法,其特征在于:包括如下步骤:S1:设存在一个具有N个用户的用户集,该用户集中的元素由正常用户和虚假用户两种类别组成,两类用户分别使用类标签0和1进行标注,0表示正常用户,1表示虚假用户,nu为用户集的元素,表示第u个用户,u=1,2,3,...,N;用户集中所有用户评价过的项目的并集构成项目集,项目集中共有M个项目,mi为项目集的元素,i=1,2,3,...,M;获取用户集中所有用户对项目集中所有项目的历史评分数据,构建N×M的用户评分矩阵B,bui为用户评分矩阵的元素,表示第u个用户对第i个项目的评分,bui的值为评分数,如果第u个用户对第i个项目没有评分,则令bui为0;S2:统计项目集中每个项目被正常用户评价的次数,采用项目流行度表示,记为d,di表示项目mi的项目流行度;S3:根据步骤S1得到的用户评分矩阵和S2得到的项目流行度,确定用户流行度向量,方法如下:1)设用户nu对项目mi做出过评价,则定义用户nu与项目mi有联系;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=(d1′,d2′,d3′,...,dk′...,dGu′),]]>输出Du;10)令u=u+1;11)如果u≤N,则返回步骤3),否则结束循环;S4:计算基于流行度的分类特征值,所述基于流行度的分类特征值包括用户流行度均值、用户流行度极差和用户流行度上分位点,方法如下:1)根据公式(3)计算用户流行度均值MUD:MUDu=Σk=1Gudk′Gu,u=1,2,3...,N---(3);]]>其中,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'min表示用户nu的用户流行度向量Du的元素中值最小的项目流行度;3)根据公式(5)计算用户流行度上四分位数QUD:QUDu=d'k,u=1,2,3...,N   (5);其中,QUDu表示nu的用户流行度上四分位数,d'k表示用户nu的用户流行度向量Du中元素按照其值由小到大排序后,处于前四分之一位置处的项目流行度;S5:根据用户的类标签及其相应的基于流行度分类特征,采用分类算法得到分类器;S6:对任何一个新用户,采用步骤S3‑S4所述方法计算该新用户基于流行度的分类特征值,然后将该新用户的分类特征值输入步骤S5确定的分类器中进行分类,判定该新用户的类别。...

【技术特征摘要】
1.一种基于流行度分类特征的托攻击检测算法,其特征在于:包括如下步骤:S1:设存在一个具有N个用户的用户集,该用户集中的元素由正常用户和虚假用户两种类别组成,两类用户分别使用类标签0和1进行标注,0表示正常用户,1表示虚假用户,nu为用户集的元素,表示第u个用户,u=1,2,3,...,N;用户集中所有用户评价过的项目的并集构成项目集,项目集中共有M个项目,mi为项目集的元素,i=1,2,3,...,M;获取用户集中所有用户对项目集中所有项目的历史评分数据,构建N×M的用户评分矩阵B,bui为用户评分矩阵的元素,表示第u个用户对第i个项目的评分,bui的值为评分数,如果第u个用户对第i个项目没有评分,则令bui为0;S2:统计项目集中每个项目被正常用户评价的次数,采用项目流行度表示,记为d,di表示项目mi的项目流行度;S3:根据步骤S1得到的用户评分矩阵和S2得到的项目流行度,确定用户流行度向量,方法如下:1)设用户nu对项目mi做出过评价,则定义用户nu与项目mi有联系;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),否则结束循环;S4:计算基于流行度的分类特征值,所述基于流行度的分类特征值包括用户流行度均值、用户流行度极差和用户流行度上四分位点,方法如下: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'min表示用户nu的用户流行度向量Du的元素中值最小的项目流行度;3)根据公式(5)计算用户流行度上四分位数QUD:QUDu=d'k,u=1,2,3...,N(5);其中,QUDu表示nu的用户流行度上四分位数,d'k表示用户nu的用户流行度向量Du中元素按照其值由小到大排序后,处于前四分之一位置处的项目流行度;S5:根据用户的类标签及其相应的基于流行度分类特征,采用分类算法得到分类器;S6:对任何一个新用户,采用步骤S3-S4所述方法计算该新用户基于流行度的分类特征值,然后将该新用户的分类特征值输入步骤...

【专利技术属性】
技术研发人员:李文涛高旻田仁丽熊庆宇文俊浩梁山
申请(专利权)人:重庆大学
类型:发明
国别省市:重庆;85

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1