用指数机制私有地选择事物

大多数差分隐私机制的目标是发布统计数据:给出一些关于人群信息的数字。但要构建更复杂的 DP 机制,我们有时需要一种不同的构建模块。本文中,我们不再给数字加噪声,而是以差分隐私的方式在多个选项中做出选择

一个简单的例子

假设我们要设计一项投票,选出 2020 年出版的最佳科幻书籍。首先收集那年出版的大量书籍列表,然后让人们选出自己喜欢的。每个人可以选任意多本,我们想找出得票最多的那本。如果有平局,随机选出获胜者。

怎么以保护隐私的方式发布结果?先看看投票情况:

[bar chart showing votes: Network Effect 50, Hench 49, The Hidden Girl 49, The Relentless Moon 47, Axiom's End 46, Riot Baby 46]

我们不能直接发布真实答案,那样就完全没有随机性了。否则我们会 100% 发布得票最多的书(这里是 Network Effect)。但想象一下,新增一个人,他只投了第二受欢迎的那本书之一:

[bar chart showing tie: Network Effect 50, The Hidden Girl 50]

这种情况下,我们希望以相等概率发布其中任一本。但这违反了差分隐私:50% 的时间我们会发布 The Hidden Girl,而没有这个新增用户就不可能发生!

要避免这种情况,需要在过程中加入更多随机性。具体怎么做?

其实我们已经知道怎么用差分隐私发布直方图:给每个统计数据加上适当校准的拉普拉斯噪声。那为什么不这么做呢?把整个直方图私有化后,就可以全部发布,找到噪声票数最高的那本书,宣布它为获胜者。

但这里有个问题。噪声必须按每个用户能贡献的统计数据数量来缩放。在我们的设定中,一个特别热情的用户可能给所有书都投票。如果候选列表有 10,000 本书,噪声尺度就得乘以 10,000。这实在太多了。而且感觉也不必要:我们不想发布整个直方图,只想选出一个获胜者。能不能利用这一点来注入更少的噪声?

先想想一个好的策略应该长什么样。假设我们用 \(\varepsilon=\ln(2)\)

[通过逐步推理得到指数机制的概率分布]

对于每本与真实获胜者相差 \(k\) 票的书,其被选中的概率应该是真实获胜者的 \(1/2^k\)

对任意 \(\varepsilon\),实现这一点很简单:选中书籍 \(i\)(有 \(k_i\) 票)的概率应与 \(\exp\left(\varepsilon \cdot k_i\right)\) 成正比。归一化后得到:

\[\mathbb{P}\left[\text{我们选择书籍 }i\right] = \frac{\exp\left(\varepsilon \cdot k_i\right)}{\sum_i \exp\left(\varepsilon \cdot k_i\right)}. \]

这个 DP 过程就叫指数机制

一个通用表述和一个简单优化

上面的例子很简单:每本书只跟它收到的票数挂钩。但指数机制更通用,可以在更复杂的场景中使用。假设我们有一个数据库 \(D\),要在许多项目 \(O_1\)\(O_2\) 等之间做选择。每个项目 \(O_i\) 有一个分数 \(s_i(D)\),取决于数据集。令 \(\Delta\) 为评分函数的灵敏度:当一个人被加入(或移出)\(D\) 时,\(s_i(D)\) 的最大变化量,对所有 \(i\) 取最大。那么指数机制 \(\mathcal{M}\) 定义为:

\[\mathbb{P}\left[\mathcal{M}(D) = O_i\right] = \frac{\exp\left(\varepsilon\cdot\frac{s_i(D)}{2\Delta}\right)}{\sum_i \exp\left(\varepsilon\cdot\frac{s_i(D)}{2\Delta}\right)}. \]

证明它满足 ε-DP 非常容易——原始论文中的证明只有 3 行!

在我们的例子中,\(O_i\) 是书籍,每本书的分数就是票数。增加或删除一个人最多改变分数 1,所以 \(\Delta=1\)

等等。结果不一样!通用公式里有个因子 \(2\),而投票例子里没有。

没错,因为我们的分数是单调的:增加一个用户,所有分数会变大;删除一个,都会变小。这是一个常见的特殊情况,此时可以去掉因子 \(2\)

\[\mathbb{P}\left[\mathcal{M}(D) = O_i\right] = \frac{\exp\left(\varepsilon\cdot\frac{s_i(D)}{\Delta}\right)}{\sum_i \exp\left(\varepsilon\cdot\frac{s_i(D)}{\Delta}\right)}. \]

更多结果?!

指数机制是差分隐私的核心构建模块之一。人们已经从很多不同角度研究过它,所以可说的东西很多。以下是一些✨精选事实✨:

  • 指数机制可以简单地实现:给每个分数加上来自 Gumbel 分布的噪声,然后选噪声分数最高的项目。
  • 它的隐私保证可以用有界范围的概念做更精细的分析。
  • 多次使用指数机制?别用常规组合定理!利用这个机制的特殊结构,可以得到更紧密的结果
  • 你可以用一种叫排列翻转的机制做得比指数机制更好。
  • 不过指数机制仍有一个优势:它也能在候选空间是连续的时候使用。
posted @ 2026-07-06 15:53  永是珞珈一恐龙  阅读(2)  评论(0)    收藏  举报