1 前置知识
本部分只对相关概念做服务于差分隐私介绍的简单介绍,并非细致全面的介绍。
1.1 随机化算法
随机化算法指,对于特定输入,该算法的输出不是固定值,而是服从某一分布。
单纯形(simplex):一个 k k k维单纯形是指包含 k + 1 k+1 k+1个顶点的凸多面体,一维单纯形是一条线段,二维单纯形是一个三角形,三维单纯形是一个四面体,以此类推推广到任意维。“单纯”意味着基本,是组成更复杂结构的基本构件。
概率单纯形(probability simplex):是一个数学空间,上面每个点代表有限个互斥事件之间的概率分布。该空间的每条坐标轴代表一个互斥事件, k − 1 k-1 k−1维单纯形上的每个点在 k k k维空间中的坐标就是其 k k k个互斥事件上的概率分布。每一点的坐标(向量)包含 k k k个元素,各元素非负且和为1。
如下图所示,三个事件发生的概率分布形成一个二维的概率单纯形,上面每个点在三个事件上发生的概率之和为1。
形式化定义:给定一个离散集
B
B
B,
B
B
B上的概率单纯形
Δ
(
B
)
\Delta(B)
Δ(B)被定义为
Δ
(
B
)
=
{
x
∈
R
∣
B
∣
∣
x
i
≥
0
,
i
=
1
,
2
,
⋯
,
∣
B
∣
;
∑
i
=
1
∣
B
∣
x
i
=
1
}
\Delta(B)=\left\{x \in \mathbb{R}^{|B|}\left|x_{i} \geq 0, i=1,2, \cdots,\right| B \mid ; \sum_{i=1}^{|B|} x_{i}=1\right\}
Δ(B)=⎩⎨⎧x∈R∣B∣∣xi≥0,i=1,2,⋯,∣B∣;i=1∑∣B∣xi=1⎭⎬⎫
Δ
(
B
)
\Delta(B)
Δ(B)是一个集合,集合中每一个元素是一个
∣
B
∣
|B|
∣B∣维向量,该向量代表了一个离散型随机变量的概率分布。
Δ
(
B
)
\Delta(B)
Δ(B)代表了一个有
∣
B
∣
|B|
∣B∣种取值的离散型随机变量的所有可能的概率分布。
随机化算法(randomized algorithm):一个随机化算法 M \mathcal{M} M有定义域 A A A、离散的值域 B B B。一个输入 a ∈ A a\in A a∈A,算法 M \mathcal{M} M的输出 M ( a ) \mathcal{M}(a) M(a)是一个随机变量,服从概率分布 p ( x ) = Pr ( M ( a ) = x ) , x ∈ B p(x)=\operatorname{Pr}(\mathcal{M}(a)=x),x\in B p(x)=Pr(M(a)=x),x∈B,并且 p ( x ) ∈ Δ ( B ) p(x)\in \Delta(B) p(x)∈Δ(B)。
例如,
A
=
{
2
,
3
,
4
}
A=\{2,3,4\}
A={2,3,4},
B
=
{
1
,
2
,
3
,
4
,
5
}
B=\{1,2,3,4,5\}
B={1,2,3,4,5},设
Δ
(
B
)
\Delta(B)
Δ(B)中包含三个元素,分别为
(
1
3
,
1
3
,
1
3
,
0
,
0
)
(\frac{1}{3},\frac{1}{3},\frac{1}{3},0,0)
(31,31,31,0,0)、
(
0
,
1
3
,
1
3
,
1
3
,
0
)
(0,\frac{1}{3},\frac{1}{3},\frac{1}{3},0)
(0,31,31,31,0)、
(
0
,
0
,
1
3
,
1
3
,
1
3
)
(0,0,\frac{1}{3},\frac{1}{3},\frac{1}{3})
(0,0,31,31,31),即
Δ
(
B
)
=
{
(
1
3
,
1
3
,
1
3
,
0
,
0
)
,
(
0
,
1
3
,
1
3
,
1
3
,
0
)
,
(
0
,
0
,
1
3
,
1
3
,
1
3
)
}
\Delta(B)=\left\{ (\frac{1}{3},\frac{1}{3},\frac{1}{3},0,0), (0,\frac{1}{3},\frac{1}{3},\frac{1}{3},0), (0,0,\frac{1}{3},\frac{1}{3},\frac{1}{3}) \right\}
Δ(B)={(31,31,31,0,0),(0,31,31,31,0),(0,0,31,31,31)}
每个元素均代表算法输出的随机变量取值为1,2,3,4,5的概率分布,现可以规定映射
M
\mathcal{M}
M为
M
(
2
)
∼
(
1
3
,
1
3
,
1
3
,
0
,
0
)
,
M
(
3
)
∼
(
0
,
1
3
,
1
3
,
1
3
,
0
)
,
M
(
4
)
∼
(
0
,
0
,
1
3
,
1
3
,
1
3
)
\mathcal{M}(2)\sim \left(\frac{1}{3}, \frac{1}{3}, \frac{1}{3}, 0,0\right), \mathcal{M}(3)\sim \left(0, \frac{1}{3}, \frac{1}{3}, \frac{1}{3}, 0\right), \mathcal{M}(4)\sim \left(0,0, \frac{1}{3}, \frac{1}{3}, \frac{1}{3}\right)
M(2)∼(31,31,31,0,0),M(3)∼(0,31,31,31,0),M(4)∼(0,0,31,31,31)
也就是说,一个特定输入
a
∈
A
a\in A
a∈A经过随机化算法
M
\mathcal{M}
M得到的不是一个具体值
b
∈
B
b\in B
b∈B,而是一个随机变量
M
(
a
)
∼
p
(
x
)
,
p
(
x
)
∈
Δ
(
B
)
\mathcal{M}(a) \sim p(x),p(x)\in \Delta(B)
M(a)∼p(x),p(x)∈Δ(B),又或者说,算法将以一定概率输出某一个值。
上述情况是在离散概率空间中讨论的,有时,算法将从连续分布中的采样,但最后将以适当的精度进行离散化。
1.2 KL散度(KL-Divergence)
KL散度(Kullback Leible-Divergence)概念来源于概率论与信息论,又被称作相对熵、互熵。从统计学意义上来说,KL散度可以用来衡量两个分布之间的差异程度,差异越小,KL散度越小。
熵(entropy):信息论中熵定义首次被香农提出:无损编码事件信息的最小平均编码长度。通俗理解,如果熵比较大,即对该信息进行编码的最小平均编码长度较长,意味着该信息具有较多可能的状态,即有着较大的信息量/混乱程度/不确定性。从某种角度上看,熵描述了一个概率分布的不确定性。
一个离散的随机变量
X
X
X可能取值为
X
=
x
1
,
x
2
,
.
.
.
,
x
n
X=x_1,x_2,...,x_n
X=x1,x2,...,xn,即取值空间为
X
=
{
x
1
,
x
2
,
.
.
.
,
x
n
}
\mathcal{X}=\{x_1,x_2,...,x_n\}
X={x1,x2,...,xn},概率分布律为
p
(
x
)
=
Pr
(
X
=
x
)
,
x
∈
X
p(x)=\operatorname{Pr}(X=x),x\in \mathcal{X}
p(x)=Pr(X=x),x∈X,则随机变量的熵定义为
H
(
X
)
=
−
∑
x
∈
X
p
(
x
)
log
p
(
x
)
=
E
x
∼
p
[
−
log
p
(
x
)
]
\begin{aligned} H(X)&=-\sum_{x\in \mathcal{X}} p \left(x\right) \log p \left(x\right) \\ &=\mathbb{E}_{x \sim p}\left[-\log p(x)\right] \end{aligned}
H(X)=−x∈X∑p(x)logp(x)=Ex∼p[−logp(x)]
规定当
p
(
x
)
=
0
p(x)=0
p(x)=0时,
p
(
x
)
log
p
(
x
)
=
0
p(x)\log p(x)=0
p(x)logp(x)=0。
其中, − log p ( x ) -\log p(x) −logp(x)表示状态 X = x X=x X=x的最小编码长度。
Pr ( A ) \operatorname{Pr}(A) Pr(A)也即 P ( A ) \operatorname{P}(A) P(A),表示事件 A A A发生的概率,只是书写习惯不同,避免与其他 P P P混淆。
有时也将上面的量记为 H ( p ) H(p) H(p);
公式中的 E x ∼ p \mathbb{E}_{x \sim p} Ex∼p表示使用概率分布 p p p来计算期望;
其中 log \log log以2为底时,熵单位为bit,以e为底时,熵单位为nat;
上述的对熵的讨论也只是针对离散随机变量进行讨论的, p ( x ) p(x) p(x)在离散型随机变量中为概率分布律,在连续型随机变量中为概率密度函数;
交叉熵(cross-entropy):熵的计算是已知各状态的概率分布求其理论上最小平均编码长度。如果不知道各状态真实的概率分布 p ( x ) p(x) p(x),只有预估的概率分布 q ( x ) q(x) q(x),我们只好根据预估的概率分布 q ( x ) q(x) q(x)给事件编码,得到事件各状态 x x x的预估最小编码长度 − log q ( x ) -\log q(x) −logq(x)。假如经过观测后我们得到了真实概率分布 p ( x ) p(x) p(x),那么在计算预估最小编码长度 − log q ( x ) -\log q(x) −logq(x)的期望时就可以采用真实概率分布 p ( x ) p(x) p(x),得到交叉熵。
对于同一取值空间
X
=
{
x
1
,
x
2
,
.
.
.
,
x
n
}
\mathcal{X}=\{x_1,x_2,...,x_n\}
X={x1,x2,...,xn}下的离散随机变量
P
,
Q
P,Q
P,Q,概率分布分别为
p
(
x
)
=
Pr
(
P
=
x
)
,
q
(
x
)
=
Pr
(
Q
=
x
)
,
x
∈
X
p(x)=\operatorname{Pr}(P=x),q(x)=\operatorname{Pr}(Q=x),x\in \mathcal{X}
p(x)=Pr(P=x),q(x)=Pr(Q=x),x∈X,交叉熵定义为
H
(
P
,
Q
)
=
∑
x
∈
X
p
(
x
)
log
1
q
(
x
)
=
−
∑
x
∈
X
p
(
x
)
log
q
(
x
)
=
E
x
∼
p
[
−
log
q
(
x
)
]
\begin{aligned} H(P, Q)&=\sum_{x\in \mathcal{X}} p(x) \log \frac{1}{q(x)} \\ &=-\sum_{x\in \mathcal{X}} p(x) \log q(x) \\ &=\mathbb{E}_{x \sim p}\left[-\log q(x)\right] \end{aligned}
H(P,Q)=x∈X∑p(x)logq(x)1=−x∈X∑p(x)logq(x)=Ex∼p[−logq(x)]
即用预估概率分布 q ( x ) q(x) q(x)计算每个状态的最小编码长度,用真实概率分布 p ( x ) p(x) p(x)求期望。可见, H ( P , Q ) ≠ H ( Q , P ) , H ( P , Q ) ⩾ H ( P ) H(P,Q)\neq H(Q,P),H(P,Q)\geqslant H(P) H(P,Q)=H(Q,P),H(P,Q)⩾H(P)。
上述定义也可写作:对于取值空间 X \mathcal{X} X的离散随机变量 X X X,有两个分布 p ( x ) , q ( x ) , x ∈ X p(x),q(x),x\in \mathcal{X} p(x),q(x),x∈X,这也是《信息论基础(原书第二版)》的表达方式;但考虑到一个随机变量对应一个分布更严谨些,便分成了同一取值空间的两个随机变量进行解释,这是《The Algorithmic Foundations of Differential Privacy》的表达方式。二者意思是一样的。
相对熵(relative entropy)/KL散度(KL-divergence):用来衡量交叉熵与熵之间的差距的,也是两个随机分布之间距离的度量。
对于同一取值空间
X
=
{
x
1
,
x
2
,
.
.
.
,
x
n
}
\mathcal{X}=\{x_1,x_2,...,x_n\}
X={x1,x2,...,xn}下的离散随机变量
P
,
Q
P,Q
P,Q,概率分布分别为
p
(
x
)
=
Pr
(
P
=
x
)
,
q
(
x
)
=
Pr
(
Q
=
x
)
,
x
∈
X
p(x)=\operatorname{Pr}(P=x),q(x)=\operatorname{Pr}(Q=x),x\in \mathcal{X}
p(x)=Pr(P=x),q(x)=Pr(Q=x),x∈X,则
P
P
P相对
Q
Q
Q的相对熵为
P
,
Q
的
交
叉
熵
−
P
的
熵
P,Q的交叉熵-P的熵
P,Q的交叉熵−P的熵:
D
K
L
(
P
∥
Q
)
=
H
(
P
,
Q
)
−
H
(
P
)
=
−
∑
x
∈
X
p
(
x
)
log
q
(
x
)
−
∑
x
∈
X
−
p
(
x
)
log
p
(
x
)
=
−
∑
x
∈
X
p
(
x
)
(
log
q
(
x
)
−
log
p
(
x
)
)
=
−
∑
x
∈
X
p
(
x
)
log
q
(
x
)
p
(
x
)
=
∑
x
∈
X
p
(
x
)
log
p
(
x
)
q
(
x
)
=
E
x
∼
p
[
−
log
q
(
x
)
]
−
E
x
∼
p
[
−
log
p
(
x
)
]
=
E
x
∼
p
[
log
p
(
x
)
q
(
x
)
]
\begin{aligned} D_{K L}(P \| Q) &=H(P, Q)-H(P) \\ &=-\sum_{x\in \mathcal{X}} p(x) \log q(x)-\sum_{x\in \mathcal{X}}-p(x) \log p(x) \\ &=-\sum_{x\in \mathcal{X}} p(x)(\log q(x)-\log p(x)) \\ &=-\sum_{x\in \mathcal{X}} p(x) \log \frac{q(x)}{p(x)} \\ &=\sum_{x\in \mathcal{X}} p(x) \log \frac{p(x)}{q(x)} \\ &=\mathbb{E}_{x \sim p}\left[-\log q(x)\right]-\mathbb{E}_{x \sim p}\left[-\log p(x)\right]\\ &=\mathbb{E}_{x \sim p}\left[\log \frac{p(x)}{q(x)}\right] \end{aligned}
DKL(P∥Q)=H(P,Q)−H(P)=−x∈X∑p(x)logq(x)−x∈X∑−p(x)logp(x)=−x∈X∑p(x)(logq(x)−logp(x))=−x∈X∑p(x)logp(x)q(x)=x∈X∑p(x)logq(x)p(x)=Ex∼p[−logq(x)]−Ex∼p[−logp(x)]=Ex∼p[logq(x)p(x)]
可见,KL散度也可以用来衡量两个分布 P , Q P,Q P,Q的差异程度,另外, D K L ( P ∥ Q ) ≠ D K L ( Q ∥ P ) ⩾ 0 D_{K L}(P \| Q) \neq D_{K L}(Q \| P)\geqslant 0 DKL(P∥Q)=DKL(Q∥P)⩾0。
最大散度(Max Divergence):KL散度是从整体上衡量两个分布的距离,最大散度是两个分布比值的最大值,从两个分布比值的最大值角度衡量了两个分布的差异。
对于同一取值空间
X
=
{
x
1
,
x
2
,
.
.
.
,
x
n
}
\mathcal{X}=\{x_1,x_2,...,x_n\}
X={x1,x2,...,xn}下的离散随机变量
P
,
Q
P,Q
P,Q,概率分布分别为
p
(
x
)
=
Pr
(
P
=
x
)
,
q
(
x
)
=
Pr
(
Q
=
x
)
,
x
∈
X
p(x)=\operatorname{Pr}(P=x),q(x)=\operatorname{Pr}(Q=x),x\in \mathcal{X}
p(x)=Pr(P=x),q(x)=Pr(Q=x),x∈X,最大散度为
D
∞
(
P
∥
Q
)
=
max
x
∈
X
[
log
Pr
[
P
=
x
]
Pr
[
Q
=
x
]
]
=
max
x
∈
X
[
log
p
(
x
)
q
(
x
)
]
\begin{aligned} D_{\infty}(P \| Q)&=\max _{x\in \mathcal{X}}\left[\log \frac{\operatorname{Pr}[P=x]}{\operatorname{Pr}[Q=x]}\right] \\ &=\max _{x\in \mathcal{X}}\left[\log \frac{p(x)}{q(x)}\right] \end{aligned}
D∞(P∥Q)=x∈Xmax[logPr[Q=x]Pr[P=x]]=x∈Xmax[logq(x)p(x)]
2 差分隐私定义
差分隐私是Dwork在2006年首次提出的一种隐私定义,函数的输出结果对数据集中任何特定记录都不敏感。
假设对于一个考试成绩数据集 D D D,通过查询操作得知有 x x x个同学不及格,现加入一条新纪录得到新数据集 D ′ D' D′,通过查询得知有 x + 1 x+1 x+1个同学不及格,便可推理出新加入的同学成绩不及格,如此一来,攻击者便通过这样的手段推理出了一些知识。
应对上述攻击,差分隐私通过往查询结果 f ( D ) , f ( D ′ ) f(D),f(D') f(D),f(D′)中加入随机噪声 r r r最终得到查询结果 M ( D ) = f ( D ) + r , M ( D ′ ) = f ( D ′ ) + r \mathcal{M}(D)=f(D)+r,\mathcal{M}(D')=f(D')+r M(D)=f(D)+r,M(D′)=f(D′)+r,使得 D D D与 D ′ D' D′经过同一查询后的结果并非确定的具体值,而是服从两个很接近的概率分布,这样攻击者无法辨别查询结果来自哪一个数据集,保障了个体级别的隐私性。
2.1 形式化定义
邻接数据集(neighbor datasets):仅有一条记录不同的两个数据集 D D D, D ′ D' D′。
随机化算法 M \mathcal{M} M:随机化算法指,对于特定输入,该算法的输出不是固定值,而是服从某一分布。
隐私预算 ϵ \epsilon ϵ(privacy budget): ϵ \epsilon ϵ用于控制算法的隐私保护程度, ϵ \epsilon ϵ越小,则算法保护效果越好。
隐私损失(privacy loss):对于任意的输出结果 S S S, ln Pr [ M ( D ) ∈ S ] Pr [ M ( D ′ ) ∈ S ] \ln \frac{\operatorname{Pr}[\mathcal{M}(\mathrm{D}) \in \mathrm{S}]}{\operatorname{Pr}\left[\mathcal{M}\left(\mathrm{D}^{\prime}\right) \in \mathrm{S}\right]} lnPr[M(D′)∈S]Pr[M(D)∈S]或 ln Pr [ M ( D ) = ξ ] Pr [ M ( D ′ ) = ξ ] \ln \frac{\operatorname{Pr}[\mathcal{M}(\mathrm{D}) = \mathrm{\xi}]}{\operatorname{Pr}\left[\mathcal{M}\left(\mathrm{D}^{\prime}\right) = \mathrm{\xi}\right]} lnPr[M(D′)=ξ]Pr[M(D)=ξ],其描述了算法 M \mathcal{M} M在邻接数据集上输出同一个值的概率差别大小,差分隐私机制将算法的隐私损失控制在一个有限范围 ϵ \epsilon ϵ内。
隐私损失可正可负,越正和越负都表示隐私损失很大,因此严格来说隐私损失应加个绝对值,为
P
r
i
v
a
c
y
l
o
s
s
=
∣
ln
Pr
[
M
(
D
)
∈
S
]
Pr
[
M
(
D
′
)
∈
S
]
∣
Privacyloss=\left |\ln \frac{\operatorname{Pr}[\mathcal{M}(\mathrm{D}) \in \mathrm{S}]}{\operatorname{Pr}\left[\mathcal{M}\left(\mathrm{D}^{\prime}\right) \in \mathrm{S}\right]}\right |
Privacyloss=∣∣∣∣lnPr[M(D′)∈S]Pr[M(D)∈S]∣∣∣∣
当然,如没有加绝对值的地方默认
Pr
[
M
(
D
)
∈
S
]
⩾
Pr
[
M
(
D
′
)
∈
S
]
\operatorname{Pr}[\mathcal{M}(\mathrm{D}) \in \mathrm{S}] \geqslant \operatorname{Pr}[\mathcal{M}(\mathrm{D'}) \in \mathrm{S}]
Pr[M(D)∈S]⩾Pr[M(D′)∈S]。
ϵ
−
\epsilon-
ϵ−差分隐私:对于只有一个记录不同的邻接数据集
D
D
D、
D
′
D'
D′,给这两个数据集施加一个随机化算法(机制)
M
\mathcal{M}
M,对于所有的
S
⊆
Range
(
M
)
S\subseteq \operatorname{Range}(\mathcal{M})
S⊆Range(M),若有
Pr
[
M
(
D
)
∈
S
]
⩽
Pr
[
M
(
D
′
)
∈
S
]
×
e
ϵ
\operatorname{Pr}[\mathcal{M}(D) \in S] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D' \right) \in S\right] \times \mathrm{e}^{\epsilon}
Pr[M(D)∈S]⩽Pr[M(D′)∈S]×eϵ
即
max
S
[
ln
Pr
[
M
(
D
)
∈
S
]
Pr
[
M
(
D
′
)
∈
S
]
]
⩽
ϵ
\max _{S}\left[\ln \frac{\operatorname{Pr}[\mathcal{M} (D) \in S]}{\operatorname{Pr}\left[\mathcal{M}\left(D' \right) \in S\right]}\right] \leqslant \epsilon
Smax[lnPr[M(D′)∈S]Pr[M(D)∈S]]⩽ϵ
成立,则称算法
M
\mathcal{M}
M满足
ϵ
−
\epsilon-
ϵ−差分隐私。
其中 Range ( M ) \operatorname{Range}(\mathcal{M}) Range(M)是随机算法 M \mathcal{M} M映射结果随机变量的取值空间, S S S是其子集;对于所有的 S ⊆ Range ( M ) S\subseteq \operatorname{Range}(\mathcal{M}) S⊆Range(M)即对于 Range ( M ) \operatorname{Range}(\mathcal{M}) Range(M)的所有子集。
另种写法:
Pr [ M ( D ) = x ] ⩽ Pr [ M ( D ′ ) = x ] × e ϵ , x ∈ S \operatorname{Pr}[\mathcal{M}(D) =x] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D' \right) =x\right] \times \mathrm{e}^{\epsilon},x\in S Pr[M(D)=x]⩽Pr[M(D′)=x]×eϵ,x∈S
即
max x ∈ S [ log Pr [ M ( D ) = x ] Pr [ M ( D ′ ) = x ] ] ⩽ ϵ \max _{x\in S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D)=x]}{\operatorname{Pr}[\mathcal{M}(D')=x]}\right] \leqslant \epsilon x∈Smax[logPr[M(D′)=x]Pr[M(D)=x]]⩽ϵ
(
ϵ
,
σ
)
−
(\epsilon,\sigma)-
(ϵ,σ)−差分隐私:上面描述的是严格的差分隐私的定义,为了算法的实用性,Dwork后面引入了松弛的差分隐私,加入一个小常数
δ
\delta
δ(称作失败概率):
Pr
[
M
(
D
)
∈
S
]
⩽
Pr
[
M
(
D
′
)
∈
S
]
×
e
ϵ
+
δ
\operatorname{Pr}[\mathcal{M}(D) \in S] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D' \right) \in S\right] \times \mathrm{e}^{\epsilon}+\delta
Pr[M(D)∈S]⩽Pr[M(D′)∈S]×eϵ+δ
2.2 该定义是如何得来的
差分隐私的目的是使
M
(
D
)
,
M
(
D
′
)
\mathcal{M}(D),\mathcal{M}(D')
M(D),M(D′)的分布尽可能接近,便可用Max Divergence衡量两个分布的差异:
D
∞
(
M
(
D
)
∥
M
(
D
′
)
)
=
max
x
∈
S
[
log
Pr
[
M
(
D
)
=
x
]
Pr
[
M
(
D
′
)
=
x
]
]
=
max
S
[
log
Pr
[
M
(
D
)
∈
S
]
Pr
[
M
(
D
′
)
∈
S
]
]
\begin{aligned} D_{\infty}(\mathcal{M}(D) \| \mathcal{M}(D')) &=\max _{x\in S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D)=x]}{\operatorname{Pr}[\mathcal{M}(D')=x]}\right] \\ &=\max _{S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D) \in S]}{\operatorname{Pr}[\mathcal{M}(D') \in S]}\right] \end{aligned}
D∞(M(D)∥M(D′))=x∈Smax[logPr[M(D′)=x]Pr[M(D)=x]]=Smax[logPr[M(D′)∈S]Pr[M(D)∈S]]
其中
S
⊆
Range
(
M
)
S\subseteq \operatorname{Range}(\mathcal{M})
S⊆Range(M),
Range
(
M
)
\operatorname{Range}(\mathcal{M})
Range(M)是随机算法
M
\mathcal{M}
M映射结果随机变量的取值空间,
S
S
S是其子集。
对于
Range
(
M
)
\operatorname{Range}(\mathcal{M})
Range(M)的所有子集,即对于任意的
S
⊆
Range
(
M
)
S\subseteq \operatorname{Range}(\mathcal{M})
S⊆Range(M),两个分布的差异都被限制在隐私预算
ϵ
\epsilon
ϵ以内:
max
x
∈
S
[
log
Pr
[
M
(
D
)
=
x
]
Pr
[
M
(
D
′
)
=
x
]
]
=
max
S
[
log
Pr
[
M
(
D
)
∈
S
]
Pr
[
M
(
D
′
)
∈
S
]
]
⩽
ϵ
\max _{x\in S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D)=x]}{\operatorname{Pr}[\mathcal{M}(D')=x]}\right] =\max _{S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D) \in S]}{\operatorname{Pr}[\mathcal{M}(D') \in S]}\right] \leqslant \epsilon
x∈Smax[logPr[M(D′)=x]Pr[M(D)=x]]=Smax[logPr[M(D′)∈S]Pr[M(D)∈S]]⩽ϵ
可见,上述的Max Divergence就是隐私损失。
取
log
\log
log的底为
e
e
e,并两边同时利用指数运算、乘以分母变形得:
Pr
[
M
(
D
)
=
x
]
⩽
Pr
[
M
(
D
′
)
=
x
]
×
e
ϵ
,
x
∈
S
\operatorname{Pr}[\mathcal{M}(D) =x] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D' \right) =x\right] \times \mathrm{e}^{\epsilon},x\in S
Pr[M(D)=x]⩽Pr[M(D′)=x]×eϵ,x∈S
或
Pr
[
M
(
D
)
∈
S
]
⩽
Pr
[
M
(
D
′
)
∈
S
]
×
e
ϵ
\operatorname{Pr}[\mathcal{M}(D) \in S] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D' \right) \in S\right] \times \mathrm{e}^{\epsilon}
Pr[M(D)∈S]⩽Pr[M(D′)∈S]×eϵ
3 差分隐私中常用的随机化算法(机制)
常用的随机化机制有:
- 拉普拉斯机制(Laplace mechanism)
- 指数机制(Exponential mechanism)
- 高斯机制(Gaussian mechanism)
这些机制中,噪声发现取决于算法的敏感度。
敏感度(sensitivity):对于只有一个记录不同的两个数据集
D
,
D
′
D,D'
D,D′,对于一个函数
M
:
D
→
R
d
\mathcal{M}:\mathcal{D} \rightarrow \mathcal{R^d}
M:D→Rd,则
M
\mathcal{M}
M的敏感度为接收所有可能的输入后,得到输出的最大变化值:
Δ
M
=
max
D
,
D
′
∥
M
(
D
)
−
M
(
D
′
)
∥
\Delta \mathcal{M}=\max _{D, D^{\prime}}\left\|\mathcal{M}(D)-\mathcal{M}\left(D^{\prime}\right)\right\|
ΔM=D,D′max∥M(D)−M(D′)∥
其中,
∥
⋅
∥
\|\cdot\|
∥⋅∥表示向量的范数。
l
1
−
l_1-
l1−敏感度和
l
2
−
l_2-
l2−敏感度分别适用于
l
1
l_1
l1范数和
l
2
l_2
l2范数。
参考资料:
- 概率单纯形 https://zhuanlan.zhihu.com/p/479892005
- 【数学知识】KL散度 https://zhuanlan.zhihu.com/p/365400000
- 一文搞懂熵(Entropy),交叉熵(Cross-Entropy) https://zhuanlan.zhihu.com/p/149186719
- 差分隐私Differential Privacy介绍 https://zhuanlan.zhihu.com/p/40760105
- 差分隐私(一) Differential Privacy 简介 https://zhuanlan.zhihu.com/p/139114240
- 差分隐私的算法基础 第二章 第三节 形式化差分隐私 https://zhuanlan.zhihu.com/p/502656652
- 《联邦学习》杨强.et al 电子工业出版社
- 机器学习的隐私保护研究综述. 刘俊旭 孟小峰 doi: 10.7544/issn1000-1239.2020.20190455
- 《The Algorithmic Foundations of Differential Privacy》Dwork.et al 3.5.1
- 《信息论基础(原书第2版)》Thomas.et al 机械工业出版社