为什么需要差分隐私

如何在发布关于人们的数据的同时保护他们的隐私?这个问题并不新鲜。统计机构几十年来一直在努力解决这个问题。计算机科学家提出了一大堆有创意的概念来捕捉这个想法。然而,它们都不是非常令人满意:所有这些概念在某些情况下都被证明是有缺陷的。而且在不破坏数据实用性的情况下应用它们也很困难。

这一切在 2006 年发生了变化,当时四位研究人员引入了差分隐私。这个新概念采用了一种新颖的方法来定义隐私泄露,事实证明这种方法更加严谨和富有成果。那么,是什么让差分隐私如此特别?它是如何在学术界取得如此成功的?为什么政府和科技公司开始在其数据发布中采用它?

这篇介绍差分隐私的第一篇文章将尝试回答这个问题。首先,我们将描述这个成功概念背后的高层次直觉。然后,我们将解释为什么它如此成功:为什么它比之前所有的定义都要好得多?

差分隐私背后的核心思想

假设你有一个过程,它接受某个数据库作为输入,并返回某个输出。

这个过程可以是任何东西。例如,它可以是:

  • 计算某些统计信息的过程("告诉我有多少用户有红头发")
  • 去标识化策略("删除姓名和邮政编码的最后三位数字")
  • 机器学习训练过程("构建一个模型来预测哪些用户喜欢猫")
  • ……

要使一个过程具有差分隐私,你通常需要对其进行一些修改。通常,你会在某些地方添加一些随机性或噪声。你具体做什么,以及添加多少噪声,取决于你正在修改哪个过程。我将抽象掉那部分,只说你的过程现在正在做一些未指定的✨魔法✨。

现在,从你的数据库中移除某个人,并在其上运行你的新过程。如果新过程具有差分隐私,那么两个输出基本相同。无论你移除谁,以及你最初拥有什么数据库,这都必须成立。

"基本相同",我并不是说"看起来有点相似"。相反,记住你添加到过程中的魔法是随机化的。如果你多次运行新过程,你不会总是得到相同的输出。那么在这种情况下,"基本相同"是什么意思呢?它意味着你可以从两个数据库中获得完全相同的输出,且可能性相似。

这与隐私有什么关系呢?好吧,假设你是一个试图弄清楚你的目标是否在原始数据中的令人毛骨悚然的人。通过查看输出,你不能 100% 确定任何事情。当然,它可能来自包含你目标的数据库。但它也可能来自完全相同的数据库,只是没有你的目标。两个选项具有相似的概率,所以你说不出来。

你可能已经注意到,这个定义没有说明输出数据是什么样的。差分隐私不是输出数据的属性。它与 \(k\)-匿名(最早的数据隐私定义之一)非常不同。你不能查看输出数据并确定它是否满足差分隐私。相反,差分隐私是过程的属性:你必须知道数据是如何生成的,才能确定它是否具有差分隐私。

这就是高层次直觉的全部内容。它有点抽象,但并不复杂。那么,为什么会有这么多炒作呢?与较旧的、更直接的定义相比,它有什么如此出色的地方?

是什么让差分隐私特别

隐私专家,特别是学术界,对差分隐私充满热情。它最初由 Cynthia Dwork、Frank McSherry、Kobbi Nissim 和 Adam Smith 在 2006 年提出。很快,几乎所有从事匿名化工作的研究人员都开始构建差分隐私算法。科技公司和政府正在快速采用它。那么,为什么会有这么多炒作呢?我可以指出三个主要原因。

你不再需要攻击者建模

之前出现的所有定义都需要对攻击者做出一些假设。为了选择正确的概念,你需要弄清楚攻击者的能力和目标。他们拥有多少先验知识?他们被允许使用什么辅助数据?他们想学习什么类型的信息?

在实践中这样做是困难且非常容易出错的。回答这些问题非常棘手:特别是,你可能不知道攻击者到底想要什么或能够做什么。更糟糕的是,可能存在未知的未知:你完全没有预料到的攻击向量。因此,你不能对这些老式定义做出非常广泛的陈述。你必须做出一些假设,而这些假设你不能 100% 确定。

相比之下,当你使用差分隐私时,你会得到两个很棒的保证。

  1. 你保护关于个人的任何类型的信息。攻击者想做什么并不重要。重新识别他们的目标,知道他们是否在数据集中,推断出一些敏感属性……所有这些事物都受到保护。因此,你不必考虑攻击者的目标。
  2. 无论攻击者对你的数据了解多少都有效。他们可能已经知道数据库中的某些人。他们甚至可能向你的系统添加一些虚假用户。使用差分隐私,这无关紧要。攻击者不知道的用户仍然受到保护。

你可以量化隐私损失

与较旧的概念一样,差分隐私带有一个你可以调整的数字参数。然而,该参数的意义存在很大差异。以 \(k\)-匿名为例。它告诉你输出数据集中的每条记录"看起来像"至少 \(k-1\) 条其他记录。但是 \(k\) 的值是否告诉我们保护级别?

答案是……不多。\(k\) 的值与数据集的私密性之间没有明确的联系。所以选择 \(k\) 非常含糊,无法以形式化的方式证明其合理性。其他老式定义的问题甚至更严重。

差分隐私要好得多。当你使用它时,你可以量化攻击者的最大可能信息增益。相应的参数 \(\varepsilon\) 允许你做出形式化的陈述。假设 \(\varepsilon=1.1\)。那么,你可以说:"一个认为其目标在数据集中的概率为 50% 的攻击者可以将其确定程度提高到最多 75%。" 选择 \(\varepsilon\) 的确切值并不容易,但至少,它可以以形式化的方式解释。

你还记得之前关于攻击者建模的观点吗?这意味着你可以以多种方式更改此陈述。你可以用关于任何个人的任何内容替换"他们的目标在数据集中"。如果你想非常精确,可以添加"无论攻击者知道什么"。总而言之,这使得差分隐私比之前所有的定义都要强大得多。

你可以组合多个机制

假设你有一些数据。你想以某种匿名方式与 Alex 和 Brinn 分享它。你同样信任 Alex 和 Brinn,所以你对他们俩使用相同的隐私定义。他们对数据的不同方面感兴趣,所以你给他们提供两个不同版本的数据。两个版本对于你选择的定义来说都是"匿名的"。

如果 Alex 和 Brinn 决定密谋并比较你给他们的数据,会发生什么?两个匿名版本的联合是否仍然是匿名的?事实证明,对于大多数隐私定义,情况并非如此。如果你将同一数据的两个 \(k\)-匿名版本放在一起,结果将不是 \(k\)-匿名的。因此,如果 Alex 和 Brinn 合作,他们可能能够自己重新识别用户……甚至重建所有原始数据!这不是好消息。

使用差分隐私,你可以避免这种故障模式。假设你向 Alex 和 Brinn 提供了差分隐私数据。每次,你使用的参数为 \(\varepsilon\)。那么如果他们密谋,结果数据仍然受到差分隐私的保护。隐私级别现在较弱:参数变为 \(2\varepsilon\)。所以他们仍然获得了一些信息,但你现在可以量化有多少。这个属性称为组合

这个场景听起来有点牵强,但组合在实践中非常有用。组织通常希望对数据做很多事情。发布统计信息,发布匿名版本,训练机器学习算法……随着新用例的出现和过程的演变,组合是一种保持对风险级别控制的方法。

结论

过程中的不确定性意味着攻击者的不确定性,这意味着更好的隐私。

posted @ 2026-07-06 12:50  永是珞珈一恐龙  阅读(10)  评论(0)    收藏  举报