差分隱私(Differential Privacy)定義及其理解

MaplesWCT發表於2022-05-26

1 前置知識

本部分只對相關概念做服務於差分隱私介紹的簡單介紹,並非細緻全面的介紹。

1.1 隨機化演算法

隨機化演算法指,對於特定輸入,該演算法的輸出不是固定值,而是服從某一分佈。

單純形(simplex):一個\(k\)維單純形是指包含\(k+1\)個頂點的凸多面體,一維單純形是一條線段,二維單純形是一個三角形,三維單純形是一個四面體,以此類推推廣到任意維。“單純”意味著基本,是組成更復雜結構的基本構件。

概率單純形(probability simplex):是一個數學空間,上面每個點代表有限個互斥事件之間的概率分佈。該空間的每條座標軸代表一個互斥事件,\(k-1\)維單純形上的每個點在\(k\)維空間中的座標就是其\(k\)個互斥事件上的概率分佈。每一點的座標(向量)包含\(k\)個元素,各元素非負且和為1。

如下圖所示,三個事件發生的概率分佈形成一個二維的概率單純形,上面每個點在三個事件上發生的概率之和為1。

image

形式化定義:給定一個離散集\(B\)\(B\)上的概率單純形\(\Delta(B)\)被定義為

\[\Delta(B)=\left\{x \in \mathbb{R}^{|B|}\left|x_{i} \geq 0, i=1,2, \cdots,\right| B \mid ; \sum_{i=1}^{|B|} x_{i}=1\right\} \]

\(\Delta(B)\)是一個集合,集合中每一個元素是一個\(|B|\)維向量,該向量代表了一個離散型隨機變數的概率分佈。\(\Delta(B)\)代表了一個有\(|B|\)種取值的離散型隨機變數的所有可能的概率分佈。

隨機化演算法(randomized algorithm):一個隨機化演算法\(\cal{M}\)有定義域\(A\)、離散的值域\(B\)。一個輸入\(a\in A\),演算法\(\cal{M}\)的輸出\(\mathcal{M}(a)\)是一個隨機變數,服從概率分佈\(p(x)=\operatorname{Pr}(\mathcal{M}(a)=x),x\in B\),並且\(p(x)\in \Delta(B)\)

例如,\(A=\{2,3,4\}\)\(B=\{1,2,3,4,5\}\),設\(\Delta(B)\)中包含三個元素,分別為\((\frac{1}{3},\frac{1}{3},\frac{1}{3},0,0)\)\((0,\frac{1}{3},\frac{1}{3},\frac{1}{3},0)\)\((0,0,\frac{1}{3},\frac{1}{3},\frac{1}{3})\),即

\[\Delta(B)=\left\{ (\frac{1}{3},\frac{1}{3},\frac{1}{3},0,0), (0,\frac{1}{3},\frac{1}{3},\frac{1}{3},0), (0,0,\frac{1}{3},\frac{1}{3},\frac{1}{3}) \right\} \]

每個元素均代表演算法輸出的隨機變數取值為1,2,3,4,5的概率分佈,現可以規定對映\(\cal{M}\)

\[\mathcal{M}(2)\sim \left(\frac{1}{3}, \frac{1}{3}, \frac{1}{3}, 0,0\right), \mathcal{M}(3)\sim \left(0, \frac{1}{3}, \frac{1}{3}, \frac{1}{3}, 0\right), \mathcal{M}(4)\sim \left(0,0, \frac{1}{3}, \frac{1}{3}, \frac{1}{3}\right) \]

也就是說,一個特定輸入\(a\in A\)經過隨機化演算法\(\cal{M}\)得到的不是一個具體值\(b\in B\),而是一個隨機變數\(\mathcal{M}(a) \sim p(x),p(x)\in \Delta(B)\),又或者說,演算法將以一定概率輸出某一個值。

上述情況是在離散概率空間中討論的,有時,演算法將從連續分佈中的取樣,但最後將以適當的精度進行離散化。

1.2 KL散度(KL-Divergence)

KL散度(Kullback Leible-Divergence)概念來源於概率論與資訊理論,又被稱作相對熵、互熵。從統計學意義上來說,KL散度可以用來衡量兩個分佈之間的差異程度,差異越小,KL散度越小。

熵(entropy):資訊理論中熵定義首次被夏農提出:無損編碼事件資訊的最小平均編碼長度。通俗理解,如果熵比較大,即對該資訊進行編碼的最小平均編碼長度較長,意味著該資訊具有較多可能的狀態,即有著較大的資訊量/混亂程度/不確定性。從某種角度上看,熵描述了一個概率分佈的不確定性。

一個離散的隨機變數\(X\)可能取值為\(X=x_1,x_2,...,x_n\),即取值空間為\(\cal{X}=\{x_1,x_2,...,x_n\}\),概率分佈律為\(p(x)=\operatorname{Pr}(X=x),x\in \cal{X}\),則隨機變數的熵定義為

\[\begin{aligned} H(X)&=-\sum_{x\in \cal{X}} p \left(x\right) \log p \left(x\right) \\ &=\mathbb{E}_{x \sim p}\left[-\log p(x)\right] \end{aligned} \]

規定當\(p(x)=0\)時,\(p(x)\log p(x)=0\)

其中,\(-\log p(x)\)表示狀態\(X=x\)的最小編碼長度。

  • \(\operatorname{Pr}(A)\)也即\(\operatorname{P}(A)\),表示事件\(A\)發生的概率,只是書寫習慣不同,避免與其他\(P\)混淆。

  • 有時也將上面的量記為\(H(p)\)

  • 公式中的\(\mathbb{E}_{x \sim p}\)表示使用概率分佈\(p\)來計算期望;

  • 其中\(\log\)以2為底時,熵單位為bit,以e為底時,熵單位為nat;

  • 上述的對熵的討論也只是針對離散隨機變數進行討論的,\(p(x)\)在離散型隨機變數中為概率分佈律,在連續型隨機變數中為概率密度函式;

交叉熵(cross-entropy):熵的計算是已知各狀態的概率分佈求其理論上最小平均編碼長度。如果不知道各狀態真實的概率分佈\(p(x)\),只有預估的概率分佈\(q(x)\),我們只好根據預估的概率分佈\(q(x)\)給事件編碼,得到事件各狀態\(x\)的預估最小編碼長度\(-\log q(x)\)。假如經過觀測後我們得到了真實概率分佈\(p(x)\),那麼在計算預估最小編碼長度\(-\log q(x)\)的期望時就可以採用真實概率分佈\(p(x)\),得到交叉熵。

對於同一取值空間\(\cal{X}=\{x_1,x_2,...,x_n\}\)下的離散隨機變數\(P,Q\),概率分佈分別為\(p(x)=\operatorname{Pr}(P=x),q(x)=\operatorname{Pr}(Q=x),x\in \cal{X}\),交叉熵定義為

\[\begin{aligned} H(P, Q)&=\sum_{x\in \cal{X}} p(x) \log \frac{1}{q(x)} \\ &=-\sum_{x\in \cal{X}} p(x) \log q(x) \\ &=\mathbb{E}_{x \sim p}\left[-\log q(x)\right] \end{aligned} \]

即用預估概率分佈\(q(x)\)計算每個狀態的最小編碼長度,用真實概率分佈\(p(x)\)求期望。可見,\(H(P,Q)\neq H(Q,P),H(P,Q)\geqslant H(P)\)

上述定義也可寫作:對於取值空間\(\cal{X}\)的離散隨機變數\(X\),有兩個分佈\(p(x),q(x),x\in \cal{X}\),這也是《資訊理論基礎(原書第二版)》的表達方式;但考慮到一個隨機變數對應一個分佈更嚴謹些,便分成了同一取值空間的兩個隨機變數進行解釋,這是《The Algorithmic Foundations of Differential Privacy》的表達方式。二者意思是一樣的。

相對熵(relative entropy)/KL散度(KL-divergence):用來衡量交叉熵與熵之間的差距的,也是兩個隨機分佈之間距離的度量。

對於同一取值空間\(\cal{X}=\{x_1,x_2,...,x_n\}\)下的離散隨機變數\(P,Q\),概率分佈分別為\(p(x)=\operatorname{Pr}(P=x),q(x)=\operatorname{Pr}(Q=x),x\in \cal{X}\),則\(P\)相對\(Q\)的相對熵為\(P,Q的交叉熵-P的熵\)

\[\begin{aligned} D_{K L}(P \| Q) &=H(P, Q)-H(P) \\ &=-\sum_{x\in \cal{X}} p(x) \log q(x)-\sum_{x\in \cal{X}}-p(x) \log p(x) \\ &=-\sum_{x\in \cal{X}} p(x)(\log q(x)-\log p(x)) \\ &=-\sum_{x\in \cal{X}} p(x) \log \frac{q(x)}{p(x)} \\ &=\sum_{x\in \cal{X}} p(x) \log \frac{p(x)}{q(x)} \\ &=\mathbb{E}_{x \sim p}\left[-\log q(x)\right]-\mathbb{E}_{x \sim p}\left[-\log p(x)\right]\\ &=\mathbb{E}_{x \sim p}\left[\log \frac{p(x)}{q(x)}\right] \end{aligned} \]

可見,KL散度也可以用來衡量兩個分佈\(P,Q\)的差異程度,另外,\(D_{K L}(P \| Q) \neq D_{K L}(Q \| P)\geqslant 0\)

最大散度(Max Divergence):KL散度是從整體上衡量兩個分佈的距離,最大散度是兩個分佈比值的最大值,從兩個分佈比值的最大值角度衡量了兩個分佈的差異。

對於同一取值空間\(\cal{X}=\{x_1,x_2,...,x_n\}\)下的離散隨機變數\(P,Q\),概率分佈分別為\(p(x)=\operatorname{Pr}(P=x),q(x)=\operatorname{Pr}(Q=x),x\in \cal{X}\),最大散度為

\[\begin{aligned} D_{\infty}(P \| Q)&=\max _{x\in \cal{X}}\left[\log \frac{\operatorname{Pr}[P=x]}{\operatorname{Pr}[Q=x]}\right] \\ &=\max _{x\in \cal{X}}\left[\log \frac{p(x)}{q(x)}\right] \end{aligned} \]

2 差分隱私定義

差分隱私是Dwork在2006年首次提出的一種隱私定義,函式的輸出結果對資料集中任何特定記錄都不敏感。

假設對於一個考試成績資料集\(D\),通過查詢操作得知有\(x\)個同學不及格,現加入一條新紀錄得到新資料集\(D'\),通過查詢得知有\(x+1\)個同學不及格,便可推理出新加入的同學成績不及格,如此一來,攻擊者便通過這樣的手段推理出了一些知識。

應對上述攻擊,差分隱私通過往查詢結果\(f(D),f(D')\)中加入隨機噪聲\(r\)最終得到查詢結果\(\mathcal{M}(D)=f(D)+r,\mathcal{M}(D')=f(D')+r\),使得\(D\)\(D'\)經過同一查詢後的結果並非確定的具體值,而是服從兩個很接近的概率分佈,這樣攻擊者無法辨別查詢結果來自哪一個資料集,保障了個體級別的隱私性。

2.1 形式化定義

鄰接資料集(neighbor datasets):僅有一條記錄不同的兩個資料集\(D\)\(D'\)

隨機化演算法\(\cal{M}\):隨機化演算法指,對於特定輸入,該演算法的輸出不是固定值,而是服從某一分佈。

隱私預算\(\epsilon\)(privacy budget)\(\epsilon\)用於控制演算法的隱私保護程度,\(\epsilon\)越小,則演算法保護效果越好。

隱私損失(privacy loss):對於任意的輸出結果\(S\)\(\ln \frac{\operatorname{Pr}[\mathcal{M}(\mathrm{D}) \in \mathrm{S}]}{\operatorname{Pr}\left[\mathcal{M}\left(\mathrm{D}^{\prime}\right) \in \mathrm{S}\right]}\)\(\ln \frac{\operatorname{Pr}[\mathcal{M}(\mathrm{D}) = \mathrm{\xi}]}{\operatorname{Pr}\left[\mathcal{M}\left(\mathrm{D}^{\prime}\right) = \mathrm{\xi}\right]}\),其描述了演算法\(\cal{M}\)在鄰接資料集上輸出同一個值的概率差別大小,差分隱私機制將演算法的隱私損失控制在一個有限範圍\(\epsilon\)內。

隱私損失可正可負,越正和越負都表示隱私損失很大,因此嚴格來說隱私損失應加個絕對值,為

\[Privacyloss=\left |\ln \frac{\operatorname{Pr}[\mathcal{M}(\mathrm{D}) \in \mathrm{S}]}{\operatorname{Pr}\left[\mathcal{M}\left(\mathrm{D}^{\prime}\right) \in \mathrm{S}\right]}\right | \]

當然,如沒有加絕對值的地方預設\(\operatorname{Pr}[\mathcal{M}(\mathrm{D}) \in \mathrm{S}] \geqslant \operatorname{Pr}[\mathcal{M}(\mathrm{D'}) \in \mathrm{S}]\)

\(\epsilon-\)差分隱私:對於只有一個記錄不同的鄰接資料集\(D\)\(D'\),給這兩個資料集施加一個隨機化演算法(機制)\(\cal{M}\),對於所有的\(S\subseteq \operatorname{Range}(\mathcal{M})\),若有

\[\operatorname{Pr}[\mathcal{M}(D) \in S] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D' \right) \in S\right] \times \mathrm{e}^{\epsilon} \]

\[\max _{S}\left[\ln \frac{\operatorname{Pr}[\mathcal{M} (D) \in S]}{\operatorname{Pr}\left[\mathcal{M}\left(D' \right) \in S\right]}\right] \leqslant \epsilon \]

成立,則稱演算法\(\cal{M}\)滿足\(\epsilon-\)差分隱私。

其中\(\operatorname{Range}(\mathcal{M})\)是隨機演算法\(\cal{M}\)對映結果隨機變數的取值空間,\(S\)是其子集;對於所有的\(S\subseteq \operatorname{Range}(\mathcal{M})\)即對於\(\operatorname{Range}(\mathcal{M})\)的所有子集。

另種寫法:

\[\operatorname{Pr}[\mathcal{M}(D) =x] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D' \right) =x\right] \times \mathrm{e}^{\epsilon},x\in S \]

\[\max _{x\in S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D)=x]}{\operatorname{Pr}[\mathcal{M}(D')=x]}\right] \leqslant \epsilon \]

\((\epsilon,\sigma)-\)差分隱私:上面描述的是嚴格的差分隱私的定義,為了演算法的實用性,Dwork後面引入了鬆弛的差分隱私,加入一個小常數\(\delta\)(稱作失敗概率):

\[\operatorname{Pr}[\mathcal{M}(D) \in S] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D' \right) \in S\right] \times \mathrm{e}^{\epsilon}+\delta \]

2.2 該定義是如何得來的

差分隱私的目的是使\(\mathcal{M}(D),\mathcal{M}(D')\)的分佈儘可能接近,便可用Max Divergence衡量兩個分佈的差異:

\[\begin{aligned} D_{\infty}(\mathcal{M}(D) \| \mathcal{M}(D')) &=\max _{x\in S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D)=x]}{\operatorname{Pr}[\mathcal{M}(D')=x]}\right] \\ &=\max _{S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D) \in S]}{\operatorname{Pr}[\mathcal{M}(D') \in S]}\right] \end{aligned} \]

其中\(S\subseteq \operatorname{Range}(\mathcal{M})\)\(\operatorname{Range}(\mathcal{M})\)是隨機演算法\(\cal{M}\)對映結果隨機變數的取值空間,\(S\)是其子集。

對於\(\operatorname{Range}(\mathcal{M})\)的所有子集,即對於任意的\(S\subseteq \operatorname{Range}(\mathcal{M})\),兩個分佈的差異都被限制在隱私預算\(\epsilon\)以內:

\[\max _{x\in S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D)=x]}{\operatorname{Pr}[\mathcal{M}(D')=x]}\right] =\max _{S}\left[\log \frac{\operatorname{Pr}[\mathcal{M}(D) \in S]}{\operatorname{Pr}[\mathcal{M}(D') \in S]}\right] \leqslant \epsilon \]

可見,上述的Max Divergence就是隱私損失。

\(\log\)的底為\(e\),並兩邊同時利用指數運算、乘以分母變形得:

\[\operatorname{Pr}[\mathcal{M}(D) =x] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D' \right) =x\right] \times \mathrm{e}^{\epsilon},x\in S \]

\[\operatorname{Pr}[\mathcal{M}(D) \in S] \leqslant \operatorname{Pr}\left[\mathcal{M}\left(D' \right) \in S\right] \times \mathrm{e}^{\epsilon} \]

3 差分隱私中常用的隨機化演算法(機制)

常用的隨機化機制有:

  • 拉普拉斯機制(Laplace mechanism)
  • 指數機制(Exponential mechanism)
  • 高斯機制(Gaussian mechanism)

這些機制中,噪聲發現取決於演算法的敏感度。

敏感度(sensitivity):對於只有一個記錄不同的兩個資料集\(D,D'\),對於一個函式\(\mathcal{M}:\cal{D} \rightarrow \cal{R^d}\),則\(\cal{M}\)的敏感度為接收所有可能的輸入後,得到輸出的最大變化值:

\[\Delta \mathcal{M}=\max _{D, D^{\prime}}\left\|\mathcal{M}(D)-\mathcal{M}\left(D^{\prime}\right)\right\| \]

其中,\(\|\cdot\|\)表示向量的範數。\(l_1-\)敏感度和\(l_2-\)敏感度分別適用於\(l_1\)範數和\(l_2\)範數。

參考資料:

  1. 概率單純形 https://zhuanlan.zhihu.com/p/479892005
  2. 【數學知識】KL散度 https://zhuanlan.zhihu.com/p/365400000
  3. 一文搞懂熵(Entropy),交叉熵(Cross-Entropy) https://zhuanlan.zhihu.com/p/149186719
  4. 差分隱私Differential Privacy介紹 https://zhuanlan.zhihu.com/p/40760105
  5. 差分隱私(一) Differential Privacy 簡介 https://zhuanlan.zhihu.com/p/139114240
  6. 差分隱私的演算法基礎 第二章 第三節 形式化差分隱私 https://zhuanlan.zhihu.com/p/502656652
  7. 《聯邦學習》楊強.et al 電子工業出版社
  8. 機器學習的隱私保護研究綜述. 劉俊旭 孟小峰 doi: 10.7544/issn1000-1239.2020.20190455
  9. 《The Algorithmic Foundations of Differential Privacy》3.5.1
  10. 《資訊理論基礎(原書第2版)》Thomas.et al 機械工業出版社

相關文章