别担心,你的数据有噪声
这是一个冷酷、硬邦邦、无法回避的事实:你的数据里有噪声。不,我们还没开始讲差分隐私!到现在为止,还没人往你的统计数据里加随机数。但你的数据就是有噪声的,它就是不准的,它不是 100% 精确的,它是不确定的。更糟的是,不确定性有两种。
两种不确定性
先说第一种。这里有张图。
左边的点代表了大多数人思考统计数据的方式:精确的数字对应精确的真理。拿数据库里的眼睛颜色信息来说,有个统计数据:"这个数据库里有 4217 人拥有棕色眼睛"。当你读到这个统计数时,你了解了什么?一个答案可能是"好吧,我了解到数据集包含 4217 个棕色眼睛的人"。听起来挺合理,对吧?
错了。
充其量,你了解到数据库里棕色眼睛的人数大约是 4217。这可能是你拥有的最佳估计。但这个统计数是 100% 准确的吗?你愿意拿钱打赌它绝对准确吗?什么条件会让你愿意接受这样的赌注?
我已经能听到你的反驳了。"哇,等一下。100% 准确是什么意思?眼睛颜色到底怎么定义?我们怎么核实这个数字?这个统计数怎么生成的?每个人回答关于自己眼睛颜色的问题吗?还是别人分类的?数据库里 100% 的人都有眼睛颜色信息吗?"等等。你可能还有许多其他有效问题。这些问题背后隐藏着一个令人不安的深刻真相:这个统计数几乎肯定是有噪声的。
充其量,如果你想诚实地表达这个统计数,你需要加上误差线。这就是上面那张图右边展示的情况。我们有一个精确数字,用一个点表示,还有这个点周围的置信区间(或误差线)。这个统计数不再说"这个数据库里恰好有 4217 个棕色眼睛的人",而是说了一些更复杂但更准确的话:"以 95% 的确定性,数据库里有 4209 到 4226 个棕色眼睛的人。我们拥有的最佳估计是 4217。"
等一下。

对。这个置信区间怎么算的?我们说的 95% 确定性是什么意思?不确定性捕捉了什么?我们是不是遗漏了某些不确定性来源?这个不确定性估计本身有没有不确定性?
这引出了我的第二点,比第一点更具破坏性。你的数据有噪声,而且,你可能甚至不知道里面有多少噪声。你拥有的统计数只是最佳猜测,仅此而已。
右边的图表征了这种未知的不确定性。你怀疑你拥有的数字与实际数字相差不远,但你无法量化有多远。
让我们更仔细地看看两种不确定性。可量化的不确定性可以采取几种形式:
- 你的数据可能是较大总体的均匀样本。这种情况下,你可以计算统计数据的抽样误差。
- 大规模数据收集过程可能会遗漏一些事件。比如服务器崩溃或网络出问题时就会这样。但你可能能估计这种情况发生的频率,从而说不确定性低于例如 1%。
- 某些算法的准确性可以测量。比如你在训练集上训练机器学习算法,在测试集上评估它们。
- 如果人工标注数据,你可以让多个标注员标注相同数据。这样你能了解他们同意的频率,据此估计不确定性。
量化不确定性之后,你可以在运行的分析中考虑它。比如你可以传播误差线,或者只在结果很可能尽管有误差来源仍然有效时才返回结果。
同时,不可量化的不确定性也可能来自几个地方:
- 实际上,统计抽样通常不是均匀的:你的统计数据可能受到选择偏差或幸存者偏差的影响。你可以猜测它们对数据的影响,但很难 100% 确定。
- 当你向人们提问时,他们的答案可能不准确。这叫报告偏差。造成这种情况的原因很多,整体影响也难以估计。
- 人们有时会深入研究数据,直到找到有趣的东西来报告。这种做法称为数据挖掘,会产生看起来很好但完全没有意义的结果。由于正面结果更有可能被发表,这种情况变得更加严重。这两种现象在实践中都会造成真正的问题!它们在科学文献报告的结果中创造了固有的不确定性。同样,很难量化这种不确定性。
有时,情况甚至比这更糟。人们可能使用临时保护技术,为数据添加一些模糊性,而不告诉你。或者他们可能给你一个概念,但没有细节。这就是美国人口普查局在 2000 年和 2010 年发布中所做的:他们随机交换记录,但没有发布关于该过程如何工作的任何细节。可悲的是,它甚至没有成功保护数据。但它确实使整个数据以无人能够发现或考虑的方式变得有噪声。
通常,可量化和不可量化的影响最终都会影响你的数据。所以你最终得到类似这样的东西:
可量化的不确定性,你可以为其绘制置信区间,用蓝色表示。但仍然有一些不可量化的不确定性,这里用棕色表示:你应该把整个事情,包括误差线,都持保留态度。
你可能看到接下来要发生什么了。如果我们向统计数据添加噪声,以获得差分隐私保证,会发生什么?
将差分隐私加入混合
差分隐私通常通过向统计数据添加噪声来获得。我们根据某个分布随机选择一个数字,将其添加到统计数据中。这个分布不是秘密的,只有随机数是秘密的。所以这是好的那种不确定性:我们可以量化的那种。如果你已经有一些可量化的不确定性,你可以将两者结合,得到一个单一的置信区间。当然,整个事情可能仍然以我们无法完全估计的方式不确定。
我们没有太多改变情况。我们只是使置信区间稍微宽了一点。可量化的不确定性增加了一点,我们可以量化增加了多少。
有些 DP 算法更复杂,以更有创意的方式向数据添加噪声。为这些算法计算不确定性可能很困难。但大多数构建块可以被分析以找出置信区间。这可能有点痛苦,所以在理想世界中,你不必手动执行此操作:你使用的工具会为你做这件事。
然而,有时你会遇到不太好的那种不确定性。比如你可能需要限制数据库中每个人的贡献。这可以采取多种形式,如限制或子采样。这会在噪声本身之上产生额外的误差或不确定性。但这很难量化:理论上,一个人可以贡献十亿件事,而我们只计算其中的 5 件。这种情况下,由于这个单一异常值造成的误差将是巨大的。
如果你想量化这种影响,你有两个选择。发布数据的人可以告诉你由于限制造成的数据丢失幅度。如果没有发生这种情况,你可以对这些异常值做出一些合理的假设:有多少,以及丢失了多少数据。在这两种情况下,请注意这种限制通常对数据质量是积极的:稳健的统计分析不应该对巨大的异常值敏感。
结论
差分隐私对数据的影响并不像你可能认为的那样是世界末日。你的数据并没有从完美变得有噪声。它一直都有噪声!DP 只是让它稍微更嘈杂了一点。而且你可以量化这种新噪声的影响,这很好。(至少,比已经存在的一些不确定性来源更好。)
这可能听起来令人惊讶。你可能一直在使用你的数据,就好像它是绝对真理的完美来源一样。这不是最科学的方法,但也许这对你的应用来说已经足够了。这种情况下……你可能可以继续对 DP 数据做同样的事情?如果设计 DP 过程的人做得还不错,统计数据应该不会离真实数据太远。当然,除非你在看非常小的统计数据。但这种情况下,你一开始就在看纯统计噪声。
如果你已经在考虑不确定性,DP 不会改变太多。它只是为这种不确定性增加了一个新的、可量化的元素。有一个警告:你需要确切知道对数据做了什么。隐私参数不足以让你猜测。你需要知道噪声的形状和幅度,以及数据被改变的所有其他方式。
这也意味着 DP 从业者应该给你这些信息。创建和实现 DP 算法的人也分担了这部分责任。新算法应该附带一种计算任意置信区间的方法。工具应该返回不确定性信息以及输出:没有人想手动计算它。
简而言之:透明度是关键。它带来信任。它使数据更有用。它可以表明 DP 的准确性影响比人们可能想象的要小!

浙公网安备 33010602011771号