網路資料隱私保護,阿里工程師怎麼做?
阿里妹導讀:基於海量個人資料的挖掘和分析,在帶來巨大價值的同時,也讓個人隱私岌岌可危。比如,在移除資料中識別符號屬性(身份證號碼,手機號碼,姓名等)的情況下,簡單地分析其他屬性組成的準識別符號,仍能夠輕易地識別個人,個人資訊存在巨大的暴露風險。如何更好保護網路資料隱私?一起來看看阿里技術團隊的探索。
個人資料探勘和個人隱私保護,並非魚與熊掌,可視分析的技術手段能夠幫助我們保護個人隱私資料,避免後續的資料探勘暴露隱私的同時,平衡資料質量發生的變化,減少對後續資料探勘的影響。針對網路資料中的隱私保護問題,浙江大學、加州大學戴維斯分校和阿里雲DataV團隊,共同發表了最新的研究成果《GraphProtector: a Visual Interface for Employing andAssessing Multiple Privacy Preserving Graph Algorithms》【1】,這項成果也已論文形式收錄在IEEE TVCG中。
圖一 GraphProtector 系統。 a) 保護器檢視 b) 歷史記錄檢視 c) 實用性檢視 d) 優先順序檢視
背景
關係描述了人與人之間的互相聯絡,它可以是一種靜態的連線,如“親屬”、“朋友”等,也可以是動態的,通過動作將其關聯,例如“通話”、“郵件”等。科技的進步使得人與人之間的聯絡更為密切,關係變得更復雜,進而形成了一張偌大的網,因此,我們也把這類資料稱之為網路資料(或圖資料)。網路資料的研究被廣泛應用於各個領域,它能夠幫助識別社團、劃分人群,定位特殊人物、研究資訊傳播、追蹤欺詐行為等。但在對這類資料進行研究的同時,伴隨著巨大的隱私洩露風險。為了能夠在探索資料背後巨大價值的同時,保護使用者的隱私不被洩露,我們提出了一個能夠應對網路資料隱私攻擊,提供有效隱私保護的可視分析系統——GraphProtector,它不僅能夠更全面、更細緻地保護使用者隱私,同時也能夠兼顧資料的實用性,保證資料的質量。
隱私保護方法和流程
針對網路資料的隱私保護相較於一般資料而言,更為困難,原因主要有以下兩點:
1) 網路資料自身結構特徵繁多,例如,度數分佈,最短路徑分佈,接近中心性分佈等,任意的結構特徵都有可能成為攻擊者的攻擊入口,可謂是防不勝防;
2) 網路資料中節點和邊都攜帶了大量的資料,這些資料無疑給了攻擊者更多的機會去識別使用者現實世界中的身份。
因此,想要完全解決圖資料中的隱私問題,將會是一個非常複雜和困難的工作。在當前階段,我們將研究的重點放在了網路資料的結構特徵上,通過修改圖的結構特徵保護使用者的身份不被洩露。其中,之所以選擇結構特徵作為著手點,最重要的原因是結構特徵是網路資料的基礎屬性,解決結構特徵暴露的隱私風險是是解決隱私暴露的必經之路。在這次的研究中,我們先以以下三種結構特徵作為示例:
度數:節點度數是和它關聯的邊的總數(如圖二中,圖c表格中Degree展示了原始圖圖a的度數分佈);
中心指紋:是指在最長路徑`i`的限制下,圖中普通節點和中心節點們之間的最短路徑所形成的向量。這裡為了簡化複雜度,我們取`i`設為了`1`,即普通節點和中心節點們是否存在相鄰關係作為節點的中心指紋(如圖二中,圖c中HubFingerprint為選取了原始圖圖a中4號節點和7號節點作為中心的的中心指紋分佈);
子圖:指節點集和邊集分別是某一圖的節點集的子集和邊集的子集的圖(如圖二中,圖b為原始圖圖a的子圖);
圖二結構特徵舉例。 a) 原始資料 b) 子圖 c) 度數分佈和中心指紋分佈
前人的研究提供了多種隱私匿名保護思路,如k-匿名、聚類和查分隱私等等,我們在研究中選取了k-匿名模型作為我們保護的基本方法。k-匿名模型是最經典的語義匿名模型之一,在隱私保護領域得到了廣泛的應用,在這個模型中,它通過準識別符號將資料分成若干個等價類(例如度數相同的節點形成了一個度數等價類,中心指紋相同的節點形成了一箇中心指紋等價類,結構相同的子圖形成了一個子圖等價類),並要求每個等價類中至少存在k個數據記錄(例如當k為2時,k-匿名模型要求每一個度數等價類中至少存在2個節點),對於這k個數據記錄中的任意一條,被識別出的概率為1/k,從而使得攻擊者無法確定他們的攻擊目標。
通過前人的研究分析我們得知,沒有任何一種隱私保護方法能夠抵抗所有的攻擊,k-匿名模型是眾多方法中最為強大的一種,它在一定條件下可以抵抗大部分的隱私攻擊,並且對於資料質量傷害的程度較小,使得經過隱私匿名保護後的資料仍然能夠應用於後面的分析和研究中。
在k-匿名模型的基礎上,為了儘可能地減少對資料質量的損害,我們採取了保持節點個數不變,僅增加或減少邊的策略。同時,在目前我們的研究中,為了減少保護方法之間的衝突以及降低計算的複雜度,我們首先將研究的重點放在了增加邊的策略上。
上文中多次提到了“資料質量”,保證資料質量是我們隱私保護過程中的一個重要目標(試想,如果不考慮資料質量,我們完全可以同化所有的使用者資料,這樣一來攻擊者將無法定位到攻擊目標,但這樣的資料卻失去了研究意義)。在使用k-匿名模型增加邊的方法來保護資料隱私時,有兩種處理策略:
1)為當前等價類中的元素增加適當的邊,使得這些元素全部轉移到其他等價類中,使得當前等價類不存在,也就不會存在隱私暴露風險;
2)為其他等價類中元素增加適當的邊,使其中的元素轉移到當前等價類中,從而使當前等價類滿足k-匿名模型的要求。基於保護資料質量的目的,對於這兩種策略,我們將計算它們的代價,及增加邊的數量,採取代價較小的的方法執行。我們設計了詳細的演算法來實現這一目標。另一方面,對於資料質量的變化,系統提供若干的實用性指標,如度數、最短路徑等,我們將在資料處理中以及資料處理後呈現這些指標的變化,幫助使用者進行決策,從而能夠採取“最優”的解決方案。
下圖展現了採用`GraphProtector`進行網路資料隱私保護的流程:
圖三 GraphProtector 的隱私保護流程。 a) 資料匯入 b) 優先順序制定及實用性指標選取 c) 隱私保護處理 d) 資料匯出
資料匯入:首先,匯入待保護的網路資料,系統將使用節點連線圖的形式呈現原始資料。此外,系統還提供一些原始資料的結構特徵分佈供使用者觀察和探索。
優先順序制定及評估指標選取:在這個階段,通過觀察原始資料的結構特徵分佈,使用者對節點的優先順序進行排序,優先順序排序決定了節點的處理順序,排序較高的節點將會被優先處理。此外,使用者在優先順序排序時可以鎖定一些節點,被鎖定的節點(一般為比較重要的節點,如核心人物等)將不會參與到處理過程中,因此在隱私保護處理前後,它的關聯關係將不發生改變。在這個階段,使用者還需要選擇關注的實用性指標,在資料處理前後,系統將呈現這些指標的變化,使用者可以通過它們來評估資料質量的變化。
隱私保護處理:經過以上步驟,我們進入了隱私保護的核心步驟,系統在這個階段提供多個保護器(Protector)用來進行隱私保護處理。每一個保護器僅針對一種結構特徵,使用者可以按照自己的需求選擇多個保護器進行組合,從而實現更為全面和細緻的保護。
這些保護器的使用方法將統一遵循圖三種c圖所示的流程,首先,根據使用者自定義的k值,保護器會去識別資料中風險,並將風險通過一定的視覺編碼呈現給使用者。然後,使用者可以制定一個或多個保護方案(即保護目標),對於每一個制定的方案,使用者都可以檢視處理前後資料實用性指標的變化。接著,使用者對比不同方案的處理結果,觀察是否達到了隱私保護的目的,以及資料質量變化是否在可接受的範圍之內,最終選擇“最優”的方案進行執行。
匯出資料:最後,當資料處理到滿意的程度時,使用者可以選擇匯出經過處理的的資料和資料的節點連結圖,以及指標變化情況。
系統設計
下面將向大家詳細介紹GraphProtector 系統的視覺化及互動設計。系統主要圍繞兩個介面進行(圖一和圖四):
圖四 GraphProtector 系統主要初始介面。 a) 節點連結圖檢視 b) 優先順序檢視 c) 實用性檢視
圖四展示了資料匯入(圖四a)和優先順序制定(圖四b)及評估指標選取(圖四c)階段的檢視:
節點連結圖檢視(圖四a):主要通過節點連結圖以及力引導佈局形式展現了原始資料的分佈,在資料處理過程中,使用者可以調出該檢視檢視資料變化。
優先順序檢視(圖四b):使用者可以通過結構特徵優先順序的分佈,在座標軸上選取節點屬性的範圍,從而制定節點的優先順序。檢視右側的每一個區塊都代表了一個節點集合,其中羅列了該集合中節點的屬性以及該集合中節點的個數,使用者通過拖拽互動來調整集合的優先順序順序,以及選擇是否鎖定某些集合的節點。
實用性檢視(圖四c):使用者通過這個檢視,選取所關注的資料質量評估指標,這些指標的變化將會在處理前後呈現出來。
圖一為隱私保護處理(圖一a,b)和資料匯出階段的檢視:
保護器檢視(圖a):主要用於風險定義,風險識別,風險處理和資料評估。這些保護器具有統一的處理流程(如下圖五所示),分別通過保護器中的以下控制元件完成:
圖五保護器主要控制元件。 a) k值輸入框 b) “半執行”按鈕 c) “記錄”按鈕 d) “方案相簿”按鈕
全域性k值輸入框:快速設定保護器內的k值;
“半執行”按鈕:模擬執行制定方案的執行結果,並記錄資料變化;
“記錄”按鈕:記錄一個方案,方便後續對比不同方案的執行效果;
“方案相簿”按鈕:展現所有被記錄的方案以及這些方案被執行後的實用性指標變化,方便使用者進行比較,從而選取“最優”方案執行;
目前系統設計了三種保護器,分別為度數保護器,中心指紋保護器和子圖保護器。
度數保護器
我們採用柱狀圖可視化了資料中的節點度數分佈,橫軸編碼度數,按照從小到大的順序排列,此外,在橫軸上,我們還設計了一個“度數跳躍”符來編碼度數分佈之間的跳躍情況。縱軸編碼該度數等價類中的節點個數,藍色和灰色矩形分別編碼鎖定和未鎖定的節點個數。
為了減少使用者的認知和互動負擔,我們設定了縱軸上的最高值,這個值是我們認為的安全值,即當度數等價類中的節點個數超過這個值時,這個等價類一般是安全的,所以當節點度數高於這個值時,我們可以暫且忽略其具體值,而將重點放在那些不滿足k值的節點上。系統用虛線來編碼整體k值(在系統中,我們稱之為k線),輔助使用者判斷k值和節點個數的關係,從而定位風險所在。使用者除了可以通過滑動座標軸上滑塊來調整當前保護器內的整體k值外,還可以通過刷選度數範圍,調整範圍內的區域性k值(系統中用實線編碼),制定更加細緻的隱私保護方案。
中心指紋保護器
中心指紋保護器分為兩個部分,左側為中心節點選取面板,右側為中心指紋樹。中心節點選取面板呈現了所有節點的結構資訊,使用者通過這個面板,選取重要的節點作為中心節點。右側中心指紋樹將根據使用者的選擇進行實時響應,樹上每個節點代表了一箇中心指紋等價類,即這個等價類中的節點具有相同的中心指紋,樹中深度為i+1的等價類節點表示與i箇中心節點相鄰,所以若n為中心節點的個數,那麼樹的高度為n+1。
中心指紋樹上的每一個節點編碼與度數等價中的編碼保持一致,虛線表示當前保護器設定的整體k值,藍色和灰色舉行分別編碼鎖定和未鎖定的節點個數,右側從上到下排列的i個矩形分別代表i箇中心節點,順序和左側中心節點選取面板中中心節點的順序保持一致,只有與當前節點等價類關聯的中心節點所代表的矩形將才會被繪製出來,通過這種編碼方式表達每個中心指紋等價類的指紋資訊。
子圖保護模組
子圖保護器分為三個部分,左側為子圖設定面板,使用者通過這個面板設定子圖,子圖可以來自於一些經典拓撲結構,如形狀結構,環形結構等,也支援從外部匯入。在子圖設定面板中,系統同樣通過灰色矩形的個數編碼識別得到的子圖的個數。中間面板為子圖識別面板,將視覺化圖中識別得到的當前子圖結構和相似子圖結構,當識別得到的當前子圖結構不滿足k值時,使用者可以選擇將相似的子圖補全成為當前的子圖。右側子圖結構展示面板,使用者可以通過與子圖識別面板的互動檢視子圖在圖中的位置。
歷史記錄檢視
歷史記錄檢視使用時間軸的形式可視化了每一步隱私保護操作後資料的變化。在每一個歷史記錄中,標題描述了該步驟採用的是哪種型別的保護器,記錄左側我們採用CDE(curvedensity estimates)的方法可視化了圖的原始分佈(即圖四a的節點連線圖),邊越多顏色越深。在CDE得到的分佈圖上,我們使用深色的直線表示當前處理所增加的邊,當用戶滑鼠移動到一個歷史記錄時,該步所增加的邊將在圖四a中高亮出來。右側則呈現了資料指標的變化,包括指標的當前值和變化量,通過紅綠顏色編碼指標的增加和遞減,而對於不能計算增量的指標,我們用藍色進行編碼。
最後,通過一段視訊結束本次的介紹,歡迎關注和探討。
參考資料:
【1】https://ieeexplore.ieee.org/document/8440807/
你可能還喜歡
點選下方圖片即可閱讀
關注「阿里技術」
把握前沿技術脈搏