王旭,萬長勝
〔1.東南大學(xué)網(wǎng)絡(luò)空間安全學(xué)院,江蘇南京 211189;2.網(wǎng)絡(luò)空間國際治理研究基地(東南大學(xué)),江蘇南京211189〕
隨著互聯(lián)網(wǎng)行業(yè)的迅速崛起,全球數(shù)據(jù)量呈指數(shù)級增長,數(shù)據(jù)的采集與發(fā)布越發(fā)頻繁,信息數(shù)據(jù)共享更加方便。然而在大數(shù)據(jù)帶來極高商業(yè)價值的同時,以共享信息和數(shù)據(jù)挖掘為目的的數(shù)據(jù)發(fā)布過程中出現(xiàn)的隱私泄露事件頻發(fā),例如FaceBook與數(shù)據(jù)分析公司Cam-bridge Analytica的不當共享造成8,700萬用戶個人信息泄露[1]等。
為了避免數(shù)據(jù)發(fā)布時的隱私泄露問題,K-匿名模型在隱私保護領(lǐng)域得到了廣泛的應(yīng)用。然而將部分數(shù)據(jù)匿名化,勢必會導(dǎo)致數(shù)據(jù)挖掘算法性能的下降,因此本文提出了一種基于極端梯度提升特征重要性的K-匿名特征選擇算法,并通過在真實數(shù)據(jù)集上的實驗,驗證了本文的算法無論在平衡隱私保護和數(shù)據(jù)挖掘性能方面還是在運行效率方面都優(yōu)于文獻[2]中基于Greedy_Ha- -mdist的特征選擇算法。
數(shù)據(jù)發(fā)布或共享時最常用的數(shù)據(jù)類型為關(guān)系型數(shù)據(jù)表,數(shù)據(jù)屬性一般可分為標識符、準標識符、敏感屬性和非敏感屬性4類。例如,表1所示某醫(yī)院的就診記錄表部分數(shù)據(jù),當將此部分數(shù)據(jù)進行共享發(fā)布時,由于涉及到病人的隱私,一般需要將信息脫敏,最簡單的方法便是將姓名屬性去除。但是當攻擊者擁有某些患者的背景知識,通過一些屬性的組合也可以推斷出患者隱私,例如已知張三是一名郵編為102211的42歲女性患者,即使數(shù)據(jù)表中沒有姓名這一屬性,也可推測出張三患有感冒。其中,姓名即為標識符,疾病為敏感屬性,而性別、年齡以及郵編屬于準標識符,非敏感屬性即不屬于上述三類的特征。
表1 就診記錄表
(1)K-匿名概念
K匿名模型常用于抵抗鏈接攻擊,為了便于討論,設(shè)待發(fā)布數(shù)據(jù)如表2所示,該數(shù)據(jù)表包含X1,...Xn共n條記錄,其中Ai(i=1,2,...m)為準標識屬性,AS為敏感屬性。
隱私模型要求每條記錄在公布的數(shù)據(jù)中與其他至少K-1條記錄無法被區(qū)分開來[3]??梢姡琄-匿名模型要求對匿名處理后的數(shù)據(jù)表中的每條記錄Xi,都應(yīng)至少有K-1條記錄在準標識符上的取值與Xi相同。K值越大,說明無法區(qū)分的記錄越多,攻擊者由準標識符推斷出敏感信息的概率越低,即隱私泄露的風(fēng)險越小。
表2 待發(fā)布數(shù)據(jù)表
(2)K-匿名特征選擇
對于給定的K值,待發(fā)布數(shù)據(jù)表不一定可以滿足K-匿名模型的要求,此時就需要對數(shù)據(jù)表中的準標識屬性進行選擇,使得選擇出來的特征子集構(gòu)成的數(shù)據(jù)表滿足K-匿名模型的要求。如表3所示,Ai(i=1,2...5)為待匿名特征,假設(shè)K-匿名模型選取K為2,如果特征集為(A1,A4,A5),即表中灰色部分的數(shù)據(jù),則該子集滿足2-匿名的條件。
表3 K-匿名特征選擇示例
XGBoost (Extreme Gradient Boosting)也稱作極端梯度提升,算法的基本思想是選擇部分的特征和樣本生成一個簡單的模型(本文為決策樹)作為基本分類器,通過學(xué)習(xí)前一個模型的殘差并最小化目標函數(shù)來生成新模型,重復(fù)執(zhí)行此過程直到滿足終止條件,最終生成大量簡單模型并組合為準確率較高的綜合模型。其核心在于新的模型在相應(yīng)損失函數(shù)梯度方向建立,修正“殘差”的同時控制復(fù)雜度[4]。
(1)目標函數(shù)
XGBoost的目標函數(shù)由損失函數(shù)和正則項兩部分組成,損失函數(shù):
其中,N為樣本個數(shù),yi為第i個樣本的標簽,fm(xi)為第i個樣本在第m次迭代中的預(yù)測值。L(θ)以LogLoss為損失函數(shù),設(shè)其關(guān)于fm(xi)一階導(dǎo)數(shù)和二階導(dǎo)數(shù)可分別表示為gi和hi,則通過泰勒展開式可以將L(θ)近似表示為:
本文所用的基本模型為回歸樹,正則項表達式為:
其中,T為葉子節(jié)點個數(shù),w為每個葉子節(jié)點的權(quán)值,γ與λ分別為T和w的懲罰系數(shù),二者控制樹的復(fù)雜度從而防止過擬合。經(jīng)決策樹被歸至葉子節(jié)點Ij的樣本的損失函數(shù)的一階導(dǎo)數(shù)和二階導(dǎo)數(shù)之和可分別表示為Gi和Hi,去除常數(shù)項部分,對其關(guān)于w求導(dǎo)得到使目標函數(shù)最小的最優(yōu)w,將其帶入目標函數(shù),函數(shù)變?yōu)椋?/p>
(2)特征重要性度量指標
重要性度量是衡量每個特征對樣本進行分類時貢獻程度的方法,XGBoost一般可以根據(jù)特征分裂的平均次數(shù)、特征平均覆蓋率和特征的平均增益對特征重要性進行度量。由于前兩者只是反映了特征在模型分裂過程中作為決定性特征出現(xiàn)的相對頻率和次數(shù),而平均增益直接反映了以此特征分裂后帶來的準確率的提升程度,是解釋特征重要性的最相關(guān)屬性,因此本文主要通過特征平均增益來確定每個特征的重要性指標。
設(shè)該模型最終共有X個決策樹,對每個特征的重要性度量指標計算,需要將其在每棵樹(即每個基分類器)中的增益相加并取平均,即:
通過特征選擇的方法可以實現(xiàn)數(shù)據(jù)集的K-匿名從而保護數(shù)據(jù)隱私,但是從全部特征中得到最佳匿名特征子集是NP完全問題,如表3所示,其中除了(A1,A4,A5)滿足2-匿名要求,(A2,A4,A5)也滿足2-匿名的條件。在對不同的特征對應(yīng)的子集進行數(shù)據(jù)挖掘時,其分類性能是不同的,為了使得在隱私得到保護的前提下數(shù)據(jù)挖掘分類性能較高,本文提出了利用極端梯度提升算法度量特征重要性,按照特征重要性對原始數(shù)據(jù)集特征進行排序,并采用序列前向搜索的貪心策略,進行K-匿名特征選擇[5]。
根據(jù)實驗思路,通過極端梯度提升算法衡量每個特征重要性,并根據(jù)其重要性將特征降序排序,特征子集初始化為空集,并依次把分類性能最高(特征重要性指標最大)的特征加入特征子集,并判斷數(shù)據(jù)在特征子集上是否符合K-匿名條件,若具有K-匿名性,則將該特征留下,否則剔除,具體算法如算法1所示。
算法1:XGB-KA(D,K)
算法第8行K-anonymity_test(D′)用來判斷數(shù)據(jù)集D′是否滿足K-匿名條件,即任一條記錄都至少有K-1條記錄在準標識特征上與其具有相同的取值(即有相同的準標識符),具體實現(xiàn)過程如算法2所示,其中2~9行實現(xiàn)了等價類的劃分(每個q為一個等價類,字典中q對應(yīng)的取值表示該等價類中包含多少條記錄)。
為了驗證本文提出的XGB-KA算法可以有效地平衡數(shù)據(jù)分類挖掘性能和隱私保護程度,本次實驗選取了兩個UCI常用的真實數(shù)據(jù)集—Adult以及Breast-Cancer-Wisconsin數(shù)據(jù)集進行特征選擇和數(shù)據(jù)挖掘,由于文獻[2]中Greedy-Hamdist算法整體思路與本文類似,只是衡量特征重要性所用算法不同,因此將本文算法與Greedy-Hamdist算法在挖掘分類性能和運行效率兩個方面進行對比。
算法2:K-anonymity_test(D′)
Breast-Cancer-Wisconsin數(shù)據(jù)集共699條記錄,11個特征;Adult數(shù)據(jù)集共32,561條記錄,14個特征,本次實驗按照原數(shù)據(jù)集正負樣本比例隨機抽取了1,500條記錄。
本次實驗首先對數(shù)據(jù)集進行預(yù)處理,然后利用極端梯度提升特征重要性進行K-匿名特征選擇,最后通過SVM模型對匿名后的子數(shù)據(jù)集進行分類。算法性能采用Precision和Recall兩個指標進行測評,算法效率則通過運行時間進行對比分析。
本次實驗環(huán)境為:Intel(R) Core(TM)i5-5200U CPU @2.20GHZ 2.20GHZ;4.00GB(RAM)內(nèi)存;Windows 10 64位操作系統(tǒng)。算法均通過Python3.7.5實現(xiàn)。
在不同的K值下,對本文提出的XGB-KA算法和文獻[2]提出的Greedy-Hamdist算法在兩個數(shù)據(jù)集上分別進行分類實驗,得到的結(jié)果如圖1-圖4所示。當K=0時,數(shù)據(jù)集隱私完全沒有受到隱私保護,隨著K值的增大,隱私保護程度越來越高,但由于只保留較重要的特征,分類性能在可接受的范圍內(nèi)有所下降。除此之外,無論K值為多少,本文提出的XGB-KA算法性能都優(yōu)于Greedy-Hamdist算法,可見在同等隱私保護程度的前提下,XGB-KA的分類性能優(yōu)于Greedy-Hamdist算法。
圖1 兩種算法在不同K值下的Precision1
圖2 兩種算法在不同K值下的Recall1
通過統(tǒng)計不同K之下兩個算法運行的時間來比較其效率,實驗結(jié)果如圖5和圖6所示,由于不同的K值下需要剔除的特征數(shù)量不同,兩種算法在不同K值的運行時間均有一定的波動,但本文提出的XGB-KA算法運行時間均短于Greedy-Hamdist算法,這表明XGB-KA算法運行效率更優(yōu)。
圖3 兩種算法在不同K值下的Precision2
圖4 兩種算法在不同K值下的Recall2
圖5 兩種算法在不同K值下的運行效率1
圖6 兩種算法在不同K值下的運行效率2
本文利用極端梯度提升特征重要性衡量特征對分類結(jié)果的貢獻度,并結(jié)合K-匿名條件對數(shù)據(jù)集進行特征選擇,使得經(jīng)過選擇后的特征子集在原始數(shù)據(jù)集上投影得到的子數(shù)據(jù)集在得到隱私保護的同時保持了較好的分類性能。實驗結(jié)果證明,無論在分類性能還是在實現(xiàn)效率上,本文提出的XGB-KA算法都優(yōu)于文獻[2]中的Greedy-Hamdist算法。
未來可以考慮將特征選擇方法與其他隱私保護模型相結(jié)合或者利用其它更加高效的特征重要性度量方法,更好地實現(xiàn)隱私保護程度和數(shù)據(jù)挖掘性能之間的平衡。