Rui C , Qian X , Yu Z , et al. Differentially Private High-Dimensional Data Publication via Sampling-Based Inference[C]// the 21th ACM SIGKDD International Conference. ACM, 2015.
思路是:利用高维数据属性间的依赖关系构建属性依赖图(a dependency graph)并转换为联合树,用联合树发掘低维属性构成的团和分割顶点的边缘分布,进而推理出来联合分布。
1.依赖图和联合树
●依赖图本质上是一个马尔可夫网络,节点表示数据集中的属性,边对应于属性之间的依赖关系。
●依赖图转换为联合树可以分为两步:①三角化:使任两个不连续的顶点之间都有一条边;②依据属性下标顺序进行顶点消除,得到联合树。
令Ci 为联合树上的一个clique,Sij = Ci ∩ Cj 是clique Ci和clique Cj之间的 separator。联合分布可以由下面的式子计算:
2.具体方法
具体方法分为四步:
①Build the dependency graph:在基于抽样的测试框架(a sampling-based testing framework)下学习成对属性的相关性,从该框架中生成依赖图。
●sampling-based testing framework利用DP的sampling性质(N. Li, W. H. Qardaji, and D. Su. On sampling,
anonymization, and difffferential privacy or, k-anonymization meets difffferentail privacy. In ASIACCS, 2012.):
存在的疑问:
1.只是抽取D中的一部分吗?如果只是一部分,怎么得到全部属性的依赖图?是不需要全部属性吗?那其他属性怎么办?
2.Lap(2△I/εa)的2怎么来的?看论文证明部分是:本质上输出为一个0-1向量 v,vi=0和vi=1的情况分别都有e^(εa/2),合起来就得到了 e ^εa。不知道其中缘由。
●求β(β=ns/|D|,其中ns为抽样大小):确定一个合适的ns即可就求出β。
●阈值θkl:
其中,σ是一个由表示所需的依赖性级别的φc值(Cramer’s V φc,例如,φc=0.2代表弱依赖性)控制的参数。
②Form attribute clusters:将JTree算法应用于依赖图,生成clique集,然后,把一些clique组合起来,得到一组属性簇。
③Generate noisy marginals:给定第②步得到的聚类,使用拉普拉斯机制生成它们相应的噪声边际表。
separator的噪声边缘不需要计算,可以从cliques中推导得出。需要注意的是:对于任何separator Sij=Ci∩Cj,要保证由Ci构造的Sij的噪声边缘与由Cj构造的噪声边缘相同,从而获得一致的推理。
④Produce a synthetic dataset:利用联合树和边际分布表,可以计算出联合分布。
首先从联合树中随机选择一个初始clique,并从其边缘分布中抽取里面的属性,不断地抽取与已经被完全抽取的clique相邻(若两个cliques共享一个separator,它们相邻)的clique中的属性。当所有属性都被抽取出来,终止这个过程。
疑问:如果前面生成依赖图的时候是抽样一部分属性,那么联合树应该也不会包含所有属性,如何抽取到所有属性呢?这个所有是针对联合树中的吗?那生成依赖图时没有没抽样的属性应该怎么办?