【后续】Analyzing Subgraph Statistics from Extended Local Views with Decentralized Differential Privacy
写在前面的话
之前的笔记写到多阶段框架就没写了,在组会前还有点时间把后面的内容完善一下。
这个多阶段框架的关键如下:
我们提出的框架直接解决了局部灵敏度不能满足差异隐私的根本问题:噪声尺度本身是私有信息。这个想法很简单:我们仍然将拉普拉斯噪声注入到每个节点的子图计数γд(vi)中注入拉普拉斯噪声,但噪声的尺度不是确定性的,它是一个从精心选择的分布中抽样的随机变量。有1−δ概率注隐藏任何边缘的存在。
二阶段框架
阶段1:用差分隐私先搜集一波数据,然后算出一个合适的噪声尺度
阶段2:用这个噪声尺度对用户的子图计数加噪,再搜集起来。这里至少有1−δ2的概率满足第二阶段的差分隐私。
看到这里我很好奇,阶段1搜集的数据确实破坏了差分隐私,因为用了局部敏感度,显然不可能。那么就是没有搜集用户数据,文中只是写用差分隐私搜集用户信息,并没有说是搜集用户的子图计数。具体搜集什么信息才能得到一个合适的噪声尺度呢?阶段2好理解,等于算出来最好的噪声尺度直接用就行,由于是宽松差分隐私会有概率失效。
下面是我的理解:
怎么说呢,感觉很迷,这个两阶段我怎么看都看不懂,就是因为阶段1是一个黑匣子,什么细节的都没有。相反多阶段我就看懂了。
多阶段框架
其实就是把二阶段框架中的阶段1分为两个子阶段。其中第一个子阶段还是说用了一个黑匣子DDP计算了一个噪声规模,也没说这个噪声规模怎么表示出来的。然后第二个子阶段用拉普拉斯,因为会有概率失败所以需要验证。子阶段1有失败概率的原因在于,噪声规模不足够大,满足不了阶段2的差分隐私。
具体来说就是子阶段1估计了子图计数的局部差分隐私的局部差分隐私。它的输出有一定概率是真实值的上。然后子阶段2使用这个估计的上界去输出一个估计的局部敏感度,这个估计的值作为局部敏感度上界的概率又是满足阶段2的。最后阶段2采用了估计的局部敏感度去对子图计数加噪。下面是我的理解:
在DDP下计算不同类型的子图
涉及到实现高结果精度所需的子图特定的优化。
三角模式计算
一刀切方法
这里又出现了关于上界问题,
一种计算任何值α的概率上界的方法,当给定一个注入拉普拉斯噪声的α的噪声版本时:
这里给出了一个小定理,简单来说就是加噪后再加一个噪声。就是前面提到的,合适的噪声尺度是满足阶段1的DDP,关于子图计数的局部敏感度为G中两个用户共享的最大公共邻居数。
怎么做呢,先从搜集数据开始。
先搜集每个节点关于自己局部视图中和其他节点共同的邻居数量。
注意,当不在当前局部视图的节点是和主节点没有共同邻居的。这个邻居数量会加噪传给数据收集者,这个噪声尺度是那个合适的噪声尺度。上式作为真实值一定概率的上界。
还会从这些噪声中取一个最大的作为局部敏感度的上界。这里的合适噪声尺度通过计算共同邻居的敏感度和DDP算出,去确保局部敏感度的上界是满足差分隐私的。这导致了在我们的解决方案的第二阶段的禁止噪声。
为了解决上面方法存在的问题,不能直接搜集共同邻居,因为这具有很高的敏感度。但是可以考虑每个节点的度,即节点的一跳邻居数量。理由是度比共同邻居大,由此找一个合适的度的上界变成我们的目标。从搜集共同邻居到搜集度,这里面都是设置一个上界给子图计数的局部敏感度,阶段1搜集的信息不是子图计数,而是与子图计数相关的信息。
这个替换的好处在于只用添加少量的噪音,还可以考虑把这两者结合起来。
将度和共同邻居结合起来的方式是,对于共同邻居的限制。找到最大的共同邻居最多的几个点,用其上界。因为共同邻居比度要小,所以要取最大的。
算法1显示了为框架的第一阶段提出的解决方案的伪代码。该算法包括两轮报告;所有节点都参与第一轮,只有选定的少数节点参与第二轮。具体来说,该算法从在行1-2中分割预算λd和δ‘开始。这将由服务器完成。在这里,我们将预算ϵ1分成两部分,以便进行两轮报告。我们还将概率δ划分为2h‘+2部分,其中h’是一个用户指定的数字,表示进行第二轮报告的最大客户端数量。h‘的比值对估计结果的精度略有影响,但对算法的正确性没有影响。在我们的实验中,我们发现h‘=100通常会得到良好的结果。
之后,服务器将这些参数发送给所有客户端,即社交网络中的节点。第4-5行由每个客户端执行,每个客户端计算实际度d(vi)的概率上界,并将其报告给服务器,即数据收集器。然后,在第6-11行中,服务器使用启发式方法来决定h≤h‘,即进行第二轮报告的客户端数量,并获得h节点的集合S。启发式式的直觉将很快得到解释。
在第12行中,服务器在第二次报告中再花费ϵ的一半。在得到λc后,如第14-16行所示,所有的S中的客户端计算c⊤(vi)作为其公共邻居计数的概率上界,然后在第15行得到它们的最终上界c(vi)并报告给服务器。最后,在第17-18行中,服务器计算每个客户端的最终上界,并选择最大上界。但是,具有最大c(vi)的客户端vi可能不在S中,因此,maxvi∈Sc(vi)无法覆盖灵敏度。在这种情况下,客户端隐藏在{v[h‘+2],…,v[n]},它必须由d⊤(v[h’+2])覆盖。这就是我们通过在第17行中得到最大值来推导出最终的λ的原因。最后,由于一个三角形的每次添加/删除总是由3个客户端观察到,所以我们将结果乘以3。