聯邦學習算法綜述
王健宗1,孔令煒1,黃章成1,陳霖捷1,劉懿1,何安珣1,肖京2
1. 平安科技(深圳)有限公司,廣東深圳 518063
2. 中國平安保險(集團)股份有限公司,廣東深圳 518031
摘要:近年來,聯邦學習作為解決數據孤島問題的技術被廣泛關注,已經開始被應用於金融、醫療健康以及智慧城市等領域。從3個層面系統闡述聯邦學習算法。首先通過聯邦學習的定義、架構、分類以及與傳統分布式學習的對比來闡述聯邦學習的概念;然後基於機器學習和深度學習對目前各類聯邦學習算法進行分類比較和深入分析;最後分別從通信成本、客戶端選擇、聚合方式優化的角度對聯邦學習優化算法進行分類,總結了聯邦學習的研究現狀,並提出了聯邦學習面臨的通信、系統異構、數據異構三大難題和解決方案,以及對未來的期望。
關鍵詞:聯邦學習, 算法優化, 大數據, 數據隱私
論文引用格式:
王健宗,孔令煒,黃章成, 等. 聯邦學習算法綜述[J]. 大數據, 2020, 6(6): 64-82.
WANG J Z, KONG L W, HUANG Z C, et al. Research review of federated learning algorithms[J]. Big Data Research, 2020, 6(6): 64-82.
1 引言
隨著數位化技術進入高速發展期,大數據和人工智慧等技術迎來爆發式發展,這一方面為傳統業態帶來了升級變革的新機遇,另一方面不可避免地給數據和網絡安全帶來了全新的挑戰,而數據孤島問題是關鍵挑戰之一。縱向來看,行業頂尖的巨頭公司壟斷了大量的數據信息,小公司往往很難得到這些數據,導致企業間的層級和差距不斷拉大;橫向來看,同一層級不同行業的公司,由於系統和業務的閉塞性與阻隔性,很難實現數據信息的交流與整合,聯合建模需要跨越重重壁壘。
針對上述人工智慧行業目前面臨的痛點,聯邦學習給出了答案。聯邦學習是由谷歌研究院在2016年率先提出的概念。該技術可在數據不共享的情況下完成聯合建模。具體來講,各個數據擁有者(個人/企業/機構)的自有數據不會離開本地,通過聯邦系統中加密機制下的參數交換方式(即在不違反數據隱私法規的情況下)聯合建立一個全局的共享模型,建好的模型在各自的區域只為本地的目標服務。儘管聯邦學習和分布式機器學習有部分相似的地方,但是在應用領域、系統設計、優化算法方面,聯邦學習有自己的特徵。在數據量龐大、所需計算資源較高時,分布式機器學習(如參數伺服器)有明顯的優勢,它將獨立同分布(independently identically distribution,IID)的數據或模型參數存儲在各個分布式節點上,中心伺服器調動數據和計算資源,聯合訓練模型。因客戶端的地理、時間等分布差異,聯邦學習經常要處理非獨立同分布(nonIID)的數據。本文結合聯邦學習的現狀,對聯邦學習系統進行分層,按模塊整理聯邦學習目前取得的相關成果。
聯邦學習算法結構如圖1所示。
為了整合多個來源的數據,當前比較普遍的做法是通過數據預處理ETL(extracttransform-load)工具將不同源的數據移動到關係資料庫中,將具有龐大計算量的任務部署到多臺機器上,以提升計算效率,減少任務耗能。
圖1 聯邦學習算法結構
2 聯邦學習概述
2.1 聯邦學習的定義
2016年,谷歌研究院在解決面向用戶個體的鍵盤輸入法優化問題時,提出了聯邦學習這一全新的人工智慧解決方案。聯邦學習面向的場景是分散式多用戶
,每個用戶客戶端擁有當前用戶的數據集
。傳統的深度學習將這些數據收集在一起,得到匯總數據集
,訓練得到模型MSUM。聯邦學習方法則是由參與的用戶共同訓練一個模型MFED,同時用戶數據Di保留在本地,不對外傳輸。如果存在一個非負實數δ,使得MFED的模型精度VFED與MSUM的模型精度VSUM滿足如下不等式:
則稱該聯邦學習算法達到δ-精度損失。聯邦學習允許訓練模型存在一定程度的性能偏差,但是為所有的參與方提供了數據的安全性和隱私保護。聯邦學習常用的框架有兩種,一種是客戶端-伺服器架構,另一種是對等網絡架構。在客戶端-伺服器架構中,聯邦學習的訓練方式是讓各個數據持有方根據自己的條件和規則在本地訓練模型,然後將脫敏參數匯總到中央伺服器進行計算,之後再下發回各個數據持有方更新自己本地的模型,直至全局模型穩健為止。在對等網絡架構中進行聯邦學習訓練時,參與方之間可以直接通信,不需要藉助第三方,安全性得到了進一步提高,但是需要更多的計算操作進行加密和解密。目前的研究更多的是基於第三方伺服器的框架。因此本文著重介紹客戶端-伺服器架構的聯邦學習流程。
2.2 客戶端-伺服器架構的聯邦學習流程
在物理層面上,聯邦學習系統一般由數據持有方和中心伺服器組成。各數據持有方的本地數據的數量或特徵數可能並不足以支持一次成功的模型訓練,因此需要其他數據持有方的支持。而聯邦學習中心伺服器的工作類似於分布式機器學習的伺服器,其收集各數據持有方的梯度,並在伺服器內進行聚合操作後返回新的梯度。在一次聯邦學習的合作建模過程中,數據持有方對本地數據的訓練僅發生在本地,以保護數據隱私,迭代產生的梯度在脫敏後被作為交互信息,代替本地數據上傳給第三方受信任的伺服器,等待伺服器返回聚合後的參數,對模型進行更新[8]。圖2展示了客戶端-伺服器架構的聯邦學習流程。
步驟1:系統初始化。首先由中心伺服器發送建模任務,尋求參與客戶端。客戶端數據持有方根據自身需求,提出聯合建模設想。在與其他合作數據持有方達成協議後,聯合建模設想被確立,各數據持有方進入聯合建模過程。由中心伺服器向各數據持有方發布初始參數。
步驟2:局部計算。聯合建模任務開啟並初始化系統參數後,各數據持有方將被要求首先在本地根據己方數據進行局部計算,計算完成後,將本地局部計算所得梯度脫敏後進行上傳,以用於全局模型的一次更新。
步驟3:中心聚合。在收到來自多個數據持有方的計算結果後,中心伺服器對這些計算值進行聚合操作,在聚合的過程中需要同時考慮效率、安全、隱私等多方面的問題。比如,有時因為系統的異構性,中心伺服器可能不會等待所有數據持有方的上傳,而是選擇一個合適的數據持有方子集作為收集目標,或者為了安全地對參數進行聚合,使用一定的加密技術對參數進行加密,這些方法將會在後面的章節中詳細討論。
圖2 客戶端-伺服器架構的聯邦學習流程
步驟4:模型更新。中心伺服器根據聚合後的結果對全局模型進行一次更新,並將更新後的模型返回給參與建模的數據持有方。數據持有方更新本地模型,並開啟下一步局部計算,同時評估更新後的模型性能,當性能足夠好時,訓練終止,聯合建模結束。建立好的全局模型將會被保留在中心伺服器端,以進行後續的預測或分類工作。
上述過程是一個典型的基於客戶端伺服器架構的聯邦學習過程。但並不是每個聯邦學習任務都一定要嚴格按照這樣的流程進行操作,有時可能會針對不同場景對流程做出改動,例如,適當地減少通信頻率來保證學習效率,或者在聚合後增加一個邏輯判斷,判斷接收到的本地計算結果的質量,以提升聯邦學習系統的魯棒性。
2.3 聯邦學習與傳統分布式學習的區別
基於客戶端-伺服器架構的聯邦學習和分布式機器學習都是用來處理分布式數據的,但在應用領域、數據屬性和系統構成等方面,其與分布式機器學習存在差異,主要如下。
(1)應用領域
大量的數據或者較大的模型往往對計算資源有較高的要求。單一的計算節點已經不能滿足需求。分布式機器學習將訓練數據或模型參數分布在各個計算或存儲節點,利用中心伺服器對節點進行調度,加速模型的訓練。而當數據具有隱私敏感屬性時,分布式機器學習的中心調度將會給用戶數據帶來極大的隱私洩露風險。聯邦學習始終將數據存儲在本地,相比需要將數據上傳到伺服器的方式,可以最大限度地保障數據隱私。
(2)數據屬性
機器學習的主要目的是尋找數據的概率分布,這在數據集滿足獨立同分布的情況下相對比較容易。分布式機器學習與經典機器學習處理的數據往往是獨立同分布的,聯邦學習則有所不同。由於客戶端的地理位置、時間等分布的差異性,聯邦學習系統的原始數據往往是非獨立同分布的。同時,橫向聯邦學習和縱向聯邦學習也是根據客戶端數據的不同屬性來進行分類的。客戶端之間的數據特徵和分類標籤差異較大,在進行訓練時需要進行對齊工作。
(3)系統構成
在物理組成上,聯邦學習系統和分布式系統較為相似,都由中心伺服器和多個分布式節點構成。在分布式系統中,數據計算和模型更新統一由中心伺服器進行調度,節點和中心伺服器之間的數據時延較小,模型訓練時間主要由計算時間決定。而在聯邦系統中,各個參與方地位平等,可以自主決定是否參與模型訓練。且由於分布式節點多為計算能力差異較大、網絡環境不同以及所處狀態不可控的客戶端,在系統設計上,需要考慮數據傳遞時延、數據非獨立同分布以及隱私安全等眾多因素,這就要求系統對聯邦學習算法做出適應性的改變。聯邦聚合是聯邦學習系統中不同於分布式機器學習的優化算法,為解決數據非獨立同分布和減輕數據異構提供了新的思路。同時,由於聯邦學習具有極好的隱私保護能力,在系統的各個環節都要注意加密算法的應用。加密數據的傳遞、目標函數損失的計算、梯度的計算與傳遞模型參數的傳遞等都對傳統的算法提出了新的要求。
2.4 聯邦學習分類
聯邦學習的孤島數據有不同的分布特徵。對於每一個參與方來說,自己所擁有的數據可以用一個矩陣來表示。矩陣的每一行表示每一個用戶或者一個獨立的研究對象,每一列表示用戶或者研究對象的一種特徵。同時,每一行數據都會有一個標籤。對於每一個用戶來說,人們希望通過他的特徵X,學習一個模型來預測他的標籤Y。在現實中,不同的參與方可能是不同的公司或者機構,人們不希望自己的數據被別人知道,但是人們希望可以聯合訓練一個更強大的模型來預測標籤Y。
根據聯邦學習的數據特點(即不同參與方之間的數據重疊程度),聯邦學習可被分為橫向聯邦學習、縱向聯邦學習、遷移聯邦學習。
當兩個參與方的用戶重疊部分很少,但是兩個數據集的用戶特徵重疊部分比較多時,這種場景下的聯邦學習叫作橫向聯邦學習。比如一個銀行系統在深圳和上海的分部為參與方,兩邊業務類似,收集的用戶數據特徵比較類似,但是兩個分部的用戶大部分是本地居民,用戶重疊比較少,當兩個分部需要做聯邦模型對用戶進行分類的時候,就屬於橫向聯邦學習。
當兩個參與方的用戶重疊部分很多,但是兩個數據集的用戶特徵重疊部分比較少時,這種場景下的聯邦學習叫作縱向聯邦學習。比如同一個地區的兩個機構,一個機構有用戶的消費記錄,另一個機構有用戶的銀行記錄,兩個機構有很多重疊用戶,但是記錄的數據特徵是不同的,兩個機構想通過加密聚合用戶的不同特徵來聯合訓練一個更強大的聯邦學習模型,這種類型的機器學習模型就屬於縱向聯邦學習。
當兩個參與方的用戶重疊部分很少,兩個數據集的用戶特徵重疊部分也比較少,且有的數據還存在標籤缺失時,這種場景下的聯邦學習叫作遷移聯邦學習。比如兩個不同地區的機構,一個機構擁有所在地區的用戶消費記錄,另一個機構擁有所在地區的銀行記錄,兩個機構具有不同的用戶,同時數據特徵也各不相同,在這種情況下聯合訓練的機器學習模型就是遷移聯邦學習。
目前大部分的研究是基於橫向聯邦學習和縱向聯邦學習的,遷移聯邦學習領域的研究暫時還不多。因此,本文將重點討論橫向聯邦學習和縱向聯邦學習的算法類型。橫向聯邦學習中數據特徵重疊維度較多,根據重合維度進行對齊,取出參與方數據中特徵相同而用戶不完全相同的部分進行聯合訓練;縱向聯邦學習用戶重合較多,根據用戶ID進行匹配,取出參與方數據中用戶相同而特徵不完全相同的部分進行聯合訓練。
2.5 聯邦學習算法的特點
基於上述對聯邦學習的介紹,總結出以下幾點聯邦學習算法的特點。
● 支持非獨立同分布數據:這是聯邦學習算法的一個很重要的特性。聯邦學習算法必須在非獨立同分布數據中有良好的表現。在聯邦學習的實際使用中,數據持有方的數據質量和分布是不可控的,無法要求數據持有方的數據滿足獨立同分布,因此聯邦學習算法需要支持非獨立同分布數據。
● 通信高效:聯邦學習算法需要考慮數據持有方的系統異構性,並在不損失準確率或損失很小的情況下提高通信效率,降低通信損耗。
● 快速收斂:在聯合建模過程中,首先需要保證模型收斂,同時需要提高收斂速度。
● 安全性和隱私性:數據隱私安全是聯邦學習的重要特點,因此安全性和隱私性是對聯邦梯度更新的必要要求。安全性和隱私性可以通過加密等方式在聚合過程中進行,也可以反映在單機優化的過程中。
● 支持複雜用戶:複雜用戶指用戶本身數量大,且用戶數據存在不均衡性或偏移。這在聯邦學習的實際應用中是非常可能的,聯邦優化算法需要對這種情況具有很好的兼容效果。
3 聯邦學習算法分類
聯邦學習系統是面向多客戶端的模型訓練系統,各個客戶端在參與訓練時,數據保留在本地,不會被發送給其他客戶端或中心伺服器。中心伺服器通過對客戶端發送的本地模型更新進行整合,最終完成共享模型的訓練。客戶端在進行本地模型訓練時,由於設備間計算能力的差異,各個客戶端完成計算的時間不同。同時由於本地數據和全局數據之間的分布差異,部分異常數據會對共享模型造成破壞,導致模型精度降低。聯邦學習算法針對以上問題,在機器學習算法和深度學習的基礎上做出修改,滿足非獨立同分布數據、網絡時延以及隱私保護的需求。
3.1 基於機器學習的聯邦學習算法
聯邦機器學習算法指在聯邦學習框架下的經典機器學習算法實現。聯邦機器學習,尤其是橫向聯邦學習,在整體模式上與分布式機器學習類似。但是,相較於傳統的機器學習算法,由於聯邦學習特有的迭代模式和特點,即需要在數據不出本地的基礎上雙方交換訓練參數以完成聯合建模,聯邦學習框架下的機器學習算法實現更加複雜。聯邦機器學習算法的實現往往基於上述聯邦優化算法的框架,但因為機器學習算法之間的差異性,有時又需要做一些針對性的修改,同時也需要考慮實際過程中的安全性等因素。下面介紹幾種目前常見的聯邦機器學習算法。
3.1.1 聯邦線性算法
Yang K等人提出了一種中心聯邦學習框架下的縱向聯邦邏輯回歸實現方法,這種方法實現了縱向聯邦學習中的邏輯回歸,其目標函數是:
其中,ω為模型的參數,xn為模型的特徵, yn為模型的標籤,n∈{{11,,N}}為數據的數量,
為模型損失函數。在縱向聯邦學習中,通常假設數據持有方分為有標籤數據持有方和無標籤數據持有方。這種算法在聯邦優化算法的框架下結合了同態加密的思想,訓練過程通過同態加密的方法對雙方的數據和梯度進行加密。假設無標籤數據持有方α的數據為
,其中
表示第τ輪狀態下的無標籤數據持有方的模型參數。用[dα]表示對dα的同態加密,整個訓練過程可以描述如下。
無標籤數據持有方α首先向有標籤數據持有方β發送[dα]、
及
,β計算梯度與損失,加密後回傳。中心伺服器收集來自α、β的加密梯度後,輔助α、β進行模型更新。為減少通信次數,降低通信損耗,這種方法引入了一個向量s來體現模型的變化,輔助更新,並且使用了周期性梯度更新。
Yang S W等人提出了一種去中心聯邦學習框架下的縱向聯邦邏輯回歸實現方法。他們認為在現實生活中,找到合作雙方共同信任的第三方輔助方是很難的,並且這也在無形中提高了數據洩露的風險和系統的整體複雜性,因此他們認為取消第三方的參與對整個過程有很大的積極意義。
在這種方法中,有標籤數據持有方在訓練過程中起主導作用。從某種意義上講,有標籤數據持有方承擔了被取消的中心伺服器的責任。假設有標籤數據持有方α和無標籤數據持有方β協定合作建模, α首先向β發送建模密鑰,α、β分別初始化參數ω1、ω2,並計算ωixi,其中i∈{{1,2}。計算完畢後β將計算結果發送給α,α對雙方計算結果取和,並利用邏輯回歸方程求取最終輸出,在對相同標籤值計算損失結果後,加密損失並返回。之後雙方分別計算梯度(對於β來說是加密後的梯度)。β將加密後的梯度添加噪聲後交由α解密返回,雙方分別進行梯度更新。在整個過程中,雙方彼此之間始終對數據進行保密,傳輸通道中也均為保密信息,這就使得數據的隱私性不止針對合作方,也擁有了一定的對抗外部異常攻擊的能力。
3.1.2 聯邦樹模型
Liu Y等人提出了一種基於中心縱向聯邦學習框架的隨機森林實現方法——聯邦森林。在建模過程中,每棵樹都實行聯合建模,其結構被存儲在中心伺服器及各個數據持有方,但是每個數據持有方僅持有與己方特徵匹配的分散節點信息,無法獲得來自其他數據持有方的有效信息,以保障數據的隱私性。最終整個隨機森林模型的結構被打散存儲,中心伺服器中保留完整的結構信息,節點信息被分散在各數據持有方。在使用模型進行預測時,首先獲取本地存儲的節點信息,然後通過中心節點聯合調用樹結構中其他客戶端的節點信息。這種方法減少了預測時每棵樹的通信頻率,對提高通信效率有一定的幫助。
SecureBoost是一種基於梯度提升決策樹(gradient boosting decision tree,GBDT)的去中心縱向聯邦學習框架,同樣包含有標籤數據持有方和無標籤數據持有方。梯度提升決策樹算法中聯邦學習需要交換的參數與聯邦線性算法有很大區別,涉及二階導數項。根據一般的梯度提升決策樹算法,目標函數為:
其中,τ為回歸樹的第τ次迭代,
為目標函數的最小化損失值,j(·,·)為每個葉子節點上損失的計算函數,F(x)為預測殘差的一階、二階導數之和,即泰勒二次展開式。為防止過擬合,在損失函數中添加正則項:
其中,γ和λ為超參數,分別控制樹和特徵的數量,ω為權重值,T為原始損失函數。
在一般分布式機器學習中,可以通過向參與方發送F(x)實現聯合建模。但是由於使用F(x)可以反推出數據標籤,這樣的方法顯然不適用於聯邦學習框架,因此, SecureBoost採用一種在保護數據隱私的同時,保證訓練性能的聯合建模方法。有標籤數據持有方α首先計算F(x),並將結果加密後發送給無標籤數據持有方β。β根據同態加密求和方法進行局部求和,並將結果回傳。收到計算結果後,α將數據按照特徵分桶,並進行聚合操作,將加密結果發送給β。最終由α將從β中收集的局部最優解進行聚合,產生最優解,並下發回β,完成聯合建模的過程。需要說明的是, SecureBoost支持多方合作,即無標籤數據持有方β表示所有無標籤數據持有方的集合,但是有標籤數據持有方僅為一方。與分布式XGBoost相比,SecureBoost在保障模型準確率的情況下,保護了數據的隱私,成功地將縱向GBDT應用到聯邦學習框架中。
Li Q B等人提出了一種實現多方GBDT建模的去中心橫向聯邦學習框架——基於相似度的聯邦學習(similarity-based federated learning,SimFL)。這種方法總體分為兩個步驟。首先,在預訓練時,各個數據持有方在本地對數據進行哈希分類,分類依據為局部敏感哈希(locality sensitive hashing,LSH);之後對各個本地哈希表進行聚合,生成全局哈希表,並向所有數據持有方發布。因此各個數據持有方在訓練階段可以基於全局哈希表進行建模,而不會直接接觸到其他數據持有方的數據。LSH還可以用於獲得不同數據持有方之間數據的相似性,數據的相似度越高,在哈希表中表現相同值的可能性就越大。
當某個數據持有方表現出與多個數據持有方有高度的數據相似性時,可以認為這個數據持有方的數據是很重要的,因此SimFL使用一種加權梯度上升(weighted gradient boosting)的方法進行單棵樹建模,具體思想表現為將相似程度與梯度權值關聯,相似程度越大,梯度權值越高,聚合時產生的表現力就越強。
這種通過哈希表加密的方法單從隱私保護性能上來講,無法超越差分隱私等方法,但是在犧牲小部分隱私保護強度的情況下,該方法在通信效率方面得到了補償,是一種聯邦學習框架下樹類算法實現的新方向。
3.1.3 聯邦支持向量機
Hartmann V等人提出了一種將支持向量機(support vector machine,SVM)安全部署在聯邦學習中的方法,主要通過特徵哈希、更新分塊等方式對數據隱私性進行保障。其目標函數如下:
其中,N為訓練數據,ω為模型參數, L(ω,xi,yi)為在點(xi,yi)的損失,λR(ω)為損失函數的正則項,超參數λ控制懲罰力度。在支持向量機中,其損失函數為:L(ω,xi,yi)=max{0,1-ωτxiyi}。類似於SimFL,這裡也對特徵值進行降維哈希處理,以隱藏實際的特徵值。除此之外,由於在線性支持向量機中,中心伺服器有可能根據更新梯度反推出數據標籤,為了保護數據的隱私性,這裡採用次梯度更新的更新方式。在實際表現中,這種支持向量機在聯邦框架下的應用具有不亞於單機支持向量機的性能。
3.2 基於深度學習的聯邦學習算法
為了保障數據隱私安全,聯邦學習客戶端在進行數據通信時,往往會對傳輸的信息進行編碼和加密,同時因為原始用戶數據對中心伺服器不可見,所以在模型搭建時訓練樣本對中心伺服器以及模型設計人員不可觀測。之前用於經典深度學習的相關模型在聯邦學習系統中不一定是最優設計。為了避免網絡模型的冗餘,需要對經典深度學習模型進行相應的修改,如神經網絡(neural network,NN)、卷積神經網絡(convolutional neural networks, CNN)、長短期記憶網絡(long shortterm memory,LSTM)等。同時,為了適應聯邦學習的流程,提高訓練效果,學習訓練的一些環節(如參數初始化、損失計算以及梯度更新等)也需要相應的調整。3.2.1 聯邦神經網絡
McMahan H B等人分別用NN和CNN在MNIST數據集上進行了測試。對於NN,模型的具體結構為含有兩個隱藏層的神經網絡,每個隱藏層包含200個神經元,且隱藏層用ReLU激活函數進行激活。然後將MNIST數據集分配到兩個計算節點,每個計算節點含有樣本量大小為600且無交集的子數據集。在進行聯邦訓練時,為了驗證模型參數初始化和聚合比例帶來的影響,實驗分為具有不同初始化方式的兩組:一組使用相同的隨機種子初始化分配在兩個計算節點的模型參數,另外一組使用不同的隨機種子初始化模型參數。每組實驗對來自不同節點的模型參數採用不同的權重比例進行加權整合,獲取最終的聯邦共享模型,即:
其中,ωFL為聯邦模型參數,ω和ω』為分布在不同節點的模型參數,θ用來調整兩個模型參數之間的比例。實驗發現,在達到相同的精度時,相比於單一數據本地訓練,使用模型平均方法的聯邦學習模型需要的訓練回合更少,訓練效率更高。在都使用聯邦學習時,使用相同的隨機初始化種子的聯邦模型具有較好的效果,同時在模型參數比例為1:1時,達到最優損失。
3.2.2 聯邦卷積神經網絡
Zhu X H等人使用簡單的CNN訓練隱私場景中的中文字體識別模型來測試現有的聯邦學習框架(TensorFlow federated (TFF)和PySyft)以及數據集和客戶端數量對聯邦模型的影響。雖然對於文本識別問題常採用遞歸網絡,但過於複雜的網絡結構往往會影響聯邦學習的收斂效率,於是採用含有4個卷積層和2個全連接層的簡單CNN來訓練模型。然後根據樣本ID將數據集隨機分配到不同的客戶端,形成不同子集來模擬分布式數據。在進行訓練時,客戶端先在本地數據集上進行梯度計算和參數更新。在每個訓練迭代結束後,匯總每個客戶端累積的參數更新,用來更新最終的聯邦模型。
作為對比,首先採用非聯邦學習模式進行訓練,將所有數據放在TensorFlow上進行模型訓練,獲得的基礎對比模型的準確率為42.65%。當客戶端數量固定,改變每個客戶端擁有的數據子集大小時,模型精度基本上隨著數據集的增大而上升。不過在PySyft上,最佳精度始終無法達到基線(baseline)精度,且網絡迭代次數多於基線模型的迭代次數。但TFF的模型收斂效果要優於PySyft,且在客戶端樣本數量達到一定程度時,聯邦模型表現出優於基線模型的成績,迭代次數也顯著減少。兩個框架下不同模型的效果差異可能是由於採用了不同的優化算法。針對聯邦深度學習模型的框架還有很多限制,很多技術問題需要進一步解決,如TFF上對GPU卷積和池化計算的支持、PySyft上對更多優化器的支持。
影響卷積網絡效果的因素還有很多,例如,客戶端和伺服器之間進行參數傳遞時,為了減輕對帶寬的佔用,往往對卷積網絡模型的參數進行壓縮。Sattler F等人利用視覺幾何組網絡11(visual geometry group 11,VGG11)發現,具有參數壓縮的聯邦聚合算法受non-IID數據的影響比較大,而在IID數據上則表現出幾乎與非壓縮聚合算法相同的收斂速度。用於聯邦學習系統的稀疏三元壓縮(sparse ternary compression,STC)證明,在聯邦學習環境中,該編碼技術的通信協議優於聯邦平均算法FedAvg(federated averaging)。
3.2.3 聯邦LSTM
也有許多學者將LSTM運用到聯邦語言模型中,用於預測字符。他們將數據集人工分割為分配在多個客戶端的聯邦學習數據集,在合適的超參數設置下,這些模型在non-IID數據集上均達到了常規情況下的模型精度。Sahu A K等人在聯邦數據集中訓練LSTM分類器,提出了解決統計異質性的聯邦學習框架FedProx,用於情感分析和字符預測。實驗表明,相比於FedAvg,FedProx具有更快的收斂速度。Sattler F等人也在卷積網絡的基礎上研究了優化模型參數壓縮在non-IID數據集上的應用。在客戶端與中心伺服器通信時,相較於無壓縮基線的2 422 MB網絡參數量,使用基於STC編碼通信協議的聯邦學習系統可以在保證模型收斂效果的同時,將上行通信參數量壓縮至10 MB左右,將下行參數量壓縮到100 MB左右。
聯邦學習算法目前的主要研究方向和瓶頸是如何提升聯邦聚合的優化效率和性能,以達成模型的快速收斂和精準訓練。因此,目前關於聯邦深度學習模型的研究主要是如何優化聯邦聚合,而針對聯邦深度學習模型的研究還相對較少。
表1從算法、框架和特點等角度,對比了聯邦機器學習和聯邦深度學習的算法。
4 聯邦學習算法的優化分類方法
相對於分布式學習,聯邦學習有一些獨特的屬性,具體如下:
● 聯邦學習的通信是比較慢速且不穩定的;
● 聯邦學習的參與方設備異構,不同設備有不同的運算能力;
● 聯邦學習更關注隱私和安全,目前大部分的研究假設參與方和伺服器方是可信的,然而在現實生活中,其可能是不可信的。
在實現聯邦學習的過程中,需要考慮如何優化聯邦學習的算法,從而解決存在的現實問題。本文將從通信成本、客戶端選擇、異步聚合的角度介紹優化聯邦學習的算法。在介紹優化算法之前,先介紹最傳統的聯邦學習算法——FedAvg算法。
FedAvg算法不同,其本質思想是對數據持有方採用局部隨機梯度下降的方法進行本地模型優化,在中心伺服器方進行聚合操作。目標函數定義如下:
其中,M表示參與聯合建模的數據持有方的數量,ω表示模型當前的參數,表示均方差函數。FedAvg算法是一種比較基礎的聯邦優化算法,其部署相對來說比較簡單,應用領域很廣泛。
4.1 從通信成本角度優化的聯邦學習算法
機器學習算法,特別是複雜的深度學習算法,在訓練的過程中需要訓練大量的參數,比如CNN可能需要訓練上百萬個參數,每一次更新過程需要更新上百萬個參數;其次,網絡通信的狀態也可能導致很高的通信成本,比如不穩定的網絡情況、參數上傳和下載的過程中速度不一致都會導致整個算法的模型訓練成本過大。因此需要根據這些特性來考慮如何從通信成本的角度優化聯邦學習算法。可以從以下角度考慮減少通信成本。
4.1.1 增加客戶端計算成本
在聯邦學習體系中,有時終端節點只會在有Wi-Fi時參與聯邦學習訓練,或者有時網絡狀況不佳,在這些情況下,更多的計算可以在本地進行,從而減少通信的次數。很多算法是從這個角度來優化通信成本的。比如Konen J考慮了優化FedAvg算法,增加每一輪迭代在每個客戶端的本地更新參數的計算次數,並且與每一輪伺服器參數更新只需要一次客戶端本地更新的FedSGD算法進行了對比,實驗通過MINSTCNN模型測試表明,當數據為IID時,算法可以明顯減少通信成本,當數據為non-IID時,算法只能輕微地減少通信成本。Sahu A K等人提出了一種更通用的FedProx算法,這種算法在數據為nonIID時優化效果更明顯,因為聯合訓練的終端參與方的數據、運算能力都是不均衡的,因此每一次參數更新時,不同的參與方要參與的運算次數都統一的話,會導致客戶端的計算資源不能充分利用。為了避免這種情況,優化通信效率,FedProx算法可以動態地更新不同客戶端每一輪需要本地計算的次數,使得算法更適合非獨立同分布的聯合建模場景。Liu Y等人使用同樣的優化思路優化聯邦優化算法,並且在縱向聯邦學習的框架下進行學習。LI X等人則分析了FedAvg算法的收斂性,並證明了數據的異質性會導致聯邦學習收斂速度降低。
4.1.2 模型壓縮
有的優化算法目的是減少每一輪通信的參數量,例如通過模型壓縮的技術(比如量化、二次抽樣的方式)來減少每一次參數更新要傳遞的參數總量。Konen J等人提出了一種結構化的模型更新方式來更新伺服器參數,在每一輪的參數通信過程中,減小參與方傳遞給伺服器的模型更新參數的大小,從而減少通信。結構化更新是指通過提前定義上傳模型參數的矩陣結構來上傳模型,輪廓更新是指每次更新的參數需要在參與方進行壓縮編碼;模型最後通過CIFAR-10圖像算法進行驗證,實驗表明,參與方越多,壓縮效果越好;Caldas S等人考慮的是從伺服器到參與方的模型參數傳遞優化,通過有損壓縮以及聯邦參數篩選(federated dropout)的方式來減少從伺服器到客戶端需要傳遞的參數數量,降低通信成本的代價是在一定程度上降低模型的準確率。
在實現聯邦學習時,通信是一個瓶頸。降低通信成本是非常重要的一個優化環節。有的優化以增加參與方的本地計算為代價,有的優化以降低整個模型的準確性為代價。在實際優化的過程中,可以根據實際情況和需求決定採用何種方式降低通信成本。
4.2 從客戶端選擇角度優化的聯邦學習算法
聯邦學習的客戶端設備具有異構性的特徵,並且不同的客戶端的資源是有限的。通常,客戶端隨機選擇參與聯邦學習的模型訓練過程。因此,在聯邦學習訓練的過程中,有的算法會考慮從客戶端選擇的角度進行優化。
不同的客戶端的網絡速度、運算能力等不同,每個客戶端擁有的數據分布也是不平衡的,如果讓所有的客戶端都參與聯邦學習的訓練過程,將會有迭代落後的參與方出現,某些客戶端長時間沒有響應可能會導致整個系統無法完成聯合訓練。因此,需要考慮如何選擇參與訓練的客戶端。FedAvg算法隨機選擇參與訓練的客戶端。但在網絡結構複雜以及數據非獨立同分布的情況下,FedAvg算法模型並不一定有好的表現。下面兩篇參考文獻介紹了一些優化方案。
Nishio T等人提出了一種FedCS算法,設計了一種貪心算法的協議機制,以達到在聯合訓練的每一次更新中都選擇模型迭代效率最高的客戶端進行聚合更新的目的,從而優化整個聯邦學習算法的收斂效率。實驗表明,FedCS算法可以達到更高的準確性,但缺點是只有在模型比較基礎的情況下,如基礎的動態神經網絡,才有好的表現,對於網絡結構或參數數量較為複雜的情況來說,FedCS選擇最優的聚合客戶端的效率會降低,造成通信次數的增多和時間效率的降低。
Yoshida N等人提出了一種HybridFL的協議算法,該協議可以處理數據集為non-IID的客戶端數據,解決基於non-IID數據在FedAvg算法上性能不好的問題。Hybrid-FL協議使得伺服器通過資源請求的步驟來選擇部分客戶端,從而在本地建立一種近似獨立同分布的數據集用於聯邦學習的訓練和迭代。他們通過實驗表明,對於non-IID數據類型的聯邦學習分類算法來說,Hybrid-FL有較好的準確率表現。
4.3 從異步聚合角度優化的聯邦學習算法
在FedAvg的算法中,聚合是與模型的更新保持同步的。每一次更新,伺服器都同步聚合模型參數,然後將聚合參數發送給每一個客戶端。在同步聚合中,伺服器需要在接收到所有參與訓練的客戶端的參數之後才可以開始聚合,但是有的客戶端運算傳輸快,有的客戶端運算傳輸慢,為了避免出現通信遲滯現象,有研究者考慮用異步的方式進行聚合,從而優化聯邦學習算法。
Sprague M R等人提出了一種在聯邦訓練的過程中加入客戶端的異步聚合方法,並且通過實例證明了這種方法的魯棒性。當伺服器接收到任何客戶端的更新參數時,就進行一次聚合。但是這種算法的弊端是當模型數據為non-IID的時候,模型的收斂會出現很大的問題。
Xie C等人為了解決異步同步的算法在non-IID數據上的適用性的問題,提出了另一種FedAsync算法,加入加權聚合的方法,使得伺服器在接收到客戶端的參數後,會通過當前訓練的更新次數來設計加權聚合,從而解決non-IID數據的異步聚合的算法收斂問題。該參考文獻理論上證明了在非凸性問題上FedAsync算法具有更好的收斂性。
聯邦學習算法的優化分類方法見表2。
5 結束語
本文討論了聯邦學習目前的發展狀況,從聯邦學習算法的角度出發,將聯邦學習相關算法分為聯邦優化算法和聯邦機器學習算法,對適合中心和去中心兩種聯邦學習結構的相關算法進行了論述,同時將聯邦學習框架下的機器學習算法和聯邦深度學習模型分別進行總結討論。在聯邦算法優化的過程中,從降低通信成本、最優客戶端選擇以及優化模型聚合方式的角度討論了現有的聯邦優化算法之間的差異和優缺點。
聯邦學習目前依然處於快速發展的階段,關於聯邦學習在實際中的應用有大量的研究與討論,但是在實現聯邦學習的過程中,還有很多難題和挑戰,本文給出了以下3類主要難題,即通信難題、系統異構難題以及數據異構難題。
● 通信難題。在聯邦學習系統中,聯邦網絡可能由大量的設備組成。因此網絡中的通信效率會對整體速度產生較大的影響。因此,開發通信效率高的方法就顯得尤為重要。通常可以從降低傳輸頻率和減少每輪傳輸的信息量著手。降低傳輸頻率主要依靠減少客戶端與中心伺服器梯度的交換次數,為此可以適當提高一次全局迭代中客戶端本地優化的次數。而減少信息量則主要依靠降低客戶端與中心伺服器的交換次數來實現。為此可以進行適當的梯度壓縮或者量化,以減少通信佔用的帶寬。
● 系統異構難題。在聯邦學習系統中,另一大問題就是眾多客戶端設備之間的異構性,包括存儲、CPU計算能力、網絡傳輸等多個方面的差異。這些異構性使得設備的計算時間不同,甚至導致個別設備直接掉線。異步通信解決了設備完成一次本地更新的時間不同、中心伺服器等待過久的問題。此前分布式機器學習的研究已經充分應用了異步通信的方式。此外,提升系統的魯棒性同樣也能減輕系統異構對聯邦學習產生的影響。在眾多設備參與的情況下,需要提高系統的容錯能力,提升系統的冗餘度。
● 數據異構難題。聯邦學習中設備經常以非獨立同分布的方式在網絡中生成和收集數據,例如,移動端的用戶在進行輸入法下一單詞預測的任務時,使用不同的語言會導致數據異構問題。此外,跨設備的數據持有方持有的數據數量很可能分布不均勻。因此,許多常見的針對獨立同分布數據假設的優化算法對於聯邦學習來說都是不適用的。因此,如何使優化算法更加兼容聯邦學習實際使用中複雜的數據結構,成為聯邦學習未來發展的一個研究方向。元學習和多任務學習的思想都支持個性化或基於特定設備的建模,是處理數據統計異質性的一種有效的方法。元學習通過使參與聯邦學習的各客戶端本地模型學習獨立但相關的模型,實現各個參與方本地模型的個性化,是一種應對聯邦學習數據異構性的可行方案。
最後,筆者針對聯邦學習的未來發展提出以下展望。
● 增加算法的聯邦部署。本文討論了目前存在的聯邦學習算法,但是有關機器學習、深度學習算法在聯邦框架下的部署研究問題還處於發展階段。使用聯邦學習框架進行機器學習、深度學習算法實現是人工智慧領域落地的一個可行方案,也是更高效、更全面的邊緣數據利用方法。
● 聯邦學習的隱私性保證。數據隱私性的保證是聯邦學習理念的關鍵點之一。儘管目前有許多與聯邦學習隱私性相關的研究,但是在聯邦學習實際應用的過程中,依然會面臨許多複雜的隱私性挑戰。聯邦學習系統需要時刻提升對各類不良攻擊的防禦能力,保障用戶數據的隱私性。
● 聯邦學習的多領域協同發展。聯邦學習的系統發展與多個領域有所關聯,如邊緣計算等。多領域的協同發展可以提升聯邦學習的性能,同時更好地發揮聯邦學習的便捷性、隱私性等優勢。
作者簡介
王健宗(1983-),男,博士,平安科技(深圳)有限公司副總工程師,資深人工智慧總監,聯邦學習技術部總經理。美國佛羅裡達大學人工智慧博士後,中國計算機學會(CCF)高級會員,CCF大數據專家委員會委員,曾任美國萊斯大學電子與計算機工程系研究員,主要研究方向為聯邦學習和人工智慧等 。
孔令煒(1995-),男,平安科技(深圳)有限公司聯邦學習團隊算法工程師,CCF會員,主要研究方向為聯邦學習系統和安全通信等 。
黃章成(1990-),男,平安科技(深圳)有限公司聯邦學習團隊資深算法工程師,人工智慧專家,CCF會員,主要研究方向為聯邦學習、分布式計算及系統和加密通信等 。
陳霖捷(1994-),男,平安科技(深圳)有限公司聯邦學習團隊算法工程師,主要研究方向為聯邦學習與隱私保護、機器翻譯等 。
劉懿(1994-),女,平安科技(深圳)有限公司聯邦學習團隊算法工程師,主要研究方向為聯邦學習系統等 。
何安珣(1990-),女,平安科技(深圳)有限公司聯邦學習團隊高級算法工程師,CCF會員,主要研究方向為聯邦學習技術在金融領域的落地應用、聯邦學習框架搭建、加密算法研究和模型融合技術 。
肖京(1972-),男,博士,中國平安保險(集團)股份有限公司首席科學家。2019年吳文俊人工智慧科學技術獎傑出貢獻獎獲得者,CCF深圳會員活動中心副主席,主要研究方向為計算機圖形學學科、自動駕駛、3D顯示、醫療診斷、聯邦學習等 。
聯繫我們:
Tel:010-81055448
010-81055490
010-81055534
E-mail:bdr@bjxintong.com.cn