数据投毒攻防对抗技术-2.推荐系统中的数据投毒

1,308 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

问题背景

研究背景

我们身处在一个信息爆炸的时代,从看书看报,到看直播、刷微博、短视频,信息的体量越加庞大,信息呈现的形式越加丰富。我们享受信息便捷获取的满足感,但信息过载也会让我们感到焦虑。 作为解决信息过载问题的有效手段,推荐系统目前广泛应用于电商网站、电影音乐、社交网络等领域。

研究意义

对推荐系统中投毒攻击的研究的必要性:

  • 一方面,测试推荐算法的鲁棒性。
  • 另一方面,“以攻促防”,为推荐算法提供数据安全角度的建议

什么是推荐系统

根据已经存在的某种联系去预测未来有可能的联系

推荐系统的攻击目的和方式

目的:攻击者出于某些目的扶持或打压某些物品。

方式:数据投毒攻击(因为本门课程是数据投毒攻击课程,暂只介绍此种) 攻击者通过批量制造假用户资料,并装作是与被欺骗用户兴趣相投的人,通过大量助攻物品与陪跑物品的作用影响推荐结果。

推荐系统中的数据投毒/欺诈攻击

推荐系统的评分矩阵如下:

假设找到的目标是这几个: 在这里插入图片描述 攻击行为: 在这里插入图片描述 通过伪造相似用户,以达到攻击的目的。

具体思路如下图: 在这里插入图片描述

方法分类

推荐系统的具体算法可以分为协同过滤、基于内容、混合推荐等 每一类算法根据其特点还可以细分 例如, 协同过滤可以分为:

  • 基于近邻
  • 基于关联规则
  • 基于决策树
  • 基于朴素贝叶斯
  • 基于矩阵分解(隐因子模型)
  • ……

根据不同的推荐算法的特点,可以制定出相应的攻击模型

技术举例

精准打击

最基本的攻击方法是,利用手工规则按照不同的方法选择填充项目为伪造用户设计评分向量。 常见的3种攻击举例:

  1. 随机攻击( Random attack)
  2. 平均攻击( AVera个attack)
  3. 流行性攻击(Popular attack/bandwagon attack)

上述方法都基本不需要知道推荐系统的具体算法,几乎适用于全部推荐场景,通用方法的优点是易于实现,但在“精准打击”方面力度不够. 一个“精准打击”的例子:针对隐因子模型的数据投毒攻击

隐因子模型

有时候也翻译成“潜在因子模型”、“潜 在因素模型” 在推荐系统中被认为是最先进的方法之一 利用了一些著名的降维方法来填充缺失项

  • 降维方法在数据分析的其他领域中经常被用来得到原始数据的低维 表示

直观思想

将评分矩阵R分解: 在这里插入图片描述 U是一个m * k的矩阵,V是一个n * K的矩阵 m是用户的数量,n是被打分的物品的数量 例如: 在这里插入图片描述 在这里插入图片描述 注意 在上述例子中,矩阵R是完全确定的,因此分解不是特别有帮助。 实际的推荐系统中,矩阵R不是完全已知,如果仍然可以估计隐因子U和V时,该方法会变得非常有用。

需要解决优化的问题

在这里插入图片描述 一旦估计出了矩阵U和V,整个评分矩阵可以用UV^T一次完成估计,进而就可以得到所有缺失的评分。如下图: 在这里插入图片描述

针对隐因子模型的投毒攻击—无目标

攻击者为了推荐目标项目,可能伪造评分矩阵 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述

针对隐因子模型的投毒攻击—有目标

同样去伪造评分矩阵 在这里插入图片描述

针对隐因子模型的投毒攻击—混合攻击

在这里插入图片描述 (未完待续)

总结