?

去中心跨孤島的混合聯邦學習通信算法研究

2023-12-26 09:37吳明奇
吉林大學學報(信息科學版) 2023年5期
關鍵詞:參與方同態頂層

吳明奇,康 健,李 強

(吉林大學 計算機科學與技術學院,長春 130012)

0 引 言

隨著人類收集、存儲、計算、處理數據能力的飛速發展,亟需高效的對數據進行分析利用的算法。機器學習以其擅長分析處理大量數據的特點,在銀行和金融機構的風險評估和廣告投遞分析應用中得到了廣泛應用[1-2]。但其在金融數據中的應用同時引發了諸多隱私保護問題,尤其是在多個銀行共同訓練一個機器學習模型的多方機器學習中,用戶賬戶的敏感數據通常在模型聚合和傳輸階段暴露,隨著用戶對個人隱私數據的保護意識逐漸增強,如何高效、安全、可靠的開展多方機器學習成為了目前亟待解決的問題。

聯邦學習是用于解決多方機器學習安全問題的主要方式之一。其核心思想是數據不離開本地,并在本地進行局部迭代,通常上傳到云端的是經過加密的模型參數,從而達到既保護數據隱私,又能共同訓練機器學習模型的目的。目前現有技術的聯邦學習運營模式基本是每個參與方在本地進行局部模型訓練,然后將模型上傳給中央服務器,再由中央服務器進行聚合分發。

由于現有公開技術的聯邦學習是針對特征維度相同的數據樣本進行訓練,通常稱之為橫向聯邦學習,也有技術針對特征維度不同的縱向聯邦學習進行研究,但大部分縱向方法因為使用了同態加密方案,計算開銷較大。而縱向與橫向聯邦學習的區別不僅在于數據分布的方式,并且特征的分散導致縱向聯邦學習的訓練計算方式與傳統機器學習和橫向聯邦學習有很大區別。

聯邦學習的場景還分為大量移動設備的跨設備聯邦學習,和以數據孤島為主體的跨silo聯邦學習[3]。然而跨silo聯邦學習與傳統跨設備聯邦學習的場景條件有所不同,跨silo不需考慮客戶端退出的影響和大量設備溝通的瓶頸問題,而需要考慮更多計算和通信瓶頸的問題。

基于上述可知,雖然現有技術能實現特征維度不同參與方的縱向聯邦學習通信,但橫縱混合的聯邦學習方案仍有待研究。其相比傳統聯邦學習具有更高的兼容性,能滿足大多數聯邦學習場景的需求,如金融場景下環球同業銀行金融電訊協會和其州子銀行進行的異構橫縱混合聯邦學習,醫療場景下不同醫院、科室進行的疾病判斷聯邦學習。但橫縱混合跨silo場景面臨著縱向同態加密計算瓶頸導致的橫縱計算不一致問題。如何實現一個高效的橫縱混合聯邦學習算法并在此基礎上實現分散去中心化是當前聯邦學習領域亟待解決的問題。

針對上述問題,筆者提出了分層混合通信算法:1) 實現了擁有不同數據分區方式的參與方之間進行聯邦學習通信; 2) 采用去中心思路,消除了可信第三方中心聚合器的影響; 3) 采用分層交互方法和一種偽中心的思路實現縱向分區的聯邦學習; 4) 通過增加本地迭代輪次,降低了silos之前間的巨大計算瓶頸。

1 相關工作

聯邦學習起始概念是通過聚合本地的梯度訓練機器學習模型,而不需要將分布的數據集集中在同一個設備上[3]。目前針對聯邦學習的研究,數據主要在多個客戶端之間呈水平劃分,其中聯邦平均算法得到了廣泛研究。其相關工作主要分為3類[4]:對橫向數據分區的聯邦學習進行去中心化操作; 對網絡拓撲結構進行分層或分簇進行聯邦學習; 以及對縱向數據分區的聯邦學習進行研究。

橫向去中心化聯邦學習的研究現狀如下:其最早研究應用于google輸入法預測,因此對其研究場景主要是邊緣分布式設備。有研究表明分散梯度下降可以達到與集中式計算相當的收斂速度,并且通信較少。分散學習算法主要分為固定網絡拓撲和拓撲隨迭代動態改變[5-6]。He等[7]和Hu等[8]提供了分散聯邦學習的實現參考和系統分析。當前橫向去中心化聯邦學習的研究主要應用于跨設備場景,而筆者考慮了跨silo的聯邦學習場景。

分層聯邦學習的研究現狀如下:分層聯邦學習通常采用基站-設備的方式對邊緣設備客戶端進行分層以達到提高計算效率減小通信開銷的目的[9]。Roy[10]分析了水平數據分區的分層聯邦學習。Liu等[11]采用分簇的方式處理非獨立同分布數據,Castiglia等[12]探討了頂層垂直分布的分層聯邦學習設置。

縱向聯邦學習的研究現狀如下:Chen等[13]提出了單層網絡通信中的垂直聯邦學習算法。Wei等[14]使用同態加密等方式消除了中心聚合服務器的影響,但仍是在垂直的單層網絡中進行聯邦學習。而筆者考慮了在兩個層中同時處理水平和垂直分區并且不采用中央聚合服務器。

2 技術支持及問題設置

2.1 技術支持

2.1.1 邏輯回歸

通過邏輯回歸sigmoid激活函數,訓練了一個線性模型W,其將實例X映射到一個二元標簽y∈[0,1],回歸函數模型為

(1)

其中x1,x2,…,xn為數據特征,w0,w1,…,wn為模型參數。

在二進制分類問題中,假設閾值為0.5,輸出大于閾值分類為正結果,輸出小于閾值輸出為負結果。使用隨機梯度下降法對參數模型進行優化,為表示真實標簽與預測結果的誤差程度,需要計算交叉熵損失函數,優化的平均邏輯損失為

(2)

其中K為數據集中樣本數,y*為標簽的真實值,h由式(1)計算得出。

為了使損失函數收斂,需要求出損失函數梯度下降的方向,其公式為

(3)

最后損失函數收斂,梯度下降優化完成,從而完成訓練過程。最終的參數W為結果參數。在聯邦學習中,參與方傳遞的只有模型參數W的相關信息,本地數據X只參與計算,不向其他客戶端傳遞。

2.1.2 同態加密

同態加密提供了一種密碼學加密方案[15]。該算法使客戶端可以對數據加密后發送給第三方,第三方能在加密的密文數據上完成特定運算f,而不獲取數據的明文信息,客戶端收到加密運算的結果后解密,與在明文上進行運算f的結果一致,筆者采用的f運算如下:

[[a]]+[[b]]=[[a+b]],a[[b]]=[[ab]],

(4)

其中[[x]]為x的密文。

2.2 系統模型及問題設置

筆者考慮一個由N個silos組成的分散系統,如圖1所示。其中每個silo由一個數據水平分布的客戶端或一組數據縱向分布的客戶端組成。

圖1 一個cross-silo模型架構

文中的網絡分為兩層:水平分散分布的頂層,垂直分布的底層,從而形成了一個包含垂直和水平數據分區的聯邦學習通信網絡。

3 分散混合聯邦通信算法

跨silo場景同時擁有水平和垂直silo,為解決不同數據分區silos間的交互問題,交流過程可分成兩層3部分實現??v向silo內的交互采用底層縱向交互算法; 橫向silos間的交互采用頂層橫向交互算法; 橫向和縱向silo的交互采用頂層橫縱交互算法。

3.1 頂層橫向交互算法

頂層橫向客戶端交互算法執行流程如圖2所示。各橫向silos持有完整的局部模型,采用廣播方式實現去中心的水平聯邦學習過程。算法1給出了頂層橫向交互算法偽代碼。

圖2 頂層橫向交互算法的執行流程

算法1 頂層橫向交互算法。

Require:learning ratelr,number of iterationsT,number of top partyN

1) InitializeNparties models,W={W1,…,Wn} with random weights

2) Fort=0,1,…,T-1 do

5) computesD=δL/δWi

6) updateWi=Wi-lrD

7) sendWijto allj∈Niout,Viout

8) receiveWjifrom allj∈Niout

9)Wi=∑Wki/N

10) End For

在頂層算法中假設N個數據水平分布的橫向參與者,其樣本特征維度重合但ID不同。參與方i持有的數據為Xi,對應的權重為Wi。

第1步 第1行,進行初始化操作,初始化N個參與方的模型并隨機生成權重W1,…,Wn。

第2步 第3~6行,對每個參與方使用本地的數據計算loss和梯度D,得到本地局部模型。

第3步 第7行,每個參與方將本地局部模型Wij廣播給其他參與方j。

第4步 第8~9行,參與方i對所有接收到的模型Wki聚合平均得到全局模型Wi,并更新本地模型。返回第2步直至達到迭代輪次。

3.2 底層縱向交互算法

底層縱向客戶端交互算法如圖3所示??v向參與方持有的特征維度不同,各方通過各自訓練對應自己特征維度的模型并通過同態加密傳遞中間參數完成訓練過程。同時不需要可信第三方執行偽中心的工作。算法2給出了底層縱向交互算法偽代碼。

圖3 底層縱向交互算法的執行流程

算法2 底層縱向交互算法。

Require:learning ratelr,number of iterationsT

1)Arandom initializeWaandVb,generates PRIaand PUBa,Asend PUBatoB,Brandom initializeWband receive PUBa

2) Fort=0,1,…,T-1 do

3) Forq=0,1,…,Q-1 do

4)Acomputesy*=WaXa+Vb

5)Acomputes lossLbyy*

6)AcomputesDa=δL/δWi

7)AupdateWa=Wa-lrDa

8) End For

9)Aencrtpts SUM(yi-y*) use PRIaand send it toB

10)Breceive[[SUM(y-y*)]]and computes[[Db]]=[[δL/δWb]]

11)Bsend[[Db]]+[[Rb]]toA

12)Areceive[[Db]]+[[Rb]]decrypts it and send the plaintext toB

13)Bget plaintextDb+Rband computesDb

14)BupdateWb=Wb-lrDb

15)BcomputesWbXband send toA

16)AupdateVb=WbX

17) End For

在底層算法中假設A和B為兩個縱向參與者,A和B的樣本ID重合但特征維度不同,特征維度由m,n表示,數據的標簽僅被一方持有。A保存的數據為Xa=(xa1,xa2,…,xam)及標簽y,B持有的數據為Xb=(xb1,xb2,…,xbn)。A和B對應的權重分別為Wa和Wb。

第1步,第1行進行初始化操作,A和B初始化權重Wa和Wb,A生成同態加密算法的公鑰PUBa和私鑰PRIa,并將公鑰發給B。同時A初始化與B進行數據交換的分段值Vb。因為標簽由A持有,因此為保證標簽的保密性,秘鑰由A生成,A也自然成為了該silo中的偽中心。

在第2步,第3~8行中,A使用本地數據Xa,權重Wa和分段值Vb進行q輪迭代并更新本地模型。q的作用是提高協議效率和提升訓練效果,通過將epoch在一個局部迭代中完成,大幅減少加同態密和數據傳輸的計算量和計算時間,以提高訓練效率。

第3步,第9~12行中,A使用paillier同態加密將[[y-y*]]發送給B,B應用同態加密性質計算出梯度[[Db]]并通過秘密共享與A再進行一輪交互,最終B得到梯度Db。

第4步,第13~15行中,B使用本地數據Xb,權重Wb,梯度Db更新本地模型,并計算分段值Vb發給A。

第5步,第15行中,A更新分段值Vb,并返回第2步直至達到迭代輪次。

特別地,要注意Vb和參與方A的數據對齊問題。在第1輪迭代,Xa1對應隨機初始化的Vb,參與方B使用Xb1計算出Vb后參與方A需要將Vb更新,至此才算完成中間值Vb的初始化,迭代才從Xa1開始。

3.3 頂層橫縱交互算法

頂層橫縱客戶端交互算法如圖4所示。該算法給出了ID和特征均不同情況下橫縱向silo的交互過程,橫向silo需要拆分模型與縱向silo對齊完成聯邦學習訓練。算法3給出了頂層橫縱交互算法偽代碼。

圖4 頂層橫縱交互算法的執行流程

算法3 頂層橫縱交互算法。

Require:learning ratelr,number of iterationsT,number of top partyN

1) InitializeNparties models,W={W1,…,Wn} with random weights

2) Fort=0,1,…,T-1 do

3)IpartitionWitoWaandWb

4)IsendWatoA

5)IsendWbtoB

6)AupdateWa=∑Wi/N

7)BupdateWb=∑Wi/N

8)AandBdo algorithm 2

9)AsendWatoI

10)BsendWbtoI

11)IaggregateWaandWbtoWi

12) End For

在頂層橫縱交互算法中假設A和B為兩個縱向參與者,參與方i為與之交互的橫向參與者,A和B的樣本數據呈垂直分布,參與方i與A,B組成的silo的樣本數據呈水平分布。A保存的數據為Xa=(xa1,xa2,…,xam)及標簽y,B持有的數據為Xb=(xb1,xb2,…,xbn),參與方i持有的數據為Xi=(xi1,xi2,…,xim+n)及標簽y,m,n表示縱向客戶端的數據維度。A和B對應的權重分別為Wa和Wb,參與方i的權重為Wi。

第1步,第1行,進行初始化操作,初始化各客戶端的權重。

第2步,第3行,客戶端i根據縱向客戶端的維度m,n將Wi分為Wa和Wb,并將對應的權重發送給A和B。

第3步,第4行,A和B對接收到的模型Wa/Wb聚合平均得到全局模型中自己對應特征維度的模型Wa/Wb。

第4步,第5行,A,B通過算法2對本地模型進行更新。

第5步,第6行,A,B向水平參與方i廣播更新后的特征維度。

第6步,第7行,水平silos將A,B的特征維度組合成完整模型并聚合得到縱向silo的局部模型。返回第2步,直至達到迭代輪次。

4 實驗及結果

4.1 實驗設置

實驗在一臺兩個GPU顯卡的機器上運行,參與者都部署在同一個局域網內。實現軟件版本為Python 3.7.0,PyTorch 1.2.0,同態加密使用Hwlib庫中的CKSS(Cheon-Kim-Song scheme)方案部署。

實驗在一個真實世界的數據集上運行:SUSY(Supersymmetry Particles) 是一個大規模的二分類數據集,包含5 000 000個樣本,共有18個特征維度。實驗模型結構如圖1所示。假設每個silo的數據量相等,權重相同。將SUSY以流數據的形式均勻分配給每個silos。

4.2 實驗結果

4.2.1 算法比較

對比分層橫縱聯邦算法與傳統集中式算法,分散和縱向梯度下降算法的性能。將集中式算法和縱向梯度下降算法設置為一個單獨的silo,分散梯度下降算法設置成3個橫向silos,分層橫縱聯邦算法設置為兩個水平silo,一個垂直silo。設置訓練參數為Lr=0.01,epoch=3,q=1。圖5和圖6給出了各算法的收斂曲線和準確率曲線,Y軸給出平均損失和準確率,X軸給出迭代次數,表1給出了各算法的最終平均準確率。從中可看出:1) 模型都能在多次迭代后快速收斂到穩定狀態; 2) 橫向分散式梯度下降算法相比集中式算法幾乎沒有性能損失; 3) 引入縱向silo會導致模型最終損失值偏高; 4) 分散橫縱聯邦算法和縱向梯度下降算法在迭代前期損失波動較大,但最終都趨于穩定并達到收斂狀態; 5) 縱向梯度下降算法準確率波動較大,但分散橫縱聯邦算法中的縱向客戶端準確率收斂穩定。

圖5 算法準確率曲線

圖6 算法收斂曲線

4.2.2 加密效率

筆者在分散橫縱聯邦算法中討論局部迭代輪次q對加密效率的提升以及對模型精度的影響,并對比了算法在密文與明文下的計算時間。設置訓練參數為Lr=0.01,Epoch=10。同態加密的主要計算開銷集中在算法2中10~11步的大數加密和解密運算中,增加q主要是通過減少隨機數Rb的加密時間和減少解密[[Db]]+[[Rb]]的工作量(這兩者可以總結為對參與方B梯度的加密處理)提高訓練效率。圖7a給出了q取不同值時對算法性能的影響,Y軸給出平均損失Loss,X軸給出迭代次數,表2給出了各算法的最終平均準確率。圖7b給出了q取不同值時算法的平均執行時間,對比了算法在明文上和在密文上的計算效率??梢钥闯鲈黾泳植康喆螘鼓P蚻oss升高,但最終仍達到收斂,并且小幅降低了模型準確率,但計算效率大幅提升,因此可以通過提高q降低縱向silo計算瓶頸。

表2 本地迭代輪次準確率表

圖7 本地迭代輪次效果對比

5 結 語

筆者提出了一種在同時有橫向和縱向多方參與下完成邏輯回歸訓練且不依賴中心聚合器的分層交互方法。采用梯度共享傳遞silos間信息,并利用同態加密技術保護silos的隱私,同時降低了縱向客戶端的加密開銷。實驗結果表明,分散橫縱聯邦算法可以很好地實現在跨silo無中心節點場景下橫向和縱向silos的交互,且幾乎不損失模型精度。在未來的工作中,我們將探索縱向silo加密計算瓶頸的解決方案,并研究在惡意敵手模型下如何保證協議的安全性。

猜你喜歡
參與方同態頂層
基于秘密分享的高效隱私保護四方機器學習方案
關于半模同態的分解*
拉回和推出的若干注記
汽車頂層上的乘客
一種基于LWE的同態加密方案
綠色農房建設伙伴關系模式初探
HES:一種更小公鑰的同態加密算法
涉及多參與方的系統及方法權利要求的撰寫
基于IPD模式的項目參與方利益分配研究
加快頂層設計
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合