隐私损失随机变量
隐私损失随机变量
2020-03-06 — 更新于 2022-07-23
还记得"几乎"差分隐私的概念吗?我们修改了原始定义,添加一个新参数 \(\delta\),并称 \(\delta\) 为"出错的概率"。这有点过于简化了:这一直觉有时并不完全准确。在这篇文章中,我将做两件事:介绍差分隐私中的一个关键概念——"隐私损失随机变量",然后用它来解释 \(\delta\) 的真正含义。
友情提示:这篇文章的数学比本系列其余部分稍多一些。但别担心!我尽量让它直观易懂,多用图表、少用方程。所有方程都藏在默认折叠的证明里。
隐私损失随机变量
回顾 \(\varepsilon\)-DP(即差分隐私)的定义设置。攻击者试图区分两个仅相差一条记录的数据库 \(D_1\) 和 \(D_2\)。若机制 \(A\) 满足 \(\varepsilon\)-DP,则 \(A(D_1)\) 和 \(A(D_2)\) 返回输出 \(O\) 的概率大致相近:
反方向的不等式同样成立,但由于 \(D_1\) 与 \(D_2\) 的关系是对称的,我们只保留这一个以简化表述。
前面说过,\(\varepsilon\)-DP 中的 \(\varepsilon\) 代表攻击者能获得的最大知识增益。我们在贝叶斯框架下定义了这个增益:攻击者试图猜测真实数据库 \(D\) 究竟是 \(D_1\) 还是 \(D_2\),而 \(\varepsilon\) 限制了其投注赔率的变化幅度。对每个 \(O\),有:
如果我们不想仅仅限制这个量,而是想针对每个具体输出 \(O\) 来计算它呢?我们来定义:
公式看着吓人,背后的直觉却很简单。分母是 \(D_1\) 相对于 \(D_2\) 的初始投注赔率——看到机制输出之前,一个选项比另一个选项的可能性大多少。贝叶斯术语中,这叫"先验"。分子则是看到输出之后的投注赔率,即"后验"。差分隐私保证对所有 \(O\),都有 \(\mathcal{L}_{D_1,D_2}(O)\le\varepsilon\)。
贝叶斯规则让我们把这个量改写为:
这就是隐私损失随机变量(简称 PLRV)。直观地说,PLRV 是特定输出 \(O\) 对应的"实际 \(\varepsilon\) 值"。 为什么叫随机变量?因为 \(O\) 会变化——我们通常假设 \(A(D_1)\) 来自"真实"数据库,在此基础上考察 \(\mathcal{L}_{D_1,D_2}(O)\) 的分布。
好,这太抽象了,我们需要一个具体例子。
一个具体的例子
假设我们要统计数据集中蓝眼睛的人数。通过添加尺度为 \(1/\ln(3)\) 的拉普拉斯噪声,我们得到 \(\varepsilon=\ln(3)\) 的差分隐私保证。攻击者在两个可能的数据集之间犹豫:一个有 \(1000\) 个蓝眼睛的人,另一个有 \(1001\) 个。真实数值是 \(1000\),但攻击者并不知道。两个分布如下:
我们来考虑机制的三个可能输出,假设"真实"数据库为 \(D_1\)。下图中将它们标记为 \(O_1\)、\(O_2\) 和 \(O_3\)。
假设攻击者起初非常不确定,给 \(D_1\) 和 \(D_2\) 分配了相等的概率。一旦看到机制输出,他会怎么想?
- 如果返回 \(O_1\),攻击者会倾向于认为真实数据库是 \(D_1\)。因为这个输出在 \(D=D_1\) 下出现的概率远高于 \(D=D_2\)。高多少?正好 3 倍:攻击者的知识增至三倍。
- 如果返回 \(O_2\),攻击者只能耸耸肩:¯_(ツ)_/¯。这个输出没提供太多信息,既可能来自 \(D_1\),也可能来自 \(D_2\)。攻击者的知识没有变化。
- 如果返回 \(O_3\),攻击者会被误导。他们会认为真实数据库更可能是 \(D_2\),其"知识"反而缩小为原来的三分之一。
我们来遍历所有可能的输出 \(O=A(D_1)\),按对攻击者的帮助程度排序,并观察 \(\mathcal{L}_{D_1,D_2}(O)\) 的值。我们将其简记为 \(\mathcal{L}\),并绘制出来。
这就是拉普拉斯噪声如此出色的原因:看这条整齐的水平线,简直完美。它还有一条笔直的斜线。整条曲线从未超过 \(\varepsilon\approx1.1\)——拉普拉斯噪声满足 \(\varepsilon\)-DP 的一个漂亮视觉证明。
我们再来改一下上面的图表,以更准确地体现 \(\mathcal{L}\) 是一个随机变量。在 \(x\) 轴上,我们按概率来排列所有事件。由于我们对 \(\exp(\mathcal{L})\) 更感兴趣,下面改画它而不是 \(\mathcal{L}\)。
那如果换一种噪声呢?比如来自正态分布的噪声?数据分析师可能会更高兴:拉普拉斯噪声对他们来说太过陌生,现实世界中几乎不会出现。相比之下,正态分布既熟悉又亲切,很多自然数据的分布都可以用它来建模。
在差分隐私中,正态分布噪声被称为"高斯噪声"。我们来试试添加方差为 \(\sigma^2=3\) 的高斯噪声:
好,看起来还行。再来看看 \(e^\mathcal{L}\) 长什么样:
糟了。看左侧那条飙升到无穷大的曲线,实在难看。我们没法在 \(e^\varepsilon\) 处画条线就说"一切都在下面"。那怎么办?我们耍个小聪明,引入 \(\delta\)。
\(\delta\) 和 PLRV
前面说过,\((\varepsilon,\delta)\)-DP 中的 \(\delta\) 就是"坏事发生"的概率。在高斯噪声的场景下,这意味着什么?我们先选定一个 \(\varepsilon\),比如 \(\varepsilon=\ln(3)\),然后看 \(e^\mathcal{L}\) 超过 \(e^\varepsilon=3\) 这条线的可能性有多大。这很简单:\(x\) 轴就是概率空间,直接量出"坏事件"的宽度即可。
这一直觉是对的:该机制是 \((\ln(3),\delta_1)\)-DP,其中 \(\delta_1\approx0.054\)。但它忽略了一个重要的细微之处。我们来放大出事的那段区域,看看两个具体输出。
返回 \(O_1\) 不太好:\(e^\mathcal{L}>e^\varepsilon\)。但也算不上太糟——隐私损失只比期望值稍大一点。而返回 \(O_2\) 就严重多了:\(e^\mathcal{L}\) 非常大。直观来说,\(O_2\) 泄露的信息远多于 \(O_1\)。
但我们之前量化 \(\delta\) 的方式没有区分这两者。我们只测量了 \(x\) 轴上的宽度——只关心 \(e^\mathcal{L}\) 是否超过了那条线,而不关心超了多少。每个概率为 \(p\) 的坏事件,我们都往 \(\delta\) 里加 \(p\times1\)。一种更精细的做法是根据"有多糟糕"来加权坏事件:非常糟糕的事件权重接近 \(1\),不太糟糕的事件权重接近 \(0\)。
具体做法是对上面的曲线做两步变换。第一步,取曲线的倒数:原本非常糟糕的事件现在接近 \(0\),而非一个很大的数。第二步,用比值 \(e^\varepsilon/e^\mathcal{L}\) 来归一化曲线,使"不太糟糕"的事件接近 \(1\)。
这样我们就可以考察曲线与 \(y=1\) 之间的面积了。\(\mathcal{L}\) 很大时,倒数接近 \(0\),到 \(1\) 的距离几乎为 \(1\);\(\mathcal{L}\) 接近 \(\varepsilon\) 时,比值接近 \(1\),距离几乎为 \(0\)。非常糟糕的事件比略有些糟的事件贡献更大。
这才是对 \(\delta\) 更精确的刻画。在 \((\varepsilon,\delta)\)-DP 中,\(\delta\) 就是上面高亮区域的面积——所有坏事件按其发生概率和严重程度加权后的总和。据此,该机制是 \((\ln(3),\delta_2)\)-DP,其中 \(\delta_2\approx0.011\),这是一个好得多的刻画。
\((\varepsilon,\delta)\)-DP 的标准定义并不采用这种复杂的表述。对于任意相邻数据库 \(D_1\)、\(D_2\) 和任意输出集合 \(S\),若机制 \(A\) 满足:
则称 \(A\) 是 \((\varepsilon,\delta)\)-DP。
这个定义与前面的刻画等价。证明如下,点击展开:
固定机制 \(A\) 和 \(\varepsilon\ge0\)。总存在某个 \(\delta\) 使 \(A\) 满足 \((\varepsilon,\delta)\)-DP——取 \(\delta=1\) 即可,虽然毫无意义。有意义的问题是:使 \(A\) 满足 \((\varepsilon,\delta)\)-DP 的最小 \(\delta\) 是多少?对每个输出集合 \(S\),我们可以计算:
当且仅当对所有 \(S\) 都有 \(\delta_S\le\delta\) 时,定义才成立。因此:
容易看出,只需关心满足以下条件的输出 \(O\):
其余输出只会使 \(\delta_\max\) 更小而非更大。因此,使上式最大化的集合 \(S\) 为:
我们可以将其改写为:
接下来,把求和范围扩展到所有可能的 \(O\),对不属于 \(S_\max\) 的项置零即可。
这正是一个期望值:
这个公式恰好对应前面曲线与 \(1\) 之间的面积。
无穷大值呢?
使用高斯噪声时,\(\mathcal{L}\) 的所有可能值都是有限的。但对某些机制 \(A\),可能存在输出 \(O\) 使得 \(\mathbb{P}[A(D_1)=O]>0\) 而 \(\mathbb{P}[A(D_2)=O]=0\),此时 \(\mathcal{L}(O)=\infty\)。这类输出称为区分事件。一旦返回区分事件,攻击者就能立刻断定 \(D\) 是 \(D_1\) 而非 \(D_2\)。前面"阈值化"的例子就属于这种情况。
我们对 \(\delta\) 的刻画能很好地处理这一点。由于取了倒数,当 \(\mathcal{L}=\infty\) 时,\(e^\varepsilon/e^\mathcal{L}=0\),到 \(1\) 的距离恰好为 \(1\),这些事件以最大权重被计入。图表如下:
此时 \(\delta_1=\delta_2\):所有"坏"事件都是最坏情况。对这类机制而言,\(\delta\) 的两种刻画殊途同归。

浙公网安备 33010602011771号