Paper阅读:Exploiting Unintended Feature Leakage in Collaborative Learning


作者:Luca Melis, Congzheng Song, Emiliano De Cristofaro, Vitaly Shmatikov
论文链接: https://arxiv.org/abs/1805.04049v3

文章概述

协同机器学习和其相关工作例如联邦学习允许多方通过“本地训练数据集,定期更新交换模型”来共同构建一个模型。
作者研究发现,在这之中的更新会泄露一些有关参与者训练数据的unintended information。之后,作者利用这些泄露提出一些主动或被动的推理攻击。

文章内容:

  1. 作者展示了敌手是如何推理出某特定数据的存在性。
  2. 作者展示了敌手是怎么推理properties的,仅拥有部分数据集并且推理的properties与模型的目标properties不同
  3. 作者对提出的攻击做了评估。

1. 背景知识

1.1 推理的分类:

  • 成员推理:推理某个数据是否出现在训练集中
     1. 会对隐私信息造成威胁
     2. 可以帮助查看某些数据是否用于未被授权的目的训练
  • 属性推理:推理出其他参与方的训练数据的properties(不是全部数据的properties,甚至可以推理出与联合模型独立的feature);此外还有一种变形,可以学习到变化,例如,推理出一个property在训练过程中出现和消失的时间。

1.2 联合学习的分类:

1)collaborative learning with synchronized gradient updates

  • 在每一个iteration中,每个参与者从parameter server中下载global model,然后在本地计算梯度更新(基于他自己的训练数据中的一个batch)并发送给server。
  • server等所有参与方上传完更新,然后将用SGD(stochastic gradient descent,随机梯度下降法)计算出the aggregated updates,然后应用到global model。
    SGD算法

2)federated learning with model averaging

  • C C C:控制每一轮参与者更新的比例,这里设置为1,来简化实验,也是因为我们在分析泄露问题的时候不考虑效率
  • n n n:训练集的size
  • n k n^k nk:第 k k k个参与者训练集size
  • 每一轮中, k k k个参与者在本地使用全部的数据集使用SGD计算得到 θ \theta θ
  • 更新 θ t \theta^t θt:通过参与者 k k k数据集size等比分配权重计算
    model averaging的算法

2. 本文提出的推理攻击

2.1 thread model

假设有 k k k个参与者( k ≥ 2 k\geq2 k2),敌手目标是推理关于目标参与者的信息。
多参与方( k > 2 k>2 k>2):包含既不是敌手也不是目标的诚实参与者。多参与者的情形中,敌手不一定知道参与者的身份,即使被知道了,但由于模型是被汇总的,也无法追踪到某一个具体的参与者。
推理攻击概貌

  • 对于每一次迭代t,敌手下载目前的联合模型,计算梯度更新,并发送给server
  • 敌手保存联合模型参数的快照 θ t \theta_{t} θt,连续的快照之间的差别是 Δ θ = θ t − θ t − 1 = ∑ k Δ θ t k \Delta\theta=\theta_{t}-\theta_{t-1}=\sum_{k}\Delta\theta_{t}^k Δθ=θtθt1=kΔθtk,这是所有参与者的aggregated updates,因此 Δ θ t − Δ θ t a d v \Delta\theta_{t}-\Delta\theta_{t}^{adv} ΔθtΔθtadv是除了敌手的其他所有参与者的aggregated updates。

leakage from the embedding layer

  • 所有在非数字数据上训练的深度学习模型,若其输入空间是离散且稀疏的(例如自然语言文本或者位置),那么他们就会先用嵌入层来将输入变为一个低维向量表示。
  • w o r d word word:离散tokens,例如具体的词语或者特定的位置
  • V V V:所有词语的集合
  • W e m b ∈ R ∣ V ∣ × d W_{emb}\in \mathbb R^{|V|\times d} WembRV×d:嵌入矩阵, ∣ V ∣ |V| V是词语的数量, d d d是词向量的维度
  • 所有训练集中的词语都根据嵌入矩阵 W e m b W_{emb} Wemb映射为一个词嵌入向量
  • 在训练时,嵌入矩阵作为模型参数与模型一起优化。嵌入层的梯度是关于输入稀疏的,也就是说,给定text的一个batch,词向量只有在词出现在这个batch中才会更新。其他词的梯度为零。
  • 这个变化直接揭漏了哪个词出现在训练batch中。

leakage from the gradients

  • 在深度学习模型中,梯度是通过后向传播loss计算得到的。
  • 给定层的梯度是使用这层的特征和上层的错误计算得到的。
  • 对于顺序的全连接层 h l h_l hl h l + 1 = W l ⋅ h l h_{l+1}=W_l\cdot h_l hl+1=Wlhl W l W_l Wl是权重矩阵), W l W_l Wl的误差 E E E的梯度由 ∂ E W l = ∂ E h l + 1 ⋅ h l \frac{\partial E}{W_l}=\frac{\partial E}{h_{l+1}}\cdot h_l WlE=hl+1Ehl计算。
  • 观察到权重的更新可以用于推理特征值,而特征值来自于参与者的私人训练数据集,所以会泄露参与者隐私。

2.3 成员推理攻击

  • 根据上面的内容,嵌入层的非零梯度会泄露那些词出现在了这个训练batch中。这就可以用来去推测出一个给定的text或者location是否出现在训练集中。
  • V t V_t Vt:存在在 Δ θ t \Delta\theta_t Δθt中的词
  • 在训练中,敌手可以收集到一个词语序列 [ V 1 , . . . , V T ] [V_1,...,V_T] [V1,...,VT]
  • 给定一个文本记录 t t t,其中包含词语 V r V_r Vr,敌手通过检测 V r ⊆ V t V_r\subseteq V_t VrVt来判断 r r r是不是成员,如果他是的话, V r V_r Vr至少会出现一次。

2.4 被动属性推理

  • 假设敌手有辅助数据 D p r o p a d v D_{prop}^{adv} Dpropadv D n o n p r o p a d v D_{nonprop}^{adv} Dnonpropadv
  • 敌手可以利用全局快照来生成含有属性数据的aggregated updates和不含有属性数据的aggregated updates。
  • 敌手实际上训练一个batch property classifier来判断观察到的更新是基于有property数据训练的还是没有property数据训练的。
  • 这个攻击是被动的,因为他仅观察更新,在进行推理的过程中完全没有改变本地的或者全局的联合训练步骤。

Batch property classifier

分类器构造算法

  • Algorithm 3 显示了如何构造batch property classifier
  • 给定模型快照 θ t \theta_t θt,基于 b p r o p a d v ⊂ D p r o p a d v b_{prop}^{adv}\subset D_{prop}^{adv} bpropadvDpropadv来计算梯度 g g r o p g_{grop} ggrop,基于 b n o n p r o p a d v ⊂ D n o n p r o p a d v b_{nonprop}^{adv}\subset D_{nonprop}^{adv} bnonpropadvDnonpropadv来计算梯度 g n o n g r o p g_{nongrop} gnongrop
  • 直到收集到足够的带标签的梯度,训练二分类器 f p r o p f_{prop} fprop

inference algorithm

  • 在训练过程中,敌手观察到梯度更新 g o b s = Δ θ t − Δ θ t a d v g_{obs}=\Delta \theta_t-\Delta \theta_t^{adv} gobs=ΔθtΔθtadv
  • 在单一batch推理中,直接将梯度更新作为输入放入分类器中,得到结果。
  • 扩展到整个数据集,使用平均值来决定某target的整个数据集中是否含有此property。

2.5 主动属性推理

  • 敌手有一个增强的分类器,在主任务和推理任务中都表现良好。
  • y y y:主任务标签
  • p p p:属性任务标签
  • 模型损失:
    L m t = α ⋅ L ( x , y ; θ ) + ( 1 − α ) ⋅ L ( x , p ; θ ) L_{mt}=\alpha\cdot L(x,y;\theta)+(1-\alpha)\cdot L(x,p;\theta) Lmt=αL(x,y;θ)+(1α)L(x,p;θ)
  • 用这个损失函数训练数据集的话,联合函数会学习数据具有property和不具有property的不同表示。
  • 在这一情况下,敌手仍是“honest-but-curious”的,他遵守联合学习的协议并且不会上传恶意数据。
  • 主动攻击和被动攻击的唯一区别:主动攻击进行了额外的本地计算,并将其结果提交至了协同机器学习中。

3. two-party experiment

3.1 成员推理攻击

  • 利用Bag of Words(BoW):忽略文本的语法和语序,用一组无序的单词(words)来表达一段文字或一个文本。
      e.g. Bob likes playing football.
        Alice likes playing football, too.
        Carol likes playing football and playing basketball.
      词袋 { ‘Alice’, "Bob’, ‘Carol’, ‘likes’, ‘playing’, ‘football’, ‘too’, ‘and’, ‘basketball’}
      第一句就变为[ 0, 1, 0, 1, 1, 1, 0, 0, 0]
      第二句就变为[ 1, 0, 0, 1, 1, 1, 1, 0, 0]
      第三句就变为[ 0, 0, 1, 1, 2, 1, 0, 1, 1]
  • 定义两个BoW,分别为test BoW和batch BoW.
      test BoW:要推理的成员的词袋
      batch BoW:目标数据的batch中有的words(通过嵌入层的非零梯度泄露出来的消息)
  • 通过判断test BoW是否为batch BoW的子集来推断成员是否在目标训练集中。
    成员推理攻击的准确性
  • 实验证明:随着batch size的增加,准确率下降(见Table 2)
  • why recall是1?:因为任何一个真实的test BoW一定包含在至少一个敌手观察到的batch BoW中,即如果推理内容存在在batch中,就绝对不可能认为他不在

3.2 Single-batch属性推理

b n o n p r o p b_{nonprop} bnonprop:inputs中没有此property
b p r o p b_{prop} bprop:inputs中有此property

LFW

分类任务和推理任务的目标以及AUC

  • Table 3给出的是作用在LFW数据集上的single-batch推理攻击的结果
  • 选择不同于分类任务的property来学习
  • Corr.代表Pearson Correlation(Pearson相关系数是用来衡量两个数据集合是否在一条线上面,它用来衡量定距变量间的线性关系。)

引用自百度百科“Pearson相关系数”

  • 结果显示训练过程中观察到的gradients不只会泄露每个class的characteristic features
     
     不同layer的特征映射
  • Figure 3显示了不同layer的特征映射
  • 不难看出,底层的pool1、pool2、pool3是根据property分类的,而高层的全连接层是根据class分类的。
  • model的底层会学习不同于模型分类任务的properties
  • 因此,本文的推理攻击能够利用这种unintended的功能来学习其他目标

Yelp-health

  • 以评分作为主要任务,医生的专业作为推理攻击目标。
  • 用3000常用词作为语料库,迭代3000次。
  • 使用BoW,攻击实现了几乎完美的AUC
    在逻辑回归中有高预测能力的words
  • Table 4展示了在property分类中具有较高可能的词

Fractional Properties

之前实验每个batch有1/2是具有该property的,但是本实验中这些输入含有该属性的比例为0.1、0.3、0.5、0.7或者0.9。(Figure 4显示结果)
将属性进行评价后的结果

3.3 Inferring when a property occurs

当新的训练数据被添加到训练过程中时,有可能会给推理攻击提供机会。

PIPA

PIPA训练集中的图像含有1到3个人。联合训练是为了检测图片中是否有年轻人;而敌手的推理攻击则是为了得知此图片中的人是否是同一性别。
模型训练:迭代2500次,含有“同性别”的性质的batch出现在第500~1500次。(训练结果见Figure 5a)

FaceScrub

对FaceScrub数据集进行性别分类;敌手推理攻击目标是判断某个人是否出现在其他参与者的照片中。
模型训练:迭代2500次,控制 ID 0 出现在第0˜500次、第1500˜2000次,ID 1 出现在第500˜1000次、2000˜2500次。剩下的batch是其他的identies。(结果见Figure 5b)

推理出现性的属性推理攻击结果

3.4 Inference against well-generalized models

推理作者性别的准确度
本图说明本文提出的推理攻击也适用于well-generalized的模型,从Figure 6可以看出攻击的效果随着训练过程在逐渐提高。

3.5 Active property inference

主动攻击的效果

  • 如图,随着 α \alpha α的增加,AUC在增加
  • Figure 7b和Figure 7c展示了在 α = 0 \alpha=0 α=0(即被动攻击)和在 α = 0.7 \alpha=0.7 α=0.7时模型的t-SNE projection,这说明:作为主动攻击的结果,联合模型可以更好的分离有property和没有property的数据。

4. 多参与方的实验

在多参与者的情形下,作者只考虑被动属性推理攻击。

4.1 Synchronized SGD

  • 随着人数中可信方数量的增加,敌手更难实现他的目标因为被观察到的梯度更新是由多个参与方共同计算得到的。
  • 并且,推理得到的信息无法确定出是哪个参与者拥有的数据。
  • 实验设计:训练数据等分给参与者,但只有target和敌手有带有property的数据。
  • 敌手目标:判断aggregated gradient update是否是基于 b p r o p b_{prop} bprop
  • LFW:
  1. 主要分类任务:性别分类;推理目标:判断种族是否为black。
  2. 主要分类任务:微笑分类;推理目标:判断是否配带墨镜。
  • Yelp-author:
      推理目标:推断出具体的author
      实验结果:可以从Figure 8b中看出,对于某些authors,AUC分数并没有随着参与者人数的增多而剧烈下降。这是由于这些authors使用的一些特有的语言,使得即使在多参与者的情况下依旧能够辨认出他们。
    Synchronized SGD:参与人数对AUC分数的影响

4.2 Model averaging

  • 实验设计:训练数据等分给诚实参与方,确保target参与者的数据中有 p ^ % \hat{p}\% p^%含有property,而剩余的诚实参与者没有。
  • 实验过程:每一步,每个诚实参与者将他的本地数据集等分成10份,并进行一轮训练。
  • 我们假设敌手有相同数量的具有property的inputs来作为target。和之前一样,当敌手训练他的二分类器时,他会在本地“模拟”联合训练过程,例如,从自己的训练集抽样;计算aggregated updates;学会区分aggregates是基于有property还是没有property的数据得到的。
  • 8次实验:一部分训练数据有property
  • 8次对照试验:所有的训练数据都没有property
     
    推理某一个face是否出现
    – 使用数据集FaceScrub,选择ID1和ID3来作为推理目标(即判断他们是否出现),-从Figure 9中可以看出当face出现时,分数远高于他未出现时。
    – 实验的成功还与要推理的property,参与者的数据分布等有关。例如,用于区分ID 1和ID 3的分类器按照ID 2和ID 4的分类器设计,那么推理相关face的存在时就可能失败。
    model averaging的实验结果 
    推理某个face什么时候出现
    – 目标是推理某个拥有property数据的参与者何时加入的联合训练。
    – 首先要让敌手和其他可信参与者训练联合模型250轮。拥有ID 1数据的目标参与者在第250轮时加入训练。
    – Figure 10显示了实验结果
    推理目标数据出现的时间的实验结果

5. 防御

通过测试目前现有的防御技术来证明这些防御技术并不能完全抵御本文中提出的攻击。

5.1 共享更少的梯度

论文[52] 提出,通过仅共享部分梯度可以降低通信开销,也有可能减少泄露,因为敌手只能观察到更少的梯度。

R. Shokri and V. Shmatikov. Privacy-preserving deep learning. In CCS, 2015.

然而本文实验发现,这一防御对本文提出的攻击并没有很有效。
Table 5显示了在共享10%、50%和100%梯度的情况下AUC分数。
针对“共享更少梯度”防御方法的效果

5.2 降低维度

  • 文中section4.2中指出,若模型的输入空间是稀疏的,那将输入嵌入到低维空间时,嵌入层的非零梯度更新会泄露存在在训练batch中的input。
  • 一个可行的defense:只使用在数据集中出现多次的inputs。但这种方法并不通用。
  • 例如,Figure 11 就展示了限制input是FourSquare数据集中的前几个时,会消除大部分训练集。
    限制输入会消除掉数据集
  • 更好的defense:限制模型使得它只能使用来自于预先定义的词语中的“words”。
  • 例如,谷歌用于预测键盘的联邦训练只使用固定的5000词
  • Table 6 中,可以看出,这种方法虽然能够削弱本文中提出的攻击,但也对联合训练模型的质量有明显的负面影响。
    仅使用预先定义的词来训练模型的结果

5.3 dropout

  • 另一个可行的办法就是使用dropout(经常用于避免过拟合)
  • 这种方法确实可以影响本文中提出的攻击,因为敌手只能观察到更少的激活神经元的梯度。
  • Table 7 显示了实验结果:随着dropout比例的增大,攻击效果增加,且仅轻微降低模型准确性。
  • 这说明:随机失活一部分,会产生更多的informative features,会增大参与者更新产生的变化。
    随机失活情况下的实验结果

5.4 参与者层次的差分隐私

  • 所有的差分隐私方法都会有关于隐私和准确率的tradeoff,而且使用时必须选择参数来控制这一tradeoff
  • 理论上,参与者层次的差分隐私方法确实可以限制本文中提出的推理攻击
  • 但是,我们发现使用这一方法时,模型并不能coverage(因为参与者数量最多为30)
  • 发现,差分隐私方法需要大量的参与者(而本文中的攻击针对的是少于30个参与者的模型)
  • 因此有了future work:即调查participant-level differential privacy在没有上千用户时是否能抵御本文中的inference attack,同时获得高质量的模型。

6 攻击的局限性

  • 需要辅助数据,而有时获得辅助数据是不可行的
  • 参与者数量的问题,本文中的模型参与人数较少(2-30人),现实中联邦训练可能涉及成百上千人
  • 不能检测到的属性:有一些特征并不是内部可分的,此时推理攻击就会失败
  • 无法确定推理出的属性究竟是属于谁
  • 10
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值