宋 蕾 馬春光 段廣晗 袁 琪
1(哈爾濱工程大學計算機科學與技術學院 哈爾濱 150001) 2(山東科技大學計算機科學與工程學院 山東青島 266590) 3(齊齊哈爾大學通信與電子工程學院 黑龍江齊齊哈爾 161006)
得益于計算資源的豐富及大數據積累,近年來機器學習在視覺、自然語言處理、醫療健康等領域取得突破性進展.在機器學習技術飛速發展的同時,其安全與隱私問題也引起人們廣泛關注.傳統的機器學習訓練方法是將訓練數據收集起來進行集中訓練.然而,訓練數據通常會涉及到人們的隱私,如醫療健康數據、興趣愛好、政治偏向等.將私有數據直接暴露給數據收集者進行模型訓練,這種傳統的模式已經不能適用于當下人們隱私保護意識增強的社會環境中.《中華人民共和國網絡安全法》和歐洲《通用數據保護條例》相繼頒布實施,預示對數據的安全使用和個人信息的隱私保護越發嚴格,給基于數據訓練的機器學習方法帶來前所未有的挑戰.
為解決以上問題,本文提出隱私保護的邏輯回歸解決方案.邏輯回歸作為機器學習的典型算法,適用于分類問題.一個邏輯回歸的單元可以看作為一個神經元,多個多層神經元疊加就組成了神經網絡.解決邏輯回歸算法的隱私保護問題是實現隱私保護機器學習的重要一步.為打破數據壁壘,如何在數據縱向分布場景中,保護隱私的情況下進行協作式、聯合訓練,實現邏輯回歸算法是本文關注的重點.數據縱向分布,即數據以特征維度切分存儲在兩方,在現實中較為常見.如公司A和公司B擁有相同的用戶,但業務不同.現A和B兩方聯合起來訓練一個共同的模型,訓練數據作為商業機密不能直接與對方分享.文獻[1]已經實現數據縱向分布時的邏輯回歸算法,利用中心服務器協助兩方進行訓練,客戶端本地計算時使用乘法掩碼.而本文實現2個參與方直接進行訓練,并且只加密中間計算結果,利用加法掩碼防止梯度信息泄露.相比之下,本文計算和通信開銷更小.
本文的主要貢獻有3個方面:
1) 在數據縱向分布的情況下,提出兩方協作式的邏輯回歸方案.2個參與方在各自數據集上進行訓練,通過交換中間參數,學習得到一個共同的虛擬模型.
2) 利用Paillier同態加密保證計算安全,保護用戶隱私.通過改變邏輯回歸的目標函數,使其適用于加法同態加密方案來實現兩方密文計算,保證交互及運算過程中安全性,不泄露用戶隱私信息.
3) 本文給出隱私保護的預測方案,實現用戶秘密預測.用戶不暴露自身數據,而服務器也不能知曉用戶的預測結果.
2015年Shokri和Shmatikov[2]提出協作式隱私保護深度學習模型,每輪訓練各方參與者從中心服務器下載最新模型參數,利用私有數據在本地訓練模型,再上傳更新服務模型.無需集中存儲訓練數據,從而保護用戶敏感的訓練數據;2018年Phong等人[3]利用加法同態加密算法加密模型參數,防止泄露梯度信息給誠實且好奇的中心服務器;2016年由Google[4]提出聯邦學習用于預測Android手機鍵盤下一個輸入詞;類似于文獻[2]用戶在手機上訓練模型再將參數上傳到服務端,不同的是,為保證模型參數的安全聚合,使用秘密共享及安全多方計算協議保障用戶隱私信息[5-6];2019年Yang等人[7]給出聯邦學習正式定義,指數據擁有方在不暴露自身數據的前提下進行模型訓練得到虛擬共有模型的過程,其模型與將各方數據聚集在一起訓練所得到的模型差距足夠小.同時根據數據分布,將聯邦學習分為橫向聯邦學習、縱向聯邦學習和聯邦遷移學習;Hardy等人[1]實現縱向聯邦學習邏輯回歸算法,利用加法同態加密算法保障計算安全;SecureML[8]利用秘密共享、姚式電路,實現了一種有效保護隱私的,用于線性回歸、邏輯回歸和神經網絡訓練兩方安全計算協議;Mohassel等人[9]將該方案擴展到三方安全計算;Ma等人[10]對文獻[8]進行改進,實現非交互式隱私保護神經網絡預測;DeepSecure[11]利用姚式電路實現兩方安全計算,完成深度學習模型的安全預測.
不同于以上工作,本文關注于數據縱向分布的情況下,提出隱私保護的邏輯回歸訓練方法和預測方法.
本節主要介紹本文要解決的問題及其安全性定義.在2.3節介紹同態加密算法.

假設A和B是非共謀、半誠實的參與者.A和B在協作期間遵守模型訓練協議,但互相對對方的私有數據及模型參數是好奇的,在協作期間不斷推理,想要獲取關于對方額外的信息.如果在訓練過程中,A和B不能獲得對方額外的敏感信息,如訓練數據及模型參數,則稱訓練過程是安全的.如果在預測階段,模型部署在A和B上,詢問者在預測過程中,A和B不能獲得詢問者的私有數據,則稱預測過程是安全的.
同態加密(HE)[12]可以實現在不知道密鑰的情況下對加密數據進行安全計算,其運算結果解密后與直接在明文上計算結果相同.一個同態加密方案主要包含:秘鑰生成、加密算法、解密算法.全同態加密(FHE)可以執行加法和乘法運算.但是全同態加密方案計算開銷大,本文兩方計算只涉及到加法操作,因此本文選用快速的加法同態加密方案Paillier,Paillier[13]加密方案工作原理為:



在本節中,我們主要介紹隱私保護邏輯回歸算法,其具體包括密文梯度計算過程、隱私保護下的訓練過程及隱私保護下的預測過程.
(1)
通過最小化目標函數即可得到模型參數θ.

(2)
則模型A和B參數更新為

(3)

(4)
則式(2)轉換為

(5)
因為ln 2為常數,在最小化L的過程中并不影響結果,因此以下公式中將省略ln 2.設[·]為A和B使用同態加密后的結果.則加密后的目標函數為

(6)


(7)

(8)
隱私保護的邏輯回歸具體訓練過程為:
Step1.A和B分別產生一對公私鑰,將公鑰發給對方.






重復Step1~Step7,直到模型收斂.
當A,B一方作為詢問者使用模型進行預測時,設詢問者為K∈{A,B},當K=A時,令K′=B,反之亦然.
①K將預測數據分為xK和xK′兩部分,用K的公鑰加密后[xK′]K,發送給K′.
②K計算uK=θKxK.
③K′計算[uK′]K=θK′[xK′]K,將[uK′]K發送給K.
④K用私鑰解密得到uK′,相加得到u=uK+uK′.
當詢問者為第三方C時,模型部署在A和B中,預測過程和上述類似.
①C將預測數據分為xA和xB兩部分,用C的公鑰加密xA和xB,得到[xA]C和[xB]C,分別發送給A和B進行計算.
②A和B分別計算得到[uA]C=θA[xA]C和[uB]C=θB[xB]C,并發送給C.

回顧A和B的協作訓練過程,得到模型后C進行預測的過程.在此過程中各方參與者獲得的中間計算結果如表1所示:

在預測階段,A和B獲得的均是關于C的預測數據的密文[xA]C,[xB]C,并且均在密文下進行運算獲得[uA]C,[uB]C.因此A和B無法獲得關于C的私有數據的任何信息,預測過程是安全的.
在傳輸過程中,A和B傳輸的是中間計算結果的密文,敵手即使截獲信道消息也無法解密.A和B之間傳輸的明文是加上掩碼的模型參數梯度,由于敵手不知道掩碼,故無法獲得關于梯度的信息.因此敵手為第三方時,也無法通過信道獲取任何敏感信息.
與非隱私保護的邏輯回歸算法相比,本文算法產生的額外開銷主要包括時間開銷與通信開銷.時間開銷主要來自于密文計算,本文使用Paillier加法同態加密算法,秘鑰長度為1 024 b.在CPU為Intel Core i5-6500,3.20 GHz的計算機上進行加密計算,執行時間為:
加密時間T_E.執行100次耗時1.598 s.
解密時間T_D.執行100次耗時0.507 s.
加法時間T_A.執行2 000次2個密文相加運算耗時0.086 s.
乘法時間T_M.執行明文與密文之間的乘法時間與明文大小成正比.在本文算法訓練過程中,只需執行12,14,18乘以密文,執行2 000次耗時平均為1.364 s.
分析忽略通信過程中的傳送時間,訓練過程中選取batch_size大小為n,在一個迭代周期內,加密時間復雜度為O(n×T_E),解密時間復雜度為O(n×T_D).計算[L]時間復雜度為O(n×T_M),計算A方梯度的時間復雜度為O(n×dA×T_M),計算B方梯度的時間復雜度為O(n×dB×T_M),其中dA,dB分別為A和B數據的特征維數.
在訓練過程中,A和B之間的通信開銷為Cost=2(3×n×ct+ct),其中ct為一條密文大小.空間復雜度為O(n×ct).在batch_size=64,ct=256 b,一個迭代過程中通信開銷約為12 KB.
在本節中,我們搭建了本文提出的基于數據縱向分布的隱私保護邏輯回歸模型,并且在7組數據集上測試了本文方案.
本文在4組隨機生成的2分類數據集與3組現有的分類數據集上對所提出的模型進行測試,下面從數據維度、數據大小等方面對數據集進行介紹.
MC-1數據集與MC-2數據集是使用Python的機器學習模塊scikit-learn提供的make_classifi-cation函數構建的用于訓練分類模型的數據集,其中MC-1數據集包含2 000條特征維度為6的數據,這些數據屬于2個分類.MC-2是包含2 000條特征維度為10的2分類數據.MB-1數據集與MB-2數據集是使用scikit-learn提供的make_blobs函數生成的用于聚類的數據集,其中MB-1數據集包含1 000條特征維度為6、方差為5的具有2個聚類中心點的數據,MB-2數據集包含1 000條特征維度為10、方差為6的具有2個聚類中心點的數據.
digits是手寫數字數據集,該數據集包含了1 797個共計10個分類的手寫數字數據,其原始數據尺寸為8×8像素,其中每個像素點用整數0~16來表示其灰階.為驗證本文提出的基于數據縱向分布的隱私保護邏輯回歸模型,我們將數字0~4設定為分類1,將數字5~9設定為分類2,將多分類問題簡化為2分類問題.同時我們從digits數據集中抽取出數字7與9組成一個2分類數據集(digits-79),用以驗證樣本量較小時本文提出的模型性能.breastcancer是一個包含2分類數據的乳腺癌數據集,其中包含了569組特征維度為30樣本.
對上述的全部數據集,我們將其特征均等縱分為2部分分別交給A,B雙方,我們隨機抽取其中的70%樣本用于訓練模型,剩余的30%樣本用于測試模型性能.
在本節中,進行7組實驗來驗證本文提出模型的有效性.在所有的實驗中,我們采用學習率為0.01的隨機梯度下降法對模型進行訓練,同時對于所有輸入的數據,對其進行歸一化處理以易于模型收斂到最優解.
使用泰勒展開式模擬原有的目標函數,會對訓練過程收斂速度及精度產生一定影響.本文通過實驗從3方面對具體差異進行評估,首先對比原目標函數和用泰勒公式近似的目標函數2個模型在訓練過程中的Loss變化曲線,如圖1所示.采用泰勒公式近似的目標函數的邏輯回歸模型,其Loss的收斂速度與采用原目標函數的邏輯回歸模型差別不大.其次,對原目標函數和用泰勒公式近似的目標函數2個模型的訓練精度進行了實驗,如圖2所示.在經過200次迭代后,采用泰勒公式近似的目標函數模型的預測精度趨近于穩定,此時其預測精度高于采用原目標函數的邏輯回歸模型;在400次迭代后,采用原目標函數的邏輯回歸模型預測精度與采用泰勒公式近似的目標函數模型幾乎相同,隨著訓練的繼續進行;在800次迭代后,采用原目標函數的邏輯回歸模型預測精度達到穩定狀態,原模型的最終預測精度略高于采用泰勒公式近似的目標函數模型.

Fig. 1 Comparison of Loss during training process圖1 訓練過程Loss變化曲線對比圖

Fig. 2 Comparison of performance between two models圖2 2種模型測試精度對比圖
本文在7組數據集上對2種模型進行分類實驗,表2給出了2種模型的分類精度與AUC(area under curve).其中,AUC是ROC曲線下與橫坐標軸圍成的面積,其值通常在0.5~1之間,AUC的值越大,說明分類器的分類效果越好.從表2可以看出,采用原目標函數的邏輯回歸模型與采用泰勒公式近似目標函數的邏輯回歸模型在7組數據集上的預測精度與AUC差別不大,這說明本文提出的基于數據縱向分布的隱私保護邏輯回歸在預測精度和模型性能沒有明顯損失的前提下,保護了訓練數據的隱私.
Table 2 Results on Two Models
表2 在2種模型上的分類精度實驗結果

DatasetSample SizeFeature DimentionLogisticTaylorAccuracy∕%AUCAccuracy∕%AUCMC-12000698.330.992797.670.9934MC-220001098.000.990697.330.9904MB-11000694.670.991593.670.9908MB-210001098.000.997198.670.9978breastcancer5693081.290.964181.870.9641digits17976489.440.954289.630.9566digits-793596497.220.997997.220.9979
本文提出了在數據縱向分布下的隱私保護邏輯回歸解決方案,不僅實現隱私保護的訓練過程,同時給出隱私保護的預測過程.保證在訓練過程中,協作的雙方不能獲得對方的訓練數據及其模型參數信息.在預測過程中,保護訪問者的私有數據不泄露給部署模型的服務器.根據分析及實驗得出,本文方案可以在可容忍的精度損失下提供隱私保護需求.訓練數據縱向分布,雙方協作共同訓練模型在現實中具有廣泛的應用價值.未來將會把本文中隱私保護邏輯回歸擴展到深度學習中,并且尋求高效的加密算法降低計算開銷.