个人总结:本文主要通过构造一个毒药模型——用于预测假用户的评分项目,从而构造m个假用户,将假用户注入到推荐系统中,达到影响推荐系统对普通用户的推荐项目(让一个项目能尽可能多的出现在普通用户的推荐列表中)
攻击的最终目的是推广自己的项目到普通用户,让自己的项目的推荐率达到最大。
不是直接让假用户生成需要的评分项目,需要训练出一个代理的毒药模型模拟基于深度学习的目标推荐系统。然后用这个模型预测每个假用户的评分向量,然后处理预测出来的评分向量,用以辅助选择每个假用户的评分项目,从而有效实现目标。每个假用户除了要给目标项目评分外,还需要给其他一些项目评分,这些其他项目被称为填充项目
摘要
推荐系统在帮助用户在亚马逊、YouTube和谷歌News等各种网络服务中找到他们感兴趣的信息中扮演着至关重要的作用。各种推荐系统,从基于邻域、基于关联规则、基于矩阵分解到基于深度学习的,已经在工业中开发和部署。其中,基于深度学习的推荐系统因其优越的性能而越来越受欢迎。在这项工作中,我们对基于深度学习的推荐系统的数据中毒攻击进行了系统研究。攻击者的目标是操作推荐系统,使攻击者选择的目标项目被推荐给许多用户。为了实现这一目标,我们的攻击将虚假用户注入精心设计的评级。具体来说,我们将攻击表述为一个优化问题,这样注入的评级将最大限度地提高推荐目标项目的正常用户的数量。然而,由于优化问题是一个非凸整数规划问题,因此解决优化问题具有挑战性。为了解决这一挑战,我们开发了多种技术来近似地解决优化问题。我们在三个真实世界的数据集上的实验结果,包括小数据集和大数据集,表明我们的攻击是有效的,并且优于现有的攻击。此外,我们试图通过对正常用户和虚假用户的评分模式进行统计分析来检测虚假用户。我们的结果表明,即使部署了这样的探测器,我们的攻击仍然是有效的,并且优于现有的攻击。
介绍
在数据爆炸的时代,人们在日常生活中经常遇到信息超载的问题。例如,当他们在网上购物、阅读新闻、听音乐或观看视频时,他们经常面临从大量候选人中选择自己感兴趣的物品的挑战。推荐系统通过挖掘历史用户-项目交互数据,帮助人们轻松地找到他们感兴趣的项目。因此,推荐系统在现实世界中得到了广泛的应用,带来了巨大的经济效益。与向所有用户推荐相同项目的非个性化推荐系统不同,我们在这项工作中关注的个性化推荐系统使用用户的历史行为(例如,评级或点击)来建模他们的偏好,并为每个用户的提供个性化的推荐。在一个典型的个性化推荐系统设置,我们得到一组用户,一组项目,和日志用户的历史交互(例如,评级),目标是推荐每个用户列表根据用户偏好从历史交互。传统的推荐系统包括基于邻域的、基于关联规则的、基于矩阵分解(a.k.a潜在因子模型)和基于图的。近年来,随着深度学习技术的快速发展,深度神经网络已被应用于增强推荐系统。此外,由于传统技术无法实现的非线性变换和表示学习等各种优势,深度学习正逐渐成为推荐系统领域的一种技术趋势。
同时,多项研究表明,推荐系统容易受到数据中毒攻击,即[12]、[13]、[27]、[28]、[32]、[45]、[46](a.k.a先令攻击[18])。特别是,在数据中毒攻击中,攻击者将精心设计的虚假用户注入推荐系统,这样推荐系统就会根据攻击者的意愿提出建议,例如,向许多正常用户推荐攻击者选择的目标项目。数据中毒攻击对推荐系统的可信度构成严重威胁,并可能操纵互联网意见。例如,如果攻击者操纵一个新闻推荐系统,从而总是将一种特定类型的新闻推荐给用户,那么攻击者可能能够操纵用户的意见。然而,现有的数据中毒攻击要么对推荐系统算法[27]、[32]不可知,要么针对传统的推荐系统算法,如基于关联规则的[46]、基于图的[13]和基于矩阵分解的[12],[28]。尽管基于深度学习的推荐系统得到了越来越多的关注,并在工业中部署,但它们对数据中毒攻击的安全性在很大程度上是未知的。
在这项工作中,我们的目标是弥补这一差距。具体来说,我们提出了针对基于深度学习的推荐系统进行优化的数据中毒攻击。我们认为攻击者的目标是在基于深度学习的推荐系统中推广目标项目,即向大量用户推荐攻击者选择的目标项目。为了实现这一目标,攻击者向推荐系统向虚假用户注入精心设计的评级。由于在一次攻击中资源有限,我们假设攻击者只能注入有限数量的假用户,每个假用户评分有限数量的项目(包括目标项目和其他非目标项目),以逃避琐碎的检测。构建攻击的关键挑战是为每个假用户选择评级项目。为了解决这一挑战,我们将攻击制定为一个优化问题的目标函数,最大化目标项目的命中率,其中一个项目的命中率是推荐给该项目的正常用户的比例。
然而,优化问题是难以解决的原因如下:i)问题的输入,即用户的数据和项目在基于深度学习的推荐系统,是离散变量,ii)深度神经网络的训练过程是耗时的,这使得它不可能为任何方法需要大量的训练迭代来解决问题。因此,我们发展了启发式方法来近似地解决优化问题。我们没有直接为虚假用户生成期望的评分项目,而是训练了一个称为毒药模型的代理模型,并仔细修改它,以模拟基于目标深度学习的推荐系统。然后,我们利用这个毒药模型来预测每个假用户的评分得分向量,然后我们对该向量进行处理,以帮助选择每个假用户的评分项目,从而有效地实现我们的目标。
我们评估了我们的攻击,并将其与现有的数据中毒攻击进行比较,使用三个不同大小的真实数据集,即电影镜头-100K[19],Last.fm[2]和电影镜头-1M[19]。我们的结果表明,我们的攻击可以有效地促进目标项目,并显著地在白盒设置下超过基线攻击。例如,通过只插入5%的虚假用户,我们的攻击可以使不受欢迎的目标项目在Last.fm数据集中推荐给正常用户的52.6倍左右。此外,在较大的movielens-1M[19]数据集上,当仅注入5%的虚假用户时,我们的攻击对随机目标项目的命中率达到0.0099,约为基线攻击达到的最佳命中率的1.2倍。我们进一步探讨了在两种不同的部分知识设置下,部分知识对我们的中毒发作的影响。我们观察到,在这些设置中,我们的攻击仍然有效,并且显著优于基线攻击。例如,当攻击者只知道30%的评级在原始用户项评级矩阵,我们的攻击获得命中率0.0092随机目标项目注入5%的假用户MovieLens-1M数据集,这是至少1.3倍的命中率的基线攻击。此外,我们的攻击还可以转移到基于结构未知的深度学习的推荐系统中。特别是,即使我们不知道目标推荐系统使用的确切神经网络架构,我们的攻击仍然使得在movielens-100k数据集中注入5%的假用户时,随机目标项目推荐给正常用户的5.5倍。研究结果表明,我们的攻击对基于深度学习的推荐系统构成了严重的安全威胁。
此外,我们通过对假用户的评级模式的统计分析来探索检测假用户,并衡量在这种检测下的攻击有效性。这种检测背后的直觉是,假用户可能具有在统计上与正常用户不同的评级模式,因为它们是根据特定的规则生成的。特别是,对于每个用户,我们从其评级中提取多个特性。然后,我们训练一个二值分类器,基于特征值来区分假用户和正常用户,并利用SVMTIA[51]方法来检测潜在的假用户。服务提供商在培训推荐系统之前,会删除检测到的虚假用户。实验结果表明,该方法能够有效地检测现有攻击产生的虚假用户。然而,该方法错误地识别了我们的攻击所构建的很大一部分(如30%)的假用户为正常用户。因此,即使部署了这种检测方法,我们的攻击仍然有效的,并且显著优于现有的攻击。
本文对基于深度学习的推荐系统的数据中毒攻击进行了首次系统的研究。
•我们将我们的攻击表述为一个优化问题,并开发了多种技术来近似地解决它。
•我们评估了我们的攻击,并将其与三个真实数据集上的现有数据集进行了比较。
•我们通过统计虚假用户的评级并分析其对数据中毒攻击有效性的影响来检测虚假用户。
在本节中,我们将简要介绍推荐系统和现有的数据中毒攻击。
A. 推荐系统
我们考虑了一个典型的基于协同过滤的推荐系统设置,其中我们有M个用户和N个项目,并且我们得到了一个用户过去的用户-项目交互的记录{u,i,yui},其中yui表示用户u对项目i的偏好。观察到的用户-项目交互{u,i,yui}可以表示为用户-项目交互矩阵Y∈RM×N。通常,Y是非常稀疏的,也就是说,平均每个用户将只与所有N个项目中的一小部分进行交互。我们使用Y的行向量,表示为y(u)(即y(u)={yu1,yu2,…,yuN})来表示每个用户u,以及Y的列向量,表示为y(i)(即y(i)={y1i,y2i,…,yMi})来表示每个项目i。然后,将推荐系统的任务转化为基于Y的完整预测交互矩阵bY,其中bY中的byui表示yui的预测分数。.然后使用推断的交互矩阵bY向用户推荐一个用户还没有体验过的项目列表。具体来说,如果我们想推荐K项用户u,我们选择前K项(1)他们没有被用户评价,和(2)他们有最高的预测行向量by(u)(即by(u)={ybu1,ybu2,……,ybuN})的bY
根据如何分析用户-项交互矩阵,传统的基于协同过滤的推荐系统大致可以分为四类,基于邻域的[38]、基于关联规则的[10]、基于矩阵因子分解(a.k.a潜在因子模型)[26]和基于图形的[14]。矩阵分解(MF)由于在合成更复杂的模型方面具有良好的性能和灵活性,已成为其中应用最广泛的方法。
近年来,随着深度学习技术的快速发展,深度神经网络已被应用于推荐系统,并被发现在各个方面都优于传统的推荐方法。基于深度学习的推荐系统使用不同的神经网络结构来建模用户-项目交互,以提高推荐性能[50]。例如,将多层感知器(MLP)[20]、[21]、自动编码器(AE)[5]、对抗网络(AN)[17]和深度强化学习(DRL)[30]、[50]等技术应用于推荐系统,以提高推荐精度。
在本文中,我们在不失一般性的情况下,关注一个通用的基于深度学习的推荐系统框架,即神经协同过滤(NCF)[20]。NCF探索了深度神经网络来建模复杂的非线性用户-项目交互。请注意,基于mf的推荐方法假设一个潜在因子向量来表示每个用户和每个项目,并在用户和项目向量上应用一个简单的线性模型来捕获用户与项目之间的交互。相比之下,NCF使用深度神经网络通过多层感知器向用户和项目潜在因素向量(MLP)来捕获非线性的用户-项目交互。NCF的输出层是对用户-项目交互yui的预测。
特别地,我们考虑神经矩阵分解(NeuMF)[20],NCF的一个实例,来建模用户-项目交互。如图1所示,NeuMF是MF和MLP的融合,这允许它们学习单独的嵌入,然后通过连接它们最后的隐藏层来结合这两个模型。输入层由两个二值化的稀疏向量组成,分别对用户u和项目i进行单热编码。这些稀疏向量分别投影到四个密集的潜在向量,即MF用户向量,MF项目向量,MLP用户向量和MLP项目向量,其中两个是嵌入用户和项目MF模型,和其他是MLP模型。然后有两部分分别处理潜在向量。一个是线性MF部分,它使用MF层计算内积MF用户向量和MF项目向量,另一个是非线性MLP部分,添加了一个标准MLPX层连接潜在向量学习用户u之间的非线性交互,其中X是MLP层的数量和MLP层的激活函数是relu.最后,将MF部分和MLP部分的最后一个隐藏层连接起来,并完全连接到输出层上,以预测byui。该模型在使用观察到的用户-项目交互进行训练后,可以预测原始稀疏交互矩阵Y中缺失的条目,构成预测的交互矩阵bY,进一步用于构建每个用户的推荐列表。
在GMF部分是将user的Embedding和item的Embedding对应元素相乘,MLP部分是将user的Embedding和item的Embedding直接拼接,最后在输出部分将模型两部分输出再次拼接
B.对推荐系统的攻击
现有的研究表明,推荐系统容易受到各种[1]、[27]、[28]、[46]的安全攻击,这些攻击欺骗了推荐系统,例如,促进目标项目,并向尽可能多的用户推荐它。粗略地说,这类攻击有两类&#x