C/C++教程

Frequency Estimation & Heavy Hitter under Local Differential Privacy的一些重要组件

本文主要是介绍Frequency Estimation & Heavy Hitter under Local Differential Privacy的一些重要组件,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Frequency Estimation under Local Differential Privacy

该论文是一个综述类(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.
.

1. INTRODUCTION

LDP协议认为理解由四层组成
  1. “frequency oracle” : 允许在一个中等大小的离散的可能性集合上估计频率
  2. “sketch” :可以减少可能性域大小的草图
  3. **“heavy hitters” method:**可以在大域内寻找频繁项的方法
  4. Post-processing techniques: 对结果施加一些约束来提高准确率

2 PRELIMINARIES

2.1 Local Differential Privacy LDP

一个满足差分隐私定义要求的随机机制,要求输入值们的输出具有相似的分布

满足本地差分隐私的一个额外要求就是这必须适用于每个数据的输出分布,而不仅仅是一个中心化程序的整体输出分布

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的所有可能输出的集合

2.2 Frequency Estimation and Heavy Hitters

Frequency Estimation

定义

n 个用户。 每个用户 j 有一个值 vj 。 我们使用 d 表示用户拥有的值域的大小,使用 [d] 表示 set {1,2, . . . ,d}。 即输入域是*[d]*。

频率估计:计算对于给定的 值 i ∈ [d],有多少用户拥有 值 i.

Heavy Hitters

The Heavy Hitters 频繁项是指频率特别大的数据项x

  1. 可以是超过总权重或总平方的阈值
  2. 或是前k个大的频率项

2.3 Hadamard Transformation

部分的隐私机制依赖于哈达玛变换,这是离散傅里叶变换的一个特殊实例

ϕ 是 一 个 由 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的系数

3. FREQUENCY ORACLES

本节内容主要介绍LDP Protocols,详见上篇Locally Differentially Private Protocols for Frequency Estimation

在这篇论文中还补充了基于Local Hashing的FLH 和 基于Hadmard Encoding的HM、HR

3.1 Fast Local Hashiong (FLH)

  1. 不再是从Hash簇中随机选取,而是引入了一个新的参数k,来限制客户端从k哈希函数中随机选取
  2. 理论证明,即使k很小,FLH也可以表现得很好
  3. 该协议同OLH基本相同相同

3.2 Hadamard Encoding (HM、HR)

从输入值得哈达玛变换中采样从一个(多个)系数,并对结果应用直接编码

HM

  1. 编码

    $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}

  2. 扰动

    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\{ …

  3. 聚合

    HM的一个优点:处理用户输出值y很快,因为哈达玛变化可以直接应用于聚合结果

    • E [ y r ( v ) ] = e ε e ε + 1 ⋅ x r ( v ) + 1 e ε + 1 ⋅ − x r ( v ) = ( 2 p − 1 ) x r ( v ) E[y_r^{(v)}]= \frac{e^\varepsilon}{e^\varepsilon+1} · x_r^{(v)}+\frac{1}{e^\varepsilon+1}· -x_r^{(v)} = (2p-1)x_r^{(v)} E[yr(v)​]=eε+1eε​⋅xr(v)​+eε+11​⋅−xr(v)​=(2p−1)xr(v)​
    • 无偏估计-校正: c ( v ) = ∑ r ϕ v , r   ⋅   y r ( v ) / ( 2 p − 1 ) c(v)=\sum_r \phi_{v,r}\ ·\ y_r^{(v)}/(2p-1) c(v)=∑r​ϕv,r​ ⋅ yr(v)​/(2p−1)

    可以将HM看作BLH,则可知方差为 ( e ε + 1 ) 2 ( e ε − 1 ) 2 \frac{(e^\varepsilon+1)^2}{(e^\varepsilon-1)^2} (eε−1)2(eε+1)2​

HM的一种改进

从哈达玛变换中取样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=image-20211026171258536

HR

image-20211026171436894

4. DOMAIN SIZE REDUCTION——sketch

4.1 介绍

  1. sketch可以将数据从一个较大的域降维到一个较小的域,首先将每个用户的输入编码到sketch,再将 frequency oracle应用到每个sketch中
  2. 由于frequency oracle的依赖于用户输入值的稀疏性(通过独热码编码),因此要求sketch仍然保持稀疏性
  3. 每个sketch都被定义为一个r行c列的数组,并有一些hash函数可以映射数据项到数组

4.2 Bloom Filter (BF)

通过使用 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

  • 一个输入值xi最多有k个值为1

4.3 Count-Min Sketches (CMW)

  1. 类似Bloom Filter,不过在Count-Min Sketches中hash函数 h l h_l hl​映射到 r × c r \times c r×c的数组中的第 l l l行
  2. 所以Count-Min Sketch可以被视为r个独热码
  3. 更小c和r可以减少存储和分析sketches的成本,但更大的c可以提升准确率

4.4 Count Sketches (CS)

  1. CS在CM的基础上增加了一个扰动:一个hash 函数 gl决定是用+1还是-1来表示x
  2. 用户从[r]中随机取样l,并以gl(xi)为权重编码hl(xi)
  3. 最容易的实现方式:Hadamard 机制

5. HEAVY HITTER SEARCH

5.1 Sequence Fragment Puzzle (SFP)

核心思想

对于在一个群体中频繁出现的长字符串long strings,其每个子字符串substring也会(至少一样)频繁出现

直观方法

找到所有频繁出现的substrings,并把他们连接在一起,这会导致误报的风险。

举例

两个字符串"apples",“orange"的频率相同,则"app”,“les”,“ora”,"nge"的频率相同

但在重构时会出现不频繁的字符串如,“ngeapp”,“orales”

启发式方法

让每个用户提供在long string中共同出现的但不相交的substrings

两种实现方法

  1. 提供每个substring在其string中的索引
  2. 用其string的哈希标记每一个substring
参数选择
  1. substring的长度

    substring太短,重组字符串组合工作太多

    Apple的实现:在罗马字母表上使用长度为2-3个字符的子字符串

  2. hash function的大小

    哈希函数需要足够大,以避免频繁字符串之间的碰撞,但太大了会使需要连接的消息变大

    Apple的实现:使用8-bit哈希

  3. 每个用户如何选择要报告的substring

    将每个用户字符串填充到相同的长度,并对单个索引进行采样

    Apple的实现:strings:10字符长; 在奇数的位置对5个2bit-substring进行采样

    相同隐私预算的条件下,每个用户报告一个substring,要比报告多个substring,准确率更高

    为避免误报,我们可以在整个string上,维护一个 frequency oracle

5.2 Hierarchical Search (PEM, TH)

  1. 将输入视为字符串,如果有一个字符串是频繁项,那么字符串中的中每个前缀prefix在总体中的频率都至少是一样的
  2. 与SFP思想相反:如果前缀不是频繁项,则前缀的任何扩展都不能够是频繁项
实现步骤
  1. 列举所有的固定长度前缀
  2. 利用frequency oracle估计前缀的频率,产生了一个频繁项前缀的子集
  3. 对较长长度的前缀使用frequency oracle,估计所有可能的频繁项前缀的拓展的频率
  4. 重复执行3、4,知道达到前缀最大长度
具体实现方法

主要区别在于报告信息的方式不同

  1. PEM prefix extending method(PEM):以相同的概率报告每个前缀的长度
  2. TreeHistogram(TH):隐私预算被平均分配,完整字符串和统一选择的较短前缀被报告
  3. PrivTrie
参数选择
  1. 初始前缀长度,以及在每个阶段扩展前缀的长度
  2. 每个用户如何决定报告什么信息

6. POST-PROCESSING

后处理机制可以针对 频率估计和频繁项协议的输出值进行处理 以提升最终的准确率

  1. Base:不对频率估计做修改
  2. Base-Pos:将所有负频率估计调整为0
  3. Norm-Sub:将负值调整为0,正值进行加减δ操作,确保 ∑ v ∈ D > 0 ( f ~ ( v ) + δ ) = n \sum_{v\in D_{>0}}(\widetilde{f}(v)+\delta)=n ∑v∈D>0​​(f ​(v)+δ)=n
  4. Probability Simplex:将频率估计投影到probability simplex上,确保image-20211028142148637
  5. Base-Cut:将频率估计按递减次序排序,取前x个总频率和>n,前x个数值保持不变,剩下值置为0

7. FREQUENCY ESTIMATION EXPERIMENTS

7.1 Direct and Unary Encoding Methods

固定d=1024,n=100,000,、SUE、OUE优于DE

image-20211028205845918

d很小时,DE要优于SUE、OUE

image-20211028210116844

DE通信成本低,SUE、OUE通信成本高

image-20211028210824662

7.2 Local Hashing

**在FLH中,**固定d,k增大,误差方差减小,误差方差逐渐接近OLH;当k=10000时,FLH和OLH的MSE基本相同,但FLH的聚合速度要比OLH快6x倍

在BLH中,随着ε的变化,BLH的MSE基本保持一致,这是可能是由于使用二进制hash函数导致丢失了大量的信息,使得BLH对较低的ε有一定的鲁棒性

在OLH中,有着最低的MSE、

在所需总时间上,FLH的相对较小的k使得所用时间少于OLH和BLH;另,较小的k减少了服务器聚合的时间,但对客户端扰动和服务器端估计所需的时间相同

image-20211029154145305

7.3 Hadamard Methods

image-20211029155335745

7.6 Post-Processing Experiments

image-20211030162223236

Base-Pos 在MSE和k-MSE上都比Base有更好的表现

Norm-Sub 和 Base-Cut在MSE和k-MSE之间达到了一个平衡

  • 对于Norm-Sub:将负值调整为0,正值进行加减δ操作,确保 ∑ v ∈ D > 0 ( f ~ ( v ) + δ ) = n \sum_{v\in D_{>0}}(\widetilde{f}(v)+\delta)=n ∑v∈D>0​​(f ​(v)+δ)=n,有助于降低MSE的同时,仍然保持准确的频繁项估计数值,以确保Top-k MSE相对较低
  • 对于Base-Cut将频率估计按递减次序排序,取前x个总频率和>n,前x个数值保持不变,剩下值置为0,但是在这个过程中我们向下舍去了top-k的值,使得Top-k MSE膨胀
  • 对于Probability Simplex,将频率估计投影到probability simplex上,会降低估计值,这导致了MSE虽然较低,但Top-k MSE的值会很高

Norm-Sub在MSE/Top-k MSE的权衡上有最好的表现

9. CONCLUDING REMARKS

Frequency Oracle

对于较小输入值域[d](百千量级),基于本地哈希的方法最为有效;FLH比OLH要快几倍,而不会有太大的准确性损失

对于较大输入值域[d],基于Hadamard的方法,特别是HR几乎同样准确,而且可以快几个量级

Domain size reduction

对于较大输入值域[d],基于Count-min sketch的方法比Count sketch要略好一些;

Post-processing

后处理可以减少误差,最简单的方法是将负值舍入到零,同时在可行的情况下添加一个小的归一化常数。

Heavy hitter

将所有这些结合起来解决频繁项估计,sketching和Local hashing的结合似乎是最好,尽管其他类似的参数设置也是如此。分层编码,特别是前缀编码方法(PEM)显然主导了其他选择。

这篇关于Frequency Estimation & Heavy Hitter under Local Differential Privacy的一些重要组件的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!