LDP编码介绍
Local Differential Privacy(LDP)可以在收集用户的敏感数据时,保护用户的隐私信息。神奇的LDP,定义是任意两个输入 v 1 , v 2 v_1,v_2 v1,v2输出同一个值 y y y的概率的比值在 e ε e^\varepsilon eε界里 :
如果一个算法 A A A满足 ε \varepsilon ε-local differential privacy( ε \varepsilon ε-LDP),其中 ε ≥ 0 \varepsilon\geq0 ε≥0,当且仅当对于任意的输入 v 1 , v 2 v_1,v_2 v1,v2,有
∀ y ∈ R a n g e ( A ) : P r [ A ( v 1 ) = y ] ≤ e ε P r [ A ( v 2 ) = y ] , \forall y\in Range(A): Pr[A(v_1)=y]\leq e^{\varepsilon}Pr[A(v_2)=y], ∀y∈Range(A):Pr[A(v1)=y]≤eεPr[A(v2)=y],
其中 R a n g e ( A ) Range(A) Range(A)表示算法 A A A的所有可能输出的值。
LDP的基本应用是频度估计(即,从n个数据里,统计每个值的出现次数),它可以归结为下面的3个步骤:
- Encode即编码,由每个用户执行:
– 输入一个值 v v v;输出一个编码后的值 x x x,即 x = E n c o d e ( v ) x=Encode(v) x=Encode(v); - Perturb即扰动,由每个用户执行:
– 输入一个编码后的值 x x x,输出扰动后的值 y y y,即 y = P e r t u r b ( x ) = P e r t u r b ( E n c o d e ( v ) ) y=Perturb(x)=Perturb(Encode(v)) y=Perturb(x)=Perturb(Encode(v)),后面简记为 y = P E ( v ) y=PE(v) y=PE(v); - Aggregate即收集,由收集者(Aggregator)执行:
– 将所有用户扰动后的值 y y y收集,输出处理后的信息,如频度估计。
本文将介绍17-USENIX-Locally Differentially private Protocols for Frequency Estimation1中所描述的满足LDP的五种编码方法,对它们的比较主要是两个指标: - 隐私保护程度 ε \varepsilon ε,
- 频度估计(frequency estimation)的方差 V a r ( c ~ ( i ) ) Var(\tilde{c}(i)) Var(c~(i))。
1. Basic RAPPOR 简化版
规定输入 v v v的值是有限的,为 d d d个。不失一般性,我们 v v v取 1 1 1到 d d d的整数,即 v ∈ [ 1 , d ] , v ∈ N v\in[1, d],v\in N v∈[1,d],v∈N。
- Encoding: 将输入的整数转化成长度为 d d d 的01串,对应位取 1 1 1,其余位取 0 0 0,即 E n c o d e ( v ) = B 0 Encode(v)=B_0 Encode(v)=B0,其中 B 0 B_0 B0是长度为 d d d的01串,并保证 B 0 [ v ] = 1 , B 0 [ i ] = 0 , i ≠ v B_0[v]=1,B_0[i]=0, i\neq v B0[v]=1,B0[i]=0,i=v。如 d = 5 , v = 3 d=5, v=3 d=5,v=3,则 B 0 = 00100 B_0=00100 B0=00100;
- Perturbing: (Rapper是有两次扰动的,此处简化仅考虑一次)01串
B
0
B_0
B0的每一位分别以
p
p
p(一般来说,
p
≥
1
2
p\geq \frac{1}{2}
p≥21)的概率保持,以
q
=
1
−
p
q=1-p
q=1−p的概率反转,产生扰动后的01串
B
1
B_1
B1,即:
P r [ B 1 [ i ] = 1 ] = { p , i f B 0 [ i ] = 1 , q = 1 − p , i f B 0 [ i ] = 0. Pr[B_1[i]=1]=\left\{ \begin{array}{cr} p, &if B_0[i]=1, \\ q=1-p, &if B_0[i]=0. \end{array} \right. Pr[B1[i]=1]={p,q=1−p,ifB0[i]=1,ifB0[i]=0. - Aggregation: 收集者可以收集到所有用户(设有n个)扰动后的01串
B
1
B_1
B1,按位估计出原始的个数。记第
i
i
i位为
1
1
1的用户个数为
c
(
i
)
c(i)
c(i),依此可以估计出扰动前
B
0
B_0
B0中第
i
i
i位为
1
1
1的用户个数
c
~
(
i
)
\tilde{c}(i)
c~(i),扰动前的第
i
i
i 位为
1
1
1的有
p
p
p的概率保持,为
0
0
0的有
q
=
1
−
p
q=1-p
q=1−p的概率反转:
p ⋅ c ~ ( i ) + q ⋅ ( n − c ~ ( i ) ) = c ( i ) ⇒ p ⋅ c ~ ( i ) + ( 1 − p ) ⋅ ( n − c ~ ( i ) ) = c ( i ) ⇒ c ~ ( i ) = c ( i ) − ( 1 − p ) ⋅ n 2 p − 1 . \begin{aligned} &\ p\cdot\tilde{c}(i)+q\cdot(n-\tilde{c}(i))=c(i) \\ \Rightarrow&\ p\cdot\tilde{c}(i)+(1-p)\cdot(n-\tilde{c}(i))=c(i) \\ \Rightarrow&\ \tilde{c}(i)=\frac{c(i)-(1-p)\cdot n}{2p-1}. \end{aligned} ⇒⇒ p⋅c~(i)+q⋅(n−c~(i))=c(i) p⋅c~(i)+(1−p)⋅(n−c~(i))=c(i) c~(i)=2p−1c(i)−(1−p)⋅n.
p p p是事先约定的, n n n是收集者收集到的用户个数, c ( i ) c(i) c(i)可以根据收集到的数据累加出来,因此可以比较方便地计算出 c ~ ( i ) \tilde{c}(i) c~(i)。
Privacy: 要达到 ε \varepsilon ε-LDP,可以取 ε = ln ( ( p 1 − p ) 2 ) \varepsilon=\ln((\frac{p}{1-p})^2) ε=ln((1−pp)2),证明见2014-Rappor2。
2. Direct Encoding(DE)
依然规定输入 v v v的值是有限的,为 d d d个。
- Encoding: 正如其名,输入的整数编码成自身,即 E n c o d e ( v ) = v Encode(v)=v Encode(v)=v;
- Perturbing: 依然概率
p
p
p表示
v
v
v扰动后得到自身
v
v
v,概率
q
=
1
−
p
d
−
1
q=\frac{1-p}{d-1}
q=d−11−p表示其他值(剩下的
d
−
1
d-1
d−1个值)扰动后得到
v
v
v。为了满足LDP的定义,有
p
=
e
ε
q
p= e^{\varepsilon}q
p=eεq,可得到:
P r [ P e r t u r b D E ( x ) = i ] = { p = e ε e ε + d − 1 , i f i = x , q = 1 e ε + d − 1 , i f i ≠ x . Pr[Perturb_{DE}(x)=i]=\left\{ \begin{array}{cr} p=\frac{e^{\varepsilon}}{e^{\varepsilon}+d-1}, &if i=x, \\ q=\frac{1}{e^{\varepsilon}+d-1}, &if i\neq x. \end{array} \right. Pr[PerturbDE(x)=i]={p=eε+d−1eε,q=eε+d−11,ifi=x,ifi=x. - Aggregation: 收集者可以收集到所有用户(设有n个)扰动后的值
v
′
v'
v′,按值估计出每个值个数。类似地,记扰动后值为
i
i
i的用户个数为
c
(
i
)
c(i)
c(i),依此可以估计出扰动前值为
i
i
i的用户个数
c
~
(
i
)
\tilde{c}(i)
c~(i),扰动前的值为
i
i
i的有
p
p
p的概率保持,非
i
i
i的有
q
=
1
−
p
d
−
1
q=\frac{1-p}{d-1}
q=d−11−p的概率反转:
p ⋅ c ~ ( i ) + q ⋅ ( n − c ~ ( i ) ) = c ( i ) ⇒ c ~ ( i ) = c ( i ) − q ⋅ n p − q ⇒ c ~ ( i ) = c ( i ) ⋅ ( e ε + d − 1 ) − n e ε − 1 , \begin{aligned} &\ p\cdot\tilde{c}(i)+q\cdot(n-\tilde{c}(i))=c(i) \\ \Rightarrow &\ \tilde{c}(i)=\frac{c(i)-q\cdot n}{p-q} \\ \Rightarrow &\ \tilde{c}(i)=\frac{c(i)\cdot(e^{\varepsilon}+d-1)-n}{e^{\varepsilon}-1}, \end{aligned} ⇒⇒ p⋅c~(i)+q⋅(n−c~(i))=c(i) c~(i)=p−qc(i)−q⋅n c~(i)=eε−1c(i)⋅(eε+d−1)−n,
以及方差1为
V a r [ c ~ D E ( i ) ] = n ⋅ d − 2 + e ε ( e ε − 1 ) 2 . Var[\tilde{c}_{DE}(i)]=n\cdot \frac{d-2+e^{\varepsilon}}{(e^{\varepsilon}-1)^2}. Var[c~DE(i)]=n⋅(eε−1)2d−2+eε.
3. Histogram Encoding(HE)
依然规定输入 v v v的值是有限的,为 d d d个。编码方式和Basic RAPPOR简化版类似,不过由整数变成了实数,扰动的时候加Laplace噪声。
- Encoding: *将输入的整数转化成长度为 d d d 的01串,对应位取 1.0 1.0 1.0,其余位取 0.0 0.0 0.0,即 E n c o d e H E ( v ) = [ 0.0 , 0.0 , . . . , 1.0 , . . . , 0.0 ] Encode_{HE}(v)=[0.0, 0.0, ..., 1.0, ..., 0.0] EncodeHE(v)=[0.0,0.0,...,1.0,...,0.0];
- Perturbing: P e r t u r b H E ( B ) Perturb_{HE}(B) PerturbHE(B)输出 B ′ [ i ] = B [ i ] + L a p ( 2 ε ) B'[i]=B[i]+Lap(\frac{2}{\varepsilon}) B′[i]=B[i]+Lap(ε2);
- Aggregation: 有两类,分别为SHE, THE,如下:
3.1 Summation with Histogram Encoding(SHE)
Aggregate是求和,
c
~
(
i
)
=
∑
j
B
j
[
i
]
\tilde{c}(i)=\sum_{j}B^{j}[i]
c~(i)=∑jBj[i],
j
j
j表示第
j
j
j个用户。
因为
L
a
p
(
2
ϵ
)
Lap(\frac{2}{\epsilon})
Lap(ϵ2)是无偏的(均值为
0
0
0),所以这种方式也是无偏的;
对应的方差1为
V
a
r
[
c
~
S
H
E
(
i
)
]
=
n
8
ε
2
.
Var[\tilde{c}_{SHE}(i)]=n\frac{8}{\varepsilon^2}.
Var[c~SHE(i)]=nε28.
3.2 Thresholding with Histogram Encoding(THE)
Aggregate是设定阈值
θ
\theta
θ,大于
θ
\theta
θ统计为
1
1
1,小于等于
θ
\theta
θ统计为
0
0
0。其实也很容易理解,Encoding时在对应数位
B
[
v
]
B[v]
B[v]取
1.0
1.0
1.0,如果增加的扰动不是太大,一般会大于某个数(取为
θ
\theta
θ);同时
B
[
i
]
B[i]
B[i]为
0.0
0.0
0.0,如果增加的扰动不是太大,一般会小于某个数(取为
θ
\theta
θ)。
此时,可取
p
=
1
−
F
(
θ
−
1
)
,
q
=
1
−
F
(
θ
)
,
p=1-F(\theta-1),q=1-F(\theta),
p=1−F(θ−1),q=1−F(θ),
其中
F
(
x
)
F(x)
F(x)是Laplace分布的累积函数;
一般来说,
θ
∈
[
0
,
1
]
\theta\in[0,1]
θ∈[0,1],此时有
p
=
1
−
1
2
e
ε
2
(
θ
−
1
)
,
q
=
1
−
1
2
e
−
ε
2
θ
,
p=1-\frac{1}{2}e^{\frac{\varepsilon}{2}(\theta-1)},q=1-\frac{1}{2}e^{-\frac{\varepsilon}{2}\theta},
p=1−21e2ε(θ−1),q=1−21e−2εθ,
可得方差1:
V
a
r
[
c
~
T
H
E
(
i
)
]
=
n
2
e
ε
θ
/
2
−
1
(
1
+
e
ε
(
θ
−
1
/
2
)
−
2
e
ϵ
θ
/
2
)
2
.
Var[\tilde{c}_{THE}(i)]=n\frac{2e^{\varepsilon\theta/2}-1}{(1+e^{\varepsilon(\theta-1/2)-2e^{\epsilon\theta/2}})^2}.
Var[c~THE(i)]=n(1+eε(θ−1/2)−2eϵθ/2)22eεθ/2−1.
在 θ ∈ ( 1 2 , 1 ) \theta\in(\frac{1}{2},1) θ∈(21,1)时,THE能取到最优值;因为SHE统计时 B ′ [ i ] B'[i] B′[i]是在整个实数域上的,而THE中统计时 B ′ [ i ] B'[i] B′[i]只有 0 , 1 0,1 0,1二值,所以 V a r [ c ~ T H E ( i ) ] < V a r [ c ~ S H E ( i ) ] Var[\tilde{c}_{THE}(i)]<Var[\tilde{c}_{SHE}(i)] Var[c~THE(i)]<Var[c~SHE(i)]总是成立。
4. Unary Encoding(UE)
和Basic RAPPOR简化版非常相似,Encoding相同,Perturbing(扰动)的时候,概率
p
p
p表示数位不变,概率
q
q
q表示数位反转,仍有
p
>
q
p>q
p>q;这里和Basic RAPPOR简化版不同的地方是
p
+
q
p+q
p+q可以不为
1
1
1。
为了保持
ε
\varepsilon
ε-LDP,仅需考虑
v
1
,
v
2
v_1,v_2
v1,v2对应的数位(其他的都相同),最坏情况下,
v
1
v1
v1不变,
v
2
v2
v2反转,可得
ε
=
l
n
(
p
(
1
−
q
)
(
1
−
p
)
q
)
\varepsilon=ln(\frac{p(1-q)}{(1-p)q})
ε=ln((1−p)qp(1−q)),具体证明可看这里1。
- Encoding: 将输入的整数转化成长度为 d d d 的01串,对应位取 1 1 1,其余位取 0 0 0,即 E n c o d e ( v ) = [ 0 , . . . , 0 , 1 , 0 , . . . , 0 ] Encode(v)=[0,...,0,1,0,...,0] Encode(v)=[0,...,0,1,0,...,0];
- Perturbing: 01串
B
0
B_0
B0的每一位分别以
p
p
p的概率保持,以
q
q
q(
p
+
q
≠
1
p+q\neq 1
p+q=1)的概率反转,产生扰动后的01串
B
1
B_1
B1,即:
P r [ B 1 [ i ] = 1 ] = { p , i f B 0 [ i ] = 1 , q , i f B 0 [ i ] = 0. Pr[B_1[i]=1]=\left\{ \begin{array}{cr} p, &if B_0[i]=1, \\ q, &if B_0[i]=0. \end{array} \right. Pr[B1[i]=1]={p,q,ifB0[i]=1,ifB0[i]=0. - Aggregation: 略。
方差为:
V
a
r
[
c
~
U
E
(
i
)
]
=
n
⋅
(
(
e
ε
−
1
)
q
+
1
)
2
(
e
ε
−
1
)
2
(
1
−
q
)
q
.
Var[\tilde{c}_{UE}(i)]=n\cdot\frac{((e^{\varepsilon}-1)q+1)^2}{(e^{\varepsilon}-1)^2(1-q)q}.
Var[c~UE(i)]=n⋅(eε−1)2(1−q)q((eε−1)q+1)2.
4.1 Symmetric Unary Encoding(SUE)
取
p
+
q
=
1
p+q=1
p+q=1,此时
p
=
e
ε
/
2
e
ε
/
2
+
1
,
q
=
1
e
ε
/
2
+
1
,
p=\frac{e^{\varepsilon/2}}{e^{\varepsilon/2}+1},q=\frac{1}{e^{\varepsilon/2}+1},
p=eε/2+1eε/2,q=eε/2+11,
方差为
V
a
r
[
c
~
S
U
E
(
i
)
]
=
n
⋅
e
ε
/
2
(
e
ε
/
2
−
1
)
2
.
Var[\tilde{c}_{SUE}(i)]=n\cdot\frac{e^{\varepsilon/2}}{(e^{\varepsilon/2}-1)^2}.
Var[c~SUE(i)]=n⋅(eε/2−1)2eε/2.
4.2 Optimized Unary Encoding(OUE)
由UE的方差,对
q
q
q求偏导等于
0
0
0,可得
p
=
1
2
,
q
=
1
e
ε
/
2
+
1
,
p=\frac{1}{2},q=\frac{1}{e^{\varepsilon/2}+1},
p=21,q=eε/2+11,
论文中对
p
,
q
p,q
p,q取值的含义介绍的很不错,
p
p
p只要对总共只有一个的
1
1
1扰动,而
q
q
q要对有
d
−
1
d-1
d−1个的
0
0
0进行扰动,因此会对
0
0
0取较大的隐私预算。
此时的方差为
V
a
r
[
c
~
O
U
E
(
i
)
]
=
n
⋅
4
e
ε
(
e
ε
−
1
)
2
.
Var[\tilde{c}_{OUE}(i)]=n\cdot\frac{4e^{\varepsilon}}{(e^{\varepsilon}-1)^2}.
Var[c~OUE(i)]=n⋅(eε−1)24eε.
5. Local Hashing(LH)
需要先了解一下universal hashing,可以参考我写的博客。其他参考资料有Sarah Adel Bargal的介绍3,用数学的角度来介绍,非常简洁也很清楚;另外wikipedia的universal hashing4,用历史的角度来介绍。
universal hashing的基本思想5:一个hash函数 y = h ( x ) y=h(x) y=h(x)总是能够针对性地造一组样例,使得hash映射的结果很差很差;一种解决办法(universal hashing)是,我们用一组hash函数(a family of hash functions),每次从中随机选择一个函数作一次映射,平均意义下任意两个不同的输入 x 1 , x 2 x_1,x_2 x1,x2的hash函数相同的概率不超过 1 g \frac{1}{g} g1, g g g是hash table的大小。
Binary Local Hashing(BLH)
如果我们选择值域 g = 2 g=2 g=2,输出为 0 , 1 0,1 0,1两种(Binary)。
- Encoding: 随机均匀地从 H \mathbb{H} H(universal hash function family)选择一个hash函数 H H H,映射输入 v v v,输出hash函数和结果,得 E n c o d e B L H ( v ) = < H , b = H ( v ) > Encode_{BLH}(v)=<H,b=H(v)> EncodeBLH(v)=<H,b=H(v)>;
- Perturbing: 仅对结果
b
b
b扰动,
P
e
r
t
u
r
b
B
L
H
(
<
H
,
b
>
)
=
<
H
,
b
′
>
Perturb_{BLH}(<H,b>)=<H,b'>
PerturbBLH(<H,b>)=<H,b′>,其中
P r [ b ′ ] = { p = e ε e ε + 1 , i f b = 1 , q = 1 e ε + 1 , i f b = 0. Pr[b']=\left\{ \begin{array}{cr} p=\frac{e^{\varepsilon}}{e^{\varepsilon}+1}, &if\ b=1, \\ q=\frac{1}{e^{\varepsilon}+1}, &if\ b=0. \end{array} \right. Pr[b′]={p=eε+1eε,q=eε+11,if b=1,if b=0. - Aggregation: 结合Encoding和Perturbing,可得
p ∗ = p , q ∗ = 1 2 , p*=p,q*=\frac{1}{2}, p∗=p,q∗=21,
因此,方差为
V a r [ c ~ B L H ( i ) ] = n ⋅ ( e ε + 1 ) 2 ( e ε − 1 ) 2 . Var[\tilde{c}_{BLH}(i)]=n\cdot\frac{(e^{\varepsilon}+1)^2}{(e^{\varepsilon}-1)^2}. Var[c~BLH(i)]=n⋅(eε−1)2(eε+1)2.
Optimized Local Hashing(OLH)
考虑到值域 g = 2 g=2 g=2,很容易丢失信息,因此会选择 g ≥ 2 g\geq 2 g≥2,同时 g g g如果太大的话,也会丢失掉信息。先假设值域为 g g g,则
- Encoding: 随机均匀地从 H \mathbb{H} H选择一个hash函数 H H H,映射输入 v v v,输出hash函数和结果,得 E n c o d e B L H ( v ) = < H , x = H ( v ) > Encode_{BLH}(v)=<H,x=H(v)> EncodeBLH(v)=<H,x=H(v)>;
- Perturbing: 仅对结果
b
b
b扰动,
P
e
r
t
u
r
b
B
L
H
(
<
H
,
x
>
)
=
<
H
,
y
>
Perturb_{BLH}(<H,x>)=<H,y>
PerturbBLH(<H,x>)=<H,y>,其中
∀ i ∈ [ g ] P r [ y = i ] = { p = e ε e ε + g − 1 , i f x = i , q = 1 e ε + g − 1 , i f x ≠ i . _{\forall i\in[g]}Pr[y=i]=\left\{ \begin{array}{cr} p=\frac{e^{\varepsilon}}{e^{\varepsilon}+g-1}, &if\ x=i, \\ q=\frac{1}{e^{\varepsilon}+g-1}, &if\ x\neq i. \end{array} \right. ∀i∈[g]Pr[y=i]={p=eε+g−1eε,q=eε+g−11,if x=i,if x=i. - Aggregation: 结合Encoding和Perturbing,可得
p ∗ = p , q ∗ = 1 g p + g − 1 g q = 1 g , p*=p,q*=\frac{1}{g}p+\frac{g-1}{g}q=\frac{1}{g}, p∗=p,q∗=g1p+gg−1q=g1,
因此,方差为
V a r [ c ~ L P ( i ) ] = n ⋅ ( e ε + g − 1 ) 2 ( e ε − 1 ) 2 ( g − 1 ) , Var[\tilde{c}_{LP}(i)]=n\cdot\frac{(e^{\varepsilon}+g-1)^2}{(e^{\varepsilon}-1)^2(g-1)}, Var[c~LP(i)]=n⋅(eε−1)2(g−1)(eε+g−1)2,
方差对 g g g求偏导等于 0 0 0,可得 g = e ε + 1 g=e^{\varepsilon}+1 g=eε+1,此时 p ∗ = e ε e ε + g − 1 = 1 2 , q ∗ = 1 g = 1 e ε + 1 p*=\frac{e^{\varepsilon}}{e^{\varepsilon}+g-1}=\frac{1}{2},q*=\frac{1}{g}=\frac{1}{e^{\varepsilon}+1} p∗=eε+g−1eε=21,q∗=g1=eε+11,所以
方差为
V a r [ c ~ O L H ( i ) ] = n ⋅ 4 e ε ( e ε − 1 ) 2 , Var[\tilde{c}_{OLH}(i)]=n\cdot\frac{4e^{\varepsilon}}{(e^{\varepsilon}-1)^2}, Var[c~OLH(i)]=n⋅(eε−1)24eε,
可以发现OUE和OLH的方差是一样的!非常神奇。
写这篇时,部分参考6。第一次写论文相关的,内容比较多、杂,如果大家有什么不懂的,可以随时私信哦。