该论文是一个综述类(survey)文章,主要介绍了一个 公共框架——将各种不同的LDP协议放入其中,并通过实验分析了不同实现选择之间的权衡。
该文主要对LDP一些常用的组件进行了介绍,并对他们的效用进行实验证明。
参考文献: (1) Cormode, G.; Maddock, S.; Maple, C. Frequency Estimation under Local Differential Privacy [Experiments, Analysis and Benchmarks]. arXiv preprint arXiv:2103.16640 2021.
.
一个满足差分隐私定义要求的随机机制,要求输入值们的输出具有相似的分布
满足本地差分隐私的一个额外要求就是这必须适用于每个数据的输出分布,而不仅仅是一个中心化程序的整体输出分布
Local Differential Privacy 定义
一个满足 ε-local differential privacy (ε-LDP) (ε ≥ 0)的算法M,当且仅当对于任意输入 x1 and x2,我们有:
∀
y
∈
R
a
n
g
e
(
M
)
:
P
r
[
M
(
x
1
)
=
y
]
≤
e
ε
P
r
[
M
(
x
2
)
=
y
]
\forall y \in Range(M) : Pr[M(x_1) = y] ≤ e^{\varepsilon}Pr[M(x_2) = y]
∀y∈Range(M):Pr[M(x1)=y]≤eεPr[M(x2)=y]
其中 Range(M) 表示算法M的所有可能输出的集合
定义
有 n 个用户。 每个用户 j 有一个值 vj 。 我们使用 d 表示用户拥有的值域的大小,使用 [d] 表示 set {1,2, . . . ,d}。 即输入域是*[d]*。
频率估计:计算对于给定的 值 i ∈ [d],有多少用户拥有 值 i.
The Heavy Hitters 频繁项是指频率特别大的数据项x
部分的隐私机制依赖于哈达玛变换,这是离散傅里叶变换的一个特殊实例
ϕ 是 一 个 由 d × d 描 述 的 正 交 变 换 \phi 是一个由d\times d描述的正交变换 ϕ是一个由d×d描述的正交变换
ϕ i , j = d − 1 / 2 ( − 1 ) < i , j > , 其 中 d 是 2 的 幂 , < i , j > 计 算 i 和 j 的 二 进 制 表 示 中 的 索 引 数 \phi_{i,j}=d^{-1/2}(-1)^{<i,j>},\ \ \ 其中d是2的幂,<i,j>计算i和j的二进制表示中的索引数 ϕi,j=d−1/2(−1)<i,j>, 其中d是2的幂,<i,j>计算i和j的二进制表示中的索引数
举例
有 一 个 d 维 向 量 x , 他 的 哈 达 玛 变 换 是 Θ = ϕ x T 的 系 数 有一个d维向量x,他的哈达玛变换是\Theta=\phi x^T的系数 有一个d维向量x,他的哈达玛变换是Θ=ϕxT的系数
本节内容主要介绍LDP Protocols,详见上篇Locally Differentially Private Protocols for Frequency Estimation
在这篇论文中还补充了基于Local Hashing的FLH 和 基于Hadmard Encoding的HM、HR
从输入值得哈达玛变换中采样从一个(多个)系数,并对结果应用直接编码
编码
$Encode(v)=<r, x_r{(v)}>, x_r{(v)}=\phi_{v,r}=(-1)^{<v,r>},\ \ 随机采样r\in[d] $
x = { − 1 , + 1 } \mathcal{x}=\{-1,+1\} x={−1,+1}
扰动
P
e
r
t
u
r
b
e
<
<
r
,
x
r
(
v
)
>
>
=
<
r
,
y
r
(
v
)
>
Perturbe<<r,x_r^{(v)}>>=<r,y_r^{(v)}>
Perturbe<<r,xr(v)>>=<r,yr(v)>
KaTeX parse error: Expected 'EOF', got '&' at position 10: Pr[y=1]=&̲ \left\{ …
聚合
HM的一个优点:处理用户输出值y很快,因为哈达玛变化可以直接应用于聚合结果
可以将HM看作BLH,则可知方差为 ( e ε + 1 ) 2 ( e ε − 1 ) 2 \frac{(e^\varepsilon+1)^2}{(e^\varepsilon-1)^2} (eε−1)2(eε+1)2
从哈达玛变换中取样t个系数,类似于Local Hashing中生成 g=2t维输出结果
则 p ∗ = e ε e ε + 2 t − 1 , q ∗ = 1 e ε + 2 t − 1 p^*= \frac{e^\varepsilon}{e^\varepsilon+2^t-1},\ q^*=\frac{1}{e^\varepsilon+2^t-1} p∗=eε+2t−1eε, q∗=eε+2t−11
则 V a r = Var= Var=
通过使用 k个hash函数,映射 [ d ] → [ m ] [d]\to[m] [d]→[m]
输入域为*[d]的数组,经Basic Rappor 编码得d-位二元向量*,经Rappor编码得k-位二元向量
x
[
i
]
=
1
,
i
f
∃
H
∈
H
⃗
,
H
(
v
)
=
i
x
[
i
]
=
0
,
o
t
h
e
r
w
i
s
e
x[i]=1,\ \ \ if\ \exists H\in\vec{H},\ H(v)=i\\ x[i]=0, \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ otherwise
x[i]=1, if ∃H∈H
, H(v)=ix[i]=0, otherwise
对于在一个群体中频繁出现的长字符串long strings,其每个子字符串substring也会(至少一样)频繁出现
找到所有频繁出现的substrings,并把他们连接在一起,这会导致误报的风险。
举例
两个字符串"apples",“orange"的频率相同,则"app”,“les”,“ora”,"nge"的频率相同
但在重构时会出现不频繁的字符串如,“ngeapp”,“orales”
让每个用户提供在long string中共同出现的但不相交的substrings
两种实现方法
substring的长度
substring太短,重组字符串组合工作太多
Apple的实现:在罗马字母表上使用长度为2-3个字符的子字符串
hash function的大小
哈希函数需要足够大,以避免频繁字符串之间的碰撞,但太大了会使需要连接的消息变大
Apple的实现:使用8-bit哈希
每个用户如何选择要报告的substring
将每个用户字符串填充到相同的长度,并对单个索引进行采样
Apple的实现:strings:10字符长; 在奇数的位置对5个2bit-substring进行采样
相同隐私预算的条件下,每个用户报告一个substring,要比报告多个substring,准确率更高
为避免误报,我们可以在整个string上,维护一个 frequency oracle
主要区别在于报告信息的方式不同
后处理机制可以针对 频率估计和频繁项协议的输出值进行处理 以提升最终的准确率
固定d=1024,n=100,000,、SUE、OUE优于DE
d很小时,DE要优于SUE、OUE
DE通信成本低,SUE、OUE通信成本高
**在FLH中,**固定d,k’增大,误差方差减小,误差方差逐渐接近OLH;当k’=10000时,FLH和OLH的MSE基本相同,但FLH的聚合速度要比OLH快6x倍
在BLH中,随着ε的变化,BLH的MSE基本保持一致,这是可能是由于使用二进制hash函数导致丢失了大量的信息,使得BLH对较低的ε有一定的鲁棒性
在OLH中,有着最低的MSE、
在所需总时间上,FLH的相对较小的k’使得所用时间少于OLH和BLH;另,较小的k’减少了服务器聚合的时间,但对客户端扰动和服务器端估计所需的时间相同
Base-Pos 在MSE和k-MSE上都比Base有更好的表现
Norm-Sub 和 Base-Cut在MSE和k-MSE之间达到了一个平衡
Norm-Sub在MSE/Top-k MSE的权衡上有最好的表现
对于较小输入值域[d](百千量级),基于本地哈希的方法最为有效;FLH比OLH要快几倍,而不会有太大的准确性损失
对于较大输入值域[d],基于Hadamard的方法,特别是HR几乎同样准确,而且可以快几个量级
对于较大输入值域[d],基于Count-min sketch的方法比Count sketch要略好一些;
后处理可以减少误差,最简单的方法是将负值舍入到零,同时在可行的情况下添加一个小的归一化常数。
将所有这些结合起来解决频繁项估计,sketching和Local hashing的结合似乎是最好,尽管其他类似的参数设置也是如此。分层编码,特别是前缀编码方法(PEM)显然主导了其他选择。