Answering Multi-Dimensional Range Queries under Local Differential Privacy
摘要
在 LDP
的保证下回答多维范围查询主要会遇到以下三个关键技术挑战:
(1)捕获属性之间的关联;
(2)处理维度多的范围查询;
(3)处理取值范围大的属性;
为了解决以上三个挑战,该文献首先提出了 TDG
算法(只采用二维网格)。然而这种算法丢失了单个属性的分布信息,因此为了解决该问题,进一步提出了 HDG
算法(一维网格与二维网格相结合),且大量的实验表明 HDG
算法的性能较于现有的算法有了较大的提升。
1. 介绍
多维范围查询
:获取同时满足多个属性的限制条件的用户频率;
现有的解决范围查询的算法大部分受限于对单个属性的一维查询,并且不能很好地拓展到处理高维范围查询。该文献首先提出了 TDG
算法,其主要思想为将所有可能出现的属性对构成的二维域划分为可以回答所有二维查询的二维网格,然后根据这些相关的二维查询去回答更高维度的范围查询。然后提出了一个升级版的方法 HDG
算法,其主要思想为组合混合维度(一维网格和二维网格)的信息去进行更好的估计。在这两个算法中,用户都被分成组,每个组向一个网格报告其信息。在满足 LDP
的前提下将每个网格的频率都收集完后,融合中心使用技术实现网格的非负性和一致性,并且最终采用这些网格去回答范围查询。
总的来说,该文献的贡献如下:
(1)提出了 TDG
算法和 HDG
算法用于在 LDP
环境下回答多维范围查询,并且提供了基于不同来源的误差分析去选择网格粒度的基本准则;
(2)开展了大量的实验通过比较不同的算法去评估算法的性能,实验结果表明 HDG
算法比现有的算法高出一个数量级。
2. 初步 —— 用户划分原则
用户分组在现有的 LDP
算法很常见。也就是说,当需要多个信息时,首先需要将所有用户进行分组,然后再从每个用户组中收集信息来获得最佳结果。
3. 多维范围查询和基线算法
3.1 多维范围查询
假设有 d 个有序属性 {a1, a2, … , ad},不失一般性,假设每个属性有相同的取值范围 [c] = {1, 2, … , c},其中 c 是 2 的指数幂。用户总数量用 n 表示,第 i 个用户的隐私值是一个 d 维向量 vi = <v1i, v2i, … , vdi, >。正式地,一个 λ 维范围查询 q 定义如下图所示:

λ 维查询
定义 Aq 代表范围查询 q 所涉及到的所有属性,那么 q 的真实结果如下图所示:

范围查询真实结果
3.2 基线算法
3.2.1 边缘列联表发布算法
3.2.1.1 全列联表法(Full Contingency Table Method,FC)
算法思想
:根据所有用户在通过 LDP
扰动后上传的数据构建一个全列联表 F,然后再通过 F 构建所有的边缘列联表;
算法缺点
:时间复杂度和空间复杂度都随着属性数量 d 的增加而指数级增加,当 d 很大时,实际的时空开销是不可接受的。一般来说,假设 Var0 表示全列联表中每个单元的方差,那么计算 k-路边缘列联表
的方差如下图所示:

k - 路边缘列联表的方差
3.2.1.2 全边缘列联表法(All Marginal Method,AM)
算法思想
:因为 FC
算法构建的 k-路边缘列联表
的方差与属性数量 d 呈指数级增长,因此考虑使用融合中心直接构建所有的 k-路边缘列联表
;
实现途径
:第一种途径是用户将其隐私预算分成 Ckd 份,然后上传 Ckd 次数据,即每次上传一个 k-路边缘列联表
;第二种途径是将所有用户划分成 Ckd 个不同的用户组,每个用户只需上传一个 k-路边缘列联表
(一般来说,LDP
场景下划分用户比划分隐私预算能获得更好的精度,因为划分隐私意味着每个 k-路边缘列联表
的隐私预算更小,那么就会被注入更大的噪声)。其中,因为将用户划分为 Ckd 个组会给构建 k-路边缘列联表
带来 Ckd 倍的影响,所以第二种算法的方差为:

k - 路边缘列联表的方差
算法不足
:当 k 很大时,AM
算法的精度会受到很大的影响;该算法的另外一个局限性在于 k 需要事先指定,且当融合中心完成所有 k-路边缘列联表
的构建时,无法再获取 t-路边缘列联表
(t>k)。
3.2.1.3CALM
算法思想
:收集低纬度的边缘列联表并据此构建一个高维列联表;
算法评价
:CALM 算法捕获了必要的属性之间的联系且解决了多维范围查询问题,但是没能处理取值范围大的属性。因为当属性的取值范围很大时,会在查询结果中引入大量的噪声。
3.2.2HIO
算法不足
:HIO 算法捕获了所有属性之间的联系,但是其他两个问题没有解决。因为 HIO 算法需要将用户分成 (h+1)d 组,其中 h=logbc,而当属性数量 d 和属性取值范围 c 很大时,每个用户组的用户数量会很少,这样就会引入大量的噪声并进一步导致更大的误差。
3.2.2LHIO(待续)
3.2.3MSW(待续)
4. 网格方法
4.1 概述
为了同时解决前文提到的三个挑战,该文献首先提出了二维网格算法 TDG
,其主要思想为将所有属性对的二维取值范围划分成可以回答所有二维范围查询的二维网格,并结合相关的二维网格去回答高维的范围查询;但是由于只采用了二维网格,当采用 TDG
算法去进行一维范围查询时就需要借助均匀分布假设,而这就会引入大量的误差,为了解决这一问题,进一步提出了混合维度网格算法 HDG
,其在二维网格的基础上进一步引入了一维网格,然后结合一维网格和二维网格一起去回答范围查询。
TDG
和 HDG
算法由来:一般来说,如果为了捕获属性之间的关联,那么当维度过大时范围查询将难以解决;如果只关注单个属性,那么就无法捕获属性之间的关联。受到 CALM
算法的启发,TDG
和 HDG
算法都采用二维网格去权衡以上两点。
TDG
和 HDG
算法均由以下三步组成:
1 | 1.构建网格 |
4.2 网格后处理
4.2.1 非负性
这一步采用 Norm-Sub
方法,其可以使得所有估计值非负,并且所有估计值的总和为 1;
1 | Norm-Sub: |
4.2.2 一致性
对于某个属性 a,其总共与 d 个网格相关(1 一个一维网格和 d-1 个二维网格),假设这些网格为 {G1, G2, … , Gd},对于整数 j ∈ [1, g2],定义 PGi(a, j) 为第 Gi 个网格中第 j 个单元的频率总和。为了实现 PGi(a, j) 的一致性,需要如下图所示计算加权平均,其中 θi 为 PGi(a, j) 的权重:

加权平均计算
依据其他文献,得知当 θi 进行如下设置时,可以得到最优加权平均为:

权重设置

最优加权平均
得到 P(a, j) 之后需要让每个 PGi(a, j) 都相等,可以通过以下方式实现: 对于 Si 中的每个单元,通过下图所示的添加变化量来更新其频率:

变化量
ps:可以发现一致性步骤可能会引入负值,反之亦然。因此在整个网格后处理过程中,需要多次交换执行这两个步骤,而因为响应矩阵的每个元素必须非负,因此以非负性步骤结束网格的后处理。尽管最后一步可能会再次引入不一致性,但其往往很小。
4.3 建立响应矩阵
每一个属性对都对应一个大小为 [c]x[c] 的响应矩阵,其中矩阵中的每个元素代表对应二维值在该二维域中的频率,响应矩阵的建立如下图所示:

建立响应矩阵
1 | 算法描述: |
4.4λ 维范围查询
为了估计 λ 维范围查询 Q 的结果,融合中心首先将 Q 分成(λ,2)个相关的二维查询,并获取所有二位查询的结果,最后融合中心使用这些二位查询结果去估计 f (Q),下图给出了 λ 维范围查询结果的估计算法:

λ 维范围查询
4.5 隐私和效用分析
4.5.1 隐私保证
TDG 和 HDG 算法都满足 LDP,因为用户通过 OLH 算法上传其数据至融合中心,且没有泄露其他信息。
4.5.2 误差分析
噪声和采样误差
:
一方面,为了满足 LDP 隐私保证,需要对每一个单元注入一定的噪声,这便引入了噪声误差
。而因为对每个单元的噪声注入都是唯一的,因此这些噪声就相当于一些独立随机变量,那么这些噪声总和的方差等于所有噪声方差的总和,所以单元分的越精细,注入噪声的方差就会越大;另一方面,需要使用某个用户组中单元的频率去代表整个人口的频率,但可能当前选择的用户组与全局的的分布不同,这就会引入采样误差
;
不均匀误差
:
不均匀误差
是由与查询矩形相交但不完全包含在其中的单元引起的。 对于这些单元一般需要假设数据点是均匀分布的,而这会在数据点不均匀分布时导致非均匀误差。 通常,任何相交单元格中此误差的大小取决于该单元格中数据点的数量,并受其限制。 因此,分区粒度越细,不均匀误差
越小。 计算精确的非均匀性误差需要真实数据分布的可用性,这在我们的设置中并非如此。 因此选择计算近似的不均匀误差
;
估计误差
:
由于估计误差
取决于数据集,因此没有用于估计它的公式。 一般来说,二维范围查询的更准确的答案可以导致更小的估计误差
。 但是,其大小取决于数据集的特点会引入不确定性,这意味着在少数情况下可能会出现相反的结果。
4.6 选择粒度
基本准则
:
为了最小化误差,一维网格的粒度如下图所示:

一维网格粒度
二维网格的粒度如下图所示:

二维网格粒度
其中 ni 是 i 维网格的用户数,mi 是 i 维网格的用户组数,α1、α2 为依赖数据集的常数。
对于g1的分析
:
对于一维查询,当粒度为 g1 时,平均情况下大概有 g1/2 个单元被包含在查询中,那么噪声和采样误差
为:

噪声和采样误差
不均匀误差
与与查询区间两侧相交的单元中值的频率之和成正比。 假设对于某个常数 α1,不均匀误差
为 α1/g1,那么它的平方误差为 (α1/g1)2;
综上,为了最小化误差总和和,因此 g1 根据如下表达式进行设置:

一维网格粒度
对于g2的分析
:
从一维拓展到二维,当二维粒度为 g2 时,平均情况下大概有 (g2/2)2 个单元被包含在查询中,那么噪声和采样误差
为:

噪声和采样误差
不均匀误差
与落在查询矩形四个边缘上的单元中值的频率之和成正比。查询矩形的边包含 4 x (g2/2) = 2g2 个单元; 并且这些单元中包含的值的预期频率总和为 2g2 x (1/(g2 x g2)) = 2 / g2。 与一维网格设置类似,假设平均情况下不均匀误差
是其中的一部分。 那么对于某个常数 α2,不均匀的平方误差为 (2α2 / g2)2;
综上,为了最小化误差总和和,因此 g2 根据如下表达式进行设置:

一维网格粒度