输入集合D,|D|=d,输出集合Y
Direct Encoding
直接编码(也称为随机响应)的想法是将输出范围设置为与输入相同,即Y=D,并有一定的概率提供“虚假”响应,同时最大限度地提高给出“真实”响应的可能性。
我们将回答真实值 x 的概率设置为 p,否则我们随机选取值域内任意一个不是x的值进行回答。这样的话,我们的回答不是x的概率为1-p,我们的回答是某个特定i ≠ x的概率为(1-p)/(d-1),设这个概率为q。
这样我们有如下两个式子
1、
2、
3、LDP要求p/q ≤ eε
联立求解一下,可得
形式化定义如下:
p* = p , q* = q
Local Hashing
随着d变大,DE 对 d 的依赖性是不可接受的,随后的方法消除了这种依赖性。local hashing方法让每个用户选择一个散列函数来对他们的输入进行编码,然后将散列函数与通过直接编码 [15] 编码的散列输入一起发回。在这里,哈希的域被选择为 g,它是 ε 的函数,通常比 d 小得多。也就是说,用户 i 选择一个(通用)哈希函数 ℎi 映射 [d] → [g]。接下来,用户对散列值 ℎi (xi) 应用直接编码,并将此输出与 ℎi 的描述一起发送。