满足Local Differential Privacy(LDP)的五种编码的介绍


Local Differential Privacy(LDP)可以在收集用户的敏感数据时,保护用户的隐私信息。神奇的LDP,定义是任意两个输入 v 1 , v 2 v_1,v_2 输出同一个值 y y 的概率的比值在 e ε e^\varepsilon 界里 :

如果一个算法 A A 满足 ε \varepsilon -local differential privacy( ε \varepsilon -LDP),其中 ε 0 \varepsilon\geq0 ,当且仅当对于任意的输入 v 1 , v 2 v_1,v_2 ,有
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],
其中 R a n g e ( A ) Range(A) 表示算法 A A 的所有可能输出的值。

LDP的基本应用是频度估计(即,从n个数据里,统计每个值的出现次数),它可以归结为下面的3个步骤:

  1. Encode即编码,由每个用户执行:
    – 输入一个值 v v ;输出一个编码后的值 x x ,即 x = E n c o d e ( v ) x=Encode(v)
  2. Perturb即扰动,由每个用户执行:
    – 输入一个编码后的值 x x ,输出扰动后的值 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 = P E ( v ) y=PE(v)
  3. Aggregate即收集,由收集者(Aggregator)执行:
    – 将所有用户扰动后的值 y y 收集,输出处理后的信息,如频度估计。
    在这里插入图片描述
    本文将介绍17-USENIX-Locally Differentially private Protocols for Frequency Estimation1中所描述的满足LDP的五种编码方法,对它们的比较主要是两个指标:
  4. 隐私保护程度 ε \varepsilon
  5. 频度估计(frequency estimation)的方差 V a r ( c ~ ( i ) ) Var(\tilde{c}(i))

1. Basic RAPPOR 简化版

规定输入 v v 的值是有限的,为 d d 个。不失一般性,我们 v v 1 1 d d 的整数,即 v [ 1 , d ] , v N v\in[1, d],v\in N

  1. Encoding: 将输入的整数转化成长度为 d d 的01串,对应位取 1 1 ,其余位取 0 0 ,即 E n c o d e ( v ) = B 0 Encode(v)=B_0 ,其中 B 0 B_0 是长度为 d d 的01串,并保证 B 0 [ v ] = 1 , B 0 [ i ] = 0 , i v B_0[v]=1,B_0[i]=0, i\neq v 。如 d = 5 , v = 3 d=5, v=3 ,则 B 0 = 00100 B_0=00100 ;
  2. Perturbing: (Rapper是有两次扰动的,此处简化仅考虑一次)01串 B 0 B_0 的每一位分别以 p p (一般来说, p 1 2 p\geq \frac{1}{2} )的概率保持,以 q = 1 p q=1-p 的概率反转,产生扰动后的01串 B 1 B_1 ,即:
    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.
  3. Aggregation: 收集者可以收集到所有用户(设有n个)扰动后的01串 B 1 B_1 ,按位估计出原始的个数。记第 i i 位为 1 1 的用户个数为 c ( i ) c(i) ,依此可以估计出扰动前 B 0 B_0 中第 i i 位为 1 1 的用户个数 c ~ ( i ) \tilde{c}(i) ,扰动前的第 i i 位为 1 1 的有 p p 的概率保持,为 0 0 的有 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 p 是事先约定的, n n 是收集者收集到的用户个数, c ( i ) c(i) 可以根据收集到的数据累加出来,因此可以比较方便地计算出 c ~ ( i ) \tilde{c}(i)

Privacy: 要达到 ε \varepsilon -LDP,可以取 ε = ln ( ( p 1 p ) 2 ) \varepsilon=\ln((\frac{p}{1-p})^2) ,证明见2014-Rappor2

2. Direct Encoding(DE)

依然规定输入 v v 的值是有限的,为 d d 个。

  1. Encoding: 正如其名,输入的整数编码成自身,即 E n c o d e ( v ) = v Encode(v)=v ;
  2. Perturbing: 依然概率 p p 表示 v v 扰动后得到自身 v v ,概率 q = 1 p d 1 q=\frac{1-p}{d-1} 表示其他值(剩下的 d 1 d-1 个值)扰动后得到 v v 。为了满足LDP的定义,有 p = e ε q p= e^{\varepsilon}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.
  3. Aggregation: 收集者可以收集到所有用户(设有n个)扰动后的值 v v' ,按值估计出每个值个数。类似地,记扰动后值为 i i 的用户个数为 c ( i ) c(i) ,依此可以估计出扰动前值为 i i 的用户个数 c ~ ( i ) \tilde{c}(i) ,扰动前的值为 i i 的有 p p 的概率保持,非 i i 的有 q = 1 p d 1 q=\frac{1-p}{d-1} 的概率反转:
      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}
    以及方差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}.

3. Histogram Encoding(HE)

依然规定输入 v v 的值是有限的,为 d d 个。编码方式和Basic RAPPOR简化版类似,不过由整数变成了实数,扰动的时候加Laplace噪声。

  1. Encoding: *将输入的整数转化成长度为 d d 的01串,对应位取 1.0 1.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] ;
  2. Perturbing: P e r t u r b H E ( B ) Perturb_{HE}(B) 输出 B [ i ] = B [ i ] + L a p ( 2 ε ) B'[i]=B[i]+Lap(\frac{2}{\varepsilon}) ;
  3. 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] j j 表示第 j j 个用户。
因为 L a p ( 2 ϵ ) Lap(\frac{2}{\epsilon}) 是无偏的(均值为 0 0 ),所以这种方式也是无偏的;
对应的方差1
V a r [ c ~ S H E ( i ) ] = n 8 ε 2 . Var[\tilde{c}_{SHE}(i)]=n\frac{8}{\varepsilon^2}.

3.2 Thresholding with Histogram Encoding(THE)

Aggregate是设定阈值 θ \theta ,大于 θ \theta 统计为 1 1 ,小于等于 θ \theta 统计为 0 0 。其实也很容易理解,Encoding时在对应数位 B [ v ] B[v] 1.0 1.0 ,如果增加的扰动不是太大,一般会大于某个数(取为 θ \theta );同时 B [ i ] B[i] 0.0 0.0 ,如果增加的扰动不是太大,一般会小于某个数(取为 θ \theta )。
此时,可取 p = 1 F ( θ 1 ) , q = 1 F ( θ ) , p=1-F(\theta-1),q=1-F(\theta),
其中 F ( x ) F(x) 是Laplace分布的累积函数;
一般来说, θ [ 0 , 1 ] \theta\in[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},
可得方差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}.

θ ( 1 2 , 1 ) \theta\in(\frac{1}{2},1) 时,THE能取到最优值;因为SHE统计时 B [ i ] B'[i] 是在整个实数域上的,而THE中统计时 B [ i ] B'[i] 只有 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)] 总是成立。

4. Unary Encoding(UE)

和Basic RAPPOR简化版非常相似,Encoding相同,Perturbing(扰动)的时候,概率 p p 表示数位不变,概率 q q 表示数位反转,仍有 p > q p>q ;这里和Basic RAPPOR简化版不同的地方是 p + q p+q 可以不为 1 1
为了保持 ε \varepsilon -LDP,仅需考虑 v 1 , v 2 v_1,v_2 对应的数位(其他的都相同),最坏情况下, v 1 v1 不变, v 2 v2 反转,可得 ε = l n ( p ( 1 q ) ( 1 p ) q ) \varepsilon=ln(\frac{p(1-q)}{(1-p)q}) ,具体证明可看这里1

  1. Encoding: 将输入的整数转化成长度为 d d 的01串,对应位取 1 1 ,其余位取 0 0 ,即 E n c o d e ( v ) = [ 0 , . . . , 0 , 1 , 0 , . . . , 0 ] Encode(v)=[0,...,0,1,0,...,0] ;
  2. Perturbing: 01串 B 0 B_0 的每一位分别以 p p 的概率保持,以 q q ( p + q 1 p+q\neq 1 )的概率反转,产生扰动后的01串 B 1 B_1 ,即:
    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.
  3. 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}.

4.1 Symmetric Unary Encoding(SUE)

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},
方差为
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}.

4.2 Optimized Unary Encoding(OUE)

由UE的方差,对 q q 求偏导等于 0 0 ,可得
p = 1 2 , q = 1 e ε / 2 + 1 , p=\frac{1}{2},q=\frac{1}{e^{\varepsilon/2}+1},
论文中对 p , q p,q 取值的含义介绍的很不错, p p 只要对总共只有一个的 1 1 扰动,而 q q 要对有 d 1 d-1 个的 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}.

5. Local Hashing(LH)

需要先了解一下universal hashing,可以参考我写的博客。其他参考资料有Sarah Adel Bargal的介绍3,用数学的角度来介绍,非常简洁也很清楚;另外wikipedia的universal hashing4,用历史的角度来介绍。

universal hashing的基本思想5:一个hash函数 y = h ( x ) y=h(x) 总是能够针对性地造一组样例,使得hash映射的结果很差很差;一种解决办法(universal hashing)是,我们用一组hash函数(a family of hash functions),每次从中随机选择一个函数作一次映射,平均意义下任意两个不同的输入 x 1 , x 2 x_1,x_2 的hash函数相同的概率不超过 1 g \frac{1}{g} g g 是hash table的大小。

Binary Local Hashing(BLH)

如果我们选择值域 g = 2 g=2 ,输出为 0 , 1 0,1 两种(Binary)。

  1. Encoding: 随机均匀地从 H \mathbb{H} (universal hash function family)选择一个hash函数 H H ,映射输入 v v ,输出hash函数和结果,得 E n c o d e B L H ( v ) = < H , b = H ( v ) > Encode_{BLH}(v)=<H,b=H(v)> ;
  2. Perturbing: 仅对结果 b b 扰动, P e r t u r b B L H ( < H , b > ) = < H , b > Perturb_{BLH}(<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.
  3. Aggregation: 结合Encoding和Perturbing,可得
    p = p , q = 1 2 , p*=p,q*=\frac{1}{2},
    因此,方差为
    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}.

Optimized Local Hashing(OLH)

考虑到值域 g = 2 g=2 ,很容易丢失信息,因此会选择 g 2 g\geq 2 ,同时 g g 如果太大的话,也会丢失掉信息。先假设值域为 g g ,则

  1. Encoding: 随机均匀地从 H \mathbb{H} 选择一个hash函数 H H ,映射输入 v v ,输出hash函数和结果,得 E n c o d e B L H ( v ) = < H , x = H ( v ) > Encode_{BLH}(v)=<H,x=H(v)> ;
  2. Perturbing: 仅对结果 b b 扰动, P e r t u r b B L H ( < H , x > ) = < H , y > Perturb_{BLH}(<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.
  3. 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},
    因此,方差为
    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)},
    方差对 g g 求偏导等于 0 0 ,可得 g = e ε + 1 g=e^{\varepsilon}+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} ,所以
    方差为
    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},
    可以发现OUE和OLH的方差是一样的!非常神奇。

写这篇时,部分参考6。第一次写论文相关的,内容比较多、杂,如果大家有什么不懂的,可以随时私信哦。


  1. https://www.usenix.org/system/files/conference/usenixsecurity17/sec17-wang-tianhao.pdf ↩︎ ↩︎ ↩︎ ↩︎ ↩︎

  2. https://arxiv.org/abs/1407.6981 ↩︎

  3. https://download.csdn.net/download/MustImproved/12275636 ↩︎

  4. universal hashing ↩︎

  5. https://blog.csdn.net/MustImproved/article/details/105226276 ↩︎

  6. https://zhuanlan.zhihu.com/p/75666425 ↩︎

发布了79 篇原创文章 · 获赞 79 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/MustImproved/article/details/105100587