The Algorithmic Foundations of Differential Privacy - 2
2 基本术语(Basic Terms)
本节将给出差分隐私的形式化定义及其若干关键性质,并先对定义背后的动机做出说明。
2.1 计算模型(The model of computation)
我们假设存在一位可信且值得信赖的数据管理者(curator),其持有一个包含若干个体数据的数据库 DDD,通常由 nnn 行构成。直观地讲,每一行对应一名个体的数据;同样从直观角度出发,我们的隐私目标是在允许对整个数据库进行统计分析的同时,同时保护每一行个体数据的隐私。
在非交互(离线)模型中,管理者一次性地产生某种“对象”,例如“合成数据库(synthetic database)”、一组汇总统计,或“净化后的数据库(sanitized database)”。在发布之后,管理者不再参与,原始数据也可以被销毁。
查询(query)是作用于数据库的一个函数。在交互(在线)模型中,数据分析者可以自适应地提出查询:下一次要问什么,取决于此前已观测到的各次回答。
可信管理者也可以由个体集合通过一套 安全多方协议(secure multiparty protocols) 来替代,但总体上我们并不依赖密码学假设。第 12 节将描述这一模型及文献中研究的其他模型。
当所有查询事先已知时,非交互模型通常能给出最佳精度,因为它可以在已知查询结构的情况下相关化噪声。相反,若事先毫不知情,非交互模型就会面临严峻挑战,因为它必须对所有可能的查询提供回答。正如我们将看到的,为了确保隐私,乃至仅仅为了避免隐私灾难,精度必然会随着问题数量的增加而下降;要对所有可能的问题都给出准确答案是不可行的。
隐私机制(mechanism)是一种算法:输入为一个数据库、一个数据类型的universe XXX(即所有可能数据库行的集合)、随机位,以及(可选的)一组查询;输出为一个字符串。我们的期望是:若提供了查询,那么该输出字符串可以被解码以给出对这些查询相对准确的回答;若没有提供查询,则这是非交互情形,期望该输出字符串能够被解释以回答未来的查询。
在某些场景下,我们可能要求输出字符串本身就是一个合成数据库。这是一 个从universe XXX(所有可能的数据库行)中抽取的多重集(multiset)。在这种情形下的解码方法是:直接在合成数据库上执行查询,然后再施加某种简单变换(例如乘以一个缩放因子),以获得对真实查询答案的近似。
2.2 走向隐私数据分析的定义
在数据分析语境下,一种自然的隐私定义思路是:要求分析完成后,分析者对任何个体的认知不应比分析开始前更多。形式化的表达是:要求对手在访问数据库之前和之后对某个个体的先验观点与后验观点之间不应“差异过大”,或者说,访问数据库不应让对手对任何个体的看法发生“过度改变”。
然而,如果数据库能教给我们任何东西,这种隐私概念就根本无法实现。例如,假设对手原先的错误先验是“所有人都有两只左脚”。访问统计数据库后,他学到几乎所有人都是“一只左脚加一只右脚”。于是,他对“某个受访者是否有两只左脚”的观点发生了显著变化。
“分析前后没有学到任何东西”这种定义隐私的方法,部分吸引力在于:如果关于某个体没有任何新信息被学到,那么分析就不可能对该个体造成伤害。然而,“吸烟导致癌症”的例子表明,这种直觉是有缺陷的;问题在于辅助信息(例如已知某人 X 吸烟)。
这种“无所学习”的隐私定义方式让人联想到密码系统的语义安全(semantic security)。粗略来说,语义安全要求从密文中无法学到任何关于明文的信息。也就是说,看到密文后能够得知的任何关于明文的事实,在看到密文前就已经能得知。例如,如果辅助信息表明密文是“dog”或“cat”之一的加密结果,那么密文不会泄露进一步的信息来区分“dog”或“cat”。形式化地,这是通过比较两个主体的能力来建模的:一个是窃听者(有密文和辅助信息),另一个是所谓的对手模拟器(只有辅助信息而没有密文)。如果对于任何窃听者和任何辅助信息,模拟器和窃听者在猜测哪一个词被加密时的成功几率几乎相同,那么该系统就具备语义安全。当然,若系统要有用,合法接收者必须能正确解密消息;否则,语义安全可被轻易地以“拒绝一切解密”为代价获得。
我们知道,在标准计算假设下,语义安全的密码系统确实存在。那么,为什么我们不能建立一种语义安全的“私有数据库机制”,既能回答查询,又能保证单行数据的隐私呢?
首先,这个类比并不完美:在语义安全的加密系统中有三个角色:消息发送者(加密者)、消息接收者(解密者)、以及窃听者(被挫败的人)。而在私有数据分析中,只有两个角色:管理者(运行隐私机制,类似发送者),以及数据分析者(既是合法接收者,获得信息性查询回答,同时也像窃听者一样试图挖掘个体隐私)。由于合法接收者与窃听对手是同一个人,类比被破坏了:如果拒绝对手的一切信息,就等于拒绝分析者的一切信息。
其次,和加密方案类似,我们要求隐私机制必须有用,也就是说,它必须教给分析者一些之前不知道的东西。而这种“新知识”对于对手模拟器是不可得的:模拟器无法“预测”分析者学到了什么。因此,我们可以把数据库看作一个弱随机源,其中包含某些不可预测的比特。我们可以从中提取出高质量的随机性,作为“随机密钥垫(random pad)”。这可以用于一种加密方法:把秘密消息与random pad相加,生成一个从信息论上隐藏秘密的字符串。只有知道random pad的人才能恢复秘密;对任何不了解random pad的一方而言,无论计算能力如何,都无法学到秘密的任何信息。给定数据库访问权限的分析者可以学到这个随机垫,但对手模拟器没有访问权限,就完全学不到它。因此,当一个秘密使用该random pad被加密时,分析者可以解密,而模拟器则什么也学不到。这就造成了分析者/对手与模拟器在学习秘密上的巨大差距,从而彻底破灭了语义安全的希望。
在“吸烟导致癌症”的例子与“语义安全类比”的困境中,障碍都是辅助信息。显然,要想有意义,隐私保证必须在存在“合理”的辅助知识时仍然成立。但区分什么是“合理”辅助信息、什么是“任意”辅助信息,本身就是问题。比如,使用政府数据库的分析者,可能恰好是某大型搜索引擎公司的员工。对于这样的人,他可能掌握的辅助信息应当如何设定为“合理”?
2.3 差分隐私的形式化
我们将先给出差分隐私的技术定义,然后再对其进行解释。差分隐私通过过程来提供隐私;特别地,它会引入随机性。
一个早期的“通过随机过程保障隐私”的例子是随机化回答(randomized response)。这是社会科学中发展出的一种技术,用来收集关于尴尬或非法行为的统计信息——例如某人是否具有某个属性 PPP。研究参与者被要求按照如下步骤回答是否具有属性 PPP:
- 抛一枚硬币;
- 如果是反面(tails),则如实回答;
- 如果是正面(heads),则再抛一次硬币:若正面则回答“是”,若反面则回答“否”。
隐私来自于任何回答的合理否认性。例如,如果属性 PPP 对应于某种非法行为,即便某人回答了“是”,这也不能成为罪证,因为无论他是否真的具有属性 PPP,回答“是”的概率至少为 1/41/41/4。
准确性则来自对噪声生成过程的理解(即随机化带来的虚假“是/否”回答)。具体来说,回答“是”的期望数量为:
- 14\tfrac{1}{4}41 倍的“不具有属性 P 的参与者数”,加上
- 34\tfrac{3}{4}43 倍的“具有属性 P 的参与者数”。
因此,如果真实具有属性 PPP 的比例为 ppp,则回答“是”的期望比例为:
14(1−p)+34p = 14+p2. \frac{1}{4}(1-p) + \frac{3}{4}p \;=\; \frac{1}{4} + \frac{p}{2}. 41(1−p)+43p=41+2p.
由此可得,我们可以估计p为两次回答“是”的分数减去1/2,
p≈2×(回答“是”的比例)−12. p \approx 2 \times \text{(回答“是”的比例)} - \tfrac{1}{2}. p≈2×(回答“是”的比例)−21.
随机化的必要性
更严格地说,任何非平凡的隐私保证——即无论面对当前或未来的一切辅助信息(包括其他数据库、研究、网站、在线社区、流言、报纸、政府统计等)都依然成立的隐私保证——都必须依赖随机化。
这可以通过一个简单的混合论证(hybrid argument)说明:
假设存在一个非平凡的确定性算法。非平凡意味着:存在某个查询和两个数据库,使得该查询在这两个数据库上的输出不同。如果逐行修改数据库,就能找到一对仅在单行数据上不同的数据库,使得同一个查询的输出不同。此时,如果对手知道数据库就是这两个几乎相同的数据库之一,那么他就能直接推断出这一行的数据值。
随机化算法的输入与输出空间
因此,我们必须讨论随机化算法的输入和输出空间。在本书中,我们主要处理离散概率空间。有时会描述算法从连续分布中采样,但这始终应谨慎地离散化为有限精度(见备注 2.1)。
一般而言,一个定义域为 AAA、离散值域为 BBB 的随机化算法,与一个从 AAA 到 BBB 上的 概率单纯形(probability simplex) 的映射相关联,记作 Δ(B)\Delta(B)Δ(B)。
定义 2.1(概率单纯形)
给定一个离散集合 BBB,其上的概率单纯形 Δ(B)\Delta(B)Δ(B) 定义为:
Δ(B)={ x∈R∣B∣ : xi≥0 ∀i, ∑i=1∣B∣xi=1}. \Delta(B) = \Big\{ x \in \mathbb{R}^{|B|} \;:\; x_i \ge 0 \;\;\forall i, \;\; \sum_{i=1}^{|B|} x_i = 1 \Big\}. Δ(B)={ x∈R∣B∣:xi≥0∀i,i=1∑∣B∣xi=1}.
定义 2.2(随机化算法)
一个随机化算法 MMM,定义域为 AAA,离散值域为 BBB,对应映射:
M:A→Δ(B). M: A \to \Delta(B). M:A→Δ(B).
当输入 a∈Aa \in Aa∈A 时,算法 MMM 以概率 (M(a))b(M(a))_b(M(a))b 输出结果 b∈Bb \in Bb∈B。这里的概率空间由算法 MMM 的抛币过程所决定。
我们将把数据库 xxx 看作是来自某个全集 XXX 的记录集合。为了方便起见,常常用直方图表示数据库:
x∈N∣X∣, x \in \mathbb{N}^{|X|}, x∈N∣X∣,
其中每个条目 xix_ixi 表示数据库 xxx 中属于类型 i∈Xi \in Xi∈X 的元素个数。(这里稍微滥用了一下符号 N\mathbb{N}N,它表示所有非负整数的集合,包括 0)。
在这种表示下,一个自然的数据库间距离度量是它们的 ℓ1\ell_1ℓ1 距离:
定义 2.3(数据库之间的距离)
数据库 xxx 的 ℓ1\ell_1ℓ1 范数记作 ∥x∥1\|x\|_1∥x∥