定義
在數(shù)據(jù)集上具有相同的樣本空間、不同的特征空間的參與方所組成的聯(lián)邦學(xué)習(xí)歸類(lèi)為縱向聯(lián)邦學(xué)習(xí)(Vertical Federated Learning,VFL),也可以理解為按特征劃分的聯(lián)邦學(xué)習(xí)。
架構(gòu)

VFL系統(tǒng)的訓(xùn)練過(guò)程一般由兩部分組成:首先對(duì)齊具有相同ID,但分布于不同參與方的實(shí)體;然后基于這些已對(duì)齊的實(shí)體執(zhí)行加密的(或隱私保護(hù)的)模型訓(xùn)練。
- 第一部分:加密實(shí)體對(duì)齊
由于A方和B方公司的用戶(hù)群體不同,系統(tǒng)使用一種基于加密的用戶(hù)ID對(duì)齊技術(shù),例如文獻(xiàn)所描述的,來(lái)確保A方和B方不需要暴露各自的原始數(shù)據(jù)便可以對(duì)齊共同用戶(hù)。在實(shí)體對(duì)齊期間,系統(tǒng)不會(huì)將屬于某一家公司的用戶(hù)暴露出來(lái)。
- 第二部分:加密模型訓(xùn)練
在確定共有實(shí)體后,各方可以使用這些共有實(shí)體的數(shù)據(jù)來(lái)協(xié)同地訓(xùn)練一個(gè)機(jī)器學(xué)習(xí)模型。訓(xùn)練過(guò)程可以被分為以下四個(gè)步驟:
-
步驟1 協(xié)調(diào)者C創(chuàng)建密鑰對(duì),并將公共密鑰發(fā)送給A方和B方。
2.jpg
- 步驟2 A方和B方對(duì)中間結(jié)果進(jìn)行加密和交換。中間結(jié)果用來(lái)幫助計(jì)算梯度和損失值。
- 步驟3 A方和B方計(jì)算加密梯度并分別加入附加掩碼(additional mask)。B方還會(huì)計(jì)算加密損失。A方和B方將加密的結(jié)果發(fā)送給C方。
- 步驟4 C方對(duì)梯度和損失信息進(jìn)行解密,并將結(jié)果發(fā)送回A方和B方。A方和B方解除梯度信息上的掩碼,并根據(jù)這些梯度信息來(lái)更新模型參數(shù)。
縱向聯(lián)邦學(xué)習(xí)算法
安全聯(lián)邦提升樹(shù) (SecureBoost)
- 安全的樣本對(duì)齊
SecureBoost包含兩個(gè)主要步驟。首先,在隱私保護(hù)下對(duì)參與方之間具有不同特征的重疊用戶(hù)進(jìn)行樣本對(duì)齊。然后,所有參與方通過(guò)隱私保護(hù)協(xié)議共同地學(xué)習(xí)一個(gè)共享的梯度提升樹(shù)模型。
SecureBoost框架的第一步是實(shí)體對(duì)齊,即在所有參與方中尋找數(shù)據(jù)樣本的公共集合(如共同用戶(hù)),共同用戶(hù)可以通過(guò)用戶(hù)ID被識(shí)別出來(lái)。
- 訓(xùn)練過(guò)程
聚合統(tǒng)計(jì)值

尋找最優(yōu)分割



預(yù)測(cè)過(guò)程
- 步驟1 主動(dòng)方查詢(xún)與當(dāng)前節(jié)點(diǎn)相關(guān)聯(lián)的[參與方id,記錄id]記錄?;谠撚涗?,主動(dòng)方向相應(yīng)參與方發(fā)送待標(biāo)注樣本的id和記錄id,并且詢(xún)問(wèn)下一步的樹(shù)搜索方向(即向左子節(jié)點(diǎn)或右子節(jié)點(diǎn))。
- 步驟2 被動(dòng)方接收到待標(biāo)注樣本的id和記錄id后,將待標(biāo)注樣本中相應(yīng)特征的值與本地查找表中的記錄[記錄id,特征,閾值]中的閾值進(jìn)行比較,得出下一步的樹(shù)搜索方向。然后,該被動(dòng)方將搜索決定發(fā)往主動(dòng)方。
- 步驟3 主動(dòng)方接收到被動(dòng)方傳來(lái)的搜索決定,前往相應(yīng)的子節(jié)點(diǎn)。
- 步驟4 迭代步驟1~3,直至到達(dá)一個(gè)葉節(jié)點(diǎn)得到分類(lèi)標(biāo)簽以及該標(biāo)簽的權(quán)值。
重復(fù)這一過(guò)程遍歷所有的決策樹(shù),最終通過(guò)對(duì)從所有決策樹(shù)得到的類(lèi)標(biāo)簽進(jìn)行加權(quán)求和,得到最終的類(lèi)標(biāo)簽。
