分類目錄:《深入理解聯(lián)邦學(xué)習(xí)》總目錄
假設(shè)進行聯(lián)邦學(xué)習(xí)的數(shù)據(jù)提供方為 A A A和 B B B,第三方為 C C C,則縱向聯(lián)邦學(xué)習(xí)步驟如下:
- 在系統(tǒng)級做加密樣本對齊,在企業(yè)感知層面不會暴露非交叉用戶
- 對齊樣本進行模型加密訓(xùn)練:
- 由第三方 C C C向 A A A和 B B B發(fā)送公鑰,用來加密需要傳輸?shù)臄?shù)據(jù);
- A A A和 B B B分別計算和自己相關(guān)的特征中間結(jié)果,并加密交互
- A A A和 B B B分別計算各自加密后的梯度并添加掩碼發(fā)送給 C C C,同時擁有類標(biāo)側(cè)計算加密后的損失發(fā)送給 C C C
- C C C解密梯度和損失后回傳給 A A A和 B B B
- A A A和 B B B去除掩碼并更新模型
我們以嶺回歸為例說明縱向聯(lián)邦學(xué)習(xí)的訓(xùn)練過程。假設(shè)存在數(shù)據(jù)集 { x i A } ( i ∈ D A ) \{x_i^A\}(i\in D_A) {xiA?}(i∈DA?) 和數(shù)據(jù)集 { x i B , y i B } ( i ∈ D B ) \{x_i^B, y_i^B\}(i\in D_B) {xiB?,yiB?}(i∈DB?) ,其中 B B B為擁有類標(biāo)的數(shù)據(jù)擁有方,我們以線性回歸為例說明縱向聯(lián)邦學(xué)習(xí)的訓(xùn)練過程:
- A A A和 B B B分別初始化模型參數(shù) Θ A \Theta_A ΘA?和 Θ B \Theta_B ΘB?,則目標(biāo)函數(shù)為: min ? Θ A , Θ B ∑ i ( Θ A x i A + Θ B x i B ? y i ) 2 + λ 2 ( ∣ ∣ Θ A ∣ ∣ 2 + ∣ ∣ Θ B ∣ ∣ 2 ) \min_{\Theta_A, \Theta_B}\sum_i(\Theta_Ax_i^A+\Theta_Bx_i^B-y_i)^2+\frac{\lambda}{2}(||\Theta_A||^2+||\Theta_B||^2) ΘA?,ΘB?min?i∑?(ΘA?xiA?+ΘB?xiB??yi?)2+2λ?(∣∣ΘA?∣∣2+∣∣ΘB?∣∣2)
- 令 u i A = Θ A x i A u_i^A=\Theta_Ax_i^A uiA?=ΘA?xiA?和 u i B = Θ B x i B u_i^B=\Theta_Bx_i^B uiB?=ΘB?xiB?,則對原目標(biāo)函數(shù)同態(tài)加密后( [ [ ? ] ] [[\cdot]] [[?]]表示同態(tài)加密)可表示為: [ [ L ] ] = [ [ ∑ i ( u i A + u i B ? y i ) 2 + λ 2 ( ∣ ∣ Θ A ∣ ∣ 2 + ∣ ∣ Θ B ∣ ∣ 2 ) ] ] = [ [ ∑ i ( u i A ) 2 + λ 2 ∣ ∣ Θ A ∣ ∣ 2 ] ] + [ [ ∑ i ( ( u i B ? y i ) 2 ) + λ 2 ∣ ∣ Θ B ∣ ∣ 2 ] ] + 2 ∑ i ( [ [ u i A ] ] ( u i B ? y i ) ) \begin{aligned}[[L]] &= [[\sum_i(u_i^A+u_i^B-y_i)^2+\frac{\lambda}{2}(||\Theta_A||^2+||\Theta_B||^2)]]\\&=[[\sum_i(u_i^A)^2+\frac{\lambda}{2}||\Theta_A||^2]]+[[\sum_i((u_i^B-y_i)^2)+\frac{\lambda}{2}||\Theta_B||^2]]+2\sum_i([[u_i^A]](u_i^B-y_i))\end{aligned} [[L]]?=[[i∑?(uiA?+uiB??yi?)2+2λ?(∣∣ΘA?∣∣2+∣∣ΘB?∣∣2)]]=[[i∑?(uiA?)2+2λ?∣∣ΘA?∣∣2]]+[[i∑?((uiB??yi?)2)+2λ?∣∣ΘB?∣∣2]]+2i∑?([[uiA?]](uiB??yi?))?
- 我們令: [ [ L A ] ] = [ [ ∑ i ( u i A ) 2 + λ 2 ∣ ∣ Θ A ∣ ∣ 2 ] ] [ [ L B ] ] = [ [ ∑ i ( ( u i B ? y i ) 2 ) + λ 2 ∣ ∣ Θ B ∣ ∣ 2 ] ] [ [ L A B = 2 ∑ i ( [ [ u i A ] ] ( u i B ? y i ) ) ] ] [ [ d i ] ] = [ [ u i A ] ] + [ [ u i B ? y i ] ] \begin{aligned}[[L_A]]&=[[\sum_i(u_i^A)^2+\frac{\lambda}{2}||\Theta_A||^2]] \\ [[L_B]]&=[[\sum_i((u_i^B-y_i)^2)+\frac{\lambda}{2}||\Theta_B||^2]] \\ [[L_{AB}&=2\sum_i([[u_i^A]](u_i^B-y_i))]] \\ [[d_i]]&=[[u_i^A]]+[[u_i^B-y_i]]\end{aligned} [[LA?]][[LB?]][[LAB?[[di?]]?=[[i∑?(uiA?)2+2λ?∣∣ΘA?∣∣2]]=[[i∑?((uiB??yi?)2)+2λ?∣∣ΘB?∣∣2]]=2i∑?([[uiA?]](uiB??yi?))]]=[[uiA?]]+[[uiB??yi?]]?則 [ [ L ] ] = [ [ L A ] ] + [ [ L B ] ] + [ [ L A B ] ] [[L]]=[[L_A]]+[[L_B]]+[[L_{AB}]] [[L]]=[[LA?]]+[[LB?]]+[[LAB?]]
- 計算梯度: [ [ ? L ? Θ A ] ] = ∑ i [ [ d i ] ] x i A + [ [ λ Θ A ] ] [ [ ? L ? Θ B ] ] = ∑ i [ [ d i ] ] x i B + [ [ λ Θ B ] ] \begin{aligned}[[\frac{\partial L}{\partial\Theta_A}]]&=\sum_i[[d_i]]x_i^A+[[\lambda\Theta_A]]\\ [[\frac{\partial L}{\partial\Theta_B}]]&=\sum_i[[d_i]]x_i^B+[[\lambda\Theta_B]]\end{aligned} [[?ΘA??L?]][[?ΘB??L?]]?=i∑?[[di?]]xiA?+[[λΘA?]]=i∑?[[di?]]xiB?+[[λΘB?]]?
針對數(shù)據(jù)提供方為 A A A和 B B B以及第三方為 C C C,縱向聯(lián)邦學(xué)習(xí)的訓(xùn)練步驟如下:
\qquad\quad | 數(shù)據(jù)提供方為 A A A | 數(shù)據(jù)提供方為 B B B | 第三方為 C C C |
---|---|---|---|
步驟 1 1 1 | 初始化參數(shù) Θ A \Theta_A ΘA? | 初始化參數(shù) Θ B \Theta_B ΘB? | 創(chuàng)建加密秘鑰對,并將公鑰發(fā)送給數(shù)據(jù)提供方為 A A A和 B B B |
步驟 2 2 2 | 計算 [ [ u I A ] ] [[u_I^A]] [[uIA?]]和 [ [ L A ] ] [[L_A]] [[LA?]]并發(fā)送給數(shù)據(jù)提供方 B B B | 計算 [ [ u I B ] ] [[u_I^B]] [[uIB?]]、 [ [ d i ] ] [[d_i]] [[di?]]和 [ [ L ] ] [[L]] [[L]],并將 [ [ d i ] ] [[d_i]] [[di?]]發(fā)送給數(shù)據(jù)提供方 A A A,將 [ [ L ] ] [[L]] [[L]]發(fā)送給第三方 C C C | |
步驟 3 3 3 | 初始化掩碼 R A R_A RA?,計算 [ [ ? L ? Θ A ] ] + [ [ R A ] ] [[\frac{\partial L}{\partial\Theta_A}]]+[[R_A]] [[?ΘA??L?]]+[[RA?]] 并發(fā)送給第三方 C C C | 初始化掩碼 R B R_B RB?,計算 [ [ ? L ? Θ B ] ] + [ [ R B ] ] [[\frac{\partial L}{\partial\Theta_B}]]+[[R_B]] [[?ΘB??L?]]+[[RB?]] 并發(fā)送給第三方 C C C | 解密 L L L并發(fā)送 ? L ? Θ A + R A \frac{\partial L}{\partial\Theta_A} + R_A ?ΘA??L?+RA?給數(shù)據(jù)提供方 A A A,發(fā)送 ? L ? Θ B + R A \frac{\partial L}{\partial\Theta_B} + R_A ?ΘB??L?+RA?給數(shù)據(jù)提供方 B B B |
步驟 4 4 4 | 更新參數(shù) Θ A \Theta_A ΘA? | 更新參數(shù) Θ B \Theta_B ΘB? |
在整個過程中參與方都不知道另一方的數(shù)據(jù)和特征,且訓(xùn)練結(jié)束后參與方只得到自己側(cè)的模型參數(shù),即半模型。由于各參與方只能得到與自己相關(guān)的模型參數(shù),預(yù)測時需要雙方協(xié)作完成:文章來源:http://www.zghlxwxcb.cn/news/detail-698783.html
- 第三方 C C C將待預(yù)測用戶ID分別發(fā)送給數(shù)據(jù)提供方 A A A和 B B B
- 數(shù)據(jù)提供方 A A A和 B B B分別計算 u A u^A uA和 u B u^B uB并進行同態(tài)加密得到 [ [ u A ] ] [[u^A]] [[uA]]和 [ [ u B ] ] [[u^B]] [[uB]]
- 數(shù)據(jù)提供方 A A A和 B B B將同態(tài)加密后的 [ [ u A ] ] [[u^A]] [[uA]]和 [ [ u B ] ] [[u^B]] [[uB]]發(fā)送給 第三方 C C C
- 第三方 C C C計算同態(tài)加密后的預(yù)測值 [ [ y ] ] = [ [ u A ] ] + [ [ u B ] ] [[y]]=[[u^A]]+[[u^B]] [[y]]=[[uA]]+[[uB]]再解密得到預(yù)測值 y y y
參考文獻:
[1] 楊強, 劉洋, 程勇, 康焱, 陳天健, 于涵. 聯(lián)邦學(xué)習(xí)[M]. 電子工業(yè)出版社, 2020
[2] 微眾銀行, FedAI. 聯(lián)邦學(xué)習(xí)白皮書V2.0. 騰訊研究院等, 2021文章來源地址http://www.zghlxwxcb.cn/news/detail-698783.html
到了這里,關(guān)于深入理解聯(lián)邦學(xué)習(xí)——縱向聯(lián)邦學(xué)習(xí)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!