个人评价:很有意思的一个话题,我在实际工作中也遇到过,不过这本书写的一般,有点儿“掉书袋”,太学术化、太YY、前提假设条件太强。姑且看看做借鉴吧。
通常推荐系统利用用户数据的时候,是假定用户是善良的、诚实的。而攻击,就只值认为设法影响系统的结果、性能。
攻击的维度:1. 针对某个物品,抬高或者降低其评分;2. 针对特定的用户群;3. 针对某个系统,然系统推荐不准确,甚至系统崩溃。
所有的攻击都是通过某种方式(例如:模拟用户行为)来向推荐系统中注入某种特定数据来达到目的的。
攻击类型:
1. 随机攻击
向系统中注入随机数值,从而达到对推荐系统的干扰的目的。
2. 均值攻击
在随机攻击的基础之上,利用评分均值,构造更加“像”的注入数据
3. 造势攻击
比均值攻击更加高明的地方在于,除了有对目标物品的高评分(或者低平分)之外,还包含了很多热门物品的高评分,这样的目的在于:很多用户的使用记录也包含了这些热门物品,注入的数据更容易和用户形成“近邻”关系,从而更容易被推荐系统采用,更容易影响到最终的用户。
4. 局部攻击
比造势攻击更加高明的地方在于,局部攻击能够识别出特定的用户群体,并据此发生攻击。——个人评价:识别特定用户群,在攻击中应该很难,除非窃取了推荐系统的部分数据。
5. 针对性的打压攻击
与抬高某个物品的评分的目的不同,打压攻击是为了要降低某个物品的评分。方法就是上面的方法,反其道而行之。通常,打压攻击更加容易得手——学术界还没有解释出为什么会存在这种不对称性。
6. 点击流攻击和隐式反馈
手段是模拟用户在网页上的操作,来达到注入数据的目的。——个人怀疑,前面五种方法都是怎么注入数据的?难不成直接修改人家后台数据库吧?!
点击流攻击通常影响的是“看了这本书的同学很多人也看了那本书”
攻击对策
1. 提升数据注入成本
2. 自动检测异常数据,方法因不同系统而各异,如:短时间内同方向大量数据进入、相比其他数据的异常数据进入
保护数据隐私
1. 在正常数据中加入随机扰动
2. 分布式存储——同一个用户的数据被存在多个地方,即便某一个地方泄露,也不能获取整个用户记录
完。