大數據“復活”記
1409
2025-03-31
————————
計算機軟件新技術國家重點實驗室
偽文藝程序員
既可提刀立碼,行遍天下
又可調參煉丹,臥于隆中
聯邦學習(Federated Learning)是一種使用分布式優化方法來保護多方合作時數據隱私的技術,核心點在于:分布式和數據隱私。
不同于傳統的分布式優化(Distributed Optimization)技術,聯邦學習考慮到了數據的隱私、數據的非獨立同分布性質、數據傳輸的瓶頸等問題,而分布式優化僅僅是為了協同多臺機器共同完成大規模數據優化訓練。
不同于傳統的密碼學加密技術,聯邦學習訓練的模型包含大量的復雜操作,模型本身包含的信息和數據有多少程度的關系,傳輸模型是否等價于傳輸數據等問題,需要進一步探討。
總而言之,聯邦學習不局限于傳統的分布式優化問題,也不僅僅是通過傳統密碼學的同態加密等技術就輕易解決的任務,也并不是分布式優化和密碼學的結合。聯邦學習應用廣泛,涉及技術領域眾多,引起了世界范圍內學者的廣泛關注。
舉例而言,2019年Google在Arxiv上掛載了一篇工作《Advances and Open Problems in Federated Learning》,翻譯過來即是《聯邦學習進展和開放問題》,這篇工作是一個專門關于聯邦學習的會議的總結,邀請了來自全球20+個機構的50+名聯邦學習領域知名學者對聯邦學習領域的發展和問題進行了總結,包含了400+多篇工作,文章鏈接和首頁截圖如下:
(鏈接:https://arxiv.org/abs/1912.04977)
本文根據將根據以下幾個方面對聯邦學習展開介紹:
·??????? 聯邦學習定義、難點、應用、分類
·??????? 聯邦學習相關研究、區別聯系
·??????? 聯邦學習經典算法FedAvg
·??????? 聯邦學習核心難點之一:NonIID數據
·??????? 聯邦學習開源平臺、研究機構 & 學者
在此說明,筆者閱讀了約40+篇聯邦學習論文、通讀了《Advances and Open Problems in Federated Learning》,關于聯邦學習從事了將近1年的科研研究,只是對聯邦學習稍有心得,記錄在此文。文章定有很多不足之處,希望讀者多多指正。本文約50%+內容參考自Advances and Open Problems in Federated Learning》,后文簡稱“聯邦學習大綜述”。
聯邦學習定義、難點、應用、分類
首先,關于聯邦學習的定義就分為很多種,也有很多不同場景下的聯邦學習。首先,引用一下大綜述摘要里面對聯邦學習的介紹:
Federated learning (FL) is a machine learning setting where many clients (e.g. mobile devices or whole organizations) collaboratively train a model under the orchestration of a central server (e.g. service provider), while keeping the training data decentralized.
翻譯過來為:
聯邦學習是一種機器學習范式,可以在一個中心服務器的協調下讓多個客戶端互相合作,即便在數據分散在客戶端的情況下也可以得到一個完整的機器學習模型。
這里的客戶端有不同層級的指代,在不同的任務中可以指代不同的事物。比如,在手機輸入法預測下一個詞語的任務中,一般需要使用自然語言處理中的N-Gram模型(Natural Language Models)來預測下一個詞語,這個任務中客戶端就是很多部用戶的手機;在醫療領域,使用圖像識別分割等機器學習技術對病例進行診斷需要大量的數據支持,而這些數據正往往是涉及大量用戶隱私的,因此在這種情況下需要一種安全的方法來協同多個醫療機構的數據進行訓練,在這個情況下,客戶端就是一家家的醫療機構。
如何做到隱私保護呢?聯邦學習給出了答案。首先解釋一下為何叫“聯邦”學習,聯邦這個詞原本指的是多個成員單位(州、邦、國等)組成的統一國家,總體上遵循共同的法律約束,但又保留了每個成員相對獨立的立法、司法和行政機關,設有中央政府,并約定各成員忠誠。在聯邦學習里面,各個客戶端通過中心服務器進行協調,在各個客戶端和中心服務器彼此信任的情況下(無惡意猜測和攻擊)可以達到很理想的隱私保護要求,中心服務器只負責協調、聚合等功能,模型還是根據客戶端本地的數據進行訓練,允許一定程度上的個性化訓練方式。
總結來說,“聯邦”一詞在實際政治和機器學習領域所涉及的主體、事物、功能,對應如下:
·??????? 中央政府 <--> 中心服務器
·??????? 成員單位 <--> 客戶端
·??????? 總體上遵循共同的法律約束 <--> 中心服務器協調、聚合
·??????? 相對獨立的立法司法行政 <--> 一定程度上的個性化訓練
·??????? 成員單位忠誠 <--> 客戶端和中心服務器彼此無惡意猜測、攻擊
故而,McMahan采用了聯邦學習這個詞。目前為止,已經引出了聯邦學習涉及的兩大核心主體:中心服務器、客戶端。并且其功能大致為:中心服務器負責宏觀上協調各個客戶端,客戶端負責在本地訓練機器學習模型。那么中心服務器如何協調呢?大概的流程又如何呢?
先給出一張聯邦學習常見框架圖,具體算法細節詳見后面的介紹FedAvg。圖中描繪出了三個客戶端和一個中心服務器,客戶端和服務器之間有通信。
一般而言,聯邦學習有以下四個步驟(以基于梯度訓練深度神經網絡為例):
1.??? 所有客戶端分別獨立地在本地數據上進行訓練;
2.??? 客戶端對模型參數或者模型參數的梯度進行加密,上傳到服務器;
3.??? 服務器對搜集到的客戶端的模型參數或者梯度進行聚合,并且是安全聚合(Secure Aggregation);
4.??? 服務器將模型下發到各個客戶端;
這個過程用Qiang Yang老師在《Federated Machine Learning: Concept and Applications》中的一張示意圖展示更為清晰:
此中,涉及到了許多問題,比如:
·??????? Non-IID問題:由于數據來自各個客戶端,數據分布不再滿足傳統機器學習假設的數據獨立同分布(IID)性質,反而是非獨立同分布(Non-IID)的,這種情況下如何保證各個客戶端訓練的模型依舊可以被有效地全局聚合(Global Aggregation)?此外,即便能聚合出好的模型,如何將其部署下發到數據分布有所差異的客戶端,即模型個性化問題(Personalization)?
·??????? 數據傳輸問題:聯邦學習嚴重依賴于數據傳輸,如何降低數據傳輸的開銷以及如何確保通信不穩定的情況下系統依舊可以正常工作?
·??????? 隱私保護措施:什么是安全聚合,怎么樣才能做到安全多方計算(Secure Multi-Party Computing, Secure MPC)? 現有的解決方法有差分隱私(Differential Privacy)、同態加密(Homomorphic Encryption)等等。
至于如何去解決這些問題,本文不去詳細介紹,后面會著重介紹一下Non-IID問題,其余兩個留待后續文章解讀。
下面回歸到聯邦學習的應用。剛剛大概指出了聯邦學習在手機輸入法預測和醫療診斷中的應用,這里細致地梳理一下:
(1)輸入法:Google的Gboard、Apple的QuickType
Gboard是Google 推出一款針對 iOS 設備和Android設備的虛擬鍵盤,QuickType是Apple在iOS 8中開始采用的全新預測文本功能,都屬于智能輸入法的范疇,可以結合用戶的喜好和常識性短語進行自動預判用戶下一步的輸入,方便用戶聊天打字等。
一方面,手機、便攜電腦隨處可見,有大量用戶的地方最容易誕生人工智能,因此智能輸入的作用和潛在價值無須多提;另一方面,用戶輸入的東西既包含用戶自身隱私相關的內容,比如年齡、住址、家庭狀況等,又同時包含普遍用語、網絡流行用語等,因此既要保護數據隱私、又要綜合考慮大部分用戶想看到的下一步輸入。因此,需要聯邦學習。
(2)醫療:doc.ai, bringing healthcare into the digital age
doc.ai致力于將人工智能應用到智能健康領域,加速醫療數字化進程,運用聯邦學習解鎖了醫療數據具有很大價值和醫療數據涉及隱私的矛盾,原文為:Unlock the value of health data with privacy-preserving solutions。具體參考doc.ai主頁:
(鏈接:https://doc.ai/)
(3)金融:微眾銀行和阿里支付寶
微眾銀行基于數據安全聯合建模,可以更好地支撐信貸行業的價值創造,并提升信貸行業的風險控制能力,發展了通過聯邦學習的智能風控等業務。FDN(Federated Data Network)致力于建立企業級保護數據安全的大數據合作網絡。
(鏈接:https://fdn.webank.com/)
此外,阿里支付寶也將聯邦學習應用到了各種金融工具的數據分析和機器學習建模過程當中。
微眾銀行AI項目組發起組建了聯邦學習生態圈,稱為FedAI,并開源了聯邦學習系統FATE,旨在開發和推廣數據安全和用戶隱私保護下的AI技術及其應用。詳情可以參考鏈接:
https://www.fedai.org/
https://www.zhihu.com/org/feaai/posts
這里值得一提的是FedAI聯邦學習的宗旨:安全互聯打破數據孤島,合作聯盟建立數據生態。
接下來介紹一下聯邦學習的分類,即不同的場景。在大綜述里面,聯邦學習被分為了Cross-silo和Cross-device兩種,silo的意思是“倉庫;地窖;豎井”,這里可以理解為倉庫或者企業,device就是設備。直觀上看,Cross-silo FL面對的客戶端是企業級別、機構單位級別的,而Cross-device FL針對的則是便攜式電子設備、穿戴式電子設備等,統稱為物聯設備(Internet of Things, IoT devices)。下面將兩者的區別列成表格如下:
間數據分布差異的難點;而Cross-device FL面向的主要是物聯網設備,經常使用WIFI信號進行通信,傳輸受到限制,并且IoT設備計算資源有限,受到的限制更多,挑戰更大,任務更困難。
這里詳細說一下上表中最后一行“數據劃分依據”,這里引出了另外一種聯邦學習的劃分方法,即橫向聯邦學習(Horizontal FL)和縱向聯邦學習(Vertical FL)。先介紹兩個場景,用戶畫像建模和輸入法預測。
在用戶畫像建模任務中,目標是以用戶為單位,將其基本信息、興趣愛好、購物喜好、飲食喜好等等建模并關聯起來,這就需要聯合多個APP上的用戶數據進行建模,比如淘寶、美團、網易云音樂等等,至于這些單位是否真的合作,這里不妄加判斷。在這個場景中,用戶的數據分散在各個客戶端(各家企業數據),相當于是將用戶的數據進行了縱向切分,是典型的縱向聯邦學習應用場景。
與之不同的是,輸入法預測目的在于預測下一個詞是什么,數據分散在各個客戶的手機上,主要是按照數據樣本進行劃分的,是典型的橫向聯邦學習應用。
這里縱向、橫向的理解,可以將數據想像成一個矩陣?,其中代表樣本個數,代表樣本維度。在用戶畫像建模中,一個用戶即是一個樣本,用戶的特征
被分為維度分散在各個企業的數據倉庫中,是縱向切分;在輸入法預測任務中,一條輸入記錄是一個樣本,用戶?有??條輸入記錄,即數據被橫向分為了?份分散到各個客戶端,是橫向切分。縱向和橫向切分的示意圖如下:
總而言之,客戶端之間如何是樣本(Samples)不同,特征(Features)相同,則是Vertical FL;反之,如果是樣本重合很多,但是特征不同,則可歸為Horizontal FL。
聯邦學習相關研究、區別和聯系
和聯邦學習相關的研究方向主要包括:分布式優化(Distributed Optimization)和多任務學習(Multi-Task Learning)。
分布式優化致力于解決海量數據或者計算資源匱乏情況下的模型訓練問題。隨著數據海量增長,工業界急需大數據處理技術,特別是如何在數據分布在不同設備上時的機器學習訓練。
為了解決單一機器難以訓練大量數據或者為了使用并行計算利用多臺機器加速模型訓練等目的,DistBelief等分布式訓練框架被提出(NeurIPS 2012):
上面展示的框架中主要包括幾個概念:1)Data Shards:數據碎片,也可以翻譯為數據塊;2)Model Replicas:模型副本;3)Parameter Server:參數服務器。一般來說,模型副本存儲了模型的部分模塊,使用數據塊更新這部分參數之后將參數梯度上傳至參數服務器,參數服務器更新模型之后再將模型下發下去。參數服務器保存完整的模型,模型副本只包含部分模型參數,不同模型副本之間更新過程是異步的。
可以看出,傳統的分布式訓練基于參數服務器架構(Parameter Server),參數服務器扮演了重要的角色。后來李沐、Smola等大神又針對參數服務器進行改進,于2014年提出了第三代參數服務器:
李沐、陳天奇等將基于第三代參數服務器的分布式訓練架構融入了著名的深度學習開源框架MxNet,因此享譽一時,其貢獻不言而喻。
傳統的分布式模型訓練還包括DistributedSGD等算法,同時還對Batch和Mini-Batch,同步和異步的情況進行了研究,這里不再仔細介紹,留待以后的文章補充。
另外一個和聯邦學習密切相關的領域是多任務學習(Multi-Task Learning)。如果說聯邦學習延續了分布式優化中的架構,那么聯邦學習處理數據異構的方法則大多數來源于多任務學習。多任務學習研究如何協調多個任務共同訓練,得到適合于每個任務的模型,具體可包括同構任務、異構任務等。如果將聯邦學習中每個客戶端看成一個單獨的任務,那么聯合所有客戶端一起訓練則是典型的多任務學習。
除了這些,聯邦學習還和點對點(Peer-to-peer)訓練有一定關系。聯邦學習和分布式優化中有一個中央控制,即參數服務器。而Peer-to-peer強調的是沒有中心控制的情況下,各個客戶端如何自行尋找合適的節點一起訓練,也稱為Fully-decentralized Training。
用下面的表格總結一下就是:
聯邦學習經典算法FedAvg
下面介紹聯邦學習經典算法FedAvg,來自于McMahan的《Communication-Efficient Learning of Deep Networks from Decentralized Data》,發表在AISTATS 2017。
這篇文章第一次提出了聯邦學習這個概念,提出了FedAvg算法。首先展示一下FedAvg算法偽代碼:
首先是場景設置:有 K?個客戶端,每個客戶端上有一批數據,如何在數據不外傳的情況下得到一個所有數據訓練出來的模型?
傳統做法:設立一個參數服務器,各個客戶端上采樣一個Batch的數據,計算一步梯度,將梯度發送到參數服務器,參數服務器收到來自 K個客戶端的梯度之后平均,更新全局模型,然后將全局模型下發到各個客戶端。這個方法被稱為Distributed SGD,在這個文章里面被稱為FedSGD。其公式主要是:。其中??是第??時刻全局服務器下發到各個客戶端的參數,??是第??個客戶端的損失函數,??是一步梯度,??是全局服務器收到各個客戶端的梯度之后聚合,在?上更新的結果。
FedAvg做法:
1.??? FedAvg首先將梯度聚合變為模型聚合,即每個客戶端上進行一步梯度下降:??,??,然后客戶端將更新后的模型參數??上傳到服務器,服務器對參數進行平均:??。容易證明,到目前為止FedAvg和FedSGD等價,因為客戶端只做了一步梯度下降,區別只在于一個傳輸梯度,一個傳輸更新后的模型,這不是FedAvg和傳統方法的核心區別。
對比算法偽代碼,FedAvg包含本地模型更新和全局模型聚合兩個重要的過程:
·??????? 本地模型更新(Local Model Update):客戶端從服務器下載模型,在本地數據上進行模型更新,比如使用梯度下降更新??輪;
·??????? 全局模型聚合(Global Model Aggregation):中心服務器接收來自客戶端的各個模型(模型更新),使用簡單的加權平均更新模型。
此外,文章指出,聯邦學習和傳統的分布式優化主要區別于下面幾點:
·??????? Non-IID:不同客戶端數據分布非獨立同分布,比如數據分布差異大等等;
·??????? Unbalanced:不同客戶端數據量差異很大;
·??????? Massively distributed:客戶端數量極其多(比如IPhone手機用戶);
·??????? Limited communication:通訊情況不同且通信質量難以保證。
FedAvg為減小傳輸開銷提供了可行的解決方案,并且實驗發現,即便在數據Non-IID的情況下,性能依舊可以做的很好。
FedAvg包括幾個比較重要的超參數設置:全局迭代次數、本地更新輪數、Batch大小和學習率。Batch大小指的是局部客戶端更新每步采樣的數據數目,本地更新輪數決定了本地承載了多少計算量,全局迭代次數指的是全局聚合和本地更新共重復了多少次。
實驗場景構造:1)Cifar10:圖像識別任務中,將cifar10的數據按照數量隨機劃分到??個客戶端,是IID的設置;將數據按照類別劃分到不同的客戶端,比如每個客戶端只有某幾個類別的數據,最極致的Non-IID設置是每個客戶端只有來自一個類別的樣本數據;2)Shakespeare:將莎士比亞的詩集按照篇章進行劃分,每個篇章上的所有N-gram組成了這個客戶端上的訓練數據,具體任務就是N-gram預測下一個字符的任務。最終測試是在單獨劃分出來的一個包含所有類別的測試集上進行測試,測試目標是最后一輪聚合的全局模型。
實驗結果展示:
后續有更多研究針對Non-IID數據進行處理,一般來說:越Non-IID的數據,客戶端之間分布差異大,本地模型更新輪數?? ? 應該設置的小一些;對于IID的數據,則相反,? ? ? ?可以設置的大一些以減小傳輸開銷。
聯邦學習核心難點之一:Non-IID數據
下面就具體介紹一下Non-IID的含義和種類,拿分類任務為例,數據包括圖像和類別標簽,分別用??和??表示。針對客戶端之間的分布差異,具體可以分為下面五種情況:
·??????? Feature Distribution Skew (Covariate Shift):特征分布偏移,具體指的是不一致,但是?一致。比如:不同人的字跡差異很大,但小明寫的“聯邦學習”和小紅寫的“聯邦學習”都應該被識別為“聯邦學習”。
·??????? Label Distribution Skew (Prior Probability Shift):標簽分布偏移,具體指的是?不一致,但是?一致。比如:不同人認識的字的集合不一樣,雖然字都是打印的楷體,但是小明認識“聯邦學習”,小紅只認識“學習”。
·??????? Same Label, Different Features (Concept Shift 1):一樣的標簽,但卻有了不同的表現,具體指的是??不一致,但是??一致。這個需要和第一種FDS區分開來,第一種強調特征變化,但是即便特征不同,依舊可以被識別為相同的類別。而這里指的是,類別集合一致,但是認知的表現形式卻不一致。比如:人皆有愛美之心,假設現在有一個圖像鑒別顏值的任務,標簽都是“美”、“一般”兩類,客戶端A來自唐朝圖像,客戶端B來自楚國圖像,客戶端A會任務“美”指的是“豐腴”的圖像,但是客戶端B會認為“美”指的是“細腰”的圖像。
·??????? Same Feature, Different Labels (Concept Shift 2):一樣的圖像,但卻有了不同的標簽,具體指的是??不一致,但是??一致。依舊拿上面的例子為例:客戶端A會把“豐腴”的圖像分類為“美”,但是客戶端B會把“豐腴”的圖像分類為“一般”,雖然兩個客戶端上面“豐腴”的圖像分布很接近。
·??????? Quantity Skew:客戶端上樣本數目差異巨大。
以上五種分布差異并不是嚴格割裂開來的,在實際場景中往往包含多種分布不一致情形。另外,不同的分布不一致情形具有不同的處理方法,因此可以在實際任務中判斷場景數據和哪一種情況比較接近,然后再進行尋求相應的方法處理。
將上述各種情形總結如下:
至于聯邦學習里面如何去解決Non-IID帶來的一些困擾,具體可以包括以下幾種辦法:
·??????? 共享數據:由于客戶端數據分布不一致,在本地訓練的模型往往分歧比較大,因此可以在參數服務器上保留一些公共數據,這些公共數據包含了客戶端上所有分布下的數據,可以用來矯正聚合的模型;由于數據涉及隱私,往往可以通過GAN訓練一些偽造數據等等;
·??????? 正則化項:Non-IID帶來的問題主要是在于各個客戶端上的梯度差異過大,因此聚合時可能會不收斂或者難收斂,因此需要加入正則化項限制客戶端上模型訓練和公有模型的差異;
·??????? 基于其它學習范式:上文也提到了聯邦學習和多任務學習的相關性,因此可以利用多任務學習技術來解決Non-IID問題,此外還可以借助元學習(Meta Learning)、增量學習(Incremental Learning)等范式。
具體關于解決Non-IID的算法留待以后的文章詳細介紹。
聯邦學習開源平臺、研究機構 & 學者
下面介紹一下聯邦學習領域目前已有的開源工具包、知名研究機構和學者,以供大家快速入門使用和進一步參考學習。
開源工具包主要包括:
谷歌TensorFlow Federated:?https://tensorflow.google.cn/federated?hl=zh-cn
微眾銀行FATE:? https://fate.fedai.org/ & ? ? ?https://github.com/FederatedAI/FATE
百度PaddleFL:https://github.com/PaddlePaddle/PaddleFL
CMU LEAF:https://leaf.cmu.edu/
聯邦學習領域知名研究企業包括谷歌、蘋果、微眾銀行、阿里支付寶、百度等等;其余知名研究機構包括卡耐基梅隆大學、康奈爾大學、洛桑聯邦理工學院(EPFL)、埃默里大學、佐治亞理工學院、香港科技大學等。
聯邦學習領域知名學者:
·??????? H. Brendan McMahan:CMU博士、谷歌科學家、代表作FedAvg
·??????? Martin Jaggi:EPFL副教授
·??????? Martín Abadi:UCSC教授,代表作Deep Learning with Differential Privacy
·??????? Peter Kairouz:伊利諾伊大學厄巴納-香檳分校UIUC博士、Google工程師,大綜述一作
·??????? Qiang Yang:香港科技大學教授,研究方向遷移學習和聯邦學習
其余知名學者不再詳細介紹,或者筆者見識淺薄,有許多大牛沒有加入進來,歡迎補充。
總結
文章對聯邦學習的基本概況進行了介紹,包括:聯邦學習是什么?聯邦學習做什么?聯邦學習的基本架構?聯邦學習和其余相關技術的關系?聯邦學習的具體應用?聯邦學習有哪些難點?聯邦學習中的Non-IID問題是什么?聯邦學習開源的工具包有哪些?聯邦學習有哪些知名研究機構和學者?...
后續文章會針對具體聯邦學習算法進行介紹,文章不足也歡迎讀者批評指正。
參考文獻
1.??? Peter Kairouz, H. Brendan McMahan, et al: Advances and Open Problems in Federated Learning. CoRR abs/1912.04977 (2019)
2.??? Brendan McMahan, Eider Moore, Daniel Ramage, Seth Hampson, Blaise Agüera y Arcas: Communication-Efficient Learning of Deep Networks from Decentralized Data. AISTATS 2017: 1273-1282
3.??? Qiang Yang, Yang Liu, Tianjian Chen, Yongxin Tong: Federated Machine Learning: Concept and Applications. ACM Trans. Intell. Syst. Technol. 10(2): 12:1-12:19 (2019)
4.??? Jeffrey Dean, Greg Corrado, Rajat Monga, Kai Chen, Matthieu Devin, Quoc V. Le, Mark Z. Mao, Marc'Aurelio Ranzato, Andrew W. Senior, Paul A. Tucker, Ke Yang, Andrew Y. Ng: Large Scale Distributed Deep Networks. NIPS 2012: 1232-1240
5.??? Mu Li, David G. Andersen, Jun Woo Park, Alexander J. Smola, Amr Ahmed, Vanja Josifovski, James Long, Eugene J. Shekita, Bor-Yiing Su: Scaling Distributed Machine Learning with the Parameter Server. OSDI 2014: 583-598
網絡智能體
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。