[论文阅读2]Influence Function based Data Poisoning Attacks to Top-NRecommender Systems

摘要:

推荐系统是web服务的重要组成部分。流行的推荐系统使用大量的众包用户-项目交互数据对用户偏好和项目属性进行建模,例如,评分分数;然后向用户推荐与用户偏好最匹配的n顶级项目。在这项工作中,我们展示了攻击者可以向推荐系统发起数据的数据中毒攻击,通过向虚假用户注入精心设计的用户-项交互数据,根据攻击者的要求提出建议。具体来说,攻击者可以欺骗推荐系统,向尽可能多的普通用户推荐目标项目。我们关注基于矩阵分解的推荐系统,因为它们在工业中得到了广泛的应用。考虑到攻击者可以注入的假用户的数量,我们将对假用户的评分分数的精心设计制定为一个优化问题。然而,该优化问题是一个非凸整数规划问题,具有解决性。为了解决这一挑战,我们开发了几种技术来近似地解决优化问题。例如,我们利用影响函数来选择对推荐有影响的正常用户的子集,并基于这些有影响力的用户来解决我们制定的优化问题。结果表明,我们的攻击是有效的,并且优于现有的方法。

介绍

推荐系统是许多web服务的关键组成部分,以帮助用户定位他们感兴趣的项目。许多推荐系统都是基于协同过滤的。例如,给定用户提供的大量用户-项目交互数据(我们在这项工作中考虑评分分数),一个推荐系统学习对潜在用户的偏好和项目的特征进行建模,然后系统向每个用户推荐前n个项目,其中前n个项目的特征与用户的偏好最匹配。

由于推荐系统是由用户-项目交互数据驱动的,攻击者可以通过向虚假用户注入虚假的用户-项目交互数据来操纵推荐系统。这种攻击被称为数据中毒攻击。最近的几项研究对基于关联规则的[39]、基于图的[10]和基于矩阵分解的推荐系统[19]设计了针对推荐系统特定的数据中毒攻击。然而,如何设计基于矩阵分解的top-N推荐系统的定制攻击仍然是一个开放性的问题,尽管这类推荐系统已经在行业中广泛应用。在这项工作中,我们的目标是弥合差距。特别地,我们的目标是设计一个优化的数据中毒攻击基于矩阵分解的top-n推荐系统假设攻击者可以在推荐系统中注入m个假用户,每个假用户最多可以对n个项进行评分,我们称之为填充项。那么,关键问题是:如何选择填充项目并给它们分配评分,以便向尽可能多的普通用户推荐攻击者选择的目标项目?为了回答这个问题,我们制定了一个优化问题,为虚假用户选择填充项目和为虚假用户分配评分,目的是最大限度地增加推荐目标项目的正常用户的数量。

然而,由于它是一个非凸整数规划问题,因此解决该优化问题具有挑战性。为了解决这一挑战,我们提出了一系列用于近似解决优化问题的方法。首先,我们建议使用一个损失函数来近似于被推荐使用目标项目的正常用户的数量。我们将整数评分分数放宽为连续变量,并在解决重新表述的优化问题后将其转换为整数评分分数。其次,为了提高我们的攻击的有效性,我们利用受可解释机器学习文献[14,15,34]启发的影响函数方法来解释现实,即top-n建议可能只受有影响用户的子集S的影响为了方便起见,在本文的其余部分中,我们将我们的攻击称为s-攻击。我们证明了有影响的用户选择子问题具有子模性质,用一个简单的贪婪选择算法保证了(1−1/e)的近似比。最后,给定S,我们开发了一个基于梯度的优化算法来确定假用户的评分分数。

我们评估了我们的s攻击,并将其与两个基准数据集上的多个基线攻击进行了比较,包括Yelp和亚马逊数字音乐(音乐)。我们的研究结果表明,我们的攻击可以有效地促进一个目标项目。例如,在Yelp数据集上,当只注入0.5%的虚假用户时,我们的攻击可以使一个随机选择的目标项目出现在正常用户的150倍的前n个推荐列表中。我们的s攻击优于基线攻击,即使攻击者不知道目标推荐系统的参数,也能继续有效。我们还研究了我们的攻击对具有假用户检测能力的推荐系统的影响。为此,我们训练了一个二元分类器来区分假用户和普通用户。结果表明,该分类器对传统的PGA攻击[19]等攻击方案是有效的。值得注意的是,我们发现我们的基于影响函数的攻击继续有效。原因是我们提出的攻击设计是基于隐形设计的,检测方法可以检测到一些假用户,但遗漏了很大一部分。

最后,我们证明了我们的基于影响函数的方法也可以用来增强基于图的top-n推荐系统的数据中毒攻击。此外,我们还表明,与其使用影响函数来选择有影响用户的子集,不如使用影响函数来加权每个正常用户,可以进一步提高数据中毒攻击的有效性,尽管这种方法牺牲了计算效率。

综上所述,我们的贡献如下:

•我们提出了基于矩阵分解的topn推荐系统的第一个数据中毒攻击,并将其表示为一个非凸整数优化问题。

•我们提出了一系列的技术来近似解决优化问题和可证明的性能保证的优化问题。

•我们评估我们的s攻击,并使用两个基准数据集与最先进的技术进行比较。我们的研究结果表明,我们的攻击是有效的,并优于现有的攻击。

2 RELATED WORK
对推荐系统的数据中毒攻击:机器学习模型中的安全和隐私问题已经在许多场景中进行了研究。数据中毒攻击的重要性也在推荐系统中得到了认识。早期对推荐系统的中毒攻击的工作大多与推荐系统是不可知的,并不能达到令人满意的攻击性能, 如随机攻击和平均攻击。最近,有一系列的工作致力于攻击特定类型的推荐系统。例如,Fang等人对基于图的推荐系统提出了有效的中毒攻击。他们向虚假用户注入精心设计的评分,以推广目标项目。他们将这次攻击建模为一个优化问题,来决定假用户的评分。Li等人提出了对基于矩阵分解的推荐系统的中毒攻击。 他们的目标是操纵对评级矩阵中所有缺失项的预测,而不是攻击顶级推荐列表。因此,在基于矩阵分解的top-n推荐系统中,它们的攻击效果并不理想。

对其他系统的数据中毒攻击:数据中毒攻击通常是指操纵机器学习或数据挖掘系统的训练数据,使学习到的模型按照攻击者的意愿做出预测。除推荐系统外,还对其他系统的数据中毒攻击进行了研究。例如,现有的研究表明,可以对异常检测器[28]、垃圾邮件滤波器[25]、支持向量机[4,37]、回归方法[12,36]、基于图形的方法[33,44]、神经网络[5,11,20]和联邦学习[9]进行有效的数据中毒攻击,从而显著影响其性能。

3问题公式

3.1基于矩阵分解的推荐系统:一个引物

一个基于矩阵分解的推荐系统将用户和项目映射到潜在因子向量中。设U、I和E分别表示用户集、项目集和评级集。我们还让|U|、|I|和|E|分别表示用户数量、条目和评级。设R∈R|U|×|I|表示用户-项目评级矩阵,其中每个条目rui表示用户u对项目i进行评级的得分。设xu∈Rd和yi∈Rd分别表示用户u和第i项的潜在因子向量,其中d为潜在因子向量的维数。为了方便起见,我们使用矩阵X=[x1,…,x|U|]和Y=[y1,…,y|I|]来对所有x和y向量进行分组。在基于矩阵分解的推荐系统中,我们的目标是通过解决以下优化问题来学习X和Y:

其中,∥·∥2为ℓ2范数,λ为正则化参数。然后,用户u对一个看不见的项目i的评分被预测为rˆui=xu⊤yi,其中xu⊤表示向量xu的转置。最后,向每个用户推荐N个预测评分得分最高的未看到的项目。

3.2攻击模型

给定一个目标项目t,攻击者的目标是将项目t提升到尽可能多的正常用户,并最大化命中率h(t),即定义为top-N推荐列表中包含目标项目t的正常用户的比例。我们假设攻击者能够将一些虚假用户注入推荐系统,每个假用户将对目标项目t进行高评分,并对其他精心选择的项目进行精心设计的评分。攻击者可能对目标推荐系统有全面的了解(如所有的评级数据、推荐算法)。攻击者也可能只拥有对目标推荐系统的部分知识,例如,攻击者只能访问一些评级。当攻击者对目标推荐系统有部分了解时,我们的攻击仍然是有效的。

3.3攻击策略

我们假设目标推荐系统的评分分数为整值,只能从集合{0、1、···、rmax}中选择,其中rmax为最大评分分数。我们假设攻击者可以在推荐系统中注入m个假用户。我们用M来表示M个假用户的集合。每个假用户将对目标项目t和最多n个其他精心选择的项目(称为填充项目)进行评级。我们考虑每个假用户率最多n个填充项目以避免很容易被发现。我们让rv和Ωv分别表示假用户v的评分得分向量和v评分的项目集,其中v∈M和|Ωv|≤n+1。然后,rvi是用户v对项目i,i∈Ωv进行评分的分数。显然,Ωv满足|Ωv|=∥rv∥0,其中∥·∥0是ℓ0范数(即,一个向量中的非零条目的数量)。攻击者的目标是为每个假用户v找到一个最优的评分向量,以使命中率h(t)最大化。我们将这个命中率最大化问题(HRM)表述如下:[论文阅读2]Influence Function based Data Poisoning Attacks to Top-NRecommender Systems_第1张图片

问题HRM是一个整数规划问题,一般是np困难问题。因此,找到一个最优的解决方案是具有挑战性的。在下一节中,我们将提出近似解决这个问题的技术。

4我们的解决方案

 逐个优化虚假用户的评分,而不是同时对所有m个假用户进行优化。特别是,我们反复优化一个假用户的评分,并将该假用户添加到推荐系统中,直到我们有了m个假用户。然而,即使我们只考虑一个假用户,解决HRM问题仍然具有挑战性。为了解决这一挑战,我们设计了几种技术来近似地解决一个假用户的HRM问题。首先,我们将离散评级放松为连续数据,并在解决问题后将它们转换为离散评级。其次,我们使用一个可微损失函数来近似的命中率。第三,我们没有使用所有的普通用户,而是使用一个选定的有影响力的用户子集来解决HRM问题,这使得我们的攻击更有效。第四,我们开发了一种基于梯度的方法来解决HRM问题,以确定假用户的评分分数。

4.1连续评分

向量wv=[wvi,i∈Ωv]⊤是假用户v的连续评分向量,其中wvi是用户v给项目i的评分。由于rvi∈{0,1,···,rmax}是离散的,这使得解决(2)中定义的优化问题变得困难,我们将离散评分rvi放宽为满足wvi∈的连续变量wvi[0,rmax]。然后,我们可以使用基于梯度的方法来计算wv。在解决优化问题后,我们将每个wvi转换为集合{0、1、···、rmax}中的一个离散整数值

4.2近似命中率

我们让Γu作为用户u推荐的顶级项目的集合,即,Γu由你之前没有评分的N个项目组成并且有最大的预测评分。为了近似(2)中定义的优化问题,我们定义了一个服从以下规则的损失函数:1)对于每个项i∈Γu,如果rˆui

其中,g(x)=1 1+exp(−x/b)为威尔克森-曼-惠特尼损失函数[2],b为宽度参数,η为正则化参数,∥·∥1为ℓ1范数。请注意,g(·)保证了LU(wv)≥为0,并且是可微的。ℓ1正则化器∥wv∥1的目的是对每个假用户最多使用n个填充项的约束进行建模。特别是,ℓ1正则化器使一个假用户的评分小到很多项目,我们可以选择n个评分最大的项目作为填充项目。

4.3确定有影响力用户的集合

在[18,34]中观察到,不同的训练样本对优化问题的解决质量有不同的贡献,如果去掉一些贡献较低的训练样本,模型训练的性能可以得到提高。基于这一观察结果,我们没有优化一个虚假用户对所有正常用户的评级,而是在(5)中使用一个有影响力的用户子集来解决这个问题,这些用户在攻击前最能预测目标项目。我们让S∈U表示目标项目t的有影响力的用户集合。为了方便起见,在下面的内容中,我们将我们的攻击称为s型攻击。在s-攻击下,我们进一步将(5)重新表述为以下问题:

接下来,我们提出了一种影响函数的方法来确定S,然后求解(6)中定义的优化问题。我们让F(S,t)表示去除集合S中的所有用户对目标项目t的预测的影响,这里的影响定义为预测评分的变化。我们希望找到一组对目标项目t影响最大的有影响力的用户。在形式上,影响最大化问题可以定义为:

 

其中,∆为所需的集合大小(即集合S中的用户数量)。然而,它可以表明,这个问题是np-hard问题[13]。为了解决上述(7)的影响最大化问题,我们首先展示了如何度量一个用户的影响,然后我们展示了如何近似地找到一组影响最大的∆用户。我们将π(k,t)定义为删除用户k对目标项目t的预测的影响

其中φ(k,j),t)是去除用户项二部中的边缘(k,j)对目标项目t预测的影响,Ωk是用户k评分的项目集。然后,删除用户集S对目标项t的预测的影响可以定义为:

由于用户集和用户集的影响可以根据边缘影响φ((k,j),t)来计算,因此关键的挑战可以归结为如何有效地计算φ((k、j),t)。接下来,我们将提出一个适当的影响函数来有效地计算φ((k,j),t)。4.3.1基于矩阵分解的推荐系统的影响函数。对于一个给定的基于矩阵分解的推荐系统,我们可以将(1)重写如下:

其中,θ≜(X,Y)。我们让rˆui(θ)表示用户u在参数θ下给第i项给予的预测评分,以及rˆui(θ)≜xu⊤(θ)yi(θ)。如果我们将边(k,j)∈E的权值增加一些ζ,那么扰动最优参数θζ∗,(k,j)可以写成:

由于去除边缘(k,j)相当于通过ζ=−1|E|增加其权重,因此去除边缘(k,j)对边缘(o,t)预测的影响可以近似为[8,15]:

[论文阅读2]Influence Function based Data Poisoning Attacks to Top-NRecommender Systems_第2张图片

其中,θε∗\(k,j)为去除边(k,j)后的最优模型参数,Hθ∗表示(10)中定义的目标函数的海森矩阵。因此,去除边(k、j)对目标项目t的预测的影响可以计算为:

由于组合的复杂性,求解(7)中定义的优化问题仍然是一个np困难问题。幸运的是,基于观察到集合S(如(S,t))的影响具有收益递减的性质,我们提出了一种贪婪选择算法来寻找具有近似比保证的(7)的解。该近似算法是以下结果的直接结果,即影响(S,t)是单调的和子模的。

定理1(子模块化)。影响(S,t)是归一化的、单调的、非递减的和子模的。

基于(S,t)的子模特性,我们提出了算法1,一种基于贪婪的选择方法来选择具有∆用户的有影响力的用户集S。更具体地说,我们首先计算每个用户的影响,并将影响最大的用户添加到候选集S中(随机打破关系)。然后,我们重新计算集合U\S中剩余用户的影响,并找到在剩余用户中影响最大的用户,依此类推。我们重复这个过程,直到我们找到∆用户。显然,算法1的运行时间是线性的。下面的结果表明,算法1达到了(1−1/e)近似比,其证明立即遵循子模块优化[26]的标准结果,为了简洁起见,这里省略。

实验

5.1.1数据集。

我们评估了我们对两个真实世界的数据集的攻击。第一个数据集是亚马逊数字音乐(音乐)[1]。该数据集由8,844名用户对15,442首音乐进行的88,639次评分组成。第二个数据集是Yelp[41],它包含了在25,229个项目上的11,534个用户的504,713个评级。

5.1.2攻击变体。通过选择有影响力的用户集S的不同方法,我们比较了我们的S-攻击的三种变体。U-Top-N攻击(U-TNA):该变体使用所有正常用户作为有影响力的用户集S,即S=U,然后解决问题(6)。

S-Top-N攻击+随机(S-TNA-Rand):该变体随机选择∆用户作为有影响力的用户集S,然后求解问题(6)。

S-Top-N攻击+的影响(S-TNA-Inf):该变体通过算法1找到有影响力的用户集S,然后求解问题(6)。

5.1.3基线攻击。

我们将我们的s型攻击变体与下面的基线攻击进行了比较。

投影梯度上升攻击(PGA)[19]:PGA攻击的目的是为目标项目分配高评分,并随机生成填充项目供虚假用户评分。

随机梯度朗之万动态攻击(SGLD)[19]:该攻击也旨在为目标项目分配较高的评分分数,但它模拟了正常用户的评分行为。每个假用户将选择n个绝对评级最大的项目作为填充项目

5.1.4参数设置。

除非另有说明,我们使用以下默认参数设置:d=64、∆=400、η=0.01、b=0.01和N=10。此外,我们将攻击大小设置为3%(即假用户数量为正常用户数量的3%),填充项数量设置为n=20。我们随机选择10个项目作为我们的目标项目,命中率(HR@N)平均超过10个目标项目,其中一个目标项目的HR@N是前N个推荐列表包含目标条目的正常用户的比例。请注意,我们的s攻击是S-TNA-Inf攻击。

5.2全知识攻击在本节中,我们考虑了最坏情况下的攻击场景,其中攻击者对推荐系统有充分的了解,例如目标推荐系统的类型(基于矩阵分解),所有的评级数据,以及推荐系统的参数(如维数d和正在使用的权衡参数λ)。

表1总结了不同攻击的结果。“无”表示没有任何攻击的命中率。首先,我们观察到,s攻击的变体可以仅使用少量的虚假用户有效地促进目标项目。例如,在Yelp数据集中,当只注入0.5%的假用户时,S-TNA-Inf攻击将随机目标项的命中率提高了150倍。其次,在大多数情况下,我们的s攻击的变体优于基线攻击。这是因为基线攻击的目的是操纵评级矩阵中所有缺失的条目,而我们的攻击的目的是操纵前n个推荐列表。第三,看到S-TNA-Inf攻击优于U-TNA攻击,这多少有些令人惊讶。我们的观察表明,在优化假用户的评分时,通过删除对目标项目推荐没有影响的用户,我们可以提高攻击的有效性。

[论文阅读2]Influence Function based Data Poisoning Attacks to Top-NRecommender Systems_第3张图片

 5.3部分知识攻击

在本节中,我们将考虑部分知识攻击。特别地,我们考虑了攻击者知道目标推荐系统的类型(基于矩阵分解),但攻击者可以访问正常用户的评级子集,而不知道维数d的情况。特别地,我们将用户项评级矩阵视为一个二部图。给定观测数据的大小,我们通过在二部图上选择节点(用户和项目),如距离目标项目的一跳距离,然后是两跳距离等)来构建评级的子集,直到我们达到观测数据的大小。

图1显示了攻击者观察不同数量的正常用户评分时的攻击结果,我们的攻击使用不同的d,其中目标推荐系统使用d=64。攻击大小设置为3%。请注意,在部分知识攻击中,攻击者选择有影响力的用户集,并仅根据观察到的数据生成假用户。自然地,我们观察到,随着攻击者能够访问更多的正常用户的评级,攻击的性能就会得到提高。我们发现,在部分知识设置中,我们的攻击也优于SGLD攻击(性能优于PGA攻击)。此外,即使攻击者不知道d,我们的攻击仍然是有效的。特别是,在图1中我们的攻击中,不同d对应的曲线彼此接近。

[论文阅读2]Influence Function based Data Poisoning Attacks to Top-NRecommender Systems_第4张图片

 6检测假用户

为了尽量减少潜在攻击对推荐系统的影响,服务提供商可以为推荐系统配备一定的假用户检测能力。在本节中,我们将研究我们的攻击是否仍能有效地攻击假用户感知的推荐系统。具体来说,我们从每个用户的评级中提取了6个特征——即RDMA[6]、WDMA[23]、WDA[23]、TMF[23]、FMTD[23]和MeanVar[23]。然后,对于每个攻击,我们构建一个训练数据集,包括由攻击生成的800个假用户和800个随机抽样的正常用户组成的训练数据集。我们使用训练数据集来学习一个SVM分类器。请注意,分类器可能因不同的攻击而有所不同。

假用户检测结果:我们部署训练好的SVM分类器来检测不同攻击设置下的假用户。图2报告了不同攻击的假用户检测结果,其中假阴性率(FNR)表示被预测为正常的假用户的比例。从图2中,我们发现PGA攻击最有可能被检测到。其原因是PGA攻击生成的虚假用户没有根据正常用户的行为对填充项进行评级,因此生成的虚假用户很容易被检测到。我们还观察到,很大一部分虚假用户没有被检测到。

[论文阅读2]Influence Function based Data Poisoning Attacks to Top-NRecommender Systems_第5张图片

攻击假用户感知推荐系统:我们现在测试对假用户感知推荐系统的攻击性能。假设服务提供者从经过训练的SVM分类器检测到的系统中删除预测的假用户。在服务提供商从系统中排除预测的假用户后,我们重新计算命中率。请注意,大部分虚假用户和少数正常用户将被删除。结果如表2所示。我们观察到,当服务提供者从系统中去除预测的假用户时,PGA攻击的攻击性能最差。原因是PGA攻击最有可能被检测到。对比表1和表2,我们可以看到,当目标推荐系统配备了假用户检测器时,我们的攻击在有效促进目标项目方面仍然有效,并且优于基线攻击。这是因为探测器遗漏了很大一部分假用户。

你可能感兴趣的:(数据挖掘,人工智能,推荐算法)