文章目录
差分隐私的定义
差分隐私(Differential Privacy)是指一种严格的隐私定义,确保一个算法的输出不受单个数据点的显著影响。换句话说,无论一个个体的数据是否包含在数据集中,算法的输出结果应保持几乎相同。这个定义通常通过一个隐私参数ε(epsilon)来量化,该参数衡量算法在隐私和数据准确性之间的平衡。
具体定义可以表述如下:
对于所有的集合 S ⊆ Range ( M ) S \subseteq \text{Range}(\mathcal{M}) S⊆Range(M) 且对于所有 x , y ∈ N ∣ x ∣ x, y \in \mathbb{N}^{|x|} x,y∈N∣x∣,如果 ∥ x − y ∥ 1 ≤ 1 \|x - y\|_1 \leq 1 ∥x−y∥1≤1,则随机算法 M \mathcal{M} M 满足以下条件:
Pr [ M ( x ) ∈ S ] ≤ exp ( ϵ ) Pr [ M ( y ) ∈ S ] + δ \Pr[\mathcal{M}(x) \in S] \leq \exp(\epsilon) \Pr[\mathcal{M}(y) \in S] + \delta Pr[M(x)∈S]≤exp(ϵ)Pr[M(y)∈S]+δ
则称该算法 M \mathcal{M} M 为 ( ϵ , δ ) (\epsilon, \delta) (ϵ,δ)-差分隐私的 (即 ( ϵ , δ ) (\epsilon, \delta) (ϵ,δ)-Differentially private)。特别地,如果 δ = 0 \delta = 0 δ=0,则称 M \mathcal{M} M 满足 ϵ \epsilon ϵ-差分隐私 (即 ϵ \epsilon ϵ-Differentially private)。
其中,各个符号的含义如下:
- M \mathcal{M} M: 这是一个随机算法,也称为机制(Mechanism),用于处理输入数据并输出结果。
- S ⊆ Range ( M ) S \subseteq \text{Range}(\mathcal{M}) S⊆Range(M): 这是一个事件的集合,表示从机制 M \mathcal{M} M 的输出结果中选取的一个子集。
- x , y ∈ N ∣ x ∣ x, y \in \mathbb{N}^{|x|} x,y∈N∣x∣: 这是两个输入数据集。它们位于自然数的向量空间中。通常在差分隐私中, x x x 和 y y y 表示两个相邻的数据集,最多只在一个元素上有所不同。
- ∥ x − y ∥ 1 ≤ 1 \|x - y\|_1 \leq 1 ∥x−y∥1≤1: 这是 x x x 和 y y y 之间的 L 1 L_1 L1 范数距离,表示两个数据集 x x x 和 y y y 至多相差一个元素。
- Pr [ M ( x ) ∈ S ] \Pr[\mathcal{M}(x) \in S] Pr[M(x)∈S]: 这是机制 M \mathcal{M} M 在输入数据集 x x x 上运行,并输出属于集合 S S S 的结果的概率。
- ϵ \epsilon ϵ: 这是隐私预算参数,用于控制隐私与准确性之间的权衡。较小的 ϵ \epsilon ϵ 值表示更强的隐私保护。
- δ \delta δ: 这是一个松弛参数,允许算法在某些情况下以很小的概率违反严格的隐私保证。当 δ = 0 \delta = 0 δ=0 时,表示严格的 ϵ \epsilon ϵ-差分隐私。
一般来说, ( ϵ , δ ) (\epsilon, \delta) (ϵ,δ)-差分隐私被称为松弛的差分隐私, ϵ \epsilon ϵ-差分隐私被称为严格的差分隐私。
简单的来说,差分隐私就是当攻击者在观察随机算法 M \mathcal{M} M 对相邻数据集 x x x 和 y y y 的输出结果时,很难分辨出源数据是来源于哪一个数据集。即算法 M \mathcal{M} M 在相邻数据集的输出分布上不会受到太大的影响,由此攻击者就不能确定该数据是否存在数据集中。
随机响应(随机化回答)
随机响应(Randomized Response)的概念
随机响应是一种差分隐私机制,最初是用于社会科学中的调查研究,以保护受访者的隐私。该方法允许受访者在提供真实答案之前,首先使用一个随机过程(如掷硬币)来决定是否说出真实的回答。这种随机化过程使得即使调查者得到了具体回答,也无法确定受访者的真实回答,从而保护了隐私。
在差分隐私的背景下,随机响应通过在某个问题或数据点的回答中引入噪声,确保每个参与者的隐私得到了保护。即使对方知道参与者的回答,也无法准确推断出原始数据是什么。
随机响应的步骤
假设我们有一个是非题问题,例如:“你是否曾经参与过某种违法行为?” 调查者想要收集这类敏感信息,同时希望保护受访者的隐私。随机响应可以通过以下步骤实现:
-
步骤1:受访者随机选择是否提供真实答案或给出一个随机答案。例如,受访者可以先掷硬币:
- 如果是正面,提供真实答案。
- 如果是反面,随机选择“是”或“否”作为答案,而不考虑真实答案。
-
步骤2:受访者将决定后的答案提交给调查者。
这种方法确保了即使调查者收到了“是”或“否”的回答,也无法确定受访者是否真正参与了违法行为,因为有一定概率这个回答是随机生成的。调查者可以根据多次调查结果估计总体上回答“是”的概率。
随机响应背后的动机是,它提供了“合理的否认”。例如,可能提供了“是”响应,因为第一次和第二次硬币翻转都是正面,概率为1/4。换句话说,隐私是通过过程获得的,没有“好”或“坏”的响应。获得响应的过程会影响如何合理地解释它们。
命题2.1 上述随机响应方法是 ( l n 3 , 0 ) (ln3,0) (ln3,0) - 差分隐私的。
【证明】: 假设固定随机响应者为同一人。上述分析表明 Pr [ R e s p o n s e = Y e s ∣ T r u t h = Y e s ] = 3 / 4 \text{Pr}[Response=Yes|Truth=Yes]=3/4 Pr[Response=Yes∣Truth=Yes]=3/4 。具体来说,当事实是“是”时,如果第一个硬币出现反面(概率1/2)或第一个和第二个出现正面(概率1/4),则结果将是“是”,而 Pr [ R e s p o n s e = Y e s ∣ T r u t h = N o ] = 1 / 4 \text{Pr}[Response=Yes|Truth=No]=1/4 Pr[Response=Yes∣Truth=No]=1/4 (第一个出现在正面,第二个出现反面;概率为1/4)。同理,将类似的推理应用于事实为“否”的情况,我们获得:
Pr [ R e s p o n s e = Y e s ∣ T r u t h = Y e s ] Pr [ R e s p o n s e = Y e s ∣ T r u t h = N o ] = Pr [ R e s p o n s e = N o ∣ T r u t h = N o ] Pr [ R e s p o n s e = N o ∣ T r u t h = Y e s ] = 3 / 4 1 / 4 = 3 = e x p ( l n 3 ) \begin{aligned} \frac{\text{Pr}[Response=Yes|Truth=Yes]}{\text{Pr}[Response=Yes|Truth=No]} \\ = \frac{\text{Pr}[Response=No|Truth=No]}{\text{Pr}[Response=No|Truth=Yes]} &= \frac{3/4}{1/4} = 3 = exp(ln3) \end{aligned} Pr[Response=Yes∣Truth=No]Pr[Response=Yes∣Truth=Yes]=Pr[Response=No∣Truth=Yes]Pr[Response=No∣Truth=No]=1/43/4=3=exp(ln3)
于是 ε = l n 3 \ \varepsilon = ln3 ε=ln3 上述随机响应方法是 ( l n 3 , 0 ) (ln3,0) (ln3,0) - 差分隐私的。证毕。
举例说明
假设有一个群体中的 100 个人,调查者想知道有多少人参与了某项违法行为,但不想直接问出这个敏感问题。
-
每个受访者按照以下规则回答:
- 掷硬币一次:
- 如果是正面(概率为 0.5),就真实回答是否参与过违法行为。
- 如果是反面(概率为 0.5),则随机选择“是”或“否”(每个选择的概率为 0.5)。
- 掷硬币一次:
-
分析结果:
- 假设真实情况是 30 个人回答了是,70 个人回答了否。
- 每个人以 50% 的概率给出了假回复,所以大致上总共有 50 个假回复,而且当中有 25 个“是”,有 25 个“否”。
- 随后分别从真实情况中减去这些假回复,我们可以得知有 5 个人真实回答了是,45 个人真实回答了否。
- 所以大概有 10% 的人参与了违法行为。
调查者通过这个过程,尽管无法确定每个受访者的具体答案,但可以使用统计方法来估计总体上参与违法行为的人数。
拉普拉斯(Laplace)机制
拉普拉斯机制是实现差分隐私的经典方法之一,通常用于数值型查询,如求和、均值等操作。它通过向查询的结果中添加源自拉普拉斯分布的噪声,来保证差分隐私。
拉普拉斯机制基于以下直觉:通过向查询结果添加适量的噪声,即使攻击者知道数据库中的大部分内容,他也无法准确推断出某个特定条目的存在或不存在。这种机制确保了查询结果在少量输入数据变化的情况下(如增加或删除一条记录)不会发生显著变化,从而保护了个体的隐私。
拉普拉斯机制的数学定义
L1敏感度
敏感度(sensitivity),即改变数据库中的单个记录最多可以导致查询结果变化多少。
对于两个相邻数据集(只相差一个元素/汉明距离=1) x , y x,y x,y ,一个查询函数 f f f 最大的变化范围,比如查询数量,敏感度就是1。下面是敏感度的具体定义:
定义3.1 方法 f : N ∣ X ∣ → R k f:\mathbb{N}^{|\mathcal{X}|} \to \mathbb{R}^k f:N∣X∣→Rk 的 ℓ 1 \ell_1 ℓ1 敏感度为:
Δ f = max x , y ∈ N ∣ X ∣ , ∥ x − y ∥ 1 = 1 ∥ f ( x ) − f ( y ) ∥ 1 \Delta f = \max_{x,y\in\mathbb{N}^{|\mathcal{X}|},\Vert x-y\Vert _1=1}\Vert f(x)-f(y)\Vert _1 Δf=x,y∈N∣X∣,∥x−y∥1=1max∥f(x)−f(y)∥1
拉普拉斯分布
定义3.2 拉普拉斯分布是一种以零为中心的对称分布,其概率密度函数为:
L a p ( x ∣ b ) = 1 2 b exp ( − ∣ x ∣ b ) Lap(x|b) = \frac{1}{2b}\exp(-\frac{|x|}{b}) Lap(x∣b)=2b1exp(−b∣x∣)
其中, b b b 是尺度参数,决定了噪声的分布范围。
拉普拉斯机制
定义3.3 设 f f f 是一项查询(如求和、计数、均值等),其目标是对数据库 D D D 进行操作并返回一个数值。拉普拉斯机制定义为:
M ( D ) = f ( D ) + Lap ( Δ f ϵ ) \mathcal{M}(D) = f(D) + \text{Lap}\left(\frac{\Delta f}{\epsilon}\right) M(D)=f(D)+Lap(ϵΔf)
其中:
- M ( D ) \mathcal{M}(D) M(D):是应用拉普拉斯机制后的查询结果。
- f ( D ) f(D) f(D):是查询 f f f 在数据库 D D D 上的精确值。
- Lap ( Δ f ϵ ) \text{Lap}\left(\frac{\Delta f}{\epsilon}\right) Lap