问题定义:
现有的一些推荐算法,特别是协同过滤推荐算法,它们容易受到外界认为攻击的影响,例如在Amazon上,有些用户刻意地对自己的商品评高分,而对竞争对手的商品评低分,这样一来,Amazon的推荐系统就更容易推荐这些人的商品,而其他人的商品就很难被推荐。这就有点像在google搜索引擎里面,有些用户通过特定的方式来提高自己网站的pagerank值。到目前为止,这种攻击有很多种,针对不同的算法有不同的攻击,本章节就是主要讨论攻击的种类,评价指标以及推荐算法在受到这些攻击时候的表现情况。
问题描述:
图1 攻击框架
攻击框架首先我们来看一下传统的推荐系统攻击的框架,如图1所示。图1中展示了两种攻击类型,一种是高效的攻击,另一种是非高效的攻击。这两种攻击都有一个可检测区域,即图中的阴影部分。一般来说,非高效的攻击不容易被检测出来,但是它们对推荐系统的影响往往比较小,因此我们的主要精力应该放在如何检测和防范高效的攻击。
名词描述 Attack profile:攻击者伪造的用户
Product push:提高某些商品的推荐概率
Product nuke:降低某些商品的推荐概率
High-acknowledge attack:这种攻击要求攻击者了解系统的信息,例如系统使用的算法,评分的分布情况,商品的平均分。这种攻击方法成本较高。
Low-acknowledge attack:这种攻击方法就不需要太多的系统信息。
Inform attack:这种方式就更高级了,攻击者不但知道了许多系统的信息,而且对系统使用的算法非常了解,这样他们就针对系统的推荐算法采取特定的攻击。
示例:
图2 攻击示例
图2展示了一个攻击示例,假设我们现在要决定是否向用户h推荐商品7。如果系统中只有那些合法用户,即用户a-g,通过上表我们发现用户a和f与用户h的品味比较相似,由于用户a和f都喜欢商品7,那么系统应该把商品7推荐给用户h。以上情况是我们没有考虑那些攻击者的行为,如果我们考虑他们的行为,我们发现,大多数攻击者(用户i-m)的品味都与用户h相似,并且他们对商品7都给了负面的评价,那么在这种情况下,系统就不会把商品7推荐给用户h,这样一来,就达到了那些攻击者的目的,即product nuke。
攻击类型 Basic attack
1) 随机攻击
在这个模型中,那些伪造的用户对特定的商品评最高分(push)或者最低分(nuke),而对其他的商品随机的评分。这种攻击方式要求的信息量比较少,但是攻击效果也不是很好。
2) 平均值攻击
与随机攻击类似,伪造用户对特定的商品评最高分或者最低分,不同的是,这些伪造用户对其他的商品评分值等于该商品的其他用户对这个商品的平均评分值。
Low-acknowledge attack
3)Bandwagon攻击
这种攻击的主要原理是将目标商品与那些少量的热销商品绑定在一起,由于那些热销的商品具有大量的用户群体,那么这些目标商品也就很容易被推荐出去。
4)Segment攻击
这种攻击的主要原理是将目标商品推荐给那些特定的用户群体。一般情况下,攻击者都比较了解这些用户群体,另外通过一些特定的方式,推荐系统也容易将那些目标商品推荐给这些用户。例如,攻击者可以将那些恐怖片推荐给喜欢恐怖片的用户,而这些用户的信息都是被攻击者所掌控的,攻击者往往将目标商品与这些用户都喜欢的热销商品绑定在一起,因此推荐算法就很容易把目标商品推荐给这些用户群体。
Nuke attack
5)love/hate攻击
这种攻击方式很简单,就是给那些目标商品评最高分,而给那些需要过滤的商品评最低分。这种攻击方式需要的信息量非常少,但是这种攻击对于基于用户的协同过滤算法来说,非常有效。
6)Reverse Bandwagon攻击
这种攻击方式是Bandwagon攻击的一个变种,与Bandwagon攻击不同的是,那些目标商品往往与系统中很不受欢迎的商品绑定在一起,在这种情况下,系统就不容易推荐那些目标商品。
Informed attack
7)popular攻击
这种攻击方式需要更多的信息,包括推荐算法,商品的平均分,用户的平均分。假设系统使用的基于用户的推荐算法,用户间的相似度指标为皮尔森系数。我们知道,两个用户共同评分是商品数目越多,并不意味着这两个用户越相似,还要看他们的评分方式,有时候两个的共同评分商品很多,但是他们的皮尔森系数可能为负的。在bandwagon攻击中,那些过滤商品是随机选择的,这样一来,那些伪造的用户与系统中的合法用户的相似性就比较随机,最后就有可能使得那些目标商品计算得到的预测评分值不高。Popular攻击利用了所有商品的平均分,同样的,根据商品的得分是否高于平均分,来给这些商品评rmin+1和rmin,rmin代表最低分。通过这种方式,伪造用户与合法用户的皮尔森相似度就容易是正的,这样就可以更容易控制目标商品的推荐。
8) Probe Attack Strategy
尽管没有相关的研究表明popular攻击容易被发现,但是直观的看,这种攻击很容易被察觉,因为在这种攻击模式下,伪造用户的评分大多都是rmin+1和rmin,所以很容易被系统检测到。Probe Attack Strategy相对来说,就比较隐蔽,这种方法首先伪造一个用户,这样系统就会向这个用户推荐一些商品,根据这些推荐商品的情况,我们就可以知道这个伪造用户的邻居(相似用户)选择商品的情况,在得到这些邻居的信息之后,就可以对他们选择的商品进行攻击,例如用到前面提高的popular攻击。
文章来源:199it