想象一下,我正在进行一项正在进行的民意调查,从动物列表[cat, dog, penguin, chimpanzee, ...]等中询问人们最喜欢的动物。
我想提供一个界面,让人们可以查询此民意调查数据,以查看不同人口统计数据中每种动物的相对受欢迎程度。例如,查询普通人群可能会发现多数受访者 (36%) 更喜欢企鹅,但查询 18-25 岁年龄段的受访者可能会发现该群体中的多数受访者 (41%) 更喜欢猫。
尽可能保护受访者动物偏好的隐私是可取的。但是,攻击者可能能够使用给定受访者的先验知识,通过询问足够具体的一系列查询来推断他们的响应。
我希望通过对呈现给查询数据的人的数据进行噪声处理来限制攻击者执行此操作的能力。因此,我想要一个程序,它可以从每个类别中伪随机地添加或删除一个百分点的一小部分,但保留它们的相对顺序。我还希望这个过程对同一组数据具有确定性(尽管这可以通过在伪随机过程中使用固定种子轻松实现)。
形式上,我想要
在哪里是每个类别的比例向量。
一种天真的方法是简单地将伪随机高斯噪声向量添加到原始向量,然后重新归一化。这至少会带来两个问题:
1)“零问题”:如果一个队列有零个喜欢猫的人,噪声处理程序应该如何处理?我倾向于说它应该将值保持在零,但我想不出一种有原则的方法来实现这一点
2) 理想情况下,对于向量中的所有元素,噪声的方差应该是相同的,但是任何明显的强制正数过程通常都会导致较小值的噪声方差较小,因此噪声最终会使较大的值变大并且重整化后较小的值。
我觉得这应该是人们以前遇到过的问题,但我在文献中找不到。