



如果你还不是很熟悉差分隐私的概念,那么你找对地方了。本章将介绍差分隐私的历史背景和概念,旨在实现两个主要目标:
1.简要讲述数据隐私化的发展历史,并介绍当前差分隐私实现方面的一些案例。
2.在课堂场景中提供一个简单的数据隐私风险的实际例子,演示基本的关键术语。
通过本章,你将学习核心的差分隐私概念,而不用专注于数学和代码。随着学习的深入,本书将逐渐引入更正式的数学语言和算法的实现。
在数据集上计算统计数据可能会泄露单个数据点的信息,这种想法并不新鲜。事实上,21世纪许多关于基本差分隐私的论文 [1] , [2] 都引用了20世纪70~80年代的研究成果。
1977年,Tore Dalenius试图将统计信息披露控制的概念正式化 [3] 。作为这项工作的一部分,Dalenius认为目标应该是控制信息披露,而不是消除信息披露,并补充说:“只有通过消除统计数据才能完全消除披露。”这种控制信息披露的想法将贯穿全书,目标是量化和校准披露的风险,而不是完全消除它。1980年,Dorothy E.Denning进一步提出了推理问题:“通过将解密的统计摘要与已有信息相关联来推断机密数据。” [4]
这些先前的研究引起了当今广泛的关注。隐私保护得到了更多的重视,因为如今的数据存储和计算比1980年更加普及。此外,“先验信息”更容易用于被购买和分析,从而增加了通过推理侵犯隐私的风险。Denning的论文还提出了隐私的一个关键概念:如果你在一个数据集上计算一个统计量,然后对减去一个数据点的数据集计算同样的统计量,你就会对那个缺失的数据点有所了解。用她的话来说:“比较两组仅因一条记录而存在差异的平均薪资,或许能够揭示该记录所在组(而非另一组)中个人的薪资情况。”
针对这些漏洞,业内提出了多种方法。一些早期的统计披露控制系统会为数据中的所有查询或交换值添加一个固定值,但许多方法都存在实用性较差、容易受到平均攻击
和缺乏正式保证等问题。
其中一种很有效果的方法是输出扰动,涉及修改(扰动)查询的结果,使统计推断不太可能导致隐私泄露。Irit Dinur和Kobbi Nissim通过数学证明,验证了输出扰动可以有效防止数据集被重构攻击 [5] 。该攻击利用了后来被称为信息恢复基本法则的原理:通过对大量问题给出过于准确的答案,隐私就会被破坏 [6] 。
2006年,Cynthia Dwork、Frank McSherry、Kobbi Nissim和Adam Smith发表了一篇论文“Calibrating Noise to Sensitivity in Private Data Analysis”( https://oreil.ly/IXV6K ),解决了缩放噪声的问题以满足隐私保护。在这篇论文中,作者讨论了“保护隐私的统计数据库” [7] ,并展示了在向任何统计查询中添加噪声时的隐私保证效果。让我们仔细看看前面句子中的单词——你可能以前遇到过这些单词,但在本书中,它们有略微不同的含义:
统计数据库
统计数据库是一种系统,它使用户只能检索数据库中表示的实体子集的汇总统计信息 [8] 。你可能已经熟悉像PostgreSQL或SQLite这样的数据库,在这些数据库中,你可以根据特定的条件执行查询来搜索单条记录。相对而言,统计数据库只允许你提出诸如“该数据库中人的平均年龄是多少?”之类的问题,并阻止你执行这样的查询:
如果你对这个语法不熟悉,或者你想复习一下你将在全书中看到的数据库查询类型,请查看附录D。
噪声
在隐私保护背景下,噪声是指从统计分布中采样的数值。你会遇到像诸如拉普拉斯噪声和高斯噪声等术语,这些术语指定了采样值的分布类型。
隐私
根据上下文的不同,隐私一词可以意味着没有监视,也可以意味着无法被识别。与前两个术语本质上是技术性的不同,“隐私”一词在哲学和法律文献中以各种定义使用。事实上,就连《斯坦福哲学百科全书》( Stanford Encyclopedia of Philosophy )( https://oreil.ly/V6u01 )里也承认这个术语没有单一的定义、分析或含义 [9] 。
自差分隐私出现以来,业内在数据发布方面进行了大量研究和逐步实施。在Dinur和Nissim所进行的研究的推动下,美国人口普查局对自己统计发布的数据集进行了重构攻击( https://oreil.ly/pqB3P ),以评估违反法定保密义务的风险。
这次攻击验证了保密性的相关问题,促使开发了一种差分隐私统计发布系统。2018年美国人口普查局宣布将端到端(End-to-End,E2E)人口普查测试的结果进行隐私处理 [10] 。这一过程是对未来人口普查和相关系统的一次实践演练。这些系统在2018年通过了验证,并于当时计划在2020年的人口普查中投入使用。这些问题的严重性不容忽视,所涉及的数据将用于构建立法选区,并确保遵守1965年的《投票权法》( Voting Rights Act )。
在人口普查中使用差分隐私并非没有挑战。在2021年,亚拉巴马州起诉美国人口普查局在进行人口普查时使用差分隐私,声称人口普查局向各州提供了“被操纵的重新划分选区的数据”
。在此之前,美国人口普查局曾有过引入技术保护个人隐私方面的先例。例如,1930年,人口普查的发布不再包括小区域的数据(
https://oreil.ly/ZQUQa
),以保护人口稀少地区的居民不被重新识别。最终,一个由三名法官组成的小组驳回了亚拉巴马州的申诉(
https://oreil.ly/z_-95
),并回应说,由于结果尚未公布,该州的结果没有因差分隐私而受到影响
[11]
。
差分隐私技术并不是首个用于在保护数据中个体隐私的同时进行数据分析的方法。假设有一种情况:某研究人员发布了过去一年医院患者的汇总统计数据,该研究人员根据数据发表了一篇论文,文中指出今年该医院有三例特定类型的癌症病例。从表面上看,你可能认为这是安全的,因为文中没有公布这些患者的姓名、地址、社会保险号或其他敏感的可识别个人身份的信息。
过去,标准的隐私保护技术依赖于匿名化来保护隐私,例如,删除或修改个人姓名。然而,这是不够的,仍可能导致隐私泄露。以Dr.Latanya Sweeney为例,当她还是研究生时就购买了马萨诸塞州的选民登记信息,并能够在匿名医疗数据中识别出马萨诸塞州的州长
。她通过筛选数据中与州长具有相同属性的个体实现了这一目标,发现“6个人有‘州长’特定的出生日期,其中只有3个是男性,而且,州长是唯一一个拥有5位数邮政编码的人。”
这项工作使Sweeney发现,许多人只需要使用这三条信息就可以精准地进行身份识别:出生日期、政府记录的性别和邮政编码
。2006年的一项研究估计,大约63%的美国人口可以通过这三个属性来唯一识别
[12]
,到了2010年人口普查时,44%的人口可以通过人口普查区块、年龄和性别来识别
。
为了防止此类漏洞,Sweeney在2002年引入了 k 匿名。 k 匿名是针对这种特定类型的身份识别的广义保护措施。 k 匿名中的 k 指的是它的核心原则——个体在数据集中不能被区分,至少与其他 k -1个人无法区分。以马萨诸塞州为例,这意味着假设Sweeney无法区分州长和选民名册上的其他 k -1个人,从而阻止她重新识别州长的医疗记录。因此, k 匿名法存在链接上的漏洞,如果一个属性被认为是非识别性的,但可以链接到另一个数据集,那么它就可能成为一个识别属性,并导致隐私泄露。针对 k 匿名的两大主要攻击如下:
同质性攻击
这种攻击利用了数据有许多相同值的情况。考虑这样一种情况:假设敌对行为者知道某人在某一天住进了医院,并查看了入院日志。如果当天入院的每个人都患有癌症,那么攻击者就知道这个人患有癌症。显然,这次攻击依赖于数据的同质性——如果那天入院的人患有不同的疾病,那么攻击者将无法得知任何信息。
背景知识攻击
这种攻击依赖于攻击者了解相关数据集中不存在的个人信息。例如,如果攻击者想知道该个体患的是什么类型的癌症,并且知道医院收治的都是前列腺癌或宫颈癌患者,那么攻击者只需要知道个体是患有前列腺还是宫颈癌,就可以了解他们的癌症诊断结果 [13] 。
如你所见, k 匿名并不总能阻止恶意行为者识别数据集中的个体。即使数据足够异质化以避免同质攻击,但因为第三方数据的可获取性,联动攻击的风险也很大。仅依靠限制数据集中单个特征的方法不足以保证隐私不被泄露。
与 k 匿名等技术相比,差分隐私给出了更广泛的隐私定义。差分隐私不只是专注于从数据集中删除或匿名化某些属性,而是为分析者提供一个关于个人信息对潜在攻击者可区分性的定量保证。
本节涵盖了一个简单的案例研究,展示了非隐私统计数据发布所带来的风险。虽然案例中的风险相对较低(考试分数),但该原则同样适用于更为敏感的数据类型。这个例子强调了处理敏感数据时的一个重要规律:看似无关紧要的数据发布可能导致隐私泄露。在本节结束时,你会理解两个数据集相邻的概念以及函数敏感度的定义。
想象一下,你在一个总共有10个学生的班级。你刚刚参加了一场考试,正急切地等待成绩。一天,教授走进教室,在黑板上写了一个分数:85分,并宣布这是这次考试的平均成绩,他很快就会把试卷发下来。突然,你收到好朋友Ari的短信:“好消息!我刚在马戏团找到一份工作,我要退学了。夏天见!”你跟教授说你的朋友不再是这个班的学生了。教授得知这一情况后,打开计算机,过了一会儿走到黑板前,擦掉旧的分数,写下87分。
这个场景看起来很无害,对吧?毕竟教授并没有把你朋友的分数写在黑板上。
“嗯,在某种程度上,他刚刚写了。”你身后的一个声音说。
谁说的?你转过身来,发现一个恶魔坐在后排(是的,这和我们的隐私有关,稍等片刻)。你很好奇他所说的教授已经把你朋友的分数写在黑板上的说法。
“你说的是什么意思?”你问。
他开始解释,一般来说,你知道如何计算均值。假设每个学生的分数用 x i 表示,所有这样的分数的集合是 X ,这个集合的大小是 n ,那么:
你知道在你的朋友退课之前,这个班里有10个人:
其中 x i 表示每个人的考试分数。另外,你知道你的朋友离开之后班里有9个人,平均分是87分:
将这两个方程相减:
让我们称呼你的朋友为 x 10 ,那么:
将减法项化简,使用
的定义:
并将分数化简为最小公分母:
现在你只需要分离出 x 10 ,就可以得出你朋友的考试成绩:
你已经知道
的值了,它是写在黑板上的均值,最后:
这就是你朋友的考试成绩。刚刚发生什么事了?这个恶魔只使用了几条信息:你朋友离开前和离开后成绩的均值,以及班里的学生人数,就可以确定你朋友的成绩。正如你所了解到的,发布一个数据集的统计数据,同时也会发布数据中个体的敏感信息。
为了防止隐私泄露,教授应该怎么做呢?他可以在黑板上写一个可能的均值范围,比如“80~90”。不幸的是,这对每个人来说都是一个糟糕的折中办法,因为它可能也无法有效保护隐私,还会削弱数据的实用性,导致学生获取的信息更少。如果去掉你朋友的分数所导致的范围变化,你朋友的隐私仍可能被侵犯,而且宽泛的范围无法为学生提供具体信息。总体而言,这对学生和他们的隐私来说都是次优的选择。
随机响应
另一种方法是随机响应(Randomized Response,RR),即值以一定的概率变化 [14] 。在这种情况下,教授可以将每个学生分类为“通过”(P)或“不及格”(F)。对于每个学生,教授投掷硬币。如果是正面,则告诉那个学生他的成绩(P或F)。如果是反面,就再抛一次。不管学生的实际成绩是多少,正面和反面的表示分别是P和F(见图1-1),即随机报告P或F,而非学生的实际成绩。通过对随机响应结果构建直方图,教授可以向学生展示一个估计的全班考试表现的分布情况。
随机响应
随机响应是一种根据一定的概率规则修改数据集中每一项值的方法。对于每个项目,如果抛硬币得到反面(F),那么记录的值可能不是真实值。这种算法起源于社会科学,目的是防止调查参与者在回答有关自身健康或行为的敏感问题时感到尴尬。
图1-1:通过抛硬币实现随机化响应
随机响应确实为数据集增加了看似合理的否认性,因为即使没有学生不及格,也预期会有25%的学生看起来是不及格的(注意,这需要连续两次抛硬币的结果都为反面)。对于这种情况,随机响应可能不是理想的选择,因为它将每个学生分成两个子集,并且无法提供关于整体班级表现的准确信息。如果教授希望以一种能让每个学生都可以合理否认的方式来公布他们是否通过考试,那么这种方法是可取的。按目前的算法,它也会将通过/不通过率偏向0.5。
如果教授将第一个硬币出现正面的概率调低(比如每抛掷100次仅出现1次正面),那么他可以为每个学生提供更大的隐私保护或更合理的否认性,但信息的准确性会降低。
添加噪声
如果教授从一种分布模型中抽取一个值并将其加到平均分上,情况会如何?例如,如果教授告诉你平均分中加入了噪声,那么你将无法重新计算你朋友的分数,因为这个方程有两个未知数:考试分数和加入的噪声值。在这种情况下,1.3.1节中的平均分变为
其中 N 1 和 N 2 是从某个分布中抽取的值,且不向学生披露。加入这个噪声后,尝试计算你朋友的成绩会得到以下公式:
现在有三个未知数: x 10 、 N 1 和 N 2 ,因此该方程无法再通过解析法求解。如果你知道 N 1 和 N 2 的分布,那么可以在没有完全掌握真实分数的情况下估计不同分数的概率。现在问题变成了如何添加噪声,以便在保护隐私的同时保持统计数据的实用性。如果你知道你的朋友是唯一离开的人,那么你可以从已知分布中选择噪声,以充分保护他的分数不被泄露。
然而,这提出了一个重要的问题——关于隐私保护不应仅限于特定情景(如朋友离开),而应覆盖任何单人加入或离开的情况,你无法预知谁会何时离开,这意味着只看一个结果是不够的。相反,你必须为班级名单可能发生的变化做好全面准备。
恶魔来找你说:“你将一遍又一遍地重复这一天,但每次都会有不同的人退出。当这种情况发生时,使用均值的定义将会揭示他们的分数。”但是,你如果已经实施了足够的隐私保护,就会毫不在意这个恶魔所说的,因为你知道他会受挫,或者他自以为已经计算出了真实的分数。然而,如果你只针对你的朋友退出课程的情况进行保护,那么其他人的隐私仍会面临风险。
换个情景,现在你坐在一个房间里,和前面例子中的教室一模一样,但有一个主要的区别——你的朋友坐在你旁边。因为他的马戏团申请被拒绝了,但他很高兴能和你一起上课。就在上课前,你收到了另一个同学Bobby的短信,他要和他的乐队去巡演,不得不退课。至少他答应你,下次他们来镇上的时候,会给你VIP通行证。你为Ari的成绩得到保密而感到松了一口气,但在后排,你看到恶魔准备计算Bobby的分数,并意识到它会被泄露。
教授走进来,在黑板上写下平均分,你说Bobby已经退出了这门课。就像上次一样,他们根据这个新信息更新分数。但这一次,他们去掉了一个不同的分数,所以平均分变成了84。在一个平行宇宙中,考试平均分可能不是增加两分,而是下降一分。不论平均分如何变化,恶魔依然坐在后排,计算退课学生的分数。这个特殊的平行宇宙并没有什么特别之处,事实上,你需要为所有情况做好准备。尽管我们更关心的是人类角色,但恶魔在这里作为一个有用的对照,展示了某些人可能拥有数据集的信息,以及他们可以用这些信息做什么。
假设在一个有10个学生的教室里,有10个可能相邻的教室,每个相邻教室中都有一人退课,这类事件都可能导致隐私泄露。这种相邻性的概念对于提供严格的隐私保护至关重要。
由于班级注册信息是公开的,因此不需要设置差分隐私来隐藏学生是否在数据集中,只需要隐藏个人数据的具体数值。
数据集相邻性
如果两个数据集 x 和 x ′仅因单个个体的变化而不同,则它们是相邻的(此定义将在第3章进行更全面的解释)。
在差分隐私文献中以及日常使用中,“邻接”与“相邻”可以互换。
有许多情况下,两组数据可能因单个个体的变化而不同。在课堂示例中,如果两组数据因单个个体的变化而不同,那么我们认为它们是相邻的。在第3章中,你将学习相邻数据集概念的泛化。
例如,在这个定义上,学生名单A和B是相邻的,因为它们正好相差一个学生(Carol)。我们将这些学生名册的数据以行和列的形式进行组织,作为表格数据进行分析,如表1-1和表1-2所示。
表1-1:学生名单A
表1-2:学生名单B
让我们来总结一下目前所掌握的知识:
· 发布统计数据可能会“泄露”数据集中个人的私人信息。特别是如果你知道某个数据点被删除了,并且知道某个统计数据的变化幅度,你就可以重构缺失数据点的值。这意味着你必须防范所有可能出现的类似情况。
· 向统计数据添加噪声可以防止此类重构攻击以完全确定的方式获取相关信息。然而,你目前还不知道需要添加多少噪声。
如何定义这些可能存在的班级中考试分数均值的变化?要确定这一点,你需要了解敏感度。你知道,当某人的分数发生变化时,均值会变化:在一个案例中,分数的均值增加了两分,而在另一个案例中,分数的均值减少了一分。首先,考虑当任何一个人离开班级时可能发生的最大变化,这就是局部敏感度。
均值的局部敏感度
对于数据集
x
来说,均值的局部敏感度是在所有相邻数据集
x
′中
的最大可能值。
请注意,局部敏感度会根据你自己的数据而变化。如果类均值在50左右,那么在相邻数据集上计算的均值的差异可能比类均值为100的情况小。这意味着局部敏感度本身可以揭示数据集中的数据结构信息。因此,局部敏感度实际上不足以抵御数据集结构泄露带来的风险,实际上你需要的是全局敏感度。
均值的全局敏感度
均值的全局敏感度是每对相邻数据集
x
,
x
′中
的最大可能值。
你可以将全局敏感度理解为任何初始数据集中可能出现的最大局部敏感度。通过考虑成对的相邻数据集来理解这些敏感度,这些数据集最大化了函数输出之间的差异。基于这种直觉,在最极端的情况下,假设你的朋友得了0分,而班上其他人都得了100分。在这种情况下,改变他的答案会对均值产生多大影响?
随后将考试成绩更改为100分:
这意味着均值的变化为:
另一种极端情况是:如果班上其他所有人都得了0分,而你的朋友得了100分呢?
然后:
变化再次发生:
插入任何类别的值,你会发现均值的最大变化是10。对于该数据集的均值,这个数字具有特殊意义:它是全局敏感度。
全局敏感度向我们展示了对于任何可能的一对初始数据集,统计数据可以发生的最大变化。通常,人们在提及敏感度时,并不会特别说明是局部敏感度还是全局敏感度。
在本书以及日常使用中,如果没有明确说明敏感度的类型,则默认为全局敏感度。
对于课堂均值,我们的敏感度为10,因为在最具区分性的情况下,考试成绩的平均变化是10分。它依赖于正确识别差异最大的 x 和 x ′的选择,这种证明容易出现人为错误,因此此类分析更适合通过数学证明来处理。在本书中,你将会遇到一些重要差分隐私概念的证明例子。
现在你已经从学生的角度了解了这种情境,让我们再从教授的角度来分析一下,他是唯一可以访问完整数据集的人。学生无法获取完整数据,统计值的变化是他们唯一能洞察底层数据的途径。而完整数据集的访问者无须推断,因为他们能直接查看每一条数据。
如你所见,添加随机噪声可以模糊你朋友的考试成绩,但应该从哪种分布中采样噪声呢?拉普拉斯分布是一种特别有用的分布,因为它在最大限度保证隐私的同时最小化添加的噪声量(见图1-2)。拉普拉斯分布有两个可调参数:中心点 μ 和宽度 b 。概率密度函数显示了其尾部如何呈指数级下降,这意味着从中心采样一个更远的值的可能性呈指数级下降:
图1-2:来自拉普拉斯分布的样本在接近中心时呈指数级增长的可能性
让我们将这种方法应用到课堂示例中,其中
表示均值。注意,通过零中心拉普拉斯分布样本扰动的
,在分布上等同于从以
为中心的拉普拉斯分布中采样。因此,拉普拉斯输出扰动等同于从以
为中心的拉普拉斯分布中采样(其中
)。
假设教授要选择一个噪声比例,其中 b 1 =1, b 2 =2。由于 b 1 较小,分布更加集中在 X 周围,这可能会导致 b 1 比 b 2 的效用更高(误差更小)。另外,基于 b 2 添加噪声将会提供更好的隐私保护,因此可能会添加更多噪声。在差分隐私中,选择一个平衡隐私和效用的参数是一个常见的主题。第2章将为你提供工具以便在数量上量化隐私和效用,这将有助于消除在解决这一矛盾时的猜测。
可信数据管理者解析
让我们从教授的角度来审视这个例子。在这个场景中,教授可以访问所有学生的数据,而学生只能访问汇总统计数据。这意味着教授是一个可信数据管理者。
可信数据管理者
可信数据管理者可以完全访问敏感数据集的个人或组织。
学生是数据集中的个人,而学校工作人员和学生代表了将接受数据分析的公众。
假设教授有一个拥有学生分数的数据集:
然后,教授使用均值函数查询学生数据库,以获得该班级的平均考试成绩:
和之前一样,有1个学生加入了马戏团并退出了课堂。教授计算了一个新的均值,并更新了黑板上的分数:
你现在知道,任何知道学校有多少学生的人都可以很容易地计算出这个学生的成绩,也就是67分。为了保护学生的隐私,教授需要一个函数,我们称它为dp_mean。在内部,该函数用于计算均值,并加入从拉普拉斯分布中采样的噪声。有了这个函数,场景看起来是这样的:
现在,当教授发布这些统计数据时,即使学生知道所使用的噪声类型和尺度参数,也无法计算出某个人的成绩。
正如你所见,披露一个数据集的统计数据会泄露数据集中个体的信息。教授并非故意向学生披露敏感信息,但将统计数据和数据集如何变化的信息相结合,就足以辨认出某个个体。这将是贯穿全书的一个主题:如何在不泄露数据集中个体信息的情况下,负责任地发布有关敏感数据的统计数据?
在数据隐私领域,实施是确保保护的关键——一个有缺陷的实施可能会泄露信息并导致隐私被侵犯。幸运的是,目前已经有很多高质量的开源工具可用于差分隐私的数据处理。
本书中绝大多数代码示例均采用OpenDP框架编写,通常使用的库包括OpenDP库或SmartNoise,这些库对OpenDP库进行了更高级别的抽象:
OpenDP库
OpenDP库是在OpenDP框架下编写的“模块化的统计算法集合”( https://opendp.org )。它可以使用许多不同的隐私模型来构建差分隐私的数据分析流程。OpenDP库的架构基于表达隐私感知计算的概念框架 [15] 。
下面的OpenDP库示例( https://oreil.ly/UycF4 )取自OpenDP文档,创建了三个操作链,并将它们应用于数据集:
OpenDP库是较大的OpenDP项目( https://opendp.org )的一部分,该项目是一个社区,旨在努力构建可信赖的开源软件工具,用于分析隐私数据。OpenDP的完整文档可以在OpenDP网站( https://docs.opendp.org )上找到。
SmartNoise
SmartNoise是微软、哈佛大学定量社会科学研究所(IQSS)和OpenDP项目(OpenDP Project)之间的合作项目。该项目旨在将研究界的解决方案与从实际部署中吸取的经验教训联系起来,从而广泛使用差分隐私。基于OpenDP库的基础,SmartNoise SDK包括两个Python包:
该包允许数据拥有者执行差分隐私的SQL查询,非常适用于在SQL数据库或Spark中生成表格数据的报告或多维数据集,尤其在数据集非常庞大的情况下。
该包提供生成差分隐私合成数据集的实用工具。当你无法提前预测工作负载,并希望与协作者共享结构上类似于真实数据的数据时,这些工具非常有用。
Tumult实验室
Tumult Core是一组用于构建差分隐私计算的组件。Tumult Analytics是一个建立在Tumult Core之上的Python库,允许用户对表格数据执行不同的差分隐私查询。Tumult还提供一个在线平台,可以同时进行批处理和交互式数据分析。2023年5月,Tumult和Google宣布建立战略合作伙伴关系( https://oreil.ly/dGqwA ),将Tumult的差分隐私技术整合到Google的BigQuery平台中。这使得BigQuery的用户可以通过在查询中添加差分隐私条款,在平台上进行差分隐私查询。也就是说,你只需要将WITH DIFFERENTIAL_PRIVACY添加到你的SELECT语句,并添加几个选项,即可使查询支持差分隐私。
Opacus
Opacus( https://oreil.ly/RVPRi )是一个用于训练差分隐私PyTorch模型的库。使用Opacus训练差分隐私模型时只需进行最少的代码更改,并且通常不会显著影响训练性能。此外,该库还支持在线跟踪隐私预算。
TensorFlow Privacy
TensorFlow Privacy(也称为TF Privacy, https://oreil.ly/fXxKH )是由Google Research创建的。该库包括用于训练机器学习的TensorFlow优化器的差分隐私实现。TF Privacy的设计使用户可以通过更改最少量的代码来使用TensorFlow训练差分隐私模型。一些Keras模型的差分隐私实施也是可用的。
Diffprivlib
Diffprivlib( https://oreil.ly/10hl5 )是IBM推出的一个通用库,旨在验证差分隐私。该库提供了Python绑定,用户可以用它来比较差分隐私和非差分隐私的机器学习模型,并构建保留差分隐私特性的应用程序。它包括多种机制,其中包括常见的Scikit-Learn机器学习模型的差分隐私实现。
如果你了解Scikit-Learn,那么这段来自Diffprivlib文档( https://oreil.ly/IYbma )的代码样本可能看起来很熟悉:
差分隐私已经促使许多分析敏感数据的强大工具诞生。仅仅从数据中删除敏感属性或对数据进行匿名处理是不够的。可以使用相对简单的方法重新识别数据集中的个体,例如,通过将人口信息与选民名册交叉引用,可以识别出医疗数据集中的患者。考虑到之前隐私保护技术的缺陷,你可以开始权衡你的选择,以便未来能够安全地处理敏感数据。本书的目标是,在完成阅读后,你将对差分隐私的概念有一个全面的掌握并且能够自信地准备好处理敏感数据,避免落入常见的陷阱。
本书每章的最后都有一组练习。这些练习分为概念性的、理论性的和编程性的:
· 概念性问题会要求你回答“为什么”。这类问题旨在考察你是否理解本章所涵盖的基本原理。
· 理论性问题将依赖于数学推理,有时回答这些问题会涉及解决一个问题,有时则是证明一个定理。
· 编程性问题将让你使用OpenDP库在Python中实现相关概念。
所有练习的答案都在本书的在线库( https://oreil.ly/HODP_GitHub )中给出,并附有解释和进一步的评论。
现在你已经熟悉了一些关于差分隐私的入门资料,你可能已经开始更多地思考你周围的数据是如何共享(或不共享)的。虽然差分隐私可以对你发布的数据提供出色的隐私保证,但你还未了解差分隐私能够提供这些保证的原因。
第2章将以更技术性的视角探讨相同的概念,更正式地定义差分隐私保证的含义,并进一步阐述该定义的影响。
1.假设一个人最多只能可以提供一条记录,下面哪些数据集是相邻的?
a. X =[1,2,3] Y =[1,2,3]
b. X =[A,B,C] Y =[C,A,D]
c. X =[A,B] Y =[B,A,C]
d. X =[D,E,F] Y =[E,F,D,G]
e. X =[A,B] Y =[A,A,A,B]
f. X =[A,B] Y =[A,B]
2.请考虑一个COUNT( x )函数,该函数以数据库作为输入并返回数据库中的行数。相较于通过计算将一个数据集转换成另一个数据集所需的编辑次数来判断两个数据集是否相邻,如果添加或删除一个个体会增加或减少一行数据,那么可以认为两个数据集是相邻的。
a.给定 x =[1,2,3,4,5,6,7,8,9,10],计算COUNT( x )。
b.为每个可能的相邻数据集 x ′计算COUNT( x ′),其中一条记录被删除。计数之间的距离能大于1吗?
c.COUNT( x )的全局敏感度是多少?
3.如果课堂示例的考试中有一道加分题,最高分数实际上是110分,那么:
a.考试平均分的敏感度是多少?
b.现在对几个最大分数{120,130,140,…}做同样的操作。
c.敏感度和最大考试分数之间的关系是什么?
d.如果考试分数没有限制,敏感度是否仍然可以被明确定义?
4.对于在[0, U ]上有界的数据的均值,当数据集的大小已知时,它的全局敏感度是多少?
5.考虑数据范围为[ L , U ]的更一般情况,当数据集的大小已知时,全局敏感度是多少?
[1] Cynthia Dwork等人,“Calibrating Noise to Sensitivity in Private Data Analysis,”发表于 Theory of Cryptography ,ed.S.Halevi and T.Rabin.Lecture Notes in Computer Science.(Berlin:Springer,2006):265-84, https://doi.org/10.1007/11681878_14 。
[2] Cynthia Dwork,“Differential Privacy,”in Automata,Languages and Programming ,ed.M.Bugliesi等人.Lecture Notes in Computer Science.(Berlin:Springer,2006):1-12, https://doi.org/10.1007/11787006_1 。
[3] Tore Dalenius,“Towards a Methodology for Statistical Disclosure Control,”accessed June 21,2023, https://ecommons.cornell.edu/handle/1813/111303 。
[4] Dorothy E.Denning,“Secure Statistical Databases with Random Sample Queries,” ACM Transactionson Database Systems 5,no.3 (September 1980):291-315, https://doi.org/10.1145/320613.320616 。
[5] Irit Dinur和Kobbi Nissim,“Revealing Information While Preserving Privacy,”发表于 Proceedings of the Twenty-Second ACM SIGMOD-SIGACT-SIGART Symposium on Principles of Database Systems. PODS'03.(New York,NY,USA:Association for Computing Machinery,(2003):202-10, https://doi.org/10.1145/773153.773173 。
[6] Cynthia Dwork和Aaron Roth,“The Algorithmic Foundations of Differential Privacy,” FNT in Theoretical Computer Science 9,nos.3-4,(2013):211-407, https://doi.org/10.1561/0400000042 。
[7] Cynthia Dwork等人,“Calibrating Noise to Sensitivity in Private Data Analysis,”发表于 Theory of Cryptography ,ed.S.Halevi and T.Rabin.Lecture Notes in Computer Science.(Berlin:Springer,2006):265-84, https://doi.org/10.1007/11681878_14 。
[8] Nabil Adam等人,“Statistical Databases,”发表于 Encyclopedia of Cryptography and Security ,ed.H.C.A.van Tilborg和S.Jajodia.(Berlin:Springer,2011):1256-60, https://link.springer.com/reference work/10.1007/978-1-4419-5906-5 。
[9] 有关本书核心概念的进一步演示,见Cynthia Dwork和Aaron Roth合著的“The Algorithmic Foundations of Differential Privacy”的第1~3章、第7章和第13章,发表于 Theoretical Computer Science 9,nos.3-4,(2013):211-407, https://doi.org/10.1561/0400000042 。
[10] John M.Abowd,“The U.S.Census Bureau Adopts Differential Privacy,”发表于 Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining .(New York:ACM,2018):2867, https://doi.org/10.1145/3219819.3226070 。
[11] 完整的案件名称为“Memorandum Opinion and Order,The State of Alabama v.United States Department of Commerce&United States Census Bureau,United States District Court for the Middle District of Alabama.”电子隐私信息中心(EPIC)提交了一份法庭之友意见书( https://oreil.ly/OWrz a)以支持美国人口普查。
[12] Philippe Golle,“Revisiting the Uniqueness of Simple Demographics in the US Population,”发表于 Proceedings of the 5th ACM Workshop on Privacy in Electronic Society (New York:2006):77-80。
[13] Abou-el-ela Abdou Hussien、Nermin Hamza和Hesham A.Hefny,“Attacks on Anonymization-Based Privacy-Preserving:A Survey for Data Mining and Data Publishing,” Journal of Information Security 4 ,no.2 (2013):101-12, https://doi.org/10.4236/jis.2013.42012 。
[14] Stanley L.Warner,“Randomized Response:A Survey Technique for Eliminating Evasive Answer Bias,” Journal of the American Statistical Association 60,no.309,(1965):63-69, https://doi.org/10.2307/2283137 。
[15] Michael Hay、Marco Gaboardi和Salil Vadhan,“A Programming Framework for OpenDP,”6th Workshop on the Theory and Practice of Differential Privacy (2020). https://salil.seas.harvard.edu/publications/programming-framework-opendp 。