定義:
橫向聯邦學習也稱為按樣本划分的聯邦學習,各參與方的數據集有相同的特征空間和不同的樣本空間。
例如,兩家不同地區的商業銀行的客戶群體有着非常小的交集,他們的數據集有着不同的樣本空間。因為相似的業務模型,他們的數據集的特征空間非常相似或相同。這兩家銀行便可以聯合起來進行橫向聯邦學習。
安全性假設:
橫向聯邦學習的各參與方都是honest的,只有聚合服務器是honest-but-curious的,並且它是需要被防范的。
橫向聯邦學習架構:
- 客戶-服務器架構
- 各參與方在本地計算模型梯度,並使用同態加密、差分隱私、秘密共享等加密技術,對梯度信息進行掩飾,並將掩飾后的結果發送給聚合服務器。
- 服務器進行安全聚合,如使用基於同態加密的加權平均。
- 服務器將聚合后的結果發送給個參與方。
- 各參與方對收到的梯度進行解密,並使用解密后的梯度結果更新各自的模型參數。
兩種聯邦學習算法:
- 梯度平均
參與方將梯度信息發送給服務器,服務器將收到的梯度信息進行聚合,再將聚合后的梯度信息發送給參與方。
優點:准確的梯度的信息;有保證的收斂性
缺點:加重通信負擔;需要可靠連接
- 模型平均
參與方在本地計算模型參數,並將他們發送給服務器,服務器對收到的模型參數進行聚合,再將聚合的模型參數發送給參與方。
優點:不受SGD限制;可以容忍更新缺失;不頻繁的同步;
缺點:不保證收斂性;性能損失;
全局模型評估:
訓練過程中和訓練結束后,第k個參與方使用本地的測試數據集,對現有的聯邦學習模型進行性能評估,得到評估結果。k=1,2......K都執行此操作。第k個參與方給協調方發送本地模型預測結果,k=1,2......K都執行此操作。在收集到K個參與方發送的模型預測結果后,協調方能夠計算全局模型性能測試結果。協調方將計算得到的全局模型性能(准確率、精確率和召回率)發送給所有參與方。
- 對等網絡架構
在該框架中不存在中央服務器,每一個訓練方負責只使用本地數據集訓練同一個機器學習模型,訓練方使用安全鏈路在相互之間傳輸模型參數。為保證任意兩方之間的通信安全,需要使用例如基於公共密鑰的加密方法等安全措施。
公鑰和私鑰算法的理解:
如果使用對稱加密算法(私鑰加密算法),加解密使用同一個密鑰,除了自己保存外,對方也要知道這個密鑰,才能對數據進行解密。如果你把密鑰也一起傳過去,就存在密碼泄漏的可能。所以我們使用非對稱算法(公鑰加密算法),過程如下:
- 首先 接收方 生成一對密鑰,即私鑰和公鑰;
- 然后,接收方 將公鑰發送給 發送方;
- 發送方用收到的公鑰對數據加密,再發送給接收方;
- 接收方收到數據后,使用自己的私鑰解密。
由於在非對稱算法中,公鑰加密的數據必須用對應的私鑰才能解密,而私鑰又只有接收方自己知道,這樣就保證了數據傳輸的安全性。
由於對等網絡架構中不存在中央服務器,所以各訓練方必須提前商定發送和接受模型參數信息的順序。有兩種方法:
- 循環傳輸(cyckic transfer)
訓練方們被組成一個鏈條,第一個訓練方將當前的模型參數發送給下一個訓練方。該訓練方接收到來自上游的模型參數后,將使用本地數據集的小批量數據更新收到的模型參數。它再將更新后的模型參數傳輸給下一個訓練方,直到模型收斂或達到最大的迭代次數和時間。
- 隨機傳輸(randm transfer)
第k個訓練方從剩余的個參與方等概率的選擇一個發送模型參數,接受到模型參數的參與方使用本地數據集的mini-batch更新接收到的模型參數,之后重復上一個步驟直到所有訓練方同意模型參數收斂或達到最大的訓練時間。此方法也稱為Gossip學習。