聯盟式學習(Federated Learning)

Ray Lin
學以廣才
Published in
11 min readNov 11, 2020

Federated Learning 是Google於2017年提出的模型訓練方式。目的是要建構一個基於保護用戶隱私的前提下,能進行機器學習模型訓練的雲架構。它能共享訓練結果,以提供更好的用戶體驗。論文於2019在康乃爾大學圖書館正式發表。它反映一個趨勢,如何在保護數據隱私、滿足合法合規要求的前提下進行機器學習,克服許多領域所存在的數據孤島問題。

https://ai.googleblog.com/2017/04/federated-learning-collaborative.html

Definition of Federated Learning

  1. 定義 N 個用戶 {F1, F2, …, Fn}
  2. 每個用戶的資料 {D1, D2, …, Dn}
  3. 將資料收集成大資料集 D=D1 ∪ D2 ∪ … ∪ Dn
  4. 由 D 訓練模型,得到模型 Msum 與 Vsum 的預測誤差
  5. 所有用戶一起訓練模型,得到模型 Mfed 與 Vfed 的預測誤差。過程中,任何數據所有者Fi,都不會將其數據Di分享給其他人
  6. 目標使兩個誤差小於 σ → |Vfed - Vsum| < σ

橫向聯盟式學習 (Horizontal Federated Learning)

適用於特徵重疊性高且樣本不同時的情境,比如不同地區的醫院或銀行,他們的業務相似(特徵相似),但病患或客戶不同(樣本不同)。因為架構簡單,目前運用上最為廣泛。具體訓練模型方式是每個參與者使用相同模型定義與初始化參數,迭代以下步驟:

  1. 每個參與者用本地資料訓練模型,計算梯度,再加密上傳至 Server
  2. Server 整合各參與者的梯度然後更新模型
  3. Server 回傳模型更新後的參數給各個參與者
  4. 參與者各自更新模型

縱向聯盟式學習 (Vertical Federated Learning)

適用於共享相同樣本ID空間但特徵空間不同的情境。比如同一地區的銀行和電商平台,他們接觸的客戶都為該地區的居民(樣本相同),但業務不同(特徵不同)。銀行記錄了用戶的收支行為和信用等級,而電商保留了用戶的瀏覽和購買歷史,雙方便可合作建構有一個基於用戶和產品信息的產品購買預測模型。

基於隱私與安全考量,不能直接公開交換數據。因此,銀行與電商需要利用Encrypted entity alignment技術確認雙方共有的客戶,之後再利用這些數據進行加密訓練。有時,也會引入可信第三方提供交換數據的安全認證。具體操作方式如下 :

  1. 協作者C 將公鑰發給參與者A 和參與者 B
  2. A 和 B 分別用自己相關的特徵計算中間結果,加密後彼此交換中間產物,求得各自梯度和 loss
  3. A 和 B 分別計算加密的梯度,加入遮罩(mask)後傳送給 C,同時 B也計算加密的loss,A 和 B 把結果傳送給 C
  4. C 將解密後的梯度修正量與loss分別回傳給 A 和 B,A和B各自解開遮罩(mask)後更新雙方的模型

Gboard 鍵盤為了讓使用者的打字更方便,導入聯盟式學習,讓每個單詞輸入後的單詞推薦,更符合使用者下個可能打出來的單詞。聯盟式學習則會根據設備上的歷史記錄,在下一次迭代中改進模型的性能。

聯盟式遷移學習 (Federated Transfer Learning)

適用於兩個數據集在樣本上而且在特徵空間上都不同的情況。例如,一個是位於中國的銀行A,另一個是位於美國的電子商務公司B。由於地理位置的限制,兩個機構的用戶群之間的重疊很小。另一方面,雙方的業務不同,特徵空間只有一小部分重疊。在這種情況下,可以應用FTL為聯盟學習系統進行擴展,讓A利用B來的標籤來減少預測錯誤,以期克服資料與標籤不足的狀況。然而在預測時,仍然需要雙方都計算預測結果。

激勵機制的設計

聯盟學習是一種 “closed-loop”學習機制,是在不同組織之間的聯合學習。它需要一個公平的平台分享資料,也需要獎勵聯合建模的參與者,能在模型的有效性或其他部分獲得更多實質利益,以激勵更多組織願意提供更多數據。因此,如何建立共識機制實施激勵措施,並考慮了多個組織之間的隱私保護和協作建模的有效性,是未來商業化的關鍵點。

Federated Learning v.s. Privacy-preserving Machine Learning

聯盟學習可視為保護隱私的分散協作機器學習。因此,它與多方隱私保護機器學習緊密相關。過去許多該領域的研究成果,可直接導入應用。

Federated Learning v.s. Distributed Machine Learning

水平聯盟學習有點類似於分佈式機器學習。工作節點代表數據所有者,具有本地數據的完全自治權,可以決定何時以及如何加入聯盟學習,而整個參與過程都受到加密的保護。sherry-ai 幫大家整理好論文所說的差異 :

https://medium.com/sherry-ai

Federated Learning vs Edge Computing

聯盟學習可以看作是邊緣計算的操作系統,它在協作和安全性上,提供學習協定。具體來說,就是利用終端運算資源,找一個讓局部更新和全局參數聚合之間的最佳折衷機制,使損失函數最小化,實現分布梯度下降的收斂。

Federated Learning vs Federated Database Systems

聯盟資料庫系統(Federated Database Systems)是管理多個資料庫單元的集成系統,通常使用分散式存儲來存儲資料庫單元,每個數資料單元中的數據往往是異構(Heterogeneous)的。就數據的類型和存儲而言,它與聯盟學習有很多相似之處。但FDS的重點是數據的基本操作(EX:插入,刪除,搜索和合併),所有數據庫單元對於FDS管理系統都是完全可見的,彼此交互的過程中無隱私保護機制。這便是與FL最大的差異。

Federated Learning 應用

  1. 聯邦學習可以為三方構建機器學習模型而無需導出企業數據,不僅可以充分保護數據隱私和數據安全,還可以為客戶提供客製化的服務。 同時,我們可以利用轉移學習來解決數據異質性問題,並突破傳統人工智能技術的局限性。
  2. 智能零售業務涉及的數據特徵主要包括 : a)用戶購買力 b)用戶個人喜好 c) 產品特徵。在實際應用中,這三個數據特徵可能分散在三個不同的部門或企業中。例如,用戶的購買力可以從她的銀行存款中推斷出來,而她的個人喜好可以從她的社交網絡中進行分析。但是考量隱私,數據不能直接整合以訓練模型,而且三方中的數據通常是異構的,不易聚合,這阻礙了人工智能在更多領域的普及。
  3. 可以使用聯盟學習框架進行多方數據庫查詢而無需公開數據。例如,檢測用戶惡意多方借款。當某些用戶惡意從一家銀行借款以支付另一家銀行的貸款時,就會發生這種情況。為了找到這樣的用戶而不會在銀行A和銀行B之間彼此暴露用戶列表,我們可以利用FL框架。特別是,我們可以使用聯盟學習的加密機制,對每一方的用戶列表進行加密,然後在FL身份驗證中獲取加密列表的交集。最終結果的解密給出了多方借款人的列表,而沒有將其他“好”用戶暴露給另一方。如下所示,該操作對應於垂直聯盟學習框架。
  4. 諸如疾病症狀,基因序列,醫學報告之類的醫學數據非常敏感和私密,但是醫學數據很難收集,並且存在於孤立的醫學中心和醫院中,形成大量的資訊孤島。如果所有醫療機構聯合起來並共享其數據以形成一個大型醫療數據集,那麼在該大型醫療數據集上訓練的機器學習模型的性能將得到顯著提高。聯合學習與遷移學習相結合是實現這一願景的主要方法。

總結一下心得

FL想解決的問題

  • 各領域目前發展時遭遇的數據孤島問題
  • 如何讓擁有敏感數據端的人提供資料
  • 打破行業之間的障礙,並建立一個可以安全共享數據和知識的社區

FL目前的挑戰

  • 如何設計可靠的加密方式與穩定的發展平台?
  • 加密是否會改變數值原有的特徵分布空間?
  • 在參與端不斷變動之下,如何維持模型的效能與穩定度?
  • 如何有效運用參與端計算資源?
  • 如何給予參與者公平的獎懲機制並符合目前的法規?

FL可帶來的好處

  • 透過安全的信息分享,讓金融機構對違法惡意行為,用ML模型進行即時預測,以預防大量違法行為所導致整個金融體系崩潰。
  • 醫療數據源不足和標籤不足導致機器學習模型的性能不盡人意,這成為當前智能醫療保健的瓶頸。智能醫療保健預計將受益於聯合學習技術興起後受惠的另一個領域。
  • 構建跨企業,跨數據和跨域的生態圈,為未來大數據和人工智能提供了良好的技術支援。
  • 擴大產業交流,產生新的一種商業模型。

Reference

--

--

Ray Lin
學以廣才

善歌者,使人繼其聲;善教者,使人繼其志。其言也,約而達,微而臧,罕譬而喻,可謂繼志矣