如何實(shí)現(xiàn)機(jī)器學(xué)習(xí)模型的敏感數(shù)據(jù)遺忘?
一.概述
隨著機(jī)器學(xué)習(xí)方法越來(lái)越多地應(yīng)用于網(wǎng)絡(luò)安全領(lǐng)域的數(shù)據(jù)分析中,如果模型無(wú)意中從訓(xùn)練數(shù)據(jù)中捕獲了敏感信息,則在一定程度上存在隱私泄露的風(fēng)險(xiǎn)。由于訓(xùn)練數(shù)據(jù)會(huì)長(zhǎng)期存在于模型參數(shù)中,如果向模型輸入一些具有誘導(dǎo)性質(zhì)的數(shù)據(jù),則有可能直接輸出訓(xùn)練樣本。同時(shí),當(dāng)敏感數(shù)據(jù)意外進(jìn)入模型訓(xùn)練,從數(shù)據(jù)保護(hù)的角度出發(fā),如何使模型遺忘這些敏感數(shù)據(jù)或特征并保證模型效果成了亟待解決的問(wèn)題。
本文介紹了一種基于模型參數(shù)的封閉式更新來(lái)實(shí)現(xiàn)數(shù)據(jù)遺忘的方法,這一工作來(lái)自2023年Network and Distributed System Security (NDSS) Symposium的一篇論文,無(wú)論模型的損失函數(shù)是否為凸函數(shù),這一方法均可以實(shí)現(xiàn)顯著的特征和標(biāo)簽數(shù)據(jù)遺忘的效果。
二. 常見(jiàn)的模型數(shù)據(jù)遺忘方法
目前常用的機(jī)器學(xué)習(xí)數(shù)據(jù)遺忘方法包括以下幾種:可以在刪除數(shù)據(jù)后重新訓(xùn)練,這一方法要求保留原始數(shù)據(jù)且從頭訓(xùn)練較為昂貴。當(dāng)需要改動(dòng)的數(shù)據(jù)并非獨(dú)立存在,或者存在大量數(shù)據(jù)需要被脫敏時(shí),通過(guò)刪除數(shù)據(jù)來(lái)重新訓(xùn)練模型的方法難度也較大。另有研究通過(guò)部分逆轉(zhuǎn)機(jī)器學(xué)習(xí)的學(xué)習(xí)過(guò)程,并在此過(guò)程中刪除已學(xué)習(xí)的數(shù)據(jù)點(diǎn),從而滿足減少隱私泄露的需求。然而這一方法的計(jì)算效率通常較低,且對(duì)模型準(zhǔn)確性產(chǎn)生一定的影響,所以在實(shí)際操作時(shí)可行性較低。
此外,研究人員也提出了分片法,通過(guò)將數(shù)據(jù)分割成獨(dú)立的分區(qū),基于每個(gè)分區(qū)訓(xùn)練子模型并聚合成最終模型。在分片法中,可以通過(guò)僅重新訓(xùn)練受影響的子模型來(lái)實(shí)現(xiàn)數(shù)據(jù)點(diǎn)的遺忘,同時(shí)其余子模型保持不變。這一方法的缺點(diǎn)在于,當(dāng)需要改變多個(gè)數(shù)據(jù)點(diǎn)時(shí),重新訓(xùn)練的效率會(huì)迅速下降,隨著需要?jiǎng)h除的數(shù)據(jù)點(diǎn)數(shù)量增加,所有子模型需要被重新訓(xùn)練的概率也顯著提高。例如,當(dāng)分片數(shù)量為20時(shí),移除150個(gè)數(shù)據(jù)點(diǎn)就需要對(duì)所有分片進(jìn)行更新,即隨著受影響數(shù)據(jù)點(diǎn)的數(shù)據(jù)增加,分片法相對(duì)于再訓(xùn)練的運(yùn)行效率優(yōu)勢(shì)逐漸消失。其次,相對(duì)于移除受影響的特征和標(biāo)簽而言,移除整個(gè)數(shù)據(jù)點(diǎn)會(huì)降低再訓(xùn)練模型的性能。
三.設(shè)計(jì)思路
為了解決這一問(wèn)題,本文介紹的方法從解決特征和標(biāo)簽中隱私問(wèn)題的角度出發(fā),將移除數(shù)據(jù)點(diǎn)轉(zhuǎn)化為模型的封閉式參數(shù)更新,從而實(shí)現(xiàn)在訓(xùn)練數(shù)據(jù)中的任意位置校正特征和標(biāo)簽,如圖1所示。
圖1(a)基于實(shí)例的數(shù)據(jù)遺忘和(b)基于特征和標(biāo)簽的數(shù)據(jù)遺忘
當(dāng)隱私問(wèn)題涉及多個(gè)數(shù)據(jù)點(diǎn),但僅限于特定的特征和標(biāo)簽時(shí),使用這一方法比刪除數(shù)據(jù)點(diǎn)更加有效。此外,該方法具有較高的靈活性,不僅可以用于修改特征和標(biāo)簽,也可以用于刪除數(shù)據(jù)點(diǎn)替代現(xiàn)有方法。
該方法是基于影響函數(shù)(influence function)進(jìn)行模型參數(shù)更新的,這一函數(shù)應(yīng)用廣泛,可以用來(lái)衡量樣本對(duì)模型參數(shù)的影響程度,即描述樣本的重要性。使用影響函數(shù)可以在不改變模型的情況下,獲得與原模型相似性的度量結(jié)果。
常用的對(duì)數(shù)據(jù)點(diǎn)或者特征的修改包括:數(shù)據(jù)點(diǎn)的修改、特征的修改和特征的刪除。其中,特征的刪除會(huì)改變模型輸入的維數(shù)。由于對(duì)于一大類(lèi)機(jī)器學(xué)習(xí)模型而言,將需要?jiǎng)h除的特征的值設(shè)置為零并再次訓(xùn)練,和將特征刪除的訓(xùn)練結(jié)果是等價(jià)的,因此該方法選擇將特征的刪除改為將其值設(shè)置為零。該方法實(shí)現(xiàn)了兩種更新的方式:一階更新和二階更新。思路是尋找到能夠疊加到新模型用于數(shù)據(jù)遺忘的更新。第一種方式是基于損失函數(shù)的梯度,因此可以被應(yīng)用于任何損失可導(dǎo)的模型,其中τ為遺忘速率。
第二種方式包含二階導(dǎo)數(shù),因此限制了這一方式只能應(yīng)用于具有可逆Hessian矩陣的損失函數(shù)。從技術(shù)上講,在常見(jiàn)的機(jī)器學(xué)習(xí)模型中應(yīng)用二階導(dǎo)數(shù)更新十分簡(jiǎn)單,但對(duì)于大型模型來(lái)說(shuō),逆Hessian矩陣通常較難計(jì)算。
對(duì)于具有少量參數(shù)的模型,可以預(yù)先計(jì)算逆Hessian矩陣并存儲(chǔ),隨后每次進(jìn)行數(shù)據(jù)遺忘操作僅僅涉及簡(jiǎn)單的矩陣向量乘法,因此計(jì)算效率非常高。例如在測(cè)試中,已證明從具有大約2000個(gè)參數(shù)的線性模型中去除特征可以在一秒鐘內(nèi)完成。對(duì)于深度神經(jīng)網(wǎng)絡(luò)這類(lèi)復(fù)雜模型而言,由于Hessian矩陣較大難以存儲(chǔ),因此可以使用近似逆Hessian矩陣替代。在測(cè)試結(jié)果中,對(duì)具有330萬(wàn)參數(shù)的遞歸神經(jīng)網(wǎng)絡(luò)進(jìn)行二階更新,所需時(shí)間不到30秒。
四. 樣例展示
對(duì)于測(cè)試的實(shí)例,這一工作均以三個(gè)指標(biāo)來(lái)對(duì)本文提出的方法進(jìn)行效果分析:(1)數(shù)據(jù)遺忘的效果,(2)保證模型的質(zhì)量,(3)比重新訓(xùn)練效率更高。為了將該方法與已有的機(jī)器學(xué)習(xí)模型的數(shù)據(jù)遺忘方法進(jìn)行比較,本工作選取再訓(xùn)練、分片等方法作為基線。
4.1敏感特征遺忘
該方法首先應(yīng)用于在真實(shí)數(shù)據(jù)集上訓(xùn)練的邏輯回歸模型,包括垃圾郵件過(guò)濾、Android惡意軟件檢測(cè)、糖尿病預(yù)測(cè)等。對(duì)于特征維度較多的數(shù)據(jù)集,比如電子郵件和Android應(yīng)用數(shù)據(jù)集,該方法分別選取與個(gè)人姓名相關(guān)的維度和Android應(yīng)用中提取的URL作為敏感特征,并從模型中移除整個(gè)特征維度。對(duì)于特征維度較少的數(shù)據(jù)集,該方法選擇替換選定的特征值,例如對(duì)于糖尿病數(shù)據(jù)集,可以對(duì)個(gè)體的年齡、體重指數(shù)和性別等特征值進(jìn)行調(diào)整,而非直接刪除。圖2中展示了分別移除或替換100個(gè)特征時(shí)糖尿病和惡意軟件數(shù)據(jù)集的效果。我們觀察到,二階更新非常接近再訓(xùn)練,因?yàn)檫@些點(diǎn)靠近對(duì)角線。相比之下,其他方法不能總是適應(yīng)分布的變化,從而導(dǎo)致更大的差異。
圖2 受影響的特征數(shù)量為100個(gè)時(shí),再訓(xùn)練和數(shù)據(jù)遺忘方法間的損失差異
4.2無(wú)意識(shí)記憶的遺忘
已有研究展示部分語(yǔ)言學(xué)習(xí)模型能夠形成對(duì)訓(xùn)練數(shù)據(jù)中稀有輸入的記憶,并在應(yīng)用過(guò)程中準(zhǔn)確地展示這些輸入數(shù)據(jù)[4]。如果這類(lèi)無(wú)意識(shí)記憶中包含隱私等敏感信息,則存在隱私泄露問(wèn)題。由于語(yǔ)言模型為非凸損失函數(shù),無(wú)法從理論上驗(yàn)證數(shù)據(jù)遺忘效果。此外,因?yàn)槟P蛢?yōu)化的過(guò)程存在不確定性且可能陷入局部最小值,所有難以與重新訓(xùn)練的模型進(jìn)行比較?;谝陨舷拗?,這一工作選擇使用暴露度量(exposure matric)來(lái)評(píng)估數(shù)據(jù)遺忘的效果。
其中s是一個(gè)序列,Q是給定字母表的情況下,具有相同長(zhǎng)度的可能序列的集合。暴露度量能夠描述序列s相對(duì)于由模型生成的相同長(zhǎng)度的所有可能序列的可能性。如表1所示,對(duì)于所有序列長(zhǎng)度,一階和二階更新方法的暴露值均接近0,即不可能提取出敏感序列。
表1 不同長(zhǎng)度序列的暴露度量(暴露值越低,提取越困難)
五. 結(jié)論
通過(guò)在不同場(chǎng)景下應(yīng)用這一數(shù)據(jù)遺忘方法,證明了該策略具有高效準(zhǔn)確的優(yōu)勢(shì)。對(duì)于損失函數(shù)為凸函數(shù)的邏輯回歸和支持向量機(jī)等,可以從理論上保證從模型中移除特征和標(biāo)簽。經(jīng)過(guò)在實(shí)際操作中的驗(yàn)證,該方法與其他數(shù)據(jù)遺忘的方法相比,具有更高的效率和相似的準(zhǔn)確度,且只需要一小部分的訓(xùn)練數(shù)據(jù),適用于原始數(shù)據(jù)不可用的情況。
與此同時(shí),這一工作中的數(shù)據(jù)遺忘方法的效率隨著受影響特征和標(biāo)簽的數(shù)量增加而降低,目前可以有效地處理數(shù)百個(gè)敏感特征和數(shù)千個(gè)標(biāo)簽的隱私泄露問(wèn)題,但是較難在數(shù)百萬(wàn)個(gè)數(shù)據(jù)點(diǎn)上實(shí)現(xiàn),具有一定的局限性。此外,對(duì)于深度學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)等損失函數(shù)并非凸函數(shù)的模型而言,該方法無(wú)法從理論上保證在非凸損失函數(shù)的模型中實(shí)現(xiàn)數(shù)據(jù)遺忘功能,但可以通過(guò)其他方式對(duì)數(shù)據(jù)遺忘的功效進(jìn)行度量。應(yīng)用于生成式語(yǔ)言模型時(shí),能夠在保留模型功能的基礎(chǔ)上消除無(wú)意識(shí)的記憶,從而避免敏感數(shù)據(jù)泄露的問(wèn)題。