機器學習中的隱私保護

導讀:近年來,隨著 GDPR 通用數據保護條例出臺以及一些互聯網公司數據隱私泄漏等事件的發生,數據隱私的保護問題在行業應用中備受關註。與數據密切相關的機器學習算法的安全性成為一個巨大挑戰。本文將介紹在機器學習領域中數據隱私安全的相關工作,並介紹第四范式在差分隱私算法效果提升上所做的工作。

主要和大傢分享數據隱私的3方面:

  • 隱私保護的問題與案例
  • 基於數據的隱私保護技術:數據匿名化
  • 機器學習模型訓練中的隱私保護技術:差分隱私

▌機器學習中的隱私保護問題

1. 信息隱私

信息隱私 ( Privacy ):指的是當一個組織內敏感數據被擁有權限的人員所使用於某些技術、過程 ( 如數據分析、訓練模型 ) 時,對數據敏感信息進行保護的過程與規則。

數據的隱私 ( Privacy ) 與安全 ( Security ) 並不等價:有的時候很多人提到數據隱私時,會與數據安全混為一談,但其實兩者並不等價。數據安全通常指防止數據被非法訪問;而數據隱私則一般指在數據被合法訪問時,防止其中的敏感信息被訪問者以某些方式"逆向"獲取,避免因數據被"逆向"推導出而造成的敏感信息泄露和濫用。當然,對於企業來說,數據隱私和數據安全都非常重要。

2. 信息隱私問題

如今,在很多需要用到私人敏感數據的領域中,都存在數據隱私的問題。特別地,當機器學習技術應用在一些個人隱私數據上時,可能會暴露敏感數據,對個人造成很多負面影響。

雖然現實生活中有很多數據隱私的問題,但嚴格意義上,個人隱私不可能被絕對保護。

1977年,統計學傢 Tore Dalenius 給出關於數據隱私的嚴格定義:攻擊者不能從隱私數據裡獲取任何在沒有拿到數據之前他們所不知道的個人信息。

2006年,計算機學者 Cynthia Dwork 證明上述定義的隱私保護是不存在的。有一個直觀例子可以幫助理解:假設攻擊者知道 Alice 的身高比 Lithuanian 女性平均身高高2英寸,這樣攻擊者隻需要從一個數據集裡獲得 Lithuanian 女性身高平均值 ( 在接觸數據前攻擊者並不知道 ),就能準確獲得 Alice 的精確身高,甚至 Alice 都不需要在這個數據集裡。因此,對於一份有信息量的數據,不可能完全不暴露隱私信息。

3. 隱私泄露的危害

隱私泄露的危害,主要有:

  • 隱私信息被應用於欺詐與騷擾:如盜刷信用卡、電話詐騙、冒用身份等
  • 用戶安全受到威脅:用戶信息受到泄露,引起更多有目的犯罪
  • 非法機構利用用戶隱私信息操控用戶
  • 用戶信任危機
  • 違背相關法律

不過一般來說,對於不特別極端的情況,我們仍可以從很大程度上來保證數據在機器學習過程中不被泄露。

這裡再分享一個隱私泄露的案例:

1997年,馬薩諸塞州 GIC 對外公佈瞭一組醫療數據,其中包括病人的5位郵編、性別、生日。州長 Weld 對公眾保證這份數據是匿名的,因為標識特征 ( 如名字地址 ) 已經被移除。結果一位 MIT 畢業生通過結合這份數據與她花瞭20美元購買的選民登記數據,找到瞭 Weld 的醫療記錄。同時,她還宣佈87%的美國公民可以通過5位郵編、性別、生日進行唯一標識。

這個真實案例印證瞭:任何有一定信息量的數據都有可能產生隱私泄露;單純的數據匿名方法是很難保護隱私的。接下來,我們來看一下,針對潛在的隱私泄露問題我們有哪些技術可以在很大程度上杜絕隱私的泄露。

▌數據匿名化技術 ( Data Anonymization )

數據匿名化是一個從數據層面上進行隱私保護的技術。匿名化很多時候是通過 hash 掉"姓名"等關鍵標識符來實現的。而在隻簡單 hash 掉姓名的情況下,數據訪問者有很多方法通過利用其它特征的信息來反推出某人在數據表中對應的那一條數據。這時候,就需要一種技術來防止訪問者能夠通過結合多個特征的數據來確定人與數據間的對應關系。

1. 數據表中數據列的類別 ( 按所含隱私量分類 )

  • 標識列 ( Key Attribute,簡稱 KA ):單憑其一列便能直接鎖定某人的數據列,如:身份證號、姓名 ( 大多數情況下 );
  • 半標識列 ( Quasi-identifier,簡稱 QID ):無法單憑其一列確定對象,但通過結合多列數據或查其它信息 ( 縮小范圍 ) 可以對應到個人的數據列,如:生日、郵編等;
  • 敏感信息列 ( Sensitive Attribute,簡稱 SA ):如疾病、收入等。

雖然隻有標識列的數據能夠直接縮小范圍到單個樣本,但如前文所述,僅匿名化標識列數據對於隱私保護是完全不夠的。

2. 攻擊方法與防護方法

① 鏈接攻擊

鏈接攻擊 ( Linkage Attack ):通過獲取其它渠道的信息 ( 如右表 ) 來鎖定 ( 見左表 ) 當前數據表中數據所對應的個人。

② K-Anonymity

K-匿名 ( K-Anonymity ):針對鏈接攻擊的防護方法。對於每一份數據的各版本內的每一條記錄,規定至少有 K-1 條其它記錄的半標識屬性與其一致。

上方右表就是對上方左表做"3-匿名"之後的結果:我們可以發現,在統一對"zipcode"、"age"、"sex"三列的數據的末尾作模糊 ( 相當於匿名化 ) 處理後,含有"zipcode:47677**,age:2*,sex:*"的信息的數據共有3條 ( 這3條記錄中的任一條,均滿足至少有3-1=2條其它記錄的半標識屬性與其一致 );左表原數據中的另外3條經變換後也滿足3-匿名的條件。

左表在 K-Anonymity 之後,雖然數據會有所損失,但保證瞭每條數據中的敏感信息無法與個人一一對應,降低瞭隱私泄露的風險。如何在盡可能小的數據損失的情況下做 K-Anonymity 也是一個數據隱私的研究方向。

③ Homogeneity attack

同質化攻擊 ( Homogeneity Attack ):可克制 K-Anonymity 防護的攻擊。某些情況下,可通過直接對比其它列信息或查找其它外部資料發現,K-Anonymity 中半標識列均相同的 ( 至多 ) K 條數據的其他列的信息其實是同質的,因而確定下來某人的隱私數據。

上方右表說明:經對比可發現 Bob 必然患有 Heart Disease;而假如能夠另通過查資料發現 Carl 所在地人們普遍患有 Heart Disease,就還可以推斷出 Carl 大概率是患 Heart Disease 的那例樣本。

④ L-Diversity

L-散度 ( L-Diversity ):對 K-Anonymity 的改進。在滿足 K-Anonymity 的基礎上,要求所有等價類 ( 即各半標識列信息均相同的一些樣本 ) 中的敏感信息 ( 如:病史中的 Heart Disease、Flu ) 的種類/取值至少有 L 種。上表就是一個滿足3-散度的數據。

⑤ 相似性攻擊

相似性攻擊 ( Similarity Attack ):可對滿足 L-Diversity 的數據進行攻擊。從外界獲取個人多方面的背景信息,縮小范圍以鎖定目標。

⑥ T-Closeness

T-保密 ( T-Closeness ):對 L-Diversity 的拓展。對於滿足 K-Anonymity 的數據,規定每一個等價類中的敏感信息的分佈與數據集整體的敏感信息分佈的距離 ( 可自行定義,常見的有:K-L 散度 ) 小於 T。

▌差分隱私 ( Differential Privacy ) 技術

除瞭數據匿名化不當以外,由數據和特定建模方法得到的模型同樣有隱私泄露的風險 ( 被攻擊獲取到原數據中的隱私信息甚至原數據本身 )。差分隱私在機器學習模型的建模過程中應用較廣。

1. 模型的隱私保護風險

未經過隱私保護處理的機器學習模型理論上可能暴露訓練數據裡的敏感信息。

Membership inference attack:

成員推斷攻擊 ( Membership Inference Attack ):探測一個給定樣本是否屬於訓練某"待破解"模型 ( target model ) 的原數據集。

步驟 ( 參考論文見上圖 ):

① 模擬生成和訓練 target model 的原數據集分佈類似的一系列數據集 ( 即shadow datasets ),用與訓練 target model 相同的訓練算法 ( 訓練算法是什麼很容易得知 ) 去訓練出對應的一系列的模型,這些模型稱為 "shadow models",這些 shadow models 和 target model 的特征分佈是很像的;

② Attack Model 的訓練。數據集構成:對於每一個 shadow datasets 中每一條數據,可以構建此條數據在某個 shadow model 上的預測結果、該數據真實 label 作為訓練樣本,將此條數據是否屬於之該 shadow model 作為標簽。通過構建的數據集再即可訓練 Attack Model,能夠判斷任意一條給定的數據是否屬於原數據集;

③ 對於一條數據,對於該數據 target model 的預測結果和真實 label 作為輸入,通過判斷模型就可以判斷出該數據是否屬於 target dataset 的。

右圖為上述思路的一例實際應用,可以看出如果對訓練模型的方法不加處理的話,原數據集被成員推斷攻擊法破解的程度還是很高的。

Model Inversion Attack:

模型逆向攻擊 ( model inversion attack ):是指攻擊者通過模型與某個樣本的其他特征,直接推斷某個敏感特征值。

2. 差分隱私技術 ( Differential Privacy )

如果對於任兩個隻相差1個樣本的數據集 D1、D2,在通過過程 M 建模後,產生的模型與給定模型t完全相同的概率之比不大於 eε ( 其中 ε 為某非負數,為隱私預算 ),那麼我們說建模過程 M 是 ε-差分隱私的。

理解:如果建模過程 M 是 ε-差分隱私的,且 ε 很小,那麼數據集和其訓練出來的模型關系很小,即兩個相差有固定上限的數據集訓練出來的模型是幾乎一樣的,所以拿到模型的訪問者即便知道大致的數據分佈也並不能推斷出原數據集;反之,如果 ε 很大,那麼兩個相差有固定上限的數據集訓練出來的模型可能天差地別的,那麼這種情況下,原數據集與得出的模型間一一對應的比例很高,知道訓練出來的模型就很有可能能夠通過模型的分佈倒推出原數據集。也就是說,如果改變一條的數據對最終得到的模型影響很小,那麼數據集隱私暴露的風險就很小,反之則很大。

① 差分隱私下的模型訓練

  • 對目標函數添加一定的噪聲:訓練出來的模型會帶有一定的隨機性,可證明這樣的隨機性可滿足差分隱私。
  • 在梯度上加噪聲:深度學習比較常用,因為對於深度學習模型,如果把噪聲加在目標函數或輸出上,差分隱私的分析會很復雜。
  • 在模型輸出上加噪聲:使得不一樣的原數據集輸出的模型差異變小。

不過,作為代價,數據隱私保護得越好,算法的性能下降得越多。在訓練樣本復雜度相同的情況下,隱私保護越好 ( ε 越小 ),泛化誤差越大。

② 基於特征切分的差分隱私算法

按特征來切分做差分隱私,而非做基於樣本切分的差分隱私:

數據先按樣本切分為上下2份,其中一份按特征切成 K 份去學 K 個子模型,這些子模型再在剩下的一半樣本上用預測值去融合出新的 ( 第二層的 ) K 個子模型,其中切分和融合都是用差分隱私去做的。可證明最後總的輸出是滿足差分隱私的。

按特征切分的原因:

僅保證差分隱私是不夠的,還需保證算法的性能。由上圖公式可發現,給重要的特征分配更多隱私預算,訓練樣本復雜度會減小,訓練出的子模型效果會更好。

③ 在遷移學習中的應用

按②中所述方法做特征切分,在假設遷移部分對子模型做差分隱私保護,最後做含差分隱私的融合。

今天的分享就到這裡,謝謝大傢。

分享嘉賓:郭夏瑋 第四范式 資深研究員

編輯整理:蔣瑞堯

內容來源:第四范式 | 先薦

出品平臺:DataFun

註:轉載請在後臺留言“轉載”。

添加小助手鏈接:https://wpz.h5.xeknow.com/s/1TDwk4

1.免費資料領取:點擊上方鏈接添加小助手回復【大數據合集】免費領取《大數據典藏版合集》

回復【算法合集】免費領取《互聯網核心算法合集》

2.添加交流群:點擊點擊上方鏈接添加小助手回復【大數據交流群】加入“大數據交流群”

回復【算法交流群】加入“算法交流群”

赞(0)