在保持隐私的同时生成合成数据的最佳方式是什么?

数据挖掘 数据集 自动编码器 序列到序列 隐私
2022-02-11 15:17:04

对于我们作为第三方承包商工作的一个项目,我们需要一种方法让公司共享一些可用于数据科学的数据集。公司不可能共享真实数据,因为这将是一个隐私问题。

我们正在探索一些方法,以便公司可以在保持隐私的同时共享数据,或者生成与实际数据的统计/人口统计相匹配的虚假数据。

我们目前正在研究几个选项:

  • 使用差分隐私为数据添加噪声,然后与我们共享转换后的数据。这种方法会导致任何隐私问题吗?我担心逆向工程。“隐私预算”在这里适用吗?应该如何解决?
  • 使用编码器-解码器神经网络来学习真实数据的向量嵌入。一旦学习了向量嵌入,就可以破坏解码器,并且可以与我们共享编码器的输出。

是否有任何其他方法可用于在人口统计和统计方面类似于实际数据的合成数据生成。或者,在不侵犯隐私的情况下,访问真实数据的最佳方式是什么?

3个回答

无论您选择哪种方法都可以,但是假设您希望减轻推理攻击,例如差分隐私,这两种方法都需要。

从形式上讲,差分隐私为逆向工程提供了一些最强有力的保证。具体来说,它承诺任何攻击者,无论攻击方法或可用计算能力如何,都无法确定是否有人向数据集贡献了数据。这是因为差分私有方法的结果在添加或删除任何个人的输入贡献之前都是模棱两可的。从本质上讲,每个人都可以否认他们参与(或不参与)输入。

合成数据的问题在于它是从适合真实数据的模型生成的。这意味着模型参数是真实数据的聚合函数。这是有问题的,因为通常可以从数据聚合或其估计中进行推断(这首先是差分隐私的动机),并且通常可以从合成数据中估计生成模型的参数。如果有兴趣,我很乐意举一个这种攻击的例子。此外,应该注意的是,这种推理还意味着模型的白盒交换至少具有同样的风险,并且会带来额外的问题,例如该网络是否记忆了训练数据. 一个直接的缓解方法是在构建合成数据的生成模型时应用差分隐私。

关于隐私预算,人们可以将预算(通常称为以及隐私损失)解释为信息量(例如以比特为单位),可以由有权访问差异的对手推断出关于任何个人的信息量-私人结果。也许令人惊讶的是,它可以并且理想情况下应该远小于 1。如果将来有更新引用相同的个人,那么人们必须担心可以从发布的聚合集合中推断出多少个人信息。有一个直接的组合定理(参见例如Sect 3.5ε) 直接来自差分隐私的定义。它指出,聚合隐私损失最多是组成版本的个人隐私损失的总和。换句话说,在最坏的情况下它是附加的。知道当输入不相交时它会像最大值一样可能会有所帮助。

我们通过使用 NER 解决了这个问题。使用 spacy 或类似的替代方法,可以检测到实体并将其替换为 xxx 。通过这种方式识别公司名称、货币等变得困难/不可能。

发布此合成数据生成技术可以应用于乘法、释义或 NLG。

如果您试图隐藏实际数据值,公开私有数据的一种标准方法是通过 PCA 或类似算法处理数据集。还对分类/文本数据使用一种热编码或嵌入,重命名列。对这些数据进行逆向工程将非常困难,甚至是不可能的。可能有一些方法可以取回类似的数据,但您甚至可以通过执行第二步来最小化:

  1. 减少输出特征的数量以对原始数据进行卷积
  2. 在使用 PCA 之后使用另一种降维方法,例如 SVD、LDA 等

在此过程之后,数据并不完全相同,但通常与原始数据集足够相似,可用于大多数用例。