之前也有提到过,因为已经转行差分隐私不搞NLP啦,所以之后的博客不会再更新NLP相关内容(尽管曾经的梦想是在NLP领域有所作为哈哈哈),但是如果大家有什么相关问题还是期待着一同讨论哟~
好了我们言归正传,本文向大家介绍2006年Dwork大神的一篇文章,文章名字就叫Differential Privacy,应该是差分隐私的开山之作了。
首先,差分隐私所描述的隐私保护,针对的都是数据库中的个人数据(本文主要关注统计数据库)。
我们所设想的最好的隐私保护当然是:可以通过学习数据库得到某些群体信息,但是无法学习到个人信息。
(群体信息是我们本来就想学习到的内容,比如均值)
本文中所提到的隐私保护是建立在考虑附加信息(auxiliary information)的情况下的,附加信息是指攻击者通过非目标数据库可以得到的信息(比如报纸,新闻等)。那么,
【一】绝对的隐私究竟能不能达到?
看到这个问题,相信大家一定已经有了一个答案。
答案必然是否定的。
这篇文章的Section 3严格证明了这个结论(但是我没看明白……),但(所)是(以)在本文中并不做详细讨论,有兴趣的朋友们可以自行研究~
在这里可以举一个例子简单理解一下:
假如某个数据库
D
D
D 发布了不同国家的女性身高,攻击者还偶然得知了附加信息:女士A比中国女性平均身高高了2cm,那么攻击者就可以得知A的真实身高了。
作为对比,假设任何人都可以得知这条附加信息,普通人(没有访问数据库
D
D
D 的人)得到的信息也很少,至少没办法推测A的真实身高。
因此,在考虑附加信息(aux)的情况下,绝对的隐私保护是无法实现的。
【二】差分隐私定义
在这里,我们再深入思考一下,在刚刚的例子中我们发现,无论女士A的个人信息是否被包含在数据库
D
D
D 中,攻击的实施不会受到任何影响。
换句话说,对某个个体攻击的实施可行与否,与数据库中是否包含该个体无关。因此,从个人的角度来说,这种攻击是“不可防范的”。
原文是这样叙述的:
基于这样的观察,该文章对差分隐私给出了这样的定义:
很容易理解,这个定义确保了只更改数据库中的一条数据,对查询的反馈“基本上”是以同样的可能性出现的。
这个“基本上”是由参数
ϵ
\epsilon
ϵ 保证的。很明显,
ϵ
\epsilon
ϵ 越小,隐私保护能力越强。
那么如何达到这样的目的呢?
定义中也给出了线索,就是随机(randomized function
K
\mathcal{K}
K)。
【三】函数的敏感度
在介绍差分隐私具体的实现方法之前,首先介绍这样一个定义:函数的
L
1
−
s
e
n
s
i
t
i
v
i
t
y
L_1-sensitivity
L1−sensitivity (后文会用到):
L
1
−
s
e
n
s
i
t
i
v
i
t
y
L_1-sensitivity
L1−sensitivity 定义了当一个participant改变时,查询函数
f
(
⋅
)
f(\cdot)
f(⋅) 所输出结果的最大改变量。这样的改变量往往被称为函数的敏感度,常用的还有
L
2
−
s
e
n
s
i
t
i
v
i
t
y
L_2-sensitivity
L2−sensitivity,特别是在机器学习差分隐私领域。
在这里我们举个例子:
假设有这样一个查询
f
f
f:数据库
D
D
D 中共有多少个人(即,多少行)具有属性
P
P
P?
那么该查询的
L
1
−
s
e
n
s
i
t
i
v
i
t
y
L_1-sensitivity
L1−sensitivity:
Δ
f
=
1
\Delta f = 1
Δf=1.
值得注意的是,敏感度(无论是 L 1 L_1 L1 还是 L 2 L_2 L2)是函数的固有属性,与数据库无关。
【四】差分隐私实现
除了定义之外,本文还给出了差分隐私的一种实现方法,刚刚我们也有提到(没错就是随机),在查询结果上直接加随机噪声:
这也是差分隐私机器学习领域中output perturbation方法的由来。
具体的实现方法如下:
基于指数分布的隐私机制(privacy mechanism),用
K
f
\mathcal{K}_f
Kf 表示,分布函数如下:
上面的这个式子可能不是很容易理解,我们换个说法:
在得到真实查询结果
f
(
X
)
f(X)
f(X) 之后,我们将其加上一个随机噪声
b
b
b, 其中
b
b
b 的概率分布
g
(
b
)
g(b)
g(b) 如下:
g
(
b
)
∝
exp
(
−
b
/
σ
)
.
g(b)\propto\exp(-b/\sigma).
g(b)∝exp(−b/σ).
上面的式子就是一个常规的指数分布,方差为
σ
2
\sigma^2
σ2。
然后我们得到:
K
f
(
X
)
=
f
(
X
)
+
b
.
\mathcal{K}_f(X) = f(X) + b.
Kf(X)=f(X)+b.
推算一下,其实这个过程和上面的式 (3) 其实是一样的。
在这里还有一个小小的疑问,就是函数
f
f
f 的输出是
d
d
d 维的,我们加入的噪声在这
d
d
d 维是互相独立的,即:
现在,基于上面所描述的 privacy mechanism:
K
f
K_f
Kf,我们可以得到这样的结论:
【证明】
我们首先回顾一下式 (1) 中差分隐私的定义,很自然可以想到将两个数据库
D
1
D_1
D1 和
D
2
D_2
D2 分别 apply
K
f
\mathcal{K}_f
Kf 之后做商,然后与
exp
(
ϵ
)
\exp(\epsilon)
exp(ϵ) 作比较:
P
r
[
K
f
(
D
1
)
=
a
]
P
r
[
K
f
(
D
2
)
=
a
]
=
(
3
)
exp
(
−
∥
f
(
D
1
)
−
a
∥
1
/
σ
)
exp
(
−
∥
f
(
D
2
)
−
a
∥
1
/
σ
)
=
exp
(
∥
f
(
D
2
)
−
a
∥
1
−
∥
f
(
D
1
)
−
a
∥
1
σ
)
,
\frac{Pr[\mathcal{K}_f(D_1)=a]}{Pr[\mathcal{K}_f(D_2)=a]}\overset{(3)}{=}\frac{\exp(-\|f(D_1)-a\|_1/\sigma)}{\exp(-\|f(D_2)-a\|_1/\sigma)} \\ =\exp\left(\frac{\|f(D_2)-a\|_1-\|f(D_1)-a\|_1}{\sigma}\right),
Pr[Kf(D2)=a]Pr[Kf(D1)=a]=(3)exp(−∥f(D2)−a∥1/σ)exp(−∥f(D1)−a∥1/σ)=exp(σ∥f(D2)−a∥1−∥f(D1)−a∥1),
式中等号上面的 (3) 指上文中的式 (3)。
根据三角不等式我们可以得到:
exp
(
∥
f
(
D
2
)
−
a
∥
1
−
∥
f
(
D
1
)
−
a
∥
1
σ
)
≤
exp
(
∥
f
(
D
2
)
−
f
(
D
1
)
∥
1
σ
)
=
exp
(
Δ
f
σ
)
.
\exp\left(\frac{\|f(D_2)-a\|_1-\|f(D_1)-a\|_1}{\sigma}\right) \\ \leq\exp\left(\frac{\|f(D_2)-f(D_1)\|_1}{\sigma}\right) \\ = \exp\left(\frac{\Delta f}{\sigma}\right).
exp(σ∥f(D2)−a∥1−∥f(D1)−a∥1)≤exp(σ∥f(D2)−f(D1)∥1)=exp(σΔf).
因此我们可以得到:
P
r
[
K
f
(
D
1
)
=
a
]
P
r
[
K
f
(
D
2
)
=
a
]
≤
exp
(
Δ
f
σ
)
.
\frac{Pr[\mathcal{K}_f(D_1)=a]}{Pr[\mathcal{K}_f(D_2)=a]}\leq\exp\left(\frac{\Delta f}{\sigma}\right).
Pr[Kf(D2)=a]Pr[Kf(D1)=a]≤exp(σΔf).
带入差分隐私定义可以得到:
K
f
\mathcal{K}_f
Kf 保证了
(
Δ
f
/
σ
)
(\Delta f/\sigma)
(Δf/σ)- differential privacy。
【证毕】
因此,如果想要保证
ϵ
\epsilon
ϵ- differential privacy,利用上述 exponential privacy mechanism:
K
f
K_f
Kf,需要满足
σ
≥
ϵ
/
Δ
f
\sigma \geq \epsilon/\Delta f
σ≥ϵ/Δf.
值得一提的是,上述看似简单的证明方法是后续(几乎)所有output perturbation 证明方法的基本思路。
【五】其他
除了以上内容之外,本文还进一步给出了针对 m m m 个连续问题的差分隐私方法,将上面的 Δ f \Delta f Δf 改换成这个问题集合中 max \max max 的那个即可,很容易理解,在这里就不再过多赘述。有兴趣的朋友们可以自行阅读文章~
如果本文中某些表述或理解有误,欢迎各位大神批评指正。
谢谢!