施宏建 馬汝輝 張衛山 管海兵
1(上海交通大學電子信息與電氣工程學院 上海 200240)
2(上海市可擴展計算與系統重點實驗室(上海交通大學)上海 200240)
3(中國石油大學(華東)青島軟件學院、計算機科學與技術學院 山東青島 266580)
(shhjwu5@sjtu.edu.cn)
隨著網絡技術[1-2]的發展,網絡用戶之間的交互變得十分普遍和重要.而在社會、經濟和工程等各大領域數字化轉型的過程中,網絡信任問題成為了主要矛盾.構建可信任的新一代信息管理系統[3]成為了迫切的需求.此種信息管理系統可以提高社會運行效率,降低社會協作成本,對經濟發展和工程技術開發均有十分重大的意義,也是推動我國技術進步并在國際競爭中形成核心競爭力的關鍵.而近些年在網絡信任領域興起的區塊鏈技術[4-6]則是現階段發展的主要方向之一.
區塊鏈(blockchain)系統是集合分布式網絡、加密技術、智能合約等多種技術的新型數據存儲系統,能夠記錄和驗證交易并保護數據的安全性,是基于信任的數據管理基礎設施.在區塊鏈系統中,每個參與者都可以共同驗證交易,并且整體交易信息被保存在一個不斷增長的鏈式結構中,稱為區塊鏈數據庫,每個鏈上的區塊都包含有一定數量的交易信息.區塊鏈的去中心化使其不需要可信第三方控制交易;透明性保證所有參與者都可以共同查看和驗證交易;不可篡改性則確保了交易信息不會被修改或刪除.區塊鏈系統涉及數據存儲、事務處理、智能合約執行、安全隱私保護等核心技術,但現今大部分區塊鏈研究仍集中于經濟金融等數據存儲領域,并未與目前最急需發展的數據計算領域融合.與數據存儲相似,在網絡數據計算[7-8]中也需要考慮網絡用戶之間的信任問題.
另一方面,隨著人工智能技術[9]的發展,開發者對數據量和數據多樣性的需求逐步增加,但是單一開發者并不能收集到高質量高數量的研究數據,進而導致網絡數據計算領域出現了數據孤島問題.用戶需和他人聯合訓練人工智能算法,這就涉及到了隱私性問題.在這種需求下,聯邦學習[10-13]應運而生.
聯邦學習(federated learning,FL)是近幾年發展起來的新興機器學習技術,可以在去中心化的數據存儲下,讓多個設備及用戶共同學習和構建機器學習或深度學習模型.在聯邦學習中,每個設備或用戶都被視作一個客戶端,其擁有自己的本地數據集,且并不需要將這些本地數據在網絡中進行直接傳輸或發送到服務器端.聯邦學習架構為人工智能算法提供了聯合學習的可能,打破了數據孤島,使得研究人員能夠在保障數據隱私性的情況下構建出適用于大部分用戶的神經網絡模型.
但實際場景下,可信的服務器端極難獲取,相對應的,能夠提供去中心化、透明、不可篡改的數據存儲框架的區塊鏈系統正好能夠彌補聯邦學習架構這一方面的需求,進而區塊鏈聯邦學習[14-17]成為了網絡數據計算領域的新型應用.過去幾年中,有若干在區塊鏈聯邦學習框架領域開展的研究,主要集中于聯邦學習架構的客戶端選擇[18-19]、聚合權重[20-21]、本地訓練調整[20,22]、隱私保護[23-29]、安全防護[24,30-31]、模型壓縮[32]設計,以及區塊鏈系統的共識機制[18-19,30]、區塊結構[30,33-34]、委員會選取[21,34]、激勵機制[23,25-26,29]設計上,另一方面,也有在兩方結合的層次化結構[22,32,35]或者異步聚合[19,20,36-37]進行探索的.
但是文獻[18-37]所述的主要問題在于底層聯邦學習架構沒有完全發掘區塊鏈系統的潛力,頂層區塊鏈系統也沒有為聯邦學習架構提供完整的支撐.具體來說,現有的聯邦學習區塊鏈框架并未利用實際物聯網場景中所有可用的網絡連接,帶來了較大的通信開銷,在異構資源場景下限制了整體的訓練效率;同時缺少在區塊鏈與聯邦學習結合的場景下較為完整合理的區塊結構設計,不能夠保障用戶的知識產權和維護需求.
基于上述需求,本文設計了基于區塊鏈輔助的半中心化聯邦學習框架,從實際場景出發,通過利用不同種的網絡連接輔助訓練,并通過區塊鏈系統為聯邦學習架構提供完整的分布式訓練支持,以減少區塊鏈聯邦學習框架的通信開銷并提高其普適性.框架主要包含兩大設計,其一為半中心化的聯邦學習架構設計,主要通過將聚合任務放到客戶端上,并利用客戶端之間的可信連接減少聚合所用時間開銷,同時通過區塊鏈輔助對不可信客戶端的模型進行集中聚合,保障本地模型泛用性和性能;其二為區塊鏈系統中的聯邦區塊設計,主要通過對上傳區塊、下載區塊、評分區塊的設計,使區塊鏈能夠支持底層聯邦學習訓練的需求.本文的主要貢獻有4 個方面:
1)提出了基于區塊鏈輔助的半中心化聯邦學習架構,能夠在物聯網場景下對分散的數據提供可信的協同訓練環境,提高了人工智能任務的準確率和訓練效率,為區塊鏈聯邦學習算法設計提供了指導;
2)對半中心化架構進行了建模和公式化表述,基于物聯網場景給出了更加實際、更加全面的分布式架構,并在其基礎上設計了聯邦學習算法,利用損失函數和延遲輪次進行權重設計,提高算法準確率和效率;
3)針對聯邦學習任務的區塊鏈區塊進行了結構設計,包括模型下載對應的下載區塊、模型上傳對應的上傳區塊和模型評分對應的評分區塊,為聯邦學習任務提供了區塊鏈系統支持,便于系統部署;
4)通過實驗證明了所提框架在2 個數據集上相比傳統聯邦學習算法提高了至少8%的準確率,并大幅度提高了設備計算時間比例,進而提高了訓練效率.
本節主要介紹區塊鏈系統和聯邦學習架構的相關工作.
傳統聯邦學習的研究有很多[38-52].FedAvg[38]算法是所有聯邦學習架構中最基礎也是最早的算法,其利用服務器端的模型聚合方法在含有不同數據分布的客戶端之間進行參數交互,同時通過提高本地訓練輪次數來減少通信開銷提高收斂性.FedProx[39]算法在FedAvg 算法基礎上,往損失函數中加入了近端項(proximal term)來應對聯邦環境中的系統異構性問題.MOON[40]算法則是利用全局模型中區分度更高的特征表征來指導本地訓練,通過在損失函數中加入對比學習項來減少2 個特征表征之間的區別,以此來進一步提高聯邦學習算法的效果.FedDyn[41]從損失函數的收斂性入手,通過在損失函數上添加一個一階泰勒展開項,使其從理論上可以證明本地損失函數收斂性和全局損失函數收斂性是可以統一的,保證了聚合操作的合理性和有效性.
很多區塊鏈聯邦學習算法都是基于傳統聯邦學習架構的,主要將原本的服務器替換為區塊鏈,負責聚合等任務,然后對應在通信效率、安全性等方面進行了優化.文獻[35]采用了層次化的區塊鏈聯邦學習框架,上層負責管理全局模型,下層負責調度底層資源更新本地模型,以使本地訓練去中心化,可以有效地減少通信延時和提高通信效率.Biscotti[24]重點關注了中心化區塊鏈聯邦學習框架中的安全隱私性,其在傳統框架中加入了Multi-Krum,VRF,PoF,Shamir秘密共享和差分隱私等多個安全防護技術.文獻[22]在傳統區塊鏈聯邦學習中通過A2C 算法確定各節點本地訓練參數.文獻[27]和FedTwin[23]類似地運用了基于GAN 的差分隱私防護機制,其定性地分析了區塊鏈聯邦學習框架在延遲和解決數據孤島問題上的有效性.文獻[28]則是運用差分隱私保護了客戶端數據隱私,但還利用了零知識證明對客戶端上傳模型的有效性和安全性進行了驗證.BFCL[32]在中心化區塊鏈聯邦學習框架中引入了TopK的模型壓縮機制,從理論和實驗上證明了其性能的提升.SAGIN[31]在空天地架構中利用區塊鏈聯邦強化學習優化了任務卸載問題,對空天地架構的拓撲優化問題進行建模優化,并提供了基于準確度的拜占庭防御機制.
但是傳統聯邦學習中出現的一大問題是其并不適用于物聯網或邊緣計算中.在這2 種場景下,數據中的統計異構性較強,也就是說各個客戶端上的標簽分布數量、分布比例不同,導致用同一個全局模型無法在所有客戶上都有較高的準確度,使得模型泛用性和有效性降低.
為了解決統計異構性所帶來的特征偏移的問題,個性化聯邦學習成為了一大研究方向.個性化聯邦學習會在不同客戶端上維護不同模型以在各數據集上得到更高的準確率,主要包含部分聚合、個性化訓練和獨立聚合3 種模式.
部分聚合只聚合模型中的全局層,而不聚合個性化層,以此滿足個性化要求.FedBN[42]與FedAvg 類似,只是將批次化歸一層(batch normalization)留在本地,不參與聚合,以此來應對特征偏移問題.FedPer[43]則是將模型分成了數據端的全局層和標簽端的個性化層,并只對全局層進行聚合,這樣可以得到更高的訓練準確度.FedRep[44]則是在FedPer 的目的和算法的基礎上,進一步分析了本地訓練階段的效果和合理性,進而提出了將全局層和個性化層分開訓練的算法來提升效果.FedBABU[45]也使用了類似FedPer和FedRep 的神經網絡切分方式,并且在訓練中只聚合全局層,但是與FedPer 和FedRep 兩種算法不同的是,FedBABU 在訓練階段并不會訓練個性化層,而是在訓練結束后會對個性化層進行微調.
個性化訓練通過運用全局模型和本地模型信息輔助本地訓練,而并不直接用全局模型或上一輪本地模型進行訓練,主要以調整損失函數及聚合權重為主.FedPHP[47]的關注點在于聚合后的全局模型在本地數據集上的表現其實不一定比上一輪本地模型要好,于是其在全局模型本地訓練的基礎上,將上一輪次的本地模型信息,也用于監督本輪次的本地模型訓練.Ditto[48]則關注的是聯邦學習算法的公平性和魯棒性,更是提出了統一的性能指標來表征這2個特性,并且運用求解器優化這2 個指標.APPLE[51]則是在上述相關性聚合的基礎上,適應性地調整了全局損失函數和本地損失函數之間的比例,使算法能夠更好地收斂到一個較高的準確度.APFL[46]提出了混合權重的概念,即將上一輪全局模型也納入考量之后生成的聚合權重.其在分析了本地模型和全局模型的泛化能力的基礎上對混合權重進行了優化,這個混合權重最終被用于混合本地模型參數和全局模型參數以得到效果更好的模型.
獨立模型并不通過聚合的方式維護全局模型,而是直接維護各個客戶端的模型來達到個性化的目的.FedFomo[49]對每一個客戶端都維護了單獨的服務端模型,每個客戶端會根據其他服務端模型計算相關性權重矩陣,然后根據相關性權重矩陣聚合相關的服務端模型,這種方法提高了模型的個性化能力和本地模型效果.FedAMP[50]則采用了類似FedFomo的方式,進一步給出了凸優化和非凸優化下的理論證明.
部分聚合和個性化訓練的問題在于雖然它們在部分任務上能夠適當增加各個客戶端在本地數據集上的模型準確率,但是其泛用性較差,面對新類型數據無法有效判斷其所屬類別;獨立模型的問題在于由于維護對象的變更,網絡中需要傳輸的數據量變大,導致通信開銷大幅度提升.故而現有個性化模型較難在實際場景中進行部署運行.
物聯網及邊緣計算中的聯邦學習還存在系統異構性的問題,由于不同設備計算能力和網絡連接情況的不同,會導致其單次訓練時長不同,而傳統聯邦學習采用同步聚合的方式,客戶端之間相互等待會帶來極大的通信開銷,解決此問題最常用的方法是異步聚合.FedAsync[52]提出了異步聯邦學習架構,傳統聯邦學習架構會對上傳的模型進行同步聚合,而FedAsync則是在每一個本地模型傳到服務器端時都會單獨地將此模型和當前全局模型進行聚合以減少通信開銷.
也有部分文獻嘗試運用區塊鏈優化異步聯邦學習.BAFL[20]從理論層面求解了最優聚合權重,提高了算法的收斂性和最終的準確率;另一方面BAFL 對本地訓練過程進行了適應性調整,進一步提高了訓練效率.文獻[19]類似文獻[18],利用深度強化學習做客戶端選擇.BLADE-FL[36]利用了去中心化網絡,會在網絡中進行廣播操作,通信開銷較大,但給出了較為詳盡的理論分析和實驗證明其方法的收斂性.
但是異步聯邦學習的問題在于其中傳輸的模型參數或模型更新實時性不強,低實時性模型會破壞全局模型或各客戶端模型的效果.
關于區塊鏈聯邦學習框架的研究在近幾年發展較快[18-28,30-36].在共識機制上,文獻[18]利用容器技術為聯邦學習提供后端支撐,同時利用A3C 算法做了客戶端選擇,提高了算法的收斂性和效果.而其在區塊鏈端共識機制的設計也提高了區塊鏈系統的效率.文獻[33]對Proof of Work 進行了理論上的優化,降低了區塊鏈聯邦學習算法的延遲.同時其對區塊的生成過程和過程性能都做了分析和優化,提高了區塊生成過程的效率.
在委員會機制和區塊結構設計上,BFLC[34]使用了基礎的中心化區塊鏈聯邦學習框架,設計了委員會機制和區塊結構來輔助模型存儲和模型下載.BytoChain[30]給出了針對聯邦學習訓練系統的區塊設計,并定性地分析了各種聯邦學習中的攻擊方式,為后續防御方式的設計給出了指導方向.FGFL[21]在區塊鏈委員會利用計算的客戶端可信度進行選取,在模型聚合的時候利用計算的客戶端貢獻度確定聚合權重,通過2 個客戶端指標的結合提升系統收斂性和效果.
在獎勵機制上,FedTwin[23]在原有的中心化區塊鏈聯邦學習框架的基礎上,用對抗生成網絡(generative adversarial network,GAN)進行了隱私保護,同時根據各個模型的效果提供了獎勵機制.另一方面其引入了全局模型回滾機制,防止因服務器錯誤導致的訓練失效.PF-PoFL[25]從任務層面對區塊鏈進行了設計,在區塊鏈中加入了任務隊列,通過下發任務接受模型參數,然后通過驗證者(validator)對上傳的模型參數進行評分,并用此評分設計激勵機制,還附帶著提供了差分隱私方案.文獻[26]特別考慮了區塊鏈聯邦學習框架對多模態Transformer 任務的訓練效果,同時加入了激勵機制和差分隱私技術.
當前區塊鏈聯邦學習框架的相關工作重點關注聯邦學習或者區塊鏈本身的優化和改進.本文將重點放在了區塊鏈系統和聯邦學習架構的協同設計上,從區塊鏈系統設計上支持聯邦學習全流程訓練,從聯邦學習架構設計上合理利用區塊鏈透明和不可篡改的特性.同時針對系統異構性和通信效率進行了優化,以提高整體框架的訓練效率,并能夠適應不同的運行場景.
本節主要介紹聯邦學習架構及其公式化表達,并且將區塊鏈的概念引入聯邦學習中.
聯邦學習的核心框架是將機器學習算法推送到數據源頭,即客戶端上,并在客戶端本地對算法進行訓練.傳統中心化聯邦學習架構遵循服務器-客戶模型,如圖1(a)所示,客戶端負責在本地數據集上訓練各自的本地模型,最終目的是通過聚合各本地模型,在服務器端上得到適用于大部分本地數據集的全局模型.而去中心化聯邦學習架構則拋棄了傳統的服務器-客戶模型,而是轉用純分布式客戶端架構,如圖1(b)所示,客戶端既負責在本地數據集上訓練各自的本地模型,又需要根據接收到的其他客戶端的模型進行聚合得到新一輪的本地模型.更加貼合實際的則是半中心化的聯邦學習架構,如圖1(c)所示,這種架構在服務器-客戶模型的基礎上也考慮了客戶與客戶之間的連接,在去中心化架構的基礎上引入服務器對不可信或者距離較遠的客戶端之間進行模型交互,使得架構既能保持一個較少的通信開銷,又能解決客戶端之間的數據孤島問題.

Fig.1 Federated learning structures,blockchain structures,and blockchain-based federated learning frameworks圖1 聯邦學習架構、區塊鏈架構及區塊鏈聯邦學習框架
區塊鏈的核心架構是一個去中心化的區塊鏈系統和鏈狀的數據庫,如圖1(d)所示.鏈狀的數據庫用于存儲實際的區塊信息,每個數據庫包含一些數據、1 個時間戳和前一個區塊的哈希值.每個區塊的數據可以是任何形式的信息,例如交易記錄、合約代碼等;時間戳記錄了該區塊被創建的時間;而前一個區塊的哈希值則將當前區塊與之前的所有區塊鏈連接在一起,形成一個不可篡改的鏈式結構.而區塊鏈系統中的每個節點都可以維護一個副本,任何修改都需要得到網絡中多數節點的確認才能生效,這使得區塊鏈具有高安全性和可靠性,因為攻擊者需要修改網絡上大多數節點的數據才能破壞整個系統.
在圖1(a)~(d)的基礎上,衍生出了中心化的區塊鏈聯邦學習框架,如圖1(e)所示.該學習框架遵循了中心化聯邦學習的架構,但是將聯邦學習中原有的服務器端替換成了一個區塊鏈系統,使其能夠擁有去中心化、透明和不可篡改的特性.區塊鏈的功能和原有的服務器相似,負責收集本地模型,并負責聚合、存儲、下發全局模型.
本文考慮了實際場景中,尤其基于5G/6G 技術的物聯網場景下,客戶端之間是相互聯通的,所以本質上是一個純分布式的架構.但是另一方面,基于可信度和網絡延遲的考慮,并不是所有連接都是可用的,客戶端會因為不信任對方或者對方在直連范圍之外導致雙方不能實現點對點的數據傳輸.在這種場景下,本文提出了半中心化的區塊鏈聯邦學習框架,如圖1(f)所示.將去中心化架構和中心化架構結合,利用去中心化架構提升中心化架構的傳輸效率,減少區塊鏈端的計算量;利用中心化架構的高可信度和連通性,提高客戶端準確度,更好地解決數據孤島問題.
3)各客戶端將其新的本地模型上傳至區塊鏈.4)區塊鏈通過式(2)對上傳的本地模型進行聚合得到下一輪的全局模型 θt.聯邦學習會重復上述步驟直至輪次達到一定數量或是全局模型收斂,其中Ni表示客戶端Ci上本地數據集Di的樣本數,表示第t輪中Ci對應的聚合權重.
其中最常用的聚合權重是根據各客戶端上的樣本量決定的,如式(3)所示.
而針對半中心化的區塊鏈聯邦學習框架,由于其聚合步驟并不在區塊鏈系統中進行,而是各個客戶端各自進行聚合,在客戶端Ci的聚合過程中包含3種模型:第一種模型是本地模型,第二種模型來源于Ci的可信鄰居客戶端集中,第三種模型來源于區塊鏈系統中存儲的剩余客戶端的模型.在這種半中心化區塊鏈聯邦學習框架下,各客戶端的聚合公式就變成了式(4).
為了方便理解和引用,本文將文中所用的符號及其表述解釋整合在表1 中.

Table 1 The Used Notations and Their Descriptions in Our Paper表1 本文所用符號及其表述
本節詳細介紹本文所設計的基于區塊鏈輔助的半中心化聯邦學習框架及其模塊設計.本文提出了半中心化的區塊鏈聯邦學習框架,通過去中心化的高效點對點連接和中心化的區塊鏈可信機制,統一實現了可信高效的聯邦學習架構.整體模塊設計如圖2 所示,分別在聯邦學習部分和區塊鏈系統部分進行了設計和構造.

Fig.2 Our proposed blockchain-assisted semi-centralized federated learning framework圖2 本文提出的基于區塊鏈輔助的半中心化聯邦學習框架

Fig.3 The training procedure of the semi-centralized federated learning framework圖3 半中心化聯邦學習框架的訓練流程
在聯邦學習設計部分,主要包含聚合流程的設計.聚合組件中基于Gossip 的通信機制可以在去中心化的網絡中利用P2P 的連接提高模型傳輸和聚合效率;基于去中心化的聚合模式使得聚合操作可以在各個客戶端上單獨進行,使得區塊鏈上的計算量大大減小,提高了整體的訓練效率;基于損失函數的聚合權重計算方案可以通過模型效果決定聚合比例,進而提高模型的準確率;基于延遲的聚合權重補償方案則根據不同本地模型所在輪次調整模型聚合時的權重,防止過時參數影響聚合后模型的準確度.
在區塊鏈系統設計部分,主要集中于支持半中心化聯邦學習訓練的區塊設計部分.從區塊類型來看,主要包含上傳區塊、下載區塊和評分區塊;從區塊屬性來看,主要包含了區塊頭信息、區塊個性化信息和區塊驗證信息的設計.
本文提出了半中心化的聯邦學習架構,其采用去中心化的點對點通信模式提高整體訓練效率,同時采用中心化的區塊鏈輔助解決數據孤島問題,防止模型收斂到局部最優.在聯邦學習聚合算法方面,本文主要對聚合通信模式和聚合權重計算兩方面進行了設計研究.在傳統中心化聯邦學習的場景下,往往采用的是同步聚合的方式,這種方式會使得計算快的客戶端需要等待計算慢的客戶端計算完成之后才能進行聚合,導致通信開銷較大;另一方面,為了保障可信性而將服務器端替換成區塊鏈系統之后,會導致聚合操作所花費的時間變長,這就降低了整體訓練效率.而在去中心化聯邦學習的場景下,純分布式的通信模式會導致距離較遠的客戶端模型參數會在很長時間之后才能夠傳輸到當前客戶端,降低了客戶端模型泛化能力和準確度;另一方面,由于可信度考量,并非所有客戶端之間都是連通的,這就導致了如果采用完全去中心化通信模式,部分客戶端所聚合的模型無法表征所有數據信息,限制了模型的準確度和泛化能力.因此我們將中心化和去中心化聯邦學習架構組合,提出了更加符合現實場景的半中心化聯邦學習架構.
在聚合通信模式下,本文主要采取了去中心化的聚合方案和基于Gossip 的通信機制.去中心化的聚合方案將聚合過程放在了客戶端上,每個客戶端都獨自對其本地模型、從鄰居可信客戶端接收到的本地模型和從區塊鏈系統中獲取的其他客戶端的可信模型3 組模型進行聚合,得到新的本地模型.同時,為了減少模型參數傳輸時數據交換請求帶來的傳輸延時,模型采用Gossip 通信機制在去中心化架構中進行傳輸.Gossip 機制在模型本地訓練完后會向鄰居可信客戶端廣播新的本地模型參數,而鄰居客戶端會重復這一操作直到所有連通客戶端均接收到此模型,這種機制可以有效減少通信等待時長,提高通信效率.
特別地,本文考慮了客戶端之間數據分布的不一致性,又稱統計異構性.統計異構性是由于客戶端所處環境不同,故其所能獲取到的數據種類和數據分布不同,如果將所有模型直接根據樣本數量進行加權平均,并不能很好地在本地客戶端上得到一個適用于本地數據集的模型.故而需要根據各個客戶端之間的模型表現進行加權,提高聚合后新一輪本地模型在對應數據集上的表現.基于此,本文設計了基于損失函數的聚合權重調整方案,根據接收和下載到的模型對在本地數據集上推理所得到的損失函數進行加權,對應權重如式(5)所示.需要說明的是,考慮到在整個客戶端訓練集上進行推理耗時較長,本文所提出的方法采用單次推理的方式,即從客戶端數據集中隨機采樣一個批次的數據進行推理,此次推理得到的損失函數被近似作為整個數據集上的損失函數進行評價.
同時本文也考慮到了客戶端之間設備計算能力的不一致性,又稱系統異構性.系統異構性是由于客戶端計算硬件及計算環境不同,故其本地訓練所用時長均不相同,雖然通過去中心化的聚合方案和基于Gossip 的通信機制將客戶端之間的等待時間降到了最低,但是由于各客戶端訓練速度不同,在聚合的時候會出現模型所處訓練輪次不同,也就是在式(4)中會出現式(6)的情況.
這種情況下,如果直接聚合會導致過時的模型參數影響本地模型的準確度,故而需要對過時的模型參數進行一定程度上的補償和調整以提高聚合后新一輪本地模型的準確度.基于此,本文設計了基于延遲輪次的過時模型補償方案,根據接收和下載到的模型和當前模型所處輪次的差值對權重進行調整,對應權重如式(7)所示.
基于上述聚合權重的調整和補償措施設計,本文所提出的區塊鏈輔助的半中心化聯邦學習框架中聚合階段的總體聚合公式如式(8)所示.
式(8)中聚合權重包含了歸一化流程,其中歸一化參數wt滿足式(9).
在上述組件設計動機和設計方案下,本文所提出的基于區塊鏈輔助的半中心化聯邦學習框架整體訓練流程如算法1 所示.需要說明的是,所有客戶端本地模型都是由初始模型 θ0進行初始化的,而所有客戶端訓練過程都是并行進行的.
算法1.基于區塊鏈輔助的半中心化聯邦學習框架中客戶端Ci在第t輪的訓練過程.
3.1 節介紹了基于區塊鏈輔助的半中心化聯邦學習框架的訓練流程,其中一共存在著3 個上鏈步驟,算法1 中的④⑦⑩三個步驟分別對應客戶端從區塊鏈系統下載模型所生成的下載區塊、客戶端對下載模型進行評估所生成的評分區塊以及客戶端上傳聚合后的本地模型所生成的上傳區塊.這3 種區塊設計要能夠支持半中心化聯邦學習的訓練流程,提供聯邦學習訓練所需的必要信息.總體區塊結構設計如圖4 所示,下面會詳細描述這3 種區塊的組成結構.

Fig.4 The design of the block structures in the blockchain system圖4 區塊鏈系統中的區塊結構設計
所有區塊設計都包含主要三大部分內容:區塊頭信息、區塊個性化信息和區塊驗證信息.
1)區塊頭信息.區塊頭主要記錄了區塊本身的一些用于區塊鏈的歷史記錄和追溯所需要的信息.區塊頭中統一的信息有3 個:區塊ID 賦予了當前區塊一個唯一的標識,使得其他區塊能夠對當前區塊進行區分和引用;區塊時間戳記錄了當前區塊上鏈的時間,方便后續對于異常情況的追溯和時間線構建;區塊類型則是記錄了當前區塊是下載區塊、評分區塊和上傳區塊的哪一種,便于后續對區塊個性化信息的處理.客戶端ID 記錄了當前區塊所包含的操作涉及的客戶端識別信息,便于追溯操作者.
2)區塊個性化信息.主要包含了用于聯邦學習訓練過程所需的信息和屬性.此部分和區塊類型強相關,后續會根據區塊類型做詳細介紹.
3)區塊驗證信息.主要是區塊鏈本身用于其內容準確性驗證的信息,通過記錄父區塊的哈希值和本區塊的哈希值,可以保障攻擊者沒有辦法通過修改單一區塊破壞整個區塊鏈,保障了區塊鏈的不可篡改性.
在上述區塊設計的基礎上,針對不同功能的區塊進行了一定的個性化設計以支撐區塊的指定功能.
下載區塊負責記錄某客戶端從區塊鏈系統中下載的某一個模型,以此可以對此模型上傳者的貢獻度進行更新,或者根據其知識產權提供獎勵.另一方面如果系統中某客戶端本地模型出現了不安全或是錯誤,可以通過追溯下載記錄確定是否是區塊鏈系統中存儲的模型導致的,這樣可以保障系統的可追溯性.在區塊頭信息中,下載區塊的客戶端ID 會記錄是哪一個客戶端進行的下載操作,便于追溯;而在區塊個性化信息中,會記錄此次下載操作是下載的哪一個上傳區塊中的模型參數,記錄的內容是模型參數所在的區塊ID.通過記錄區塊ID 而非模型參數可以有效減少此區塊占用的存儲空間.
評分區塊負責記錄某客戶端對區塊鏈系統中某個模型參數的評價,主要是記錄對用模型在此客戶端上推理所得的損失函數值,使得系統能夠對某一模型參數的質量和可信度進行跟蹤和記錄.這樣可以根據其質量給予對應模型參數上傳的客戶端以激勵,以推動客戶端進行高質量訓練.在區塊頭信息中,評分區塊的客戶端ID 會記錄是哪一個客戶端進行的評分操作,便于追溯;而在區塊個性化信息中,會記錄此次評分操作是評價的哪一個上傳區塊中的模型參數,記錄的內容是模型參數所在的區塊ID 和對應的評分.本文主要對評分區塊進行了設計,暫未對評分區塊的后續利用進行展開.
上傳區塊負責存儲某客戶端進行本地聚合后得到的新一輪本地模型,主要是用于為其他客戶端提供可信的模型參數用于聚合,以提高各客戶端本地模型的準確性和泛化性.在區塊頭信息中,上傳區塊的客戶端ID 會記錄是哪一個客戶端上傳的模型參數,便于追溯;而在區塊個性化信息中,會記錄此次上傳的全部模型參數.
在本節中,我們在4.1 節提供了實驗設置,4.2 節對本文提出的基于區塊鏈輔助的半中心化聯邦學習框架進行了測試.
本節提供了本文中后續實驗部分的硬件設備、數據集介紹、數據分布、神經網絡模型選取、超參數設定、基準算法和測試指標等.
1)硬件設備.實驗是在Intel?Xeon?Gold 6140 CPU 和一個8 節點 GeForce RTX 2080 Ti GPU 的硬件環境下進行的.
2)數據集介紹.實驗在FMNIST[53]和CIFAR10[54]數據集上均進行了測試.FMNIST 數據集涵蓋了來自10 個類別的7 萬個不同商品的正面圖片,其訓練集包含6 萬個商品,測試集包含1 萬個商品,每個商品為28×28 的灰度圖像.CIFAR10 數據集涵蓋了來自10個類別的6 萬張普適物體的圖像,其訓練集包含5 萬個物體,測試集包含1 萬個物體,每個物體為32×32的彩色RGB 圖像.
3)數據分布.實驗在病態獨立同分布(Pathelogical,PAT)和基于Dirichlet 的非獨立同分布(DIR)上均進行了對比,如圖5 所示.PAT 中每個客戶端只包含2 種標簽,并且在擁有同樣標簽的客戶端中隨機分配數據;而DIR 則根據數據標簽,基于Dirichlet分布對數據進行了分配.圖5 中不同顏色代表了不同客戶端的數據集上含有對應標簽的比例.

Fig.5 The PAT and DIR distribution of FMNIST dataset for different clients圖5 不同客戶端在FMNIST 數據集的PAT 分布和DIR 分布
4)神經網絡模型選取.實驗在FMNIST 數據集和CIFAR10 數據集上均采用了雙層卷積神經網絡,如圖6 所示.2 個數據集上的模型結構相同,因輸入輸出不同,故模型中參數數量略有不同.
5)超參數設定.實驗中對于場景設定有若干超參數設置.其中客戶端數量設置為20;除非特殊說明,50%的客戶端計算速度相比另外的50%慢了一倍,即存在系統異構性;每個實驗結果均經過5 次評估并取統計學結果.對于聯邦學習訓練過程也有若干超參數設置.其中批次大小設置為10,即同一個批次內包含10 條數據;設置本地學習率 α=0.005;本地訓練次數設置為1,即客戶端只在本地數據集上進行1次遍歷并進行梯度下降操作;最大訓練輪次被設置為100,即所有客戶端在聚合100 次后停止訓練;聚合比例為100%,即在中心化聯邦學習算法中所有客戶端均參與每一輪聚合.其他未提及的超參數均按各算法在原論文中的設置.
6)基準算法.本文主要構建了基于區塊鏈輔助的半中心化聯邦學習框架,在訓練準確率和效率上進行了優化,故將其主要和傳統聯邦學習算法[38-39,42,45,47]、個性化聯邦學習算法[43-44,46,48-51]和異步聯邦學習算法[52]做了對比.
7)測試指標.本文主要考慮所提出的基于區塊鏈輔助的半中心化聯邦學習框架的準確率和效率,故采用了測試集準確率和測試集AUC 作為準確率指標,這兩者值越高代表模型準確率越高;采用了平均訓練時間和設備計算時長比例作為效率指標,其中平均訓練時間越低代表計算效率越高,設備計算時長比例越高,代表設備之間訓練時間差距越小,設備利用率越高.設備計算時長比例由式(10)計算得出.
在本節中,我們對比了基于區塊鏈輔助的半中心化聯邦學習框架與傳統聯邦學習算法的準確率和效率,在FMNIST 數據集的DIR 分布下的結果如表2所示,在CIFAR10 數據集的DIR 分布下的結果如表3所示.從表2 和表3 可以看出,本文所提出的方案在準確率和效率上存在著若干特性.從測試準確率和測試AUC 上可以看出,本文所提出的方法比傳統聯邦學習算法和異步聯邦學習算法效果要好得多,主要是由于在非獨立同分布的數據分布下,采用統一的全局模型作為最終的模型是不合適的.對各個客戶端本地模型進行加權得到統一的全局模型會破壞在各個客戶端上學習到的個性化信息,這也是個性化聯邦學習算法擬解決的問題.故而在準確率上,個性化聯邦學習算法均得到了較好的效果,而我們算法的準確率比個性化聯邦學習的算法準確率低了8%~13%,這主要是由于本文所提出的框架并未在算法層面進行個性化設計.但是本文框架可用性較好,后續會在本文框架基礎上對個性化算法的嵌入進行進一步研究以提高框架準確率.

Table 2 Results of Our Framework and Other Federated Learning Frameworks Under FMNIST-DIR表2 本文框架與其他聯邦學習框架在FMNIST-DIR 下的結果

Table 3 Results of Our Framework and Other Federated Learning Frameworks Under CIFAR10-DIR表3 本文框架與其他聯邦學習框架在CIFAR10-DIR 下的結果
從平均訓練時間和設備計算時長比例可以看出,本文所提框架所用平均訓練時間和傳統聯邦學習算法相當,主要是因為并未引入大量額外計算,所以本地訓練和傳統聯邦學習算法計算量相似.唯一引入的額外計算是對接收和下載到的模型進行評價,但是由于本文的評價方式是采用隨機采樣的一個批次數據的損失函數作為對應模型的評價指標,并未對整個數據集進行遍歷,故而相比本地訓練,本文評價過程并未引入過多的計算開銷.同時可以看出大部分個性化聯邦學習算法由于在客戶端進行了額外的計算,其平均訓練時間均相比傳統聯邦學習算法長.另一方面,從設備計算時長比例可以看出,在50%的客戶端訓練時間較長時,傳統聯邦學習算法和個性化聯邦學習算法的比例均不到50%,而本文框架算法和異步聯邦學習算法FedAsync 均有100%的設備計算時長比例.FedAsync 有此等效果主要是因為其并沒有聚合過程,而只是在每一個本地模型上傳到服務器后單獨進行聚合,并沒有客戶端之間相互等待的時間;而本文所提框架的聚合過程是分布式的,雖然依舊是在各個客戶端上進行同步聚合,但是由于不限制只對當前輪次的模型進行聚合,故而不需要等待其他客戶端訓練完成來進行聚合,所以也不存在等待時間.
特別地,本文對框架設計的聚合權重進行了消融實驗,主要針對基于損失函數的聚合權重設計(loss)和基于延遲輪次的過時參數補償方案(delay)這2 種權重.Ours-delay 表示從我們的方法中刪除基于損失函數的聚合權重設計.可以看出,基于損失函數的聚合權重設計在任何情況下均能提高框架的最終準確率,這是因為這種方法可以有效避免統計異構性帶來的最優模型參數的區別,使得各個客戶端可以去選取更適合本地數據集的模型參數進行聚合;而在存在系統異構性的情況下,基于延遲輪次的過時參數補償方案可以進一步提升最終準確率,這是因為這種設計可以有效避免過時參數影響聚合模型.
另外,本文對系統異構性的存在與否也進行了測試,如表4 所示.從表4 可以看出,針對測試準確度和測試AUC,系統異構性不影響傳統聯邦學習算法和個性化聯邦學習算法,也不影響其訓練準確度,故最終的結果均沒有太大變化.但對于異步聯邦學習和本文提出的算法而言,系統異構性會造成一定的負面影響,但本文方法可以有效減少此影響.在平均訓練時間和設備計算時長比例方面,平均訓練時間本身就是系統異構性的指標體現,故而有系統異構性時,會表現為平均訓練時間變長;隨著系統異構性的減小,雖然設備計算時長比例均有所提升,但是仍舊不超過55%,說明在系統中,尤其本文的訓練任務和網絡模型下,設備本身的波動就會帶來極大的通信開銷,導致系統訓練效率降低,設備利用率低,進而證明了采用本文所提出的半中心化的聯邦學習架構的必要性和有效性.

Table 4 Results of Our Framework and Other Federated Learning Frameworks Under CIFAR10-DIR Without Straggler表4 本文框架與其他聯邦學習框架在沒有系統異構性時CIFAR10-DIR 下的結果
另外,本文對PAT 分布下的實驗效果也進行了測試,如表5 所示.從表5 可以看出,在PAT 分布下,測試準確率、測試AUC、平均訓練時間和設備計算時長比例這4 項指標的變化趨勢均與DIR 分布下的指標變化趨勢相同,說明我們提出的基于區塊鏈輔助的半中心化聯邦學習框架能夠在不同的非獨立同分布數據下均有相同的效果和表現.

Table 5 Results of Our Framework and Other Federated Learning Frameworks Under CIFAR10-PAT表5 本文框架與其他聯邦學習框架在CIFAR10-PAT 下的結果

表5 (續)
本文提出了一種基于區塊鏈輔助的半中心化聯邦學習框架,可以在適配物聯網場景的前提下,提高聯邦學習算法的準確率和效率,其設計能夠知道實際環境中的框架部署.半中心化的聯邦學習框架可以有效利用物聯網中的網絡連接以輔助聯邦學習任務的完成,同時可以分散聚合操作至各個客戶端以減少通信開銷.而針對聯邦學習的區塊鏈區塊設計則基于聯邦學習訓練過程,設計了下載區塊、上傳區塊和評分區塊以指導區塊鏈聯邦學習系統部署.實驗結果表明,本文提出的基于區塊鏈輔助的半中心化聯邦學習框架在準確度方面相較于傳統聯邦學習算法至少提高了8%,在效率方面則大幅度降低了因客戶端相互等待帶來的通信開銷.因此,本文的方法是可行且高效的.但本文也有部分限制:1)雖然實驗可以證明方法有效性,但是算法收斂性缺乏一定的理論證明,相關研究對于異步聯邦學習和同步聯邦學習均有理論依據,故本文后續會從理論角度對半中心化聯邦學習框架進行分析;2)算法中對區塊鏈中的共識算法等內容并未進行對應聯邦學習任務的設計,且評分區塊雖有設計,但并未加以利用,故本文后續會從區塊鏈中的算法設計和聯邦學習任務進一步適配展開;3)本文框架準確率相較個性化聯邦學習仍有優化空間,故而本文后續會研究個性化聯邦學習算法的嵌入.
作者貢獻聲明:施宏建負責實驗方法設計、實驗數據整理與分析、論文初稿撰寫;馬汝輝負責實驗設計驗證與核實、論文審閱與修訂;張衛山負責論文審閱與修訂;管海兵負責論文審閱與修訂.