胡德敏 朱德福
摘要 协同过滤是推荐系统中普遍使用的一种推荐技术,然而协同推荐系统很容易遭受恶意用户的攻击。攻击者通过向系统注入大量有规律的攻击用户信息,达到人为操纵推荐系统的目的。为了检测系统中存在的攻击用户,通过研究攻击用户信息的统计特征,提出了一种基于特征分析的攻击检测算法。试验结果表明,该算法具有更高的检测率,有效缓解了推荐系统遭受托攻击操纵的问题,确保了推荐系统的可靠性。
关键词 推荐系统;协同过滤;托攻击;特征分析;攻击检测算法
DOI DOI: 10.11907/rjdk.162568
中图分类号: TP312
文献标识码: A 文章编号 文章编号: 16727800(2017)002004206
0 引言
通过生成高质量的个性化推荐结果,推荐系统能够有效帮助用户应对信息过载问题。协同过滤 [13]是目前主流的推荐技术,然而由于系统的开放性和用户的参与性,基于协同过滤的推荐系统很容易受到恶意用户攻击,尤其是在电子商务网站中,这种恶意攻击现象更加普遍。
研究表明[46],基于协同过滤的推荐系统很容易遭受到托攻击(shilling attack)影响,恶意用户通过伪造虚假的用户概貌模型,对系统实施托攻击,使系统增加或减少对某些商品的推荐频率。文献[7]第一次提到通过人工设计用户评分数据模型就可成功操控系统推荐结果的例子,文献[4]列举了一些人为操纵推荐系统的真实案例,其中包括像Amazon和eBay等知名网站。表1中的数据简略展示了托攻击操纵协同推荐系统原理,该例中用户评分等级是15分,分值越高代表用户就越喜欢某个项目。该例中项目6是目标项目,用户6是目标用户,攻击者的目的是增加系统对目标项目的预测分值,即对其实施推举攻击。在不考虑攻击用户的情况下,系统根据目标用户的历史评分和其近邻用户的历史评分,预测目标用户对目标项目的喜欢程度。若只考虑用户1到用户6之间的真实用户信息,推荐系统则倾向于给目标项目偏低的预测分值,并且不会将目标项目推荐给目标用户。但是,如果同时考虑攻击用户1到攻击用户5之间的攻击信息时,由于这些攻击用户是目标用户的相似近邻用户,并且都给予目标项目最高评分,从而系统就会倾向于给目标项目一个较高的预测评分,将项目6推荐给用户6,从而达到操纵推荐系统的目的。
如何防范和检测托攻击,提升推荐系统的健壮性和稳定性,成为近年推荐系统领域的研究热点。本文针对推荐系统托攻击检测问题展开了研究。
1 相关工作
目前该领域经常用到的技术有分类、聚类和统计学技术等。文献[8]基于统计学知识,提出了几个可用来分析攻击用户特征的统计量,通过试验评估了它们在检测托攻击中具有的潜能大小,提出了一种基于概率模型的攻击检测算法;文献[9]通过研究现存的几种不同攻击模型特性,引进了基于特定攻击模型的攻击检测方法,通过利用有监督的机器学习方法构建分类器,区分攻击用户和真实用户。但是,随着新的攻击策略出现,该方法却不能保证其检测结果精准度;文献[10]针对推荐系统中存在的托攻击现象进行了综述,总结了现有的攻击模型、攻击检测方法等相关内容,并指出了度量攻击模型性能的统计度量标准,最后指出该领域需要重点研究攻击者难以检测的问题;文献[11]研究了托攻击对基于SVD算法的推荐系统影响,在此基础上提出了一种基于SVD算法的攻击检测方法,实验表明,提出的检测算法针对随机攻击具有很高的检测率,但在平均攻击模型下的检测率却异常的低;文献[12]通过对推荐系统攻击模型的研究,提出了基于项目识别的用户概貌攻击检测算法,最终试验表明,所提出的用户概貌攻击检测算法对推举攻击的检测能力很高,但是对于核攻击的检测效果却不理想;文献[13]提出了攻击块概念,提出通过挖掘攻击块算法(MAB)来检测系统中存在的攻击块,然而在攻击检测问题上,只从理论上进行了论证,未在真实数据集上对其效果进行检验。
现有的一些攻击检测算法没有充分利用用户的统计特征,只是依赖于某一个固定特征,以此作为攻击概貌检测指标,这种单一的检测标准在应对不同攻击场景或新出现的攻击策略时,很难保证检测结果的精确度。为此,本文通过分析用户概貌的统计特征,在充分利用用户统计特征的基础上,提出了一种新颖的DegAgrOptimize攻击检测算法。该算法主要分为两个阶段:①利用用户评分模型的统计特征将所有的用户划分为真实用户集和潜在攻击用户集;②利用与其他用户的一致程度(DegAgr)这一统计特征进行优化处理,减少检测结果中真实用户的输出。通过这两个阶段的处理,保证了算法的检测率,降低了算法检测的错误率。
2 托攻击
2.1 定义
通常情况下,单个用户信息不足以改变系统的推荐结果,攻击者为了达到操纵推荐系统的目的,需要有规律地伪造大量的攻擊用户信息,联合起来对特定的目标项目进行攻击。文献[14]首次提出了攻击用户概貌的明确定义,如图1所示。一个攻击用户的概貌信息可以表示为一个 n 维评分向量, n 为系统中项目的总个数。攻击概貌一般由4部分组成,IT为攻击的目标项目,当攻击类型是推举攻击或打压攻击时会分别赋予其系统所允许的最大或最小评分,填充项目集合IF用来掩饰攻击用户,使其看起来更像是系统中的真实用户,同时填充项目集合也保证了攻击用户与系统中真实用户的近邻关系,IS是具有某种特定评分特征的项目集合,集合Iφ是攻击用户概貌中未被评分的项目。攻击概貌的不同生成策略决定了不同的攻击模型,同时也赋予攻击用户与真实用户之间不同的统计量特征。
2.2 攻击类型
文献[4]提出了两种攻击模型:随机攻击和平均攻击,并且分析了它们对基于用户和基于项目的协同过滤推荐系统性能的影响,文献[15]对目前存在的推荐系统托攻击进行了综合的调查分析,并列举了其它的攻击模型,其中包括局部攻击、喜爱/憎恶攻击和混合攻击等。随机攻击和平均攻击是现实中常见的攻击类型,因此本文主要研究这两种攻击模型的托攻击检测问题。
2.2.1 随机攻击
在随机攻击中,填充项目会被赋予随机评分值,随机值在所有用户对所有商品的平均评分值为中心的某个很小范围内随机选取。根据攻击目的不同,在推举攻击或打压攻击中分别赋予目标项目系统允许的最高或最低评分。随机攻击实施比较简单,只需要稍微了解系统数据库知识即可进行攻击。
2.2.2 平均攻击
平均攻击比随机攻击略微复杂一些,在平均攻击中每个项目的平均评分用作为填充项目的评分值。攻击用户的这种生成策略考虑了已有评分数据集的更多信息,保证了生成的攻击用户有更多的近邻用户,从而在采取协同过滤技术的推荐系统中能够影响更多用户的推荐结果。平均攻击类型的代价是需要额外的系统知识来确定评分值,即需要估计每个物品的平均得分值。在某些推荐系统中,系统会显式提供这些评分值,因此平均攻击的实施会变得更容易。已有研究结果表明[5],在平均攻击模型中,当攻击用户信息中只含有很少一部分填充項目评分的情况下,就能够对基于用户的协同推荐系统产生明显影响。在平均攻击中,攻击用户对目标项目的评分同随机攻击一样,根据攻击目的不同分别对目标项目赋予系统所允许的最高或最低评分。
3 统计量与算法描述
3.1 统计量
经过上述分析可知,为了达到人工操纵推荐系统的目的,托攻击实施者需要向系统有规律地注入大量的攻击用户信息。根据攻击用户信息的生成策略可知,攻击用户与真实用户之间存在区别,不同之处主要体现在3个方面:①对目标项目的评分;②对填充项目的评分;③由于所有的攻击用户信息采用同样的生成策略,致使攻击用户信息之间具有高度的相似性。
本文通过对攻击用户信息特征进行分析,利用攻击用户信息与真实用户信息之间统计特征的区别,提出基于特征分析的攻击检测算法,来区分系统中的真实用户和攻击用户。文献 [8]中列举的几个统计量从不同角度反映了攻击概貌有别于真实用户概貌的特征,本文主要研究用户以下3个统计特征:平均背离度(RDMA)、与其他用户的一致度(DegAgr)和平均相似度(DegSim)。
3.1.1 平均背离度
平均背离度反映了系统中某个用户的评分向量与其他用户的平均偏离程度,某一用户的平均背离度计算公式如下:RDMA = ∑ Nu i = 0 ru,i -ri NR
其中Nu是用户u评过分的项目个数,ru,i是用户 u 对项目 i 的评分, ri 是项目 i 的系统评分均值,NRi是系统中对项目 i 有过评分的用户个数。在推举攻击中,目标项目往往是那些评分较低的项目。为了达到推举攻击目的,攻击用户会赋予目标项目最高的评分值,导致攻击用户会背离系统中真实用户的评分习惯,从而使攻击用户具有较高的平均背离度。同样,在打压攻击中攻击用户会赋予目标项目最低的评分值,也会由于攻击用户对目标项目的评分习惯与真实用户背离,使得攻击用户具有较高的平均背离度。
图2给出了在随机攻击下每个用户的平均背离度分布情况,试验数据集来自MovieLens,其中编号为944至968的用户是人为注入到数据集中的攻击用户。从图1可以看出,统计量RDMA提供了一个有效检测攻击用户的指标。
3.1.2 与其他用户的一致程度
该统计量用来度量某一用户与其他用户评分的一致性程度,计算公式如下:
其中ru,i是用户 u 对项目 i 的评分, k 是用户 u 有过评分的项目个数, ri 是项目 i 获得评分的均值。在后面的试验中,从局部角度出发,计算每一个用户与其最相似的25个近邻用户之间统计值。图3给出了在随机攻击下用户统计量DegAgr的分布,其中编号为944至968的用户是人为注入到数据集中的攻击用户。试验结果发现攻击用户之间的DegAgr值在一个很小的范围内波动,几乎是相等的,这主要是因为攻击用户信息采取同样的生成策略,因此攻击用户概貌中填充项目的评分值几乎是一样的。本文提出的算法也正是利用攻击用户这一统计特征,对算法的检测结果进行了优化处理,移除检测结果中误判的真实用户,从而保证算法对攻击用户的检测率,降低检测算法的错误率。
3.1.3 平均相似度该统计量用来度量某一用户与系统中其他用户之间平均相似度的大小,计算公式如下:
其中Wu,v是根据皮尔逊相关系数计算出来的用户之间的相似性。由于皮尔逊相关系数计算时依赖用户之间共同评分的项目个数,当共同评分的项目较少时,用户之间的相似性会受到影响,对此本文对其作如下调整:
3.2 算法描述
攻击用户往往具有较高的平均背离度和平均相似度,同时具有几乎相同的评分一致度。在算法第一阶段,利用平均背离度和平均相似度这两个统计量,将所有的用户划分为攻击用户集和真实用户集,即当某个用户的平均背离度大于某个设定的阈值tr时,将其添加到可疑攻击用户集合中。同样,当某个用户的平均相似度大于某个设定阈值td时,将其添加到可疑的攻击用户集合中。经过第一阶段,可疑的攻击用户集合中会含有几乎所有的攻击用户和少量的真实用户。在算法第二阶段,利用统计量DegAgr对第一阶段得到的可疑攻击用户集进行优化处理。由于每一个攻击用户的DegAgr值几乎相同,因此可疑攻击用户集合中大部分用户的这一统计值都会集中接近于某个数值,不妨将这个数值看作众数(Mode),然后从可疑攻击用户集合中移除那些明显偏离众数的用户,偏离程度用阈值tm表示。经过上述两个阶段的处理,将最终得到的可疑攻击用户集合作为检测结果输出,算法步骤如下:
DegAgr-Optimize攻击检测算法
输入:用户评分矩阵
输出:攻击用户集合
①对于每个用户
计算该用户的 RDMA 和 DegSim 值;
②如果该用户的 RDMA 值大于设定的阈值tr或该用户的 DegSim 值大于设定的阈值td,
则将该用户添加到可疑攻击用户集合中;③对于可疑攻击用户集合中的每个用户
计算该用户的 DegAgr 值;
④计算出可疑攻击用户集合中所有用户 DegAgr 值中的众数 Mode;
⑤对于可疑攻击用户集合中的每个用户,
计算该用户的 DegAgr 值与众数 Mode 之间的偏离程度: DegAgr-Mode ,
如果差值大于设定的阈值tr,
则将该用户从可疑攻击用户集合中移除;
⑥输出可疑攻击用户集合
4 实验
4.1 数据集
实验中用到的数据集来自MovieLens,该数据集包含了943个用户对1682部电影的100,000条评分,评分等级是1-5分,分值越高表示用户对某个电影越满意,数据集中的每个用户都至少对20个电影有过评分记录。
实验在不同攻击大小和填充大小的条件下进行,攻击大小定义为注入到系统中的攻击用户数量与系统中所有用户的百分比,填充大小定义为攻击用户概貌中填充项目的个数与系统中所有项目的百分比。
4.2 算法评估标准
为评估算法的检测效果,本文采用检测率和错误率作为评定标准,定义如下:
检测率= #真正用户 #攻击用户 (5)
错误率= #假正用户 #真实用户 (6)
其中,#真正用户表示被算法准确检测出来的攻击用户个数,#攻击用户表示所有注入到数据集中的攻击用户个数,#假正用户表示被误判为攻击者的真实用户个数,#真实用户表示系统中真实用户的个数。检测率的值越大说明算法的检测能力越高,错误率越低说明算法检测结果中假正用户的个数越少,算法检测的准确率越高。
4.3 参数分析
算法中用到的参数有tr、td和tm。参数tr和td的选取依据是要保证统计量RDMA和DegSim具有较高的区分度,这样就可容易区分真实用户和攻击用户,同时也保证在算法的第一个阶段中可疑攻击用户集合尽可能包含所有的攻击用户,尽管这样做会有一小部分真实用户被误判为攻击用户,但在第二阶段的优化过程中,还是有机会将这些假正用户移除。在选定的数据集规模下,阈值tr和td选取为系统中所有用户的均值时,即可保证它们具有较高的区分度。试验中通过对所有用户统计量DegAgr的分布特点进行分析,得到当阈值tm取0.02时,即可保证算法取得较好的检测效果。
5 试验结果与分析
试验设计为2×5×5不同实验条件下的攻击场景,即攻击模型(随机攻击、平均攻击),攻击大小(1%,2%,5%,10%,15%),填充大小(1%,3%,5%,10%,25%)。
图5展示了填充大小为5%,攻击大小作为变量时的攻击检测结果。可以看出,无论在随机推举攻击还是平均推举攻击中,算法的整体检测率在96%以上,而且随着攻击大小的变化,检测结果能够稳定保持在96%~98.5%之间,体现了检测算法的稳定性。
从图6中还可看出,在攻击大小保持不变的情况下,随着攻击用户填充大小的不断增大,检测率有稳步上升趋势。这主要是因为随着攻击用户填充大小的增加,攻击用户的统计特征就越显著,攻击用户之间的规律性就越明显,致使攻击用户能容易地检测出来。
表2和表3给出了算法检测结果的错误率。实验中,虽然经过算法第一个阶段处理后,会有少量的真实用户被误认为是攻击用户,但是在第二阶段中,通过利用统计量DegAgr的优化处理,大幅度降低了真实用户的输出,从而使得检测算法的错误率保持在很小的范围内,从表2和表3可以得出算法检测的错误率在0.10%~0.25%之间。较低的错误率也反映了检测结果的准确性。
在与文献[11]的对比实验中,为确保试验结果的可比性,试验选择大小为1M的MovieLens数据集,同文献[11]中的试验参数保持一致。表4给出了在随机推举攻击下的试验对比结果,其中攻击用户的填充规模固定为2000,攻击规模作为变量。从实验结果可以看出本文的检测算法在处理更大规模的数据集时,检测率也能保持在96%,比文献[11]的检测率整体上要高出1%左右。
表5给出了在攻击用户个数固定为100,不同填充规模条件下的随机推举攻击试验结果。可以看出,当攻击用户的填充规模低于150時,文献[11]中的检测率异常低,说明当填充规模较小时,文献[11]中提出的基于SVD的检测算法并不能有效检测出数据集中存在的攻击用户;而本文的检测算法,即使在填充规模低于150时,也能获得95%的检测率,而且随着填充规模的增大,检测率有稳步上升趋势,这主要是因为随着攻击用户填充规模的不断增大,攻击用户的统计特征变得越来越突出,攻击用户之间所具有的规律性也就越显著,从而使算法能够准确检测出人为注入到数据集中的攻击用户。
通过试验分析可知,本文所提出的攻击检测算法的整体检测率能保持在95%,与文献[11]中的试验结果相比具有更高的检测率;错误率保持在0.10%-0.25%之间的一个很低范围内,确保了算法检测结果的准确性。综合评价,本文提出的攻击检测算法高效可行。
6 结语
随着推荐系统重要性的日益显现,推荐系统的健壮性和安全性问题受到高度重视。本文主要采用了统计学技术,充分研究了用户的统计特征,文中提出的DegAgrOptimize攻击检测算法综合利用了用户概貌的统计特征,并在随机攻击和平均攻击模型下验证了该算法对攻击用户的检测效果。试验结果表明,该算法能够高效检测系统中存在的攻击用户。后续工作中,将继续研究该算法在其它攻击模型下的检测效果。
参考文献:
[1] GOOD N,SCHAFER J B,KONSTAN J A,et al.Combining collaborative filtering with personal agents for better recommendations[C].Sixteenth National Conference on Artificial Intelligence and the EleventhInnovative Applications of Artificial Intelligence Conference Innovative Applications of Artificial Intelligence.American Association for Artificial Intelligence,1999:439446.
[2] HERLOCKER J L,KONSTAN J A,BORCHERS A,et al.An algorithmic framework for performing collaborative filtering[C].SIGIR '99: Proceedings of the,International ACM SIGIR Conference on Research and Development in Information Retrieval,Augus 1519,1999,Berkeley,Ca,Usa,1999:230237.
[3] HERLOCKER J L.Evaluating collaborative filtering recommender systems[J].Acm Transactions on Information Systems,2004,22(1):553.
[4] LAM S K,RIEDL J.Shilling recommender systems for fun and profit[C].International Conference on World Wide Web.ACM,2004:393402.
[5] BURKE R,MOBASHER B,BHAUMIK R.Limited knowledge shilling attacks in collaborative filtering systems[J].Proceedings of Ijcai Workshop in Intelligent Techniques for Personalization,2005(2):155164.
[6] M O MAHONY,N HURLEY,N KUSHMERICK,et al.Collaborative recommendation:arobustnessanalysis[C].ACM Transactions on Internet Technology,2004,4(4):344377.
[7] OMAHONY M P,HURLEY N J,SILVESTRE G C M.Promoting recommendations:an attack on collaborative filtering[C].International Conference on Database and Expert Systems Applications.SpringerVerlag,2002:494503.
[8] CHIRITA P A,NEJDL W,ZAMFIR C.Preventing shilling attacks in online recommender systems[C].ACM International Workshop on Web Information andData Management,2005:6774.
[9] BURKE R,MOBASHER B,WILLIAMS C,et al.Classification features for attack detection in collaborative recommender systems[C].Twelfth ACM SIGKDD International Conference on Knowledge Discovery and Data Mining,Philadelphia,Pa,Usa,August,2006:542547.
[10] ZHANG F.A survey of shilling attacks in collaborative filtering recommender systems[C].International Conference on Computational Intelligence and Software Engineering.IEEE,2009:14.
[11] ZHANG S,OUYANG Y,FORD J,et al.Analysis of a lowdimensional linear model under recommendation attacks.[C].SIGIR 2006: Proceedings of the,International ACM SIGIR Conference on Research and Development in Information Retrieval,Seattle,Washington,Usa,August.2006:517524.
[12] 高潔,邓尉,卢美莲.推荐系统中恶意攻击检测方法的实现[EB/OL].[20131223].http://www.paper.edu.cn/releasepaper/content/201312694.
[13] 瞿春燕.推荐系统内攻击块检测算法研究[D].合肥:中国科学技术大学,2015.
[14] BHAUMIK R,WILLIAMS C,MOBASHER B,et al.Securing collaborative filtering against malicious attacksthrough anomaly detection[J].Aaai Workshop on Intelligent Techniques for Web Personalization,2006(5):224231.
[15] GUNES I,KALELI C,BILGE A,et al.Shilling attacksagainst recommender systems: a comprehensive survey[J].Artificial Intelligence Review,2014,42(4):767799.
(责任编辑:杜能钢)