查看原文
其他

【综述专栏】隐私计算的另一个思路:使用差分隐私实现的隐私模型聚合

在科学研究中,从方法论上来讲,都应“先见森林,再见树木”。当前,人工智能学术研究方兴未艾,技术迅猛发展,可谓万木争荣,日新月异。对于AI从业者来说,在广袤的知识森林中,系统梳理脉络,才能更好地把握趋势。为此,我们精选国内外优秀的综述文章,开辟“综述专栏”,敬请关注。

来源:知乎—甘露

地址:https://zhuanlan.zhihu.com/p/350225994

翻译:缪弘
摘要:PATE通过差分隐私实现了不暴露原始数据前提下的多方模型聚合。首先在数据所在地训练各自的模型,这些模型都保留在数据所在地,不对外暴露。外部使用者用自己的一批样本,在这些模型上进行预测,得到预测结果(预测结果经过了差分隐私处理,保证不会泄露本地的任何数据),然后用这些新生成的数据来训练一个的新模型。这个新的模型相当于是综合了全部多方模型的结果,同时又没有暴露任何参与方的数据。
本文来自Nicolas Papernot and Ian Goodfellow的博客
《Privacy and machine learning: two unexpected allies》
原文链接:
http://www.cleverhans.io/privacy/2018/04/29/privacy-and-machine-learning.html
在许多场景中,我们希望机器学习算法不会记住训练集当中的隐私数据,比如在医疗场景中,某个特定患者的医疗记录。差分隐私是一种可用来衡量算法所提供的隐私保障的框架。通过差分隐私,我们可以让机器学习算法在隐私数据集上进行训练,同时保障数据隐私。
本文介绍的工作(PATE),通过差分隐私,可以让不了解差分隐私的机器学习的研究者,也能非常容易地参与到隐私的机器学习中。PATE是通过协调多个不同的机器学习模型,达到隐私学习的目的。只要遵循PATE的框架,整体的结果就有可计量的隐私保障。

01

为什么需要隐私机器学习算法
机器学习算法,通常需要在大量的数据上学习,通过自身的参数来编码数据中的模式。理想中,我们希望这些参数学到的是一些通用的模式(比如,吸烟的病人更容易得心脏病),而不是记住了特定的训练数据(比如,张三得了心脏病)。
然而,通常情况下机器学习模型不知道如何忽略掉这些特定的训练数据。假如我们通过机器学习算法训练并发布了一个癌症预测模型,那么我们可能无意中通过模型泄露了一些训练数据的信息。一个恶意的攻击者,可以通过公开的机器学习模型,学习到训练数据的隐私信息[SSS17]。所以我们需要隐私机器学习来保护训练数据中的隐私信息。

02

如何定义与保护隐私
科学家们提出了许多方法来在分析数据时提供隐私保护。例如,在对数据进行分析之前,通过删除隐私内容或用随机值替换它们来匿名化数据。常见的隐私内容包括电话号码和邮政编码。然而,匿名化数据并不是所有情况下都足够的,随着攻击者获得的数据集中某个人的其他信息的增多,匿名化提供的隐私保障会迅速降低。一个著名的例子是,研究人员成功地将Netflix发布电影分级数据集的一部分数据反匿名化。如果Netflix数据集中的某个人也在互联网电影数据库(IMDb)上公开分享了他的电影分级[NS08],那么研究人员就可能恢复出其在Netflix数据集中的数据。例如,张三在Netflix数据集中和IMDb上公开给电影A、B和C分配了相同的评级,那么研究人员可以在两个数据集中将张三的数据链接起来。研究人员可以通过这种手段,恢复出张三在Netflix中对其他电影的评分。这个例子说明了定义和保障隐私是多么困难,因为很难估计攻击者可以获得的关于个人的信息范围。
差分隐私是一个用于评估隐私保护机制所提供的隐私保障的框架。差分隐私由Cynthia Dwork、Frank McSherry、Kobbi Nissim和Adam Smith[DMNS06]发明,它解决了以前的方法(如k匿名)的许多局限性。其基本思想是将机制的部分行为随机化以提供隐私。在我们的例子中,所考虑的机制始终是一个机器学习学习算法,但是差分隐私框架可以应用于任何算法的研究。
将随机性引入机器学习算法的想法是,很难区分机器学习模型的行为哪些方面来自随机性,哪些来自训练数据。如果没有随机性,我们可以问这样的问题:“当我们在这个特定的数据集上训练时,学习算法选择什么参数?” 由于学习算法中的随机性,我们会问这样的问题:“当我们在这个特定的数据集上训练时,学习算法选择的参数落在落在这组在这组可能的参数中的概率是多少?”
我们所使用的差分隐私版本,要求如果我们改变训练集中的单个训练样本,学习到任意特定参数的概率保持大致相同。改变训练集中的单个训练样本,可能意味着添加一个样本、删除一个样本或更改一个训练样本中的值。这样做的想法是,如果一个病人的记录不影响学习的结果,那么这个病人的记录就不会被记住,她的隐私也会受到尊重。在本文的其余部分中,我们经常将这种概率称为隐私预算。较小的隐私预算对应着更强的隐私保障。
在上图中,当攻击者无法区分随机算法基于三个用户中两个用户的数据生成的答案和基于全部三个用户的数据生成的答案时,我们实现了差分隐私。

03

PATE 的思想
PATE为机器学习提供差分隐私基于一个简单的想法:如果两个不同的分类器,在没有共同训练样本的两个不同数据集上训练,就如何对一个新的输入样本进行分类达成一致,那么该结果不会泄露任何单个训练样本的信息。这个结果可以在模型没有记住任何一个训练样本的情况下做出,因为无论数据集是否包含这个训练样本,都得出了相同的结论。
假设我们有两个在不同数据集上训练的模型。当他们对一个输入样本达成一致时,似乎我们可以公布他们的结果。然而,当他们不一致时,我们就不太清楚该怎么办。我们不能单独发布每个模型的预测结果,因为每个模型的预测结果可能会泄露其训练数据中包含的一些隐私信息。例如,假设张三只为一个模型贡献了训练数据。如果这个模型预测一个与张三的病历非常相似的病人患有癌症,而另一个模型预测的恰恰相反,那么这个模型的预测结果就泄露了张三的隐私信息。这个简单的例子说明了为什么在算法中添加随机性是确保它提供有意义的隐私保障的必要条件。

04

PATE 的方法
现在我们看看PATE是如何基于这一想法进行隐私机器学习的。在PATE中,我们首先将隐私数据集划分为数据子集,任意一对子集中包含的数据之间都没有重叠。如果张三的记录在我们的隐私数据集中,那么它只能被包含在其中一个子集中。我们在每个子集上训练一个机器学习模型,被称为“老师”。训练“老师”的方法没有任何限制。这实际上是PATE的一个主要优点:它不知道用于创建“老师”模型的学习算法。所有的“老师”都解决相同的机器学习任务,但他们是独立训练的。也就是说,只有一位“老师”分析过张三的记录。下图展示了框架这一部分的。
我们现在有一批独立训练的“老师”,但没有任何隐私保障。我们如何利用这个集合做出保护隐私的预测?在PATE中,我们将各个“老师”的预测结果进行聚合,同时添加噪声,形成一个共同的预测。我们计算每个类别得到的“老师”的票数,然后通过添加服从拉普拉斯分布或高斯分布的随机噪声来干扰这个数字。熟悉差分隐私的读者会意识到这是noisymax机制。当有两个类别从“老师”那里获得相等(或近似相等)的票数时,噪声将确保只有一个类得票最多,并且是从这个两个类中随机选择出来的。另一方面,如果大多数“老师”都投票给同一个类,那么加入噪音并不能改变这个类别得票最多的事实。只要“老师”之间的共识足够高,这种机制就为聚合机制的结果同时提供了正确性和隐私。下图描述了当“老师”之间共识足够高时的聚合机制:向投票计数添加随机噪声不会改变结果。
为了清楚起见,我们用二分类医学诊断任务来解释聚合机制,但该机制可以扩展到多类别的情况。现在,假设张三得了癌症,让我们分析一下这种机制的结果。假设红色的模型是唯一一个在包含张三数据的数据子集上训练的“老师”,现在它已经了解到,类似张三的记录是癌症患者的特征,因此它预测输入样本(类似张三)的类别是“癌症”。现在有两位“老师”投票支持“癌症”,剩下的两位老师投票支持“健康”。在现在的聚合机制下,为两个类别的投票添加随机噪声防止了聚合结果反映任何单个“老师”的投票结果,以保护隐私:噪声聚合的结果同样可能是“健康”或“癌症”。
现在,PATE提供了可以被认为是差分隐私API的东西:由噪声聚合机制预测的每个标签都有严格的差分隐私保障:用于标记该输入的隐私预算是受限的。在我们的示例中,我们可以确定聚合结果受“老师”任何个人记录影响的概率。我们可以应用矩会计(Moments Accountant)[ACG16]和Renyi差分隐私[M17]两种技术中的一种来计算隐私预算。根据每个查询的投票直方图,我们可以估计出聚合结果因噪声而改变的概率。然后,我们聚合所有查询,计算隐私预算。在实践中,隐私预算主要取决于“老师”之间的共识以及增加了多少噪音。“老师”之间的共识越高,投票给同一个类的票数越多,使用的隐私预算就越少。在投票时加入更多的噪声也会花费更少的隐私预算。回想一下,更小的隐私预算对应着更强的隐私保障。
然而,该框架在这一点上面临两个限制。首先,聚合机制做出的每个预测都会增加总的隐私预算。这意味着,当预测样本过多时,总的隐私预算最终会变得太大,此时框架提供的隐私保障变得毫无意义。因此,API必须对所有用户的查询总数设定一个上限,并在达到该上限时获取一组新的数据来学习一组新的“老师”。第二,我们不能公开这些“老师”模型。否则,攻击者可以通过“老师”模型的参数来获取它们用来训练的隐私数据。出于这两个原因,PATE有一个额外的步骤:创建一个“学生”模型。
“学生”的训练是通过迁移“老师”们的知识来进行的。当然,噪声聚合机制是实现这一点的关键工具。“学生”从一组未标记的公共数据中选择输入,并将这些输入提交给“老师”们,对输入进行标记。噪声聚合机制提供隐私标签,“学生”使用隐私标签来训练模型。我们试验了两种PATE的变体:一种是PATE,只用标记过的数据训练“学生”(以有监督的方式);另一种PATE-G,用标记过和未标记过的数据共同训练“学生”(通过生成性对抗网络GAN或虚拟对抗训练VAT进行半监督训练)。
“学生”模型是PATE的最终产品。它被用来响应来自最终用户的任何预测查询。在这一点上,可以安全地丢弃私有数据和“老师”模型:“学生”是唯一用于预测的模型。“学生”模型解决了上述的两个限制。首先,一旦“学生”模型完成训练,总体隐私预算就是一个固定值。其次,在最坏的情况下,能够访问“学生”内部参数的攻击者也只能恢复出用于训练“学生”模型的标签,而不是原始数据。这种保障源自于噪声聚合机制。

05

PATE中隐私与学习的协同作用
你可能已经注意到,聚合机制的隐私保障和标签的正确性源自于“老师”之间共识的一致性。事实上,当大多数“老师”都给同一类投票时,增加噪声不太可能改变获得投票最多的类别。这为聚合机制提供了非常强大的隐私保障。类似地,许多“老师”都同给同一类投票,我们对预测的正确性有信心,因为这些“老师”模型是用不同的数据子集进行训练的。这就是为什么PATE能够利用隐私和学习之间的协同作用的直观原因。
事实上,应用差分隐私技术是很常见的,但通常都会在隐私与性能之间进行必要的权衡。然而,机器学习的情况不同。实际上,差分隐私与机器学习的目标是一致的。例如,在学习过程中记住一个特定的训练样本,比如张三的病历,就是对隐私的侵犯。这对于病历与张三相似的患者也是一种过拟合,会损害模型的泛化性能。此外,差分隐私意味着某种形式的稳定性(但反过来不一定正确)。
这一观察结果促使我们在最近的论文中设计了一种改进的聚合机制。这种新机制被称为自信聚合器,它是选择性的:“老师”只回答“学生”提出的一部分问题。当“老师”回答问题时,我们首先要检查“老师”之间的共识是否足够高。如果教师中得票最高的类别的票数大于阈值,则我们接受“学生”的查询;否则,我们拒绝查询。阈值本身是随机的,以便在选择过程中提供隐私保障。一旦接受了一个查询,我们将继续使用原始的噪声聚合机制:我们将噪声添加到每个类别对应的每个投票计数中,并返回投票最多的标签。下图说明了这个过程。
事实上,这意味着我们的隐私预算现在花在两件事上:选择查询和回答查询。然而,由于我们选择回答的查询在“老师”之间共识很高,因此回答这些查询所需的预算非常少。换句话说,我们可以把自信聚合器看作是一种过滤查询的机制,这些被过滤掉的查询将消耗原始机制中大部分的隐私预算。因此,在“学生”表现水平一致的情况下,自信聚合器消耗的总隐私预算小于原始噪声聚合机制。下图展示了新机制(Confident GNMax)与旧机制(Simple GNMax)之间,“学生”的查询数与系统总隐私预算之间的关系,我们通过应用矩会计或Renyi差分隐私来实现。

06

机器学习研究者如何改进PATE的模型
主要有两个因素,影响PATE提供的隐私保障的强度:
1. “老师”之间的共识:当共识很强时,意味着大部分的“老师”预测的类别一致,花费在单个预测类别上的隐私预算会降低。这意味着,“老师”们所作出的预测是所有“老师”都学习到的普遍性,即使这些“老师”是用不同的数据子集进行训练的
2. “学生”查询的数量:每次“学生”在训练时向“老师”查询标签,“老师”生成标签的隐私预算都会添加到总隐私预算中。因此,“学生”在训练时查询“老师”越少,隐私保障越强。
这两点都可以从纯机器学习的角度来解决。加强“老师”之间的共识需要训练更多的“老师”,同时每个“老师”所使用的数据更少。提高这些“提高”模型的准确性和泛化程度,会有助于提高共识。与有监督地训练“老师”不同,减少“学生”的查询数量是一个半监督学习问题。例如,MNIST和SVHN上最先进的隐私保护模型是用PATE-G进行训练的,PATE-G是PATE的一个变体,它使用生成性对抗网络(GAN)以半监督的方式训练“学生”。学生可以获得相对大量的未标记数据集,并且必须在尽可能少的“老师”的监督下进行训练。
为了帮助推动这些努力,PATE框架是开源的,可以作为TensorFlow模型库的一部分使用。
https://github.com/tensorflow/privacy/tree/master/research/pate_2017

07

结论
在机器学习的背景下,保护隐私可以被认为是一个盟友而不是敌人。随着技术的进步,差分隐私很可能成为一种有效的正则化方法,产生性能更好的模型。在PATE的框架内,机器学习研究人员也可以为改进差分隐私保障做出重大贡献,而不必成为这些隐私保障背后的专家。

原始论文

https://arxiv.org/abs/1610.05755

github仓库

https://github.com/tensorflow/privacy/tree/master/research/pate_2017

针对大量类别和不平衡数据的改进[ICLR2018]

https://arxiv.org/abs/1802.08908

本文目的在于学术交流,并不代表本公众号赞同其观点或对其内容真实性负责,版权归原作者所有,如有侵权请告知删除。


“综述专栏”历史文章


更多综述专栏文章,

请点击文章底部“阅读原文”查看



分享、点赞、在看,给个三连击呗!

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存