推荐系统攻击类型

一.托攻击/先令攻击

1.协同过滤

       协同过滤其基本假设是原来表现出类似的兴趣爱好的用户, 在以后也应该有类似的兴趣爱好,协同过滤有两种主要的类别:

(1)基于存储的协同过滤方法

       基于存储的协同过滤方法直接利用用户给物品的评分信息来预测用户感兴趣的物品,这种方法又分为两大类:

a.基于用户的协同过滤方法

       基于用户的协同过滤方法会首先找到一个用户的相似用户, 再将相似用户喜欢的物品推荐给该用户. 用户之间的相似度被一种相似度度量定义, 通常是余弦相似度或者Pearson 相关系数 . 

b.基于物品的协同过滤方法

       基于物品的协同过滤方法会把一个用户喜欢的物品的相似物品推荐给该用户 .

(2)基于模型的协同过滤方法

    基于模型的协同过滤方法首先利用用户给物品的评分信息训练得到一个预测模型 , 再利用该预测
模型来生成对每个用户的推荐。

2.托攻击定义

       协同过滤能够依据用户的历史评分概貌寻找与其相似的近邻,根据多个最近邻的概貌信息为目标用户产生推荐结果.即恶意用户可通过向评分系统中注入大量虚假用户概貌产生对其有利的推荐结果,恶意用户的 这 种 行 为 被 称 为 托 攻 击,也称为概貌注入攻击或推荐攻击。

(1)恶意用户的评分信息的一般形式

         恶意攻击中恶意用户的评分信息的一般形式, 见图 1. 选择评分项 IS 由 评分函数 δ 赋值; 填充项 IF 由评分函数 θ 赋值; 目标评分函数决定了目标项 it 的评分. 剩余的物品 项不给予评分.

        恶意攻击者利用上述形式 , 生成虚假的用户评分信息 . 具体过程为 , 确定选择评分项 I S 和填充项 I F , I S I F 的评分上尽可能模仿正常用户的评分 , 从而伪装成正常用户 , 再通过给予目 标项 i t 偏离真实分数的评分 , 达到其恶意攻击的目的 .
         不同攻击模型中,ISIF 的选择方式不同,这些项目上的评分值生成策略也不同,分别由函数δ 和σ确定.攻击的目标项目可以是单个或多个,目标项目 i t 的评分值由函数γ 确定.

3.标准攻击模型

标准攻击模型有随机攻击(random attack)、均值攻击(average attack)、流行攻击(bandwagon attack)、分段攻击(segment attack)和love/hate攻击、PUA(power user attack)和PIA(power item attack)

4.模糊攻击

将混淆技术应用在标准攻击上几位模糊攻击,目前已有的混淆技术主要有:噪音注入(noise injection)、用户偏移(user shifting)、目标偏移(target shifting)和流行装填(AoP攻击)

(1)噪音注入在选择项目或填充项目的评分上加上一个随机数

(2)用户偏移:对攻击用户在其攻击概貌中任意挑选部分选择项目和填充项目在这些项目的原有评分值上均增加一个偏移量,偏移量的具体值由用户对应的偏移函数决定

(3)目标偏移:将每个攻击概貌中对应目标项目的评分值替换为次高分推攻击或次低分核攻击

(4)流行装填: AoP 攻击 在前 的流行项目集合上选择填充项目构造均值攻击 项目流行程度依据 项目上的被评分数量.

5.群组攻击

        每个攻击用户仅攻击目标项目集中的一部分而非全部.攻击群组内的多个攻击概貌彼此协同,共同攻击一个 或一组关联的目标项目.
        一种新的群组攻击模型的生成算法 在基于均值攻击或随机攻击模型生成的攻击概貌基础上, 按照一定的策略生成攻击组中的组成员概貌 严格条件的群组攻击生成模型需满足:
(1)群组内的任意2 个不同概貌间均有共同评分项目
(2) 任意 个不同概貌间均无共同评分项目;
(3) 任意 个不同概貌间的相似度均为 -1.
        由于每个组成员其评分行为都和正常用户相近 这使得从个 体检测角度出发的托攻击检测模型失效. 由于这些攻击概貌间相似度较低 因此与传统的托攻击模型相比 , 组攻击的检测也更为复杂.

二、有组织攻击和无组织攻击

1.有组织攻击

       有组织攻击主要体现在 攻击者 通过 同一种攻击策略 生成大量虚假用户评分信息来 攻击同一个目标物品 . 例如 , 一个攻击组织者根据同一种攻击策略生成数百个虚假用户评分信息来攻击一个目标电影, 其中攻击策略为每个虚假用户给最流行的电影最高的评分, 给目标电影最低的评分.
        
       有组织恶意攻击在同一种策略中 , 目标项 i t 为特定的同一个目标 ; 选择评分项 I S 和填充项 I F 的个数 k , l 在 确定后也固定不变; 各个评分函数确定后也保持不变。

2.无组织攻击

       无组织恶意攻击 , 即攻击者们在 没有组织 的情况下 , 分别 伪造少量的虚假用户评分信息 来攻击同一个目标物品。在无组织恶意攻击中, 选择评分项 I S和填充项 I F 的个数 k, l, 以及各个评分函数都不被限定为同一种. 除此之外, 我们还假设存在多个攻击者, 每个攻击者分别只伪造少量的虚假用户评分信息来提升或贬低他们自己的目标物品.
我们定义无组织恶意攻击为 j [ n ], 满足 | M ij X ij | > ϵ 的恶意用户来自不同策略, 且每种策略生成的用户数小于 η , 则该评分矩阵中存在的攻击为无组织恶意攻击.  U[ m] = { U1 , U2 , . . . , U m }, I[ n] = { I1 , I2 , . . . , I n } 分别表示 m 个用户和 n 个物品. 让 M 表示用户给物品的实际评分矩阵, M ij 表示用户 U i 给物品 I j 的实际评分, 即用户在实际给出的评分. 让 X表示用户给物品的真实评分矩阵, 即不遭受攻击的真实评分. X ij 表示用户 U i 给物品 I j 的真实评分,即 X ij 反映出用户 U i 给物品 I j 的真实喜恶.

三、攻击检测方法

现有的恶意攻击检测的方法主要包含统计的方法、分类的方法和聚类的方法 .

1.基于统计的方法:通过检测可疑的评分来查找恶意用户

论文:Hurley N J, Cheng Z P, Zhang M. Statistical attack detection. In: Proceedings of the 3rd ACM Conference on Recommender Systems, New York, 2009. 149–156
提出一 种基于 Neyman-Pearson 准则的攻击检测方法来区分正常用户和恶意用户
分类的方法首先根据每个用户给物品的评分信息 提取出该用户的特征, 再根据用户的特征和标记 (即是否是恶意攻击者) 训练得到一个检测恶意攻击者的分类模型 

2.聚类的方法:根据用户的评分信息将用户聚成若干表现相近的簇, 其中最小的簇中的用户被视为恶意攻击者

论文:Bhaumik R, Mobasher B, Burke R D. A clustering approach to unsupervised attack detection in collaborative recommender systems. In: Proceedings of the 7th International Conference on Data Mining, Vancouver, 2011. 181–187
提出了一种基于若干种分类属   无监督聚类算法 . 他们根据这些属性进行 k-means 聚类, 最小簇中的用户判定为恶意用户 .
从机器学习角度将托攻击检测技术分为基于监督学习的攻击检测、 基于半监督学习的攻击检测和基于无监督学习的攻击检测

3.基于监督学习的攻击检测

       基于监督学习的攻击检测将托攻击检测问题视为分类问题 首先基于训练集中的标记样本训练分类器 , 进而对测试集中的攻击 概 貌 进 行 分 类。
       基于监督学习的托攻击检测方法通常在检测单一的已知攻击类型时具有优越的检测性能 但对于混合攻击却效果不好, 这是因为不同攻击类型下攻击概貌的特征不同 需要根据混合攻击的类型及比例调整特征的权重参数, 从而达到理想的分类效果 此外监督学习需要在标记数据集上训练分器 而在许多真实场景中, 大量标记数据的获取是困难的 这很大程度上制约了基于监督学习的托攻击检测方法的发展

4.基于半监督学习的攻击检测

       基于半监督学习的攻击检测方法能够在大量无标记数据场景下 充分利用部分标记数据的准确性 实现真实概貌和攻击概貌的有效区分, 相比于需要大量标记数据的有监督检测方法具有更广阔的应用场景

5.基于无监督学习的攻击检测

        基于监督学习和半监督学习的攻击检测均依赖于特征指标和训练集 因此无需训练过程的无监督方法一直受到广泛关注
论文:Mehta B, Nejdl W. Unsupervised strategies for shilling detection and robust collaborative fifiltering. User Model User Adapted Interact, 2009, 19: 65–97
       利用主成分分析 (P CA 计算概貌的主成分系数得分 认为 攻击概貌对推荐系统贡献的信息较少, 因此在主成分空间上取值较小 这种方法对推荐系统中的多种托攻击模型均具有优越的检测性能,但需要预先获知攻击规模(攻击概貌数量) 这在实际中较难准确获取
论文:Hurley N J, Cheng Z P, Zhang M. Statistical attack detection. In: Proceedings of the 3rd ACM Conference on Recommender Systems, New York, 2009. 149–156
        提出了一种基于 Neyman Pearson 理论的无监督检测方法 该方法不需先验 知识, 但仅 用来检测高填充率和大规模的标准攻击和 AoP攻击 对低填充率和小规模的攻击检测效果较差
论文:Estimating user behavior toward detecting anomalous ratings in rating systems  2016
       提出了一种基于 图挖掘和图相似的无监督检测方法, 首先利用图挖掘方法构建可疑用户集 然后结合目标项目分析方法识别 出可疑用户集中的攻击 用 户. 这种检测方法不受具体的攻击类型影响,但 不 能 检 测 小 规 模 的 攻 击.
论文:An unsupervised method for shilling attack detection based on hidden Markov medel and hierarchical clustering 
      提出了一种基于隐马尔科夫 模型和层次聚类的无监督检测方法, 首先基于隐马尔科夫模型计算每个用户的可疑度 然后通过层次聚类技 术识别出攻击用户. 这种方法对多种传统托攻击模型具有卓越的检测性能 但不能有效检测出 AoP 攻击

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
考虑了识别先发攻击的问题,该先发攻击旨在在推荐器系统中形成对对象的错误评级。 此类攻击的目的是在建议的项目列表中包含攻击用户指定的商品。 由于攻击而获得的推荐将与客户的真实偏好不符,这可能导致对推荐系统的不信任和销量下降。 用于检测先令攻击的现有方法使用了来自用户的明确反馈,并且主要集中在描述攻击关键特征的构建模式上。 但是,这种模式仅部分考虑了用户兴趣的动态。 通过比较用户选择过程和等级的时间描述,提出了一种使用隐式反馈检测先兆攻击的方法。 使用一组加权时间规则来形成这样的过程的模型,该加权时间规则定义了用户选择给定对象的时刻之间的时间关系。 该方法使用按时间排序的输入数据。 该方法包括以下步骤:形成用于描述销售过程的加权时间规则集,并创建等级,为这些过程计算一组等级,以及基于获得的等级的比较形成攻击指标。 由此产生的迹象可以区分核攻击和推式攻击。 该方法旨在识别购买和评级动态中的差异,即使在某些时间间隔内没有评级值也是如此。 该技术使得可以基于评级值和接收到的攻击指示符的比较来识别掩盖攻击的方法。 当迭代应用时,该方法可以优化潜在攻击者的配置文件列表。 该技术可以与面向模式的方法结合使用,以识别先令攻击
Django是一个流行的开源Python Web框架,可以用于快速开发高效稳定的Web应用程序。推荐系统是一种根据用户的兴趣和行为,为其提供个性化推荐内容的技术。 在开发推荐系统时,Django提供了丰富的功能和工具,使得开发变得简单而高效。首先,Django提供了强大的ORM(对象关系映射)功能,可以方便地与数据库交互,存储和管理用户数据和推荐结果。这使得开发者可以轻松地构建数据模型,记录用户的兴趣和行为。 其次,Django具有灵活的视图和模板系统,使得开发推荐系统的前端界面变得简单直观。开发者可以使用Django的模板语言和表单功能来设计用户界面,展示推荐内容和接收用户反馈。 另外,Django还提供了强大的缓存机制,可以有效地处理大规模的数据计算和推荐工作。通过使用Django的缓存系统,开发者可以优化数据查询和计算过程,提高推荐系统的性能和响应速度。 此外,Django的安全性能也是推荐系统开发的重要考虑因素之一。Django提供了丰富的安全功能,包括用户认证和授权机制、防止跨站点请求伪造(CSRF)攻击等。这些安全功能使得开发者可以确保用户数据和推荐结果的隐私和安全。 总之,Django作为一个强大的Web框架,在推荐系统的开发中具有很大的优势。它提供了丰富的功能和工具,使得开发者可以方便地构建个性化推荐系统,并提供高效稳定的用户体验。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值