Membership Inference Attacks Against Recommender Systems论文解读

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×qUp×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数据集呢?
答:目前暂时还不知道怎么做到的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/507562.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python分类预测降低准确率_十分钟掌握python机器学习特征选择

十分钟掌握python机器学习特征选择-1.jpg (33.2 KB, 下载次数: 0)2018-6-26 23:01 上传在机器学习中,特征选择是实践中的一步, 帮你在所有特征中选择对结果贡献最多的特征。 显然, 使用不相关数据会减少模型的精确性,尤其是线性算…

k近邻推荐用到的各种距离

1 kkk-近邻推荐原理 2 各种距离 2.1 欧几里得距离 d12(x1−x2)2(y1−y2)2d_{12} \sqrt{(x_{1} - x_{2})^2 (y_{1} - y_{2})^2}d12​(x1​−x2​)2(y1​−y2​)2​ 缺点:欧式距离是一种常用的距离度量,但它并不是尺度不变的,这意味着所计算…

python 分类变量回归_极简Python带你探索分类与回归的奥秘

为何使用人工智能和机器学习?地球的未来在于人工智能和机器学习。如果对这些技术一无所知,人们很快会发现自己落伍了。世界发展日新月异,每天都发生着不可思议的变化。在人工智能和机器学习中,有许多实现和技术能够解决实时问题。…

Fast Matrix Factorization for Online Recommendation with Implicit Feedback论文代码分析

1 数据结构 userCount&#xff1a;用户数 itemCount&#xff1a;项目数 user_ratings&#xff1a;ArrayList<ArrayList>&#xff0c; 问&#xff1a;此处为什么要用二维数组&#xff1f; 答&#xff1a;第1维是用户&#xff0c;第2维是用户对所有项目的评分。 testRatin…

stacking模型融合_【干货】比赛后期大招之stacking技术分享

各位同学大家好&#xff0c;我是本次参赛选手李博&#xff0c;比赛ID是深蓝&#xff08;DeePBluE&#xff09;。现在就读于北京邮电大学&#xff0c;是一名研一的在校生&#xff0c;研究方向是数据分析和机器学习。是的&#xff0c;我又来分&#xff08;na&#xff09;享&#…

多stream_基础之Lambda和Stream的邂逅

基础之Lambda和Stream的邂逅show me the code and take to me,做的出来更要说的明白GitHub项目JavaHouse同步收录喜欢就点个赞呗! 你的支持是我分享的动力&#xff01;引入是否有遇到看不懂身边同事代码的情况&#xff0c;是否有被面试官问到 Java 新特性不懂的情况。我掐指一算…

注意力机制--转载自我的学生隆兴写的博客

原文链接为&#xff1a;https://a-egoist.com/posts/a44b8419/&#xff0c;学生自己搭建的博客&#xff0c;点赞&#xff01; 1 Attention 1.1 什么是 Attention 灵长类动物的视觉系统中的视神经接受了大量的感官输入。在检查视觉场景时&#xff0c;我们的视觉神经系统大约每…

python正弦波和等腰三角波_正弦波脉宽调制(SPWM)原理

1、QPWM的概念 在进行脉宽调制时&#xff0c;使脉冲系列的占空比按正弦规律来安排。当正弦值为最大值时&#xff0c;脉冲的宽度也最大&#xff0c;而脉冲间的间隔则最小&#xff0c;反之&#xff0c;当正弦值较小时&#xff0c;脉冲的宽度也小&#xff0c;而脉冲间的间隔则较大…

推荐系统--矩阵分解(1)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 1 引入 一个矩阵可以分解为两个小矩阵的乘积&#xff0c;以音乐为例&#xff0c;利用潜在特征向量来给用户和音乐打上标签&#xff…

python dag调度系统开发_基于机器学习的DAG调度平台

什么是DAG?有向无环图树形结构&#xff1a;除根节点&#xff0c;每个节点有且仅有一个上级节点&#xff0c;下级节点不限。根节点没有上级节点。图结构&#xff1a;每个节点上级、下级节点数不限。DAG调度平台的定义及场景任务调度是在各行各业是个基础问题&#xff0c;当任务…

轻量级人脸识别算法

1 概述 轻量级人脸识别算法

python元组与列表的区别、简答题_细解python面试题(一)元组和列表的区别

可能略去了一些内容。1、列表VS元组在python编程中&#xff0c;我们经常搞不懂列表和元组的区别&#xff0c;或者哪些函数可以用于列表&#xff0c;哪些用于元组&#xff0c;那么跟随本文我们来深入的探索。2、元组元组是值的集合&#xff0c;我们用圆括号来申明它。元组中的类…

Yolo家族算法分析

1 历史简介 2 YOLO算法思想 YOLO算法的基本思想&#xff1a; &#xff08;1&#xff09;将图片划分为SSS \times SSS个网格&#xff1b; &#xff08;2&#xff09;计算每个边界框和置信度&#xff1b; &#xff08;3&#xff09;计算每个网格属于某个类别的概率&#xff1b; &…

u8 附件上传后存放路径_织梦DedeCms附件按月份保存的修改方法

正常情况下&#xff0c;dedecms织梦系统的图片附件是按日保存的&#xff0c;一天一个文件夹, 时间长了, 这样在allimg中就会生成很多文件夹, 不方便管理&#xff0e;虽然&#xff0c;dedecms织梦的后台设置有”附件保存形式”的先项, 但功能太弱&#xff0c;如果是在后台上传和…

推荐系统--矩阵分解(2)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 3 BiasSVD&#xff1a;考虑偏置 有一些用户会给出偏高的评分&#xff0c;有一些物品也会收到偏高的评分&#xff0c;比如电影观众为…

tga文件怎么打开_教你win10系统怎么打开stp文件

stp文件怎么打开呢&#xff1f;近来有很多小伙伴反映有朋友发送了一个stp文件给它&#xff0c;搞了半天也没能打开。其实打开stp文件很简单&#xff0c;不过前提是需要有绘图软件。我给大家整理了打开stp文件的图文教程&#xff0c;赶紧来瞧瞧吧有些朋友在使用win10系统的过程中…

python爬取电子病历_一种基于中文电子病历的实体识别方法技术

本发明专利技术提供了一种基于中文电子病历的实体识别方法&#xff0c;涉及医疗实体识别技术领域。针对目前国内缺少公开中文电子病历标注语料库的缺陷&#xff0c;本发明专利技术通过构建整理医学词典&#xff0c;提出了一种半自动语料库标注方法&#xff0c;节省了人工标注的…

推荐系统--矩阵分解(4)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 7 基于情感分析的矩阵分解 7.1 引入 【摘要】推荐系统旨在基于丰富的信息预测用户的偏好&#xff0c;例如用户评分、人口统计和评论…

yarn 卸载包_0609-6.1.0-如何卸载CDH6.1

1.文档编写目的Fayson在两年前的文章中介绍过CDH的卸载&#xff0c;参考《如何卸载CDH(附一键卸载github源码)》。除非你是使用Cloudera官方提供的一键安装脚本安装的CDH&#xff0c;否则并没有现成的一键卸载的脚本供使用。为了更好的理解CDH的卸载&#xff0c;这里再次简单介…

推荐系统--矩阵分解(3)

推荐系统–矩阵分解(1) 推荐系统–矩阵分解(2) 推荐系统–矩阵分解(3) 推荐系统–矩阵分解(4) 推荐系统–矩阵分解(5) 推荐系统–矩阵分解(6) 5 TimeSVD&#xff1a;增加时间因素 物品的受欢迎度随着时间而改变&#xff0c;例如&#xff0c;电影可以因外部事件(如新电影中演员…