聯邦學習(Federated Learning)

聯邦學習簡介

       聯邦學習(Federated Learning)是一種新興的人工智能基礎技術,在 2016 年由谷歌最先提出,原本用於解決安卓手機終端用戶在本地更新模型的問題,其設計目標是在保障大數據交換時的信息安全、保護終端數據和個人數據隱私、保證合法合規的前提下,在多參與方或多計算結點之間開展高效率的機器學習。其中,聯邦學習可使用的機器學習算法不侷限於神經網絡,還包括隨機森林等重要算法。聯邦學習有望成爲下一代人工智能協同算法和協作網絡的基礎。

聯邦學習的系統構架

以包含兩個數據擁有方(即企業 A 和 B)的場景爲例介紹聯邦學習的系統構架。該構架可擴展至包含多個數據擁有方的場景。假設企業 A 和 B 想聯合訓練一個機器學習模型,它們的業務系統分別擁有各自用戶的相關數據。此外,企業 B 還擁有模型需要預測的標籤數據。出於數據隱私保護和安全考慮,A 和 B 無法直接進行數據交換,可使用聯邦學習系統建立模型。聯邦學習系統構架由三部分構成,如圖所示。

     

 

第一部分:加密樣本對齊。由於兩家企業的用戶羣體並非完全重合,系統利用基於加密的用戶樣本對齊技術,在 A 和 B 不公開各自數據的前提下確認雙方的共有用戶,並且不暴露不互相重疊的用戶,以便聯合這些用戶的特徵進行建模。第二部分:加密模型訓練。在確定共有用戶羣體後,就可以利用這些數據訓練機器學習模型。爲了保證訓練過程中數據的保密性,需要藉助第三方協作者 C 進行加密訓練。以線性迴歸模型爲例,訓練過程可分爲以下 4 步(如圖  所示): 

       第①步:協作者 C 把公鑰分發給 A 和 B,用以對訓練過程中需要交換的數據進行加密。

       第②步:A 和 B 之間以加密形式交互用於計算梯度的中間結果。

       第③步:A 和 B 分別基於加密的梯度值進行計算,同時 B 根據其標籤數據計算損失,並把結果彙總給 C。C 通過彙總結果計算總梯度值並將其解密。

       第④步:C 將解密後的梯度分別回傳給 A 和 B,A 和 B 根據梯度更新各自模型的參數。

      迭代上述步驟直至損失函數收斂,這樣就完成了整個訓練過程。在樣本對齊及模型訓練過程中,A 和 B 各自的數據均保留在本地,且訓練中的數據交互也不會導致數據隱私泄露。因此,雙方在聯邦學習的幫助下得以實現合作訓練模型。

      第三部分:效果激勵。聯邦學習的一大特點就是它解決了爲什麼不同機構要加入聯邦共同建模的問題,即建立模型以後模型的效果會在實際應用中表現出來,並記錄在永久數據記錄機制(如區塊鏈)上。提供數據多的機構所獲得的模型效果會更好,模型效果取決於數據提供方對自己和他人的貢獻。這些模型的效果在聯邦機制上會分發給各個機構反饋,並繼續激勵更多機構加入這一數據聯邦。以上三部分的實施,既考慮了在多個機構間共同建模的隱私保護和效果,又考慮了以一個共識機制獎勵貢獻數據多的機構。所以,聯邦學習是一個「閉環」的學習機制。

聯邦學習優勢

 

(1)數據隔離,數據不會泄露到外部,滿足用戶隱私保護和數據安全的需求;

       (2)能夠保證模型質量無損,不會出現負遷移,保證聯邦模型比割裂的獨立模型效果好;

       (3)參與者地位對等,能夠實現公平合作;      (4)能夠保證參與各方在保持獨立性的情況下,進行信息與模型參數的加密交換,並同時獲得成長。

 

聯邦學習分類

  針對不同數據集,聯邦學習分爲橫向聯邦學習(horizontal federated learning)、縱向聯邦學習(vertical federated learning)與聯邦遷移學習(Federated Transfer Learning,FmL)。

 

橫向聯邦學習在兩個數據集的用戶特徵重疊較多,而用戶重疊較少的情況下,我們把數據集按照橫向(即用戶維度)切分,並取出雙方用戶特徵相同而用戶不完全相同的那部分數據進行訓練。這種方法叫做橫向聯邦學習。比如有兩家不同地區的銀行,它們的用戶羣體分別來自各自所在的地區,相互的交集很小。但是,它們的業務很相似,因此,記錄的用戶特徵是相同的。此時,我們就可以使用橫向聯邦學習來構建聯合模型。谷歌在2016年提出了一個針對安卓手機模型更新的數據聯合建模方案:在單個用戶使用安卓手機時,不斷在本地更新模型參數並將參數上傳到安卓雲上,從而使特徵維度相同的各數據擁有方建立聯合模型。

       縱向聯邦學習在兩個數據集的用戶重疊較多而用戶特徵重疊較少的情況下,我們把數據集按照縱向(即特徵維度)切分,並取出雙方用戶相同而用戶特徵不完全相同的那部分數據進行訓練。這種方法叫做縱向聯邦學習。比如有兩個不同的機構,家是某地的銀行,另一家是同一個地方的電商。它們的用戶羣體很有可能包含該地的大部分居民因此用戶的交集較大。但是,由於銀行記錄的都是用戶的收支行爲與信用評級,而電商則保有用戶的瀏覽與購買歷史,因此它們的用戶特徵交集較小。縱向聯邦學習就是將這些不同特徵在加密的狀態下加以聚合,以增強模型能力。目前,邏輯迴歸模型、樹形結構模型和神經網絡模型等衆多機器學習模型已經逐漸被證實能夠建立在此聯邦體系上。

        聯邦遷移學習在兩個數據集的用戶與用戶特徵重疊都較少的情況下,我們不對數據進行切分,而利用遷移學習國來克服數據或標籤不足的情況。這種方法叫做聯邦遷移學習。比如有兩個不同機構,一家是位於中國的銀行,另一家是位於美國的電商。由於受地域限制,這兩家機構的用戶羣體交集很小。同時,由於機構類型的不同,二者的數據特徵也只有小部分重合。在這種情況下,要想進行有效的聯邦學習,就必須引入遷移學習,來解決單邊數據規模小和標籤樣本少的問題,從而提升模型的效果。

聯邦學習源碼

1.https://www.tensorflow.org/federated/

2.https://github.com/WeBankFinTech/FATE