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

news2025/4/5 0:23:36

摘要

研究背景

近年来,解释性机器学习逐渐成为一个热门的研究领域。解释性机器学习可以帮助我们理解机器学习模型是如何进行预测的,它可以提高模型的可信度和可解释性。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平台上进行的大量实验证明了所提出的攻击的有效性和鲁棒性,强调了在未来的研究中开发隐私保护模型可解释性方法的必要性。

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

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

相关文章

Fragment的基本用法、Fragment和活动间的通信、Fragment的生命周期、动态加载布局的技巧

一、Fragment的简单用法 1、制作Fragment 1.1 新建一个布局文件left_fragment.xml <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas.android.com/apk/res/android"android:orientation"ve…

【小白必看】轻松获取王者荣耀英雄皮肤图片的Python爬虫程序

文章目录 前言项目运行效果图导入模块和库伪装请求头获取英雄列表遍历英雄列表创建英雄目录访问英雄主页并解析HTML代码获取皮肤名称下载皮肤图片完整代码总结 前言 当谈到王者荣耀游戏时&#xff0c;无法忽视的是其丰富多样的英雄皮肤。这些皮肤不仅为玩家提供了个性化的游戏…

文本预处理——文本特征处理

目录 文本特征处理n-gram特征文本长度规范 文本特征处理 n-gram特征 文本长度规范

《面试1v1》Kafka消息是采用Pull还是Push模式

&#x1f345; 作者简介&#xff1a;王哥&#xff0c;CSDN2022博客总榜Top100&#x1f3c6;、博客专家&#x1f4aa; &#x1f345; 技术交流&#xff1a;定期更新Java硬核干货&#xff0c;不定期送书活动 &#x1f345; 王哥多年工作总结&#xff1a;Java学习路线总结&#xf…

(学习笔记-硬件结构)CPU如何执行程序?

冯诺依曼模型 冯诺依曼模型主要由五部分组成&#xff1a;运算器、控制器、存储器、输入设备、输出设备。 控制器&#xff08;Control Unit&#xff09;&#xff1a;从内存中取指令、翻译指令、分析指令&#xff0c;然后根据指令的内存向有关部件发送控制命令&#xff0c;控制相…

E2E工程问题:小周期转大周期Gateway

摘要&#xff1a; 本文讨论一个具体的工程问题&#xff0c;E2E报文对应的信号&#xff0c;由小周期转大周期导致的E2E校验失败问题。 工程中&#xff0c;网关节点很重要的一个功能就是路由。当然&#xff0c;E2E&#xff08;End to End&#xff09;报文也可路由&#xff0c;但…

webpack xxx is not a constructor

环境 webpack5.88.2 vue-router 按需引入 原因 模块循环引用导致 有A B C三个模块 A B模块import C 中导出的class c又依赖B 中Class 的方法 B 又依赖C中的class 此时会导致import 的 C 为undefined

求求你,别这样写简历,我要是HR连面试机会都不给你,别说我没告诉你!

前言 我作为部门的面试官&#xff0c;在此期间也收获了不少简历。但可惜的是&#xff0c;收到的简历数量虽多&#xff0c;但令人中意的却是凤毛菱角&#xff0c;一些应聘者倒不是因为自身能力不足而无法进入面试环节&#xff0c;而是简历本身就没有很好的展示出自己的能力&…

苍穹外卖 Spring Task 来单提醒 催单Apache ECharts day10~11

苍穹外卖-day10 课程内容 Spring Task订单状态定时处理WebSocket来单提醒客户催单 功能实现&#xff1a;订单状态定时处理、来单提醒和客户催单 订单状态定时处理&#xff1a; 来单提醒&#xff1a; 客户催单&#xff1a; 1. Spring Task 1.1 介绍 Spring Task 是Spring框架提供…

k8s中强制删除pv

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

k8s: kubectl: logs: rotate 问题

https://kubernetes.io/docs/concepts/cluster-administration/logging/ 当kubenet存放container的日志满了的时候&#xff0c;会发生rotate&#xff0c;当rotate发生的时候&#xff0c;是由kubectl logs 这个命令可能会出现以下两个问题&#xff1a; https://github.com/kuber…

30-使用RocketMQ做削峰处理

1、增加排队功能的思路 在出票模块里,一个消费者拿到了某个车次锁,则该车次下所有的票都由他来出,一张一张的出,知道所有的订单都出完。 2、实现排队出票功能 2.1、 修改发送到MQ消息的内容 修改MQ消息内容,只需要通知出哪天和哪个车次的票(即:组成锁的内容),不需要…

网络安全系统中的守护者:如何借助威胁情报 (TI) 提高安全性

在这篇哈巴尔网站上的推文中&#xff0c;我们将解释 TI 缩写背后的含义、为什么需要它、Positive Technologies 收集哪些网络威胁数据以及如何帮助企业预防网络威胁。我们将以四种情况为例&#xff0c;说明公司如何使用 PT Threat Intelligence Feeds 来发现恶意活动并预防攻击…

2023-07-26 LeetCode每日一题(更新数组后处理求和查询)

2023-07-26每日一题 一、题目编号 2569. 更新数组后处理求和查询二、题目链接 点击跳转到题目位置 三、题目描述 给你两个下标从 0 开始的数组 nums1 和 nums2 &#xff0c;和一个二维数组 queries 表示一些操作。总共有 3 种类型的操作&#xff1a; 操作类型 1 为 querie…

uni-app点击按钮弹出提示框(以弹窗的形式显示),选择确定和取消

学习目标&#xff1a; 学习目标如下所示&#xff1a; uni-app点击提交按钮后弹出提示框&#xff0c;&#xff08;以弹窗的形式显示&#xff09;,提示用户是否确认提交&#xff08;即确定和取消&#xff09;&#xff0c;点击确定后调用真正的提交方法&#xff0c;将数据传给后端…

进程虚拟地址空间区域划分

目录 图示 详解 代码段 备注&#xff1a;x86 32位linux环境下&#xff0c;进程虚拟地址空间区域划分 图示 详解 用户空间 用于存储用户进程代码和数据&#xff0c;只能由用户进程访问 内核空间 用于存储操作系统内核代码和数据&#xff0c;只能由操作系统内核访问 text t…

SpringBoot实战(二十三)集成 SkyWalking

目录 一、简介二、拉取镜像并部署1.拉取镜像2.运行skywalking-oap容器3.运行skywalking-ui容器4.访问页面 三、下载解压 agent1.下载2.解压 四、创建 skywalking-demo 项目1.Maven依赖2.application.yml3.DemoController.java 五、构建启动脚本1.startup.bat2.执行启动脚本3.发…

攻防世界-Reverse-re1

题目描述&#xff1a;菜鸡开始学习逆向工程&#xff0c;首先是最简单的题目 下载附件&#xff0c;执行程序&#xff0c;如下界面 1. 思路分析 没啥说的&#xff0c;既然题目都说是一道简单的逆向题&#xff0c;那么直接使用ida逆向即可&#xff0c;看逆向出的结果是否能写入到…

Cesium态势标绘专题-矩形(标绘+编辑)

标绘专题介绍:态势标绘专题介绍_总要学点什么的博客-CSDN博客 入口文件:Cesium态势标绘专题-入口_总要学点什么的博客-CSDN博客 辅助文件:Cesium态势标绘专题-辅助文件_总要学点什么的博客-CSDN博客 本专题没有废话,只有代码,代码中涉及到的引入文件方法,从上面三个链…

tensorRT多batch动态推理

tensorRT的多batch推理&#xff0c;导出的onnx模型必须是动态batch&#xff0c;只需在导出的时候&#xff0c;设置一个dynamic_axis参数即可。 torch.onnx.export(hybrik_model, dummy_input, "./best_model.onnx", verboseTrue, input_namesinput_names, \output_…