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