The Algorithmic Foundations of Differential Privacy - 4
4 含相关误差的线性查询发布
在私有数据分析中,最基本的原语之一就是能够回答数据集上的数值型查询。
在上一节中,我们开始看到一些工具,它们允许我们通过向查询答案中添加独立采样的噪声来实现这一点。
在本节中,我们继续研究这个问题,并将看到:通过添加经过精心设计的相关噪声,我们可以在保证隐私的同时,以更高的精度回答数量极其庞大的查询。
这里,我们将介绍两种解决该问题的具体机制,并在下一节中对它们进行推广。
在本节中,我们考虑的是:设计算法以比单纯使用拉普拉斯机制组合得到更高的准确度来解决查询发布问题。
这种改进成为可能,是因为整个查询集被整体处理 —— 即使是在在线环境中! —— 从而允许不同查询之间的噪声具有相关性。
为了立刻直观感受这种方法可能带来的效果,请考虑第 1 节中差分攻击的那一对查询:
- “数据库中有多少人携带镰刀型细胞性状?”
- “数据库中除 X 之外有多少人携带镰刀型细胞性状?”
假设某个机制用拉普拉斯机制回答了第一个问题,而当第二个问题被提出时,机制回答:
“你已经知道近似答案了,因为你刚刚问过几乎相同的问题。”
这种对查询对的协调响应不会比单独回答其中任何一个问题产生更多的隐私损失,因此实现了(小幅的)隐私节省。
查询发布问题本身非常自然:
给定数据库上的一类查询 QQQ,我们希望对每个查询 fi∈Qf_i \in Qfi∈Q 发布一个答案 aia_iai,使得误差
maxi∣ai−fi(x)∣ \max_i |a_i - f_i(x)| imax∣ai−fi(x)∣
尽可能小,同时仍然保持差分隐私。
回忆一下:对于任何一族低敏感度查询,我们都可以应用拉普拉斯机制,它会为每个查询答案添加独立的噪声。
不幸的是,在固定隐私水平下:
- 对于 (ε,0)(\varepsilon, 0)(ε,0)-隐私保证,所需噪声的大小随着 ∣Q∣|Q|∣Q∣ 增长,因为组合查询的敏感度可能随之增加;
- 对于 (ε,δ)(\varepsilon, \delta)(ε,δ)-隐私保证,噪声大小随 ∣Q∣ln(1/δ)\sqrt{|Q|\ln(1/\delta)}∣Q∣ln(1/δ) 增长。
例如,假设查询集 QQQ 仅包含许多相同的查询,即 fi=f∗f_i = f^\astfi=f∗ 对所有 iii 都成立。
如果我们用拉普拉斯机制发布这些答案,它会为每个查询添加独立噪声,因此每个 aia_iai 都是均值为 f∗(x)f^\ast(x)f∗(x) 的独立随机变量。
显然,在这种情况下,噪声规模必须随 ∣Q∣|Q|∣Q∣ 增长,否则 aia_iai 的平均值将收敛于真实值 f∗(x)f^\ast(x)f∗(x),从而造成隐私泄露。
然而在这种情形下,更合理的做法是仅近似一次 f∗f^\astf∗,记作 a∗≈f∗(x)a^\ast \approx f^\ast(x)a∗≈f∗(x),然后令所有 ai=a∗a_i = a^\astai=a∗。
这样,噪声规模就完全不必随着 ∣Q∣|Q|∣Q∣ 增长。
在本节中,我们的目标是:通过为查询集整体设计相关噪声,构造比拉普拉斯机制更精确的算法(误差随 log∣Q∣\log|Q|log∣Q∣ 增长)。
回顾一下,我们的全集是
X={ χ1,χ2,…,χ∣X∣}, X = \{\chi_1, \chi_2, \ldots, \chi_{|X|}\}, X={ χ1,χ2,…,χ∣X∣},
数据库用直方图表示,即元素在 N∣X∣\mathbb{N}^{|X|}N∣X∣ 中。
线性查询(linear query) 本质上就是计数查询,但它被推广到取值范围在区间 [0,1][0,1][0,1],而不仅仅是布尔值。
具体来说,一个线性查询 fff 具有形式
f:X→[0,1], f: X \to [0,1], f:X→[0,1],
应用于数据库 xxx 时,返回的是该查询在数据库上的求和或平均值(在分析中我们会根据便利选择其一来思考)。
- 当我们把线性查询看作返回平均值时,我们称之为归一化线性查询(normalized linear query),其取值为:
f(x)=1∥x∥1∑i=1∣X∣xi⋅f(χi). f(x) = \frac{1}{\|x\|_1} \sum_{i=1}^{|X|} x_i \cdot f(\chi_i). f(x)=∥x∥11i=1∑∣X∣xi⋅f(χi).
- 当我们把线性查询看作返回求和值时,我们称之为非归一化线性查询(un-normalized linear query),其取值为:
f(x)=∑i=1∣X∣xi⋅f(χi). f(x) = \sum_{i=1}^{|X|} x_i \cdot f(\chi_i). f(x)=i=1∑∣X∣xi⋅f(χi).
在陈述一个界时,语境会明确说明我们讨论的是归一化查询还是非归一化查询,因为它们的取值范围完全不同:
- 归一化线性查询取值范围在 [0,1][0,1][0,1];
- 非归一化查询取值范围在 [0,∥x∥1][0, \|x\|_1][0,∥x∥1]。
注意:按照此定义,线性查询的敏感度满足 Δf≤1\Delta f \leq 1Δf≤1。后续章节将讨论任意的低敏感度查询。
我们将给出两种技术:一种用于离线情形,另一种用于在线情形。
令人惊讶且美妙的是:离线技术可以直接通过指数机制结合学习理论中的经典采样界来实现!
该算法的做法非常直接:
应用指数机制,其输出范围等于所有小数据库 yyy 的集合,
其质量函数定义为:
u(x,y)=−maxf∈Q∣f(x)−f(y)∣.(4.1) u(x,y) = -\max_{f \in Q} |f(x) - f(y)|. \tag{4.1} u(x,y)=−f∈Qmax∣f(x)−f(y)∣.(4.1)
采样界(见后文引理 4.3)告诉我们:数据库 xxx 的一个大小为ln∣Q∣/α2\ln |Q| / \alpha^2ln∣Q∣/α2 的随机子集,极有可能对所有查询 f(x)f(x)f(x) 提供良好的近似(更确切地说,加性误差不超过 α\alphaα)。因此我们知道:只需将输出空间限制为小数据库即可。
我们并不真正关心候选输出数据库是否小,我们关心的是它们的数量不要过多:因为在效用证明中,潜在输出的数量会起作用。更具体地说,如果潜在输出的总数不太多,那么低效用输出的总数也不会太多,因此“坏输出”与“好输出”(至少有一个)的比例不会过大。
在线机制虽然事先不知道全部查询集,但它能达到与离线机制相同的准确性,并且是稀疏向量技术的直接应用。因此,隐私性是立即保证的,而效用性则需要单独证明。
关键在于:即使面对一个非常庞大的计数查询集,
其中“显著”的查询其实很少;也就是说,显著查询是稀疏的。因此,正如在稀疏向量算法中一样,我们可以按照显著查询的数量来调整噪声,而几乎不依赖于查询总数。
示例 4.1.
假设数据库中的元素由 ddd 个布尔特征表示。
例如,第一个特征表示个体的性别(男性或女性),第二个特征表示是否大学毕业,第三个特征表示是否是美国公民,等等。
换句话说,我们的数据全集是
X={ 0,1}d. X = \{0,1\}^d. X={ 0,1}d.
给定这些属性的一个子集 S⊆{ 1,…,d}S \subseteq \{1, \ldots, d\}S⊆{ 1,…,d},我们可能想知道数据集中有多少人同时具有这些属性。
(例如:“数据集中有多少比例是具有肺癌家族史的男性大学毕业生?”)
这自然定义了一类查询,称为单调合取查询(monotone conjunction query),其由属性子集 SSS 参数化,并定义为:
fS(z)=∏i∈Szi,z∈X. f_S(z) = \prod_{i \in S} z_i, \quad z \in X. fS(z)=i∈S∏zi,z∈X.
所有此类查询的集合为
Q={ fS:S⊆{ 1,…,d}}, Q = \{f_S : S \subseteq \{1, \ldots, d\}\}, Q={ fS:S⊆{ 1,…,d}},
其大小为 ∣Q∣=2d|Q| = 2^d∣Q∣=2d。
对一组合取查询的回答有时被称为列联表(contingency table)或边际表(marginal table),
这是发布数据集统计信息的常见方法。
在很多时候,我们可能并不关心所有合取查询的答案,而只关心某个固定大小 kkk 的子集 SSS(即 ∣S∣=k|S| = k∣S∣=k)。
这类查询的集合为
Qk={ fS:S⊆{ 1,…,d},∣S∣=k}, Q_k = \{ f_S : S \subseteq \{1, \ldots, d\}, |S| = k \}, Qk={ fS:S⊆{ 1,…,d},∣S∣=k},
其大小为 (dk)\binom{d}{k}(kd)。
这一大类有用的查询仅仅是本节所给算法能够精确回答的查询类型之一。
(注意:如果我们希望允许非单调合取查询,即涉及属性取反的查询,也可以做到 ——
只需将特征空间从 ddd 翻倍到 2d2d2d,并对所有 i∈{ 1,…,d}i \in \{1, \ldots, d\}i∈{ 1,…,d} 设置
zd+i=1−zi. z_{d+i} = 1 - z_i. zd+i=1−zi.
4.1 一个离线算法:SmallDB
在本节中,我们给出一个基于指数机制采样小数据库的算法。
我们将展示,对于计数查询,只需考虑小数据库即可:
其大小仅依赖于查询类和所需的近似精度 α\alphaα,而与私有数据库的规模 ∥x∥1\|x\|_1∥x∥1 无关。
这一点非常重要,因为它使我们能够保证:
- 对于所有足够大的数据库,指数机制的输出范围中至少存在一个数据库,能很好地逼近 xxx 在查询集 QQQ 上的表现;
- 同时,输出范围内的数据库数量不会过多,从而保证分配在这个“好”数据库上的概率质量不会被稀释。
我们首先注意到:小数据库机制(Small Database mechanism)能够保持 ε\varepsilonε-差分隐私。
命题 4.1. 小数据库机制是 (ε,0)(\varepsilon, 0)(ε,0)-差分隐私的。
证明。 小数据库机制只是指数机制的一种实例化。因此,隐私性直接来自定理 3.10。
同样地,我们也可以借助对指数机制的分析来理解小数据库机制的效用保证。
不过,在此之前,我们必须先证明选择以下范围是合理的:
R={ y∈N∣X∣:∥y∥1=log∣Q∣α2}, R = \{ y \in \mathbb{N}^{|X|} : \|y\|_1 = \tfrac{\log |Q|}{\alpha^2} \}, R={ y∈N∣X∣:∥y∥1=α2log∣Q∣},
即所有大小为 log∣Q∣/α2\log |Q| / \alpha^2log∣Q∣/α2 的数据库的集合。
定理 4.2.
对于任意有限的线性查询类 QQQ,如果
R={ y∈N∣X∣:∥y∥1=log∣Q∣α2}, R = \{ y \in \mathbb{N}^{|X|} : \|y\|_1 = \tfrac{\log |Q|}{\alpha^2} \}, R={ y∈N∣X∣:∥y∥1=α2log∣Q∣},
那么对于所有数据库 x∈N∣X∣x \in \mathbb{N}^{|X|}x∈N∣X∣,存在一个 y∈Ry \in Ry∈R,使得:
maxf∈Q∣f(x)−f(y)∣≤α. \max_{f \in Q} |f(x) - f(y)| \leq \alpha . f∈Qmax∣f(x)−f(y)∣≤α.
换句话说,我们将展示:对于任意线性查询集 QQQ 和任意数据库 xxx,
总存在一个“小”数据库 yyy,其大小为 ∥y∥1=log∣Q∣α2\|y\|_1 = \tfrac{\log |Q|}{\alpha^2}∥y∥1=α2log∣Q∣,
并且它能在误差 α\alphaα 范围内近似刻画 QQQ 中所有查询的答案。
引理 4.3(采样界)。
对于任意数据库 x∈N∣X∣x \in \mathbb{N}^{|X|}x∈N∣X∣ 和任意线性查询集 QQQ,
存在一个大小为 ∥y∥1=log∣Q∣α2\|y\|_1 = \tfrac{\log |Q|}{\alpha^2}∥y∥1=α2log∣Q∣ 的数据库 yyy,使得:
maxf∈Q∣f(x)−f(y)∣≤α. \max_{f \in Q} |f(x) - f(y)| \leq \alpha . f∈Qmax∣f(x)−f(y)∣≤α.
证明。
令
m=log∣Q∣α2. m = \tfrac{\log |Q|}{\alpha^2}. m=α2log∣Q∣.
我们通过从数据库 xxx 中均匀随机抽取 mmm 个样本来构造数据库 yyy。
具体来说,对于 i∈{ 1,…,m}i \in \{1, \ldots, m\}i∈{ 1,…,m},令随机变量 XiX_iXi 取值 χj∈X\chi_j \in Xχj∈X,
其概率为 xj/∥x∥1x_j / \|x\|_1xj/∥x∥1。
数据库 yyy 由元素 X1,…,XmX_1, \ldots, X_mX1,…,Xm 构成。
现在,固定任意一个查询 f∈Qf \in Qf∈Q,并考虑 f(y)f(y)f(y)。
我们有:
f(y)=1∥y∥1∑i=1∣X∣yi⋅f(χi)=1m∑i=1mf(Xi). f(y) = \frac{1}{\|y\|_1} \sum_{i=1}^{|X|} y_i \cdot f(\chi_i) = \frac{1}{m} \sum_{i=1}^m f(X_i). f(y)=∥y∥11i=1∑∣X∣yi⋅f(χi)=m1i=1∑mf(Xi).
我们注意到,和式中的每一项 f(Xi)f(X_i)f(Xi) 都是一个有界随机变量,取值范围为 0≤f(Xi)≤10 \leq f(X_i) \leq 10≤f(Xi)≤1,其期望为:
E[f(Xi)]=∑j=1∣X∣xj∥x∥1f(χj)=f(x), \mathbb{E}[f(X_i)] = \sum_{j=1}^{|X|} \frac{x_j}{\|x\|_1} f(\chi_j) = f(x), E[f(Xi)]=j=1∑∣X∣∥x∥1xjf(χj)=f(x),
因此,f(y)f(y)f(y) 的期望为:
E[f(y)]=1m∑i=1mE[f(Xi)]=f(x). \mathbb{E}[f(y)] = \frac{1}{m} \sum_{i=1}^m \mathbb{E}[f(X_i)] = f(x). E[f(y)]=m1i=1∑mE[f(Xi)]=f(x).
因此,我们可以应用 定理 3.1 中给出的 Chernoff 界,得到:
Pr[∣f(y)−f(x)∣>α]≤2e−2mα2. \Pr[|f(y) - f(x)| > \alpha] \leq 2 e^{-2m\alpha^2}. Pr[∣f(y)−f(x)∣>α]≤2e−2mα2.
对所有线性查询 f∈Qf \in Qf∈Q 应用并联合界(union bound),我们得到:
Pr[maxf∈Q∣f(y)−f(x)∣>α]≤2∣Q∣e−2mα2. \Pr\Bigg[\max_{f \in Q} |f(y) - f(x)| > \alpha\Bigg] \leq 2|Q| e^{-2m\alpha^2}. Pr[f∈Qmax∣f(y)−f(x)∣>α]≤2∣Q∣e−2mα2.
代入 m=log∣Q∣α2m = \frac{\log |Q|}{\alpha^2}m=α2log∣Q∣,右边小于 1(只要 ∣Q∣>2|Q| > 2∣Q∣>2),
这证明了存在一个大小为 mmm 的数据库满足所述界,从而完成了引理的证明。 ✅
定理 4.2 的证明 直接来自如下观察:集合 RRR 包含了所有大小为 log∣Q∣/α2\log |Q| / \alpha^2log∣Q∣/α2 的数据库。
命题 4.4.
设 QQQ<