差分隐私(二)——拉普拉斯机制

1,974 阅读5分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

上一文章中已经介绍了差分隐私的基本概念,主要讲述旧有的隐私保护机制,以及差分隐私的基本概念,组合定理等特性。本文则主要讲述差分隐私的具体实现机制。之前说过,差分隐私的本质就是向数据集添加噪声使得数据具有随机性,那么要添加什么样的噪声,才能够得到一个符合差分隐私的算法呢?

事实上,常用的用于差分隐私机制的噪声机制,总共有三种:拉普拉斯机制、高斯机制、指数机制。本文将对于拉普拉斯机制进行说明。

随机响应的缺陷

上一篇文章中已经讲述了随机响应机制,通过艾滋病询问的例子可以发现,随机响应机制适用于处理0/1问题,即问题的答案只有0或者1这两种。当然,对于一个任意数值,可以通过将其转化为二进制形式,而后对每个比特都使用相互独立同分布(i.i.d)的随机响应机制,从而实现对于任意数字的差分隐私保护算法。但是这样做通常过于低效。

拉普拉斯机制基本概念

相对于随机响应机制,拉普拉斯机制可以用于任意类型的数值查询,首先需要介绍一些与拉普拉斯相关的概念。

函数的l1l_1敏感度

定义1:假设有一函数f:XnRkf: \mathcal{X}^{n} \rightarrow \mathbb{R}^{k},则函数ffl1l_1敏感度定义为:

Δ(f)=maxX,Xf(X)f(X)1\Delta^{(f)}=\max _{X, X^{\prime}}\left\|f(X)-f\left(X^{\prime}\right)\right\|_{1}

其中XXXX'是相邻数据库。

一个函数的l1l_1灵敏度给定了一个上界:我们需要添加多大的噪声才能够保护数据的隐私。 在设计隐私保护机制时,我们需要针对于最坏情况下的隐私风险来设计隐私保护机制。比如:假设数据a的取值为[0,5],数据b的取值为[0,100],那么我们在设计隐私保护机制时,就必须要保证:当a=0,b=100时,我们添加的噪声可以混淆两个数据。而一个函数的l1l_1敏感度,代表的含义就是,这个函数的输入X,其相邻取值(即假设X和X'都是n维,则只考虑其在某一维度取值不同,如果X和X'都是1维,则考虑其数值相差为1)对于函数值所带来的最大影响

举个例子:假设函数f=1ni=1nXif=\frac{1}{n} \sum_{i=1}^{n} X_{i},其中Xi{0,1}X_{i} \in\{0,1\},则该函数的l1l_1敏感度为1/n1/n

(注:除了l1l_1敏感度以外还有一些其他的敏感度,如l2l_2敏感度,但是拉普拉斯机制只使用l1l_1敏感度,因此其他敏感度放在对应的机制中进行讲解)

拉普拉斯分布

顾名思义,拉普拉斯机制本身代表一种随机噪声的添加机制,而拉普拉斯机制这个名字,就是来源于噪声所产生的分布:拉普拉斯分布。

定义2:对于一个期望为0,尺度为b的拉普拉斯分布,其概率密度函数为:

p(x)=12bexp(xb)p(x)=\frac{1}{2 b} \exp \left(-\frac{|x|}{b}\right)

其函数图像如下图所示:

image.png

上图中,不同颜色的曲线代表参数不同的拉普拉斯分布 (注:当尺度为b时,其方差为2b22b^2

拉普拉斯分布和指数分布的关系

拉普拉斯分布是指数分布的对称版本。指数分布取值范围为0到正无穷,而拉普拉斯定义域为实数域。通过拉普拉斯分布可以生成对称连续分布的噪声。

拉普拉斯机制

通过拉普拉斯分布,我们就可以得到拉普拉斯机制:

定义3:假设函数f:XnRkf: \mathcal{X}^{n} \rightarrow \mathbb{R}^{k},拉普拉斯机制定义为:

M(X)=f(X)+(Y1,,Yk)M(X)=f(X)+\left(Y_{1}, \ldots, Y_{k}\right)

其中YiY_i代表相互独立同分布的拉普拉斯变量,其参数为:期望为0,尺度为Δ/ϵ\Delta/\epsilon,公式化为:YiLaplace(Δ/ϵ)Y_i \sim Laplace(\Delta/\epsilon)

也就是说:拉普拉斯机制的计算方法为:首先输入X计算出f(x)f(x),而后在f(x)f(x)的每一个维度上都添加,从拉普拉斯分布中随机抽样出的噪声。而噪声的尺度为 函数fl1敏感度/ϵ函数f的l_1敏感度/\epsilon

通过拉普拉斯机制可以实现符合ϵ\epsilon-DP的算法。

下面举个例子:对于函数f=1ni=1nXif=\frac{1}{n} \sum_{i=1}^{n} X_{i},其中Xi{0,1}X_{i} \in\{0,1\},该函数的l1l_1敏感度为1/n1/n。为了设计出符合ϵ\epsilon-DP的算法,该函数上的拉普拉斯机制为p~=f(X)+Y\tilde{p}=f(X)+Y,其中Ylaplace(1/ϵp)Y \sim laplace(1/\epsilon p)。因为拉普拉斯机制的数学期望为0,因此通过拉普拉斯机制可以得到一个无偏估计,即E[p~]=f(X)\mathbf{E}[\tilde{p}]=f(X),而拉普拉斯机制的方差为Var[p~]=Var[Y]=O(1/ε2n2)\operatorname{Var}[\tilde{p}]=\operatorname{Var}[Y]=O\left(1 / \varepsilon^{2} n^{2}\right)

拉普拉斯机制符合ϵ\epsilon-DP的证明

假设XXYY是相邻数据库,pX(z)p_X(z)pY(z)p_Y(z)分别是M(X)M(X)M(Y)M(Y)在点zz的概率密度函数,要想证明该机制符合ϵ\epsilon-DP,我们需要证明pX(z)p_X(z)pY(z)p_Y(z)的比值小于eϵe^\epsilon。证明步骤如下所示:

pX(z)pY(z)=i=1kexp(εf(X)iziΔ)i=1kexp(εf(Y)iziΔ)=i=1kexp(ε(f(X)izif(Y)izi)Δ)i=1kexp(εf(Y)if(X)iΔ)=exp(εi=1kf(X)if(Y)iΔ)=exp(εf(X)f(Y)1Δ)exp(ε).\begin{aligned} \frac{p_{X}(z)}{p_{Y}(z)} &=\frac{\prod_{i=1}^{k} \exp \left(-\frac{\varepsilon\left|f(X)_{i}-z_{i}\right|}{\Delta}\right)}{\prod_{i=1}^{k} \exp \left(-\frac{\varepsilon\left|f(Y)_{i}-z_{i}\right|}{\Delta}\right)} \\ &=\prod_{i=1}^{k} \exp \left(-\frac{\varepsilon\left(\left|f(X)_{i}-z_{i}\right|-\left|f(Y)_{i}-z_{i}\right|\right)}{\Delta}\right) \\ & \leq \prod_{i=1}^{k} \exp \left(-\frac{\varepsilon\left|f(Y)_{i}-f(X)_{i}\right|}{\Delta}\right) \\ &=\exp \left(\frac{\varepsilon \sum_{i=1}^{k}\left|f(X)_{i}-f(Y)_{i}\right|}{\Delta}\right) \\ &=\exp \left(\frac{\varepsilon\|f(X)-f(Y)\|_{1}}{\Delta}\right) \\ & \leq \exp (\varepsilon) . \end{aligned}

使用拉普拉斯机制时的一些注意点

  1. 拉普拉斯机制只能适用于数值型的函数,更准确地讲,其只适用于具有较低敏感度的实值函数
  2. 拉普拉斯机制加噪方法是向函数的计算结果添加噪声,但是如果我们希望得到一个精确结果,则不应该使用拉普拉斯噪声
  3. 当实现一个隐私保护的神经网络时,直接在参数中应用拉普拉斯机制可能会导致模型性能极度低下