摘要:
推荐系统是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攻击,并使用两个基准数据集与最先进的技术进行比较。我们的研究结果表明ÿ