之前也有提到過,因爲已經轉行差分隱私不搞NLP啦,所以之後的博客不會再更新NLP相關內容(儘管曾經的夢想是在NLP領域有所作爲哈哈哈),但是如果大家有什麼相關問題還是期待着一同討論喲~
好了我們言歸正傳,本文向大家介紹2006年Dwork大神的一篇文章,文章名字就叫Differential Privacy,應該是差分隱私的開山之作了。
首先,差分隱私所描述的隱私保護,針對的都是數據庫中的個人數據(本文主要關注統計數據庫)。
我們所設想的最好的隱私保護當然是:可以通過學習數據庫得到某些羣體信息,但是無法學習到個人信息。
(羣體信息是我們本來就想學習到的內容,比如均值)
本文中所提到的隱私保護是建立在考慮附加信息(auxiliary information)的情況下的,附加信息是指攻擊者通過非目標數據庫可以得到的信息(比如報紙,新聞等)。那麼,
【一】絕對的隱私究竟能不能達到?
看到這個問題,相信大家一定已經有了一個答案。
答案必然是否定的。
這篇文章的Section 3嚴格證明了這個結論(但是我沒看明白……),但(所)是(以)在本文中並不做詳細討論,有興趣的朋友們可以自行研究~
在這裏可以舉一個例子簡單理解一下:
假如某個數據庫 發佈了不同國家的女性身高,攻擊者還偶然得知了附加信息:女士A比中國女性平均身高高了2cm,那麼攻擊者就可以得知A的真實身高了。
作爲對比,假設任何人都可以得知這條附加信息,普通人(沒有訪問數據庫 的人)得到的信息也很少,至少沒辦法推測A的真實身高。
因此,在考慮附加信息(aux)的情況下,絕對的隱私保護是無法實現的。
【二】差分隱私定義
在這裏,我們再深入思考一下,在剛剛的例子中我們發現,無論女士A的個人信息是否被包含在數據庫 中,攻擊的實施不會受到任何影響。
換句話說,對某個個體攻擊的實施可行與否,與數據庫中是否包含該個體無關。因此,從個人的角度來說,這種攻擊是“不可防範的”。
原文是這樣敘述的:
基於這樣的觀察,該文章對差分隱私給出了這樣的定義:
很容易理解,這個定義確保了只更改數據庫中的一條數據,對查詢的反饋“基本上”是以同樣的可能性出現的。
這個“基本上”是由參數 保證的。很明顯, 越小,隱私保護能力越強。
那麼如何達到這樣的目的呢?
定義中也給出了線索,就是隨機(randomized function )。
【三】函數的敏感度
在介紹差分隱私具體的實現方法之前,首先介紹這樣一個定義:函數的 (後文會用到):
定義了當一個participant改變時,查詢函數 所輸出結果的最大改變量。這樣的改變量往往被稱爲函數的敏感度,常用的還有,特別是在機器學習差分隱私領域。
在這裏我們舉個例子:
假設有這樣一個查詢 :數據庫 中共有多少個人(即,多少行)具有屬性 ?
那麼該查詢的 :.
值得注意的是,敏感度(無論是 還是 )是函數的固有屬性,與數據庫無關。
【四】差分隱私實現
除了定義之外,本文還給出了差分隱私的一種實現方法,剛剛我們也有提到(沒錯就是隨機),在查詢結果上直接加隨機噪聲:
這也是差分隱私機器學習領域中output perturbation方法的由來。
具體的實現方法如下:
基於指數分佈的隱私機制(privacy mechanism),用 表示,分佈函數如下:
上面的這個式子可能不是很容易理解,我們換個說法:
在得到真實查詢結果 之後,我們將其加上一個隨機噪聲, 其中 的概率分佈 如下:
上面的式子就是一個常規的指數分佈,方差爲 。
然後我們得到:
推算一下,其實這個過程和上面的式 (3) 其實是一樣的。
在這裏還有一個小小的疑問,就是函數 的輸出是 維的,我們加入的噪聲在這 維是互相獨立的,即:
現在,基於上面所描述的 privacy mechanism: ,我們可以得到這樣的結論:
【證明】
我們首先回顧一下式 (1) 中差分隱私的定義,很自然可以想到將兩個數據庫 和 分別 apply 之後做商,然後與 作比較:
式中等號上面的 (3) 指上文中的式 (3)。
根據三角不等式我們可以得到:
因此我們可以得到:
帶入差分隱私定義可以得到: 保證了 - differential privacy。
【證畢】
因此,如果想要保證 - differential privacy,利用上述 exponential privacy mechanism: ,需要滿足 .
值得一提的是,上述看似簡單的證明方法是後續(幾乎)所有output perturbation 證明方法的基本思路。
【五】其他
除了以上內容之外,本文還進一步給出了針對 個連續問題的差分隱私方法,將上面的 改換成這個問題集合中 的那個即可,很容易理解,在這裏就不再過多贅述。有興趣的朋友們可以自行閱讀文章~
如果本文中某些表述或理解有誤,歡迎各位大神批評指正。
謝謝!