【论文阅读】Feature Inference Attack on Shapley Values

摘要

研究背景

近年来,解释性机器学习逐渐成为一个热门的研究领域。解释性机器学习可以帮助我们理解机器学习模型是如何进行预测的,它可以提高模型的可信度和可解释性。Shapley值是一种解释机器学习模型预测结果的方法,它可以计算每个特征对预测结果的贡献程度,从而帮助我们理解模型的预测过程。Shapley值已经在许多领域得到了广泛的应用,比如金融、医疗、自然语言处理等。

研究动机

然而,随着机器学习模型的广泛应用,模型的隐私和安全问题也变得越来越重要。模型的隐私泄露可能会导致个人隐私信息的泄露,从而对个人造成不可挽回的损失。在Shapley值方法中,攻击者可以通过对Shapley值进行反推来推断出模型中使用的特征,从而了解模型的训练数据和训练过程。这种攻击方式可能会导致模型隐私泄露,从而损害模型的安全性和信任度。

论文贡献

为了解决这个问题,研究人员在本文中提出了一种新的隐私保护技术,称为Shapley值加噪技术。该技术可以在一定程度上保护Shapley值的隐私,同时保持解释性能力。研究人员还提出了一种新的攻击方式,称为特征推理攻击,可以通过对Shapley值进行反推来推断出模型中使用的特征。研究人员在多个数据集和模型上进行了实验验证,结果表明论文中提出的特征推理攻击是有效的,并且所提出的Shapley值加噪技术能够有效地防止这种攻击。本文的主要贡献在于提出了一种新的隐私保护技术,可以保护Shapley值的隐私,同时保持解释性能力。

前置知识

机器学习模型基本原理

机器学习是一种使用算法和统计模型来分析和解决复杂问题的方法。机器学习模型通过学习数据集中的模式和规律来进行预测和分类。机器学习模型通常包括一个训练阶段和一个预测阶段。在训练阶段,模型使用标记好的数据集来学习规律和模式;在预测阶段,模型使用学习到的规律和模式来对新的数据进行预测。

Shapley值及其应用

Shapley值是一种用于解释机器学习模型预测结果的方法。Shapley值可以计算每个特征对预测结果的贡献程度,从而帮助我们理解模型的预测过程。Shapley值方法基于合作博弈论中的Shapley值概念,将每个特征视为一个“玩家”,将预测结果视为“支付函数”,并使用Shapley值来分配支付函数中的支付给每个“玩家”。

Shapley Value的计算方式需要考虑所有特征子集的贡献,因此需要使用组合数学中的排列组合方法来进行计算。下面是Shapley Value的计算公式:

对于特征i,它在所有特征子集S中所对应的贡献为:

\phi_i=\sum_{S \subseteq F \setminus {i}} \frac{|S|!(|F|-|S|-1)!}{|F|!} [f(S \cup {i}) - f(S)]

其中,F 是所有特征的集合,​ 是特征子集 S 的大小,​ 是使用特征子集 S 训练出的模型在测试集上的性能指标,​ 是加入特征 i 后训练出的模型在测试集上的性能指标。

上述公式表示了特征i在所有可能的特征子集中的平均边际贡献,即特征 i 对于所有特征子集的增益平均值。在实际计算中,需要对所有特征进行遍历来计算每个特征的Shapley值。

在实际应用中,Shapley值已经被广泛应用于解释性机器学习,比如特征重要性评估、模型诊断和模型优化等方面。Shapley值还可以用于探索特征之间的相互作用,从而帮助我们理解模型的决策过程和行为。虽然Shapley值已经在很多领域得到了广泛的应用,但其隐私和安全问题也逐渐变得越来越重要。

特征推理攻击

敌手出于恶意目的,将数据去匿名化或者锁定记录的拥有者。

在数据被发布之前,通过删除用户的个人可识别信息(也称为敏感特征)来实现匿名化,是用户保护隐私的一种常用方法。

基于解释报告的攻击框架

①攻击者向ML平台发送虚假查询,并接收带有解释的决策

②攻击者根据模型的输入和解释,设计特征推断算法

③攻击者可能获得目标客户的解释报告

④根据这些解释,攻击者可以通过攻击算法重构相应的私有特征

符号解释

最后是一些符号术语的解释,帮助我们理解论文:

​是运行在ML平台上的黑盒模型;

​是想要重构出的目标特征样本;

​是​所包含的特征数量;

​是黑盒模型的输出;

输出的class数用字母​来表示;

​就是样本的Shapley值;

​右上标表示第几个样本,右下标表示这个样本的第几个特征。

攻击原理

下面可以步入正题了,也就是论文提出的基于Shapley值的特征推理攻击算法。

具体分为两种类型,一种是使用辅助数据集的特征推理攻击,另一种是具有数据独立性的特征推理攻击。

使用辅助数据集的特征推理攻击

第一种攻击方式,使用辅助数据集的特征推理攻击。

下面就是这种攻击算法的伪代码,相对比较简单,所做的事情简单来说就是基于一个辅助数据集,学习一个具有经验风险最小化的回归模型,然后将解释向量𝒔映射到私有数据中。经过最小化,然后将解释向量𝒔映射到私有特征空间,并相应地获得估计值。

整个攻击的过程和机器学习如出一辙,同样是先训练一个回归模型,再使用这个回归模型进行预测。

整个算法的核心原理就是右边这张双射图:

图中灰色的​函数是指特征值作为输入,Shapley值作为输出;橙色的​函数则是反过来,Shapley值作为输入,特征值作为输出。

左侧的函数是ML平台所做的,右边的函数是攻击者所做的,通过重新训练一个相反的模型达成特征推理攻击的目的。

因为攻击者拥有了一个辅助数据集,所以这种方式会相对简单一些,成本也会低很多。

具有数据独立性的特征推理攻击

第二种攻击方式,具有数据独立性的特征推理攻击。

顾名思义,这种攻击需要的条件没有刚才讲到的使用辅助数据集的攻击那么严苛,但是攻击成功困难性也会提升,甚至能否攻击成功是一个运气事件。

假设对手没有辅助数据集,对手将不可能学习到刚才的攻击模型,因为目标私有特征的分布是未知的。从𝒔(也就是Shapley值)恢复𝒙(私有样本特征值)的方法是,攻击者生成一个随机数据集,将该数据集中的样本分别发送到ML平台并获得对应的解释。假设随机数据集的大小足够大,则会有你猜测的Shapley值属于目标数据集的Shapley值集合,这样就可以使用与之关联的Xrand作为依据估计𝒙。

想法很好,具体操作中会存在两个问题:

第一,为了提高估计的精度,对手需要随机从可能的特征空间中抽取大量样本,并将其发送到ML平台。对于按查询付费的服务来说,成本可能很高,并且会增加被服务提供者发现和阻止的风险。

第二,双射关系只在x和s之间成立,而不是在你选择的Xrand和Srand之间成立。

基于这些问题,如下图所示,研究人员继续研究了如何才能更准确地从随机数据集中找到符合条件的样本,使用的方法就是结合特征值的相关系数来进行分析,使得误差小于一定的阈值。

 

具体攻击算法如下图所示:

在算法的第9-12行中,对于目标特征𝑥𝑖,首先,我们计算它的Shapley值𝒔𝑖和随机样本中第i个特征的Shapley值之间的距离distance;

随后在第13行,根据Shapley值距离对随机特征进行排序;

之后的这个for循环也就是相应地选择Shapley值距离小于阈值𝜉的𝑥𝑖的候选估计;

最后在第19行,我们选择只重建那些候选估计值范围小于阈值𝜏的私有特征。

最终算法时间复杂度是O(nmlogm),其中𝑛表示目标特征的数量,𝑚表示随机数据集的大小,在后续实验中,表明随机数据集的大小𝑚=100足以从复杂模型(如神经网络)中重建30%以上的高精度特征。

实验探究

实验环境

实验平台

为了验证所提出的攻击在现实世界应用中的有效性,研究人员在三个领先的ML平台上进行了实验,分别是谷歌云AI平台、微软云AI平台和IBM可信AI平台。

实验数据集

实验使用了多种多样的数据集,涵盖了商业、银行、信用卡、医学等多个领域。

样本的数量在3W到10W不等,其特征的数量也多种多样,保证了实验具有普适性和说服力。

黑盒模型

实验中使用了四种类型的模型:

①神经网络(NN)

②随机森林(RF)

③梯度提升的决策树(GBDT)

④使用径向基函数(RBF)核的支持向量机(SVM)

衡量标准

我们用平均绝对误差(MAE,即​损失)来衡量重建的输入𝒙ˆ与真实输入𝒙之间的偏差:

\ell_{1}(\hat{x}, x)=\frac{1}{m n} \sum_{j=1}^{m} \sum_{i=1}^{n}\left|\hat{x}_{i}^{j}-x_{i}^{j}\right|

其中,𝑚是验证数据集​中的样本数量,𝑛是特征的数量。

此外,我们用成功率(SR)来评估通过攻击2可以成功重建的特征的百分比:

\mathrm{SR}=\frac{\left|\hat{X}_{v a l} \neq \perp\right|}{m n}

其中,​代表在​中成功恢复的特征总数。

基线(baseline)

基线(baseline)被用为对比模型表现参考点的简单模型,帮助模型开发者量化模型在特定问题上的预期表现。

对于使用辅助数据集的特征推理攻击,由于攻击者拥有一个辅助数据集,该数据集与私人输入​的基础分布相同,我们使用基于经验分布的随机猜测基线(称为RG-E),该基线通过随机抽样一个向量𝒙˜ ∼ ​来估计𝒙值。

对于具有数据独立性的特征推理攻击,由于攻击者不知道私人输入的分布,我们使用两个随机猜测基线来估计𝒙的值:均匀分布𝑼(0, 1)(称为RG-U)和高斯分布𝑵(0.5, 0.252)(称为RG-N)。

探究不同查询数量的攻击性能

因为在之前提到的两种攻击中,对手都是以按查询付费的模式向ML平台发送查询。如果需要的查询数量很大,就会导致攻击成本过大,所以需要探究探究不同查询数量的攻击性能。

在我们的设想中,查询数量越多,攻击的成功率就越高,loss值就会越低。

如图所示,实际情况和我们设想的差不多loss值会随着查询数量的增长呈现减少趋势,除了个别数据集例如Credit数据集中出现山谷点的现象。

下图研究的是成功率随不同查询数量的变化:

左边是不同的数据集,分别对应不同黑盒模型,随查询数量从左到右不断增加的成功率变化。

我们可以发现,虽然理论上成功率会随查询数量增加不断提高,但是实际上这种趋势会在查询数量达到一定规模后放缓,例如像Credit数据集中的RF模型。

当然也有像Insurance数据集的GBDT模型,在查询数量很少时就进入了增速缓慢的状态。

探究不同MLaaS平台的攻击性能

我们控制查询数量均为1000,探究不同ML平台的攻击性能,发现在IBM平台和微软平台的攻击性能在不同模型和不同数据集上都是不相上下的,其实原因也很简单,这两个平台使用相同的回归方法计算Shapley值。

Google平台则不同,它使用的是抽样方法计算的Shapley值,所以在大多数数据集和模型上和另外两个平台的攻击性能表现不同。

而且Google平台的攻击成功率在大部分数据集和模型中都比IBM平台和微软平台都要高一些,如下图所示:

探究不同特征重要性的攻击性能

接下来是探究不同特征重要性的攻击性能。

如果一个特征更重要,其值的变化可以对模型输出造成更大的影响,从而对模型解释产生更大的值。

但相应的,它的Shapley值将包含更多的该特征的信息,能够以更大的概率重构。

在实验中,研究人员通过对比相关系数印证了这一点:

探究不同Shapley采样误差下的攻击性能

为了评估论文中所提出的攻击算法的鲁棒性,我们还需要探究不同Shapley采样误差下的攻击性能。

从上图可以看出,随着采样误差的降低,两种攻击所重构出的特征值精度略有提高,这比较容易理解,随机噪声减少意味着Shapley值包含的私有特征信息会增加,这有利于重构特征,然而这种改进幅度并不大,表明所提出的两种攻击即使在较大的采样误差下也具有鲁棒性和高效性。

相关工作

模型的可解释性

在复杂的黑盒模型中,缺乏跟踪数据流的理论技术促进了大量关于模型可解释性的研究,这些研究旨在解释这些模型如何产生预测。模型可解释性度量方法可分为两类:用于计算不同特征的整体重要性的全局可解释性,以及用于估计目标样本中特征重要性的局部可解释性。在本文中,我们主要研究局部方法,它可以进一步分为Shapley基于值的方法和启发式方法。启发式方法旨在线性化目标样本附近的模型决策边界,并使用不同特征的线性权重作为其重要值,例如LIME和基于梯度的方法。尽管启发式方法在计算上是有效的,但很少有理论分析来证明它们的鲁棒性和误差界限。另一方面,Shapley基于值的方法理论上可以为ML解释提供理想的属性,因此被领先的MLaaS平台用于解释表格数据。

机器学习的攻击算法

许多研究揭示了机器学习模型所面临的隐私风险,如隶属度推理、属性推理、模型提取和特征推理。隶属度推断的目的是确定特定样本是否在训练数据集中,属性推断的目的是恢复训练数据集的统计数据。由于这两种类型的攻击都是监督任务,因此需要一个辅助数据集来完成攻击模型的训练。模型提取的目的是根据黑盒模型的预测重建其参数。然而,很少有研究考虑模型可解释性方法的隐私风险。虽然一些最新的研究集中在基于启发式解释性方法产生的局部解释的隶属度推理或神经网络提取上,但它们的设置和任务与我们的完全不同。本文主要研究了基于Shapley值的特征推断攻击,该攻击对实际应用更具有实用性和影响力。据我们所知,这也是第一篇在Shapley价值观中考虑隐私风险的论文。

针对当前攻击的防御机制

由于当前攻击的效率依赖于ML模型的记忆特性,大多数防御机制都侧重于通过噪声注入防止模型记忆敏感数据。例如,使用较低粒度的模型输出可以减少其中包含的私有特征信息,从而降低隶属度推断和模型提取的准确性。神经网络中的dropout和集成学习等正则化方法可以减少模型记忆的训练数据集的信息。差异隐私是目前最流行的防御机制之一,因为它为保护私有模型输入提供了严格的理论保证。然而,这些防御不能应用于提议的攻击,因为我们专注于在预测阶段重构从未被模型看到并因此被模型记住的私人输入。通过减少明文输出和私有数据之间的互信息,提出了一种防御机制,这在精神上与我们的分析相似。但是,在我们的设置中不能直接使用中的方法。首先,在模型训练过程中通过互信息改变学习目标,而模型在Shapley值的计算中被训练和固定。其次,隐私保护中的互信息与主要任务的关系松散,因此可以最小化,而在我们的例子中,最小化Shapley值和特征之间的互信息会损害解释的效用。尽管如此,仍然提供了一些减少拟议攻击的见解。

结论

这篇论文重点研究了Shapley基于价值的模型解释方法所遭受的隐私风险,首先从信息理论的角度分析了私有模型输入与Shapley值之间的关系,并据此提出了两种不同设置下的特征推断攻击,在三个主要的MLaaS平台上进行的大量实验证明了所提出的攻击的有效性和鲁棒性,强调了在未来的研究中开发隐私保护模型可解释性方法的必要性。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

视频标注是什么?和图像数据标注的区别?

视频数据标注是对视频剪辑进行标注的过程。进行标注后的视频数据将作为训练数据集用于训练深度学习和机器学习模型。这些预先训练的神经网络之后会被用于计算机视觉领域。 自动化视频标注对训练AI模型有哪些优势 与图像数据标注类似,视频标注是教计算机识别对象…

springboot整合myabtis+mysql

一、pom.xml <!--mysql驱动包--><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency><!--springboot与JDBC整合包--><dependency><groupId>org.springframework.b…

hcip——路由策略

要求&#xff1a; 基础配置 AR1 [R1]int g 0/0/0 [R1-GigabitEthernet0/0/0]ip add 12.0.0.1 24[R1-GigabitEthernet0/0/0]int g 0/0/1 [R1-GigabitEthernet0/0/1]ip add 14.0.0.1 24[R1]int loop0 [R1-LoopBack0]ip add 1.1.1.1 24[R1]rip 1 [R1-rip-1]vers 2 [R1-rip-1]net…

基于扩展(EKF)和无迹卡尔曼滤波(UKF)的电力系统动态状态估计(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

k8s中强制删除pv

K8s 集群内有一个已经不再使用的 PV&#xff0c;虽然已经删除了与其关联的 Pod 及 PVC&#xff0c;并对其执行了删除命令&#xff0c;但仍无法正常删除&#xff0c;一直处于 Terminating 状态&#xff1a; 解决办法&#xff1a; 1. 获取pv信息 kubectl get pv 2. 解除pv锁定 …

2023/7/29总结

项目&#xff1a; 这几天主要实现了评论的功能点: 还是有点小bug&#xff0c;还在更改中…… 修改个人中心的界面 接下来是把收藏完善&#xff0c;因为收藏需要用户自己创建一个新的收藏夹

JAVA 正则表达式(heima)

JAVA 正则表达式&#xff08;heima&#xff09; public class RegexDemo01 {/** 正则表达式介绍&#xff1a;本质来说就是一个字符串&#xff0c;字符串中可以指定规则&#xff0c;来对其他字符串进行校验。* public boolean matches(String regex):根据传入的正则表达式&#…

matplotlib绘图中可选标记

文章目录 简介所有可用的绘图标记绘图函数标记绘制 简介 前面的博客简要介绍了matplotlib中的绘图标记&#xff0c;并列举出了部分可用标记点的类型&#xff0c;并画了个图作为示例&#xff0c;如下图下表所示。本文则将所有标记点的类型均绘制一遍 字符类型字符类型字符类型…

基于springboot+mybatis+thymeleaf+html产品销售与分析系统

基于springbootmybatisthymeleafhtml产品销售与分析系统 一、系统介绍二、功能展示1.下单(批发商)2.订单管理&#xff08;批发商&#xff09;3.首页(厂家管理员)4.订单管理&#xff08;厂家管理员&#xff09;5.商品管理&#xff08;厂家管理员&#xff09;6.统计分析&#xff…

【深度学习】InST,Inversion-Based Style Transfer with Diffusion Models,论文

代码&#xff1a;https://github.com/zyxElsa/InST 论文&#xff1a;https://arxiv.org/abs/2211.13203 文章目录 AbstractIntroductionRelated WorkImage style transferText-to-image synthesisInversion of diffusion models MethodOverview ExperimentsComparison with Sty…

记录每日LeetCode 141.环形链表 Java实现

题目描述&#xff1a; 给你一个链表的头节点 head &#xff0c;判断链表中是否有环。 如果链表中有某个节点&#xff0c;可以通过连续跟踪 next 指针再次到达&#xff0c;则链表中存在环。 为了表示给定链表中的环&#xff0c;评测系统内部使用整数 pos 来表示链表尾连接到链…

【面试大题】决策树

决策树知识点 ID3 规则——信息增益&#xff08;基于熵&#xff09; 先计算根结点的信息熵 H ( D ) − ∑ k 1 ∣ Y ∣ p k log ⁡ p k H(D)-\sum_{k1}^{|Y|}{p_k\log{p_k}} H(D)−∑k1∣Y∣​pk​logpk​再计算根据某特征分割之后的条件熵 H ( D ∣ f e a t u r e ) ∑…

iOS - 解压ipa包中的Assert.car文件

项目在 Archive 打包后&#xff0c;生成ipa包 将 xxx.ipa文件修改为zip后缀即 xxx.zip &#xff0c;然后再双击解压&#xff0c;会生成一个 Payload 文件夹&#xff0c;里面一个文件 如下图&#xff1a; 然后显示改文件的包内容&#xff1a; 解压 Assets.car 文件的方式&…

Appium+python自动化(二十二)- 控件坐标获取(超详解)

简介 有些小伙伴或者是童鞋可能会好奇会问上一篇中的那个monkey脚本里的坐标点是如何获取的&#xff0c;不是自己随便蒙的猜的&#xff0c;或者是自己用目光或者是尺子量出来的吧&#xff0c;答案当然是&#xff1a;NO。获取控件坐标点的方式这里宏哥给小伙伴们分享和讲解三种方…

C#时间轴曲线图形编辑器开发2-核心功能实现

目录 三、关键帧编辑 1、新建Winform工程 &#xff08;1&#xff09;界面布局 &#xff08;2&#xff09;全局变量 2、关键帧添加和删除 &#xff08;1&#xff09;鼠标在曲线上识别 &#xff08;2&#xff09;键盘按键按下捕捉 &#xff08;3&#xff09;关键帧添加、删…

全面适配 | 走近openGauss数据库+鲲鹏欧拉操作系统

引入 全面适配 | openEuler操作系统 openGauss数据库 开篇 1、openEuler欧拉操作系统 百度百科&#xff1a;openEuler是覆盖全场景的创新平台&#xff0c;在引领内核创新&#xff0c;夯实云化基座的基础上&#xff0c;面向计算架构互联总线、存储介质发展新趋势&#xff0c;…

某渣渣平台APP登录

准备 APP有壳----360的好像是&#xff0c;懒得回头再看了加密参数sign、password 过程就略过吧&#xff01;此处只展示结果

win10 hadoop报错 unable to load native-hadoop library

win10 安装hadoop执行hdfs -namenode format 和运行hadoop的start-all报错 unable to load native-hadoop library 验证&#xff1a; hadoop checknative -a 这个命令返回都是false是错的 返回下图是正确的 winutils: true D:\soft\hadoop-3.0.0\bin\winutils.exe Native li…

STM32MP157驱动开发——按键驱动(定时器)

内核函数 定时器涉及函数参考内核源码&#xff1a;include\linux\timer.h 给定时器的各个参数赋值&#xff1a; setup_timer(struct timer_list * timer, void (*function)(unsigned long),unsigned long data)&#xff1a;设置定时器&#xff1a;主要是初始化 timer_list 结…

CentOS7系统Nvidia Docker容器基于TensorFlow2.12测试GPU

CentOS7系统Nvidia Docker容器基于TensorFlow1.15测试GPU 参考我的另一篇博客 1. 安装NVIDIA-Docker的Tensorflow2.12.0版本 1. 版本依赖对应关系&#xff1a;从源代码构建 | TensorFlow GPU 版本Python 版本编译器构建工具cuDNNCUDAtensorflow-2.6.03.6-3.9GCC 7.3.1Ba…