0 摘要
推荐系统通常针对高度敏感的用户数据进行训练,因此推荐系统潜在的数据泄露可能会导致严重的隐私问题。
本文首次尝试通过成员推理的角度来量化推荐系统的隐私泄漏。 与针对机器学习分类器的传统成员推理相比,本文的攻击面临两个主要差异。 首先,我们的攻击是在用户级别,而不是在数据样本级别。 其次,对手只能观察来自推荐系统的有序推荐项目,而不是后验概率形式的预测结果。 为了解决上述挑战,我们提出了一种通过从相关项目中表示用户的新方法。 此外,建立影子推荐器以导出用于训练攻击模型的标记训练数据。 大量的实验结果表明,我们的攻击框架取得了强大的性能。 此外,我们设计了一种防御机制来有效减轻推荐系统的成员推理威胁。
1 引言
在本文中,我们迈出了第一步,通过成员推断的视角量化推荐系统的隐私风险。 与之前针对机器学习分类器的成员推理攻击 [39, 43] 相比,我们的攻击面临两个主要差异。 首先,我们攻击的目标是确定目标推荐者是否使用了用户的数据。 这表明我们的攻击是在用户级别,而之前的大多数攻击都集中在样本级别 [39, 43]。 与样本级成员资格推断不同,用户级成员资格推断具有更广泛的范围,正如之前的工作[45]中提到的,它可以帮助我们全面了解推荐系统的隐私风险。 其次,从对手的角度来看,目标推荐者只能获得项目的排名列表,这带来了几个技术挑战:
- 在我们的攻击中,如图 1 所示,对手只能观察项目列表,即使推荐系统在做出决定之前已经计算了后验概率。 这种设置在现实世界中很普遍,比如亚马逊或Netflix提供的服务。 此外,公开较少的信息可以保护推荐服务提供商的知识产权[39]。 相反,在针对分类器的经典成员推理攻击中,对手可以访问用于决策的后验概率 [31, 37, 39, 43]。
- 最近针对分类器的一些成员推断攻击集中在仅决策(即仅标签)场景[10,28]。然而,这些研究要么依赖于目标模型来标记阴影数据集[28],要么使用对抗性示例[28],这在现实世界中针对推荐系统时并不实用。我们的目标是为攻击模型提供一种从决策结果中提取信息的新方法。
- 与经典分类器不同,推荐系统的输出是除无序标签之外的项目的排序列表。在这种情况下,订单信息起着重要作用,可以极大地促进用户偏好预测。因此,我们的攻击模型有必要从推荐物品中获取订单信息,而以往的成员推理攻击方法仍然忽略了这一点。
威胁模型: 对手的目标是对目标推荐系统进行成员推断攻击,推断目标用户的数据是否用于训练目标推荐。然而,此类攻击可能导致严重的安全和隐私风险。具体地说,当推荐系统使用来自具有某些敏感信息(例如健康状况)的人的数据进行训练时,知道用户数据是推荐训练数据的一部分会直接泄露他们的私人信息。此外,成员推理还可以获得对手关于目标推荐训练数据的信息,这可能会损害推荐的知识产权,因为收集高质量数据通常需要大量的经验[18,27]。从另一个角度来看,用户还可以使用成员资格推断作为工具来审核目标推荐是否使用了他们的数据。
我们假设对手可以黑盒访问目标推荐系统,这是对手最困难的设置[43]。与推荐的后验概率不同,只有与用户相关的项目可用,如评分或购买和推荐项目。基于知识,建立了一个阴影推荐器来导出标记的训练数据,以便攻击模型更好地推断目标推荐器中的成员状态。
攻击方法:对于用户级成员关系推断,我们需要根据目标推荐者和它们之间的相互作用总结每个特征向量。作为攻击模型的输入。然而,与以往针对分类器的隶属度推理工作相比,对手只能观察推荐系统中的推荐项,而不是作为预测结果的后验概率。因此,在第一步中,对手使用用于生成特征向量的数据集构建用于评级的用户项矩阵。然后,他们把这个矩阵分解成两个低维矩阵,即用户矩阵和项目矩阵。 每个项目的特征向量可以由项目矩阵中对应的行向量表示。 对于每个用户,对手提取两组项目(一组包含用户推荐的项目,另一组包含用户与之交互的项目)并分别计算这两组的中心向量。 每个用户的这两个中心向量之间的差异描述了推荐者对该用户的准确程度。 在这种情况下,较低的差异表明用户的数据更有可能用于训练推荐者。 因此,我们使用这种差异作为攻击模型的输入,即用户特征向量。 对手在影子推荐器的帮助下为其攻击模型生成所有标记的训练数据集。 为了发起攻击,攻击者按照相同的步骤生成目标用户的特征向量,并从攻击模型中获得预测。
2 方法
2.1 攻击概述
如图 2 所示,攻击过程遵循三个步骤:标记数据生成、攻击模型建立和参数优化。
标记数据生成。 为了表示项目,通过分解用户-项目评分矩阵来导出项目矩阵。 由于攻击者对目标推荐器的黑盒访问,构建了一个影子推荐器来为攻击模型生成标记的训练数据。 此外,我们使用相应的特征向量表示用户的交互和推荐。 之后,根据用户交互和推荐的两个中心之间的差异对用户进行分析。 并且每个用户都被标记为 1 或 0,表示他们是会员或非会员。
攻击模型建立。 受 [39] 的启发,两个隐藏层的多层感知器(MLP)被用作攻击模型 Aattack \mathcal{A}_{\text {attack }}Aattack 来推断成员状态。 每个隐藏层后跟一个 ReLU 激活层。 并使用 softmax 函数作为输出层来预测隶属度的概率。
参数优化。 在标记数据生成和攻击模型建立之后,如图 2 所示,攻击者更新攻击模型的参数。 在推理阶段,按照与训练数据生成相同的步骤建立目标用户的测试数据集。 目标用户的成员资格状态由经过训练的攻击模型推断。
2.2 具体实现过程
标记数据生成。 Aattack \mathcal{A}_{\text {attack }}Aattack 优化过程中需要训练数据。 然而,对手不能直接从目标推荐者 Atarget\mathcal{A}_{\text {target}}Atarget 获得成员资格。 为了解决这个问题,开发了一个影子推荐器 Ashadow\mathcal{A}_{\text {shadow}}Ashadow来模拟目标推荐器的数据集和推荐算法。
用到了矩阵分解:Rp×q≈Up×lVq×lTR_{p \times q} \approx U_{p \times l}V_{q \times l}^TRp×q≈Up×lVq×lT。
VjV_jVj表示项目jjj的特征向量;
UiU_iUi表示用户iii的特征向量;由于UiU_iUi不能覆盖在影子和目标推荐器的所有用户,所以不能用UiU_iUi作为代表性用户(目前还没完全懂这句话的意思)
有了UVTUV^TUVT分解后,就可以得到Ashadow\mathcal{A}_{\text {shadow}}Ashadow,再利用Ashadow\mathcal{A}_{\text {shadow}}Ashadow模型来构建Dshadow\mathcal{D}_{\text {shadow}}Dshadow,并且把Dshadow\mathcal{D}_{\text {shadow}}Dshadow分解为两个不相交的成员数据集Dshadowin\mathcal{D}_{\text {shadow}}^{\text {in}}Dshadowin和非成员数据集Dshadowout\mathcal{D}_{\text {shadow}}^{\text {out}}Dshadowout。
问:按照作者的思路,攻击者是没有办法获取到Rp×qR_{p \times q}Rp×q,那怎么得到UVTUV^TUVT分解呢?又怎么能够通过Ashadow\mathcal{A}_{\text {shadow}}Ashadow来获取到Dshadow\mathcal{D}_{\text {shadow}}Dshadow数据集呢?
答:目前暂时还不知道怎么做到的。