李尤慧子,殷昱煜,高洪皓,金一,王新珩
(1.杭州電子科技大學計算機學院,浙江 杭州 310018;2.上海大學計算機工程與科學學院,上海 200444;3.韓國嘉泉大學計算機工程系,城南市 461701;4.北京交通大學計算機與信息技術學院,北京 100044;5.西交利物浦大學電氣與電子工程系,江蘇 蘇州 215123)
當今世界處在信息時代,并正快速進入全面的數字世界。隨著5G 的廣泛應用,物聯網爆發出了蓬勃的生命力,移動與物聯網終端發展情況如圖1 所示[1]。海量數據隱藏著重要的價值,這也是近年來人工智能、深度學習等領域飛速發展的主要因素之一,然而,數據一旦非法泄露,會造成巨大的損失。2020 年中國網絡安全報告[2]顯示,病毒樣本總量為1.48 億個,較2019 年同期上漲43.71%;超兩億條用戶信息被出售,造成數千萬經濟損失。國外數據隱私問題也十分嚴峻,2019 年英國航空公司因違反用戶隱私條例被信息監管局罰款近2 億英鎊(約合15.8 億元人民幣)。各國為了推動數據隱私保護,頒布了一系列法律條文,如歐盟的GDPR(General Data Protection Regulation)[3]、美國的CCPA(California Consumer Privacy Act)以及我國的《中華人民共和國網絡安全法》。由此可見,數據隱私保護十分重要。
圖1 移動與物聯網終端發展情況
加密是保護數據隱私的主要手段。在聚合式數據共享方法中,各數據生產者使用加密算法編碼源數據,然后傳輸至數據處理中心;數據處理中心通過解密算法獲取數據信息,聚合所有源數據進行數據挖掘等復雜的操作。加密保證了數據傳輸時的隱私安全,但無法確保數據處理中心的安全,如果數據處理中心被攻破,則會造成全部數據的泄露。相對地,非聚合式數據共享方法旨在不匯集所有源數據的情況下,同樣達到數據共享要完成的最終目標。非聚合式數據共享主要包含兩層意思:首先,數據不匯聚,避免了單點故障(中心點被攻破)造成的潛在隱私泄露危險;其次,數據共享不是指狹義的源數據分享,而是從廣義角度來看,期望達到數據共享的最終目標,例如數據處理和數據挖掘。最優場景是在不分享源數據的情況下完成處理和挖掘操作,進一步避免數據隱私泄露的可能。
從非聚合式架構來看,1982 年提出的安全多方計算(SMC,secure multi-party computation)[4]是早期主要的非聚合式數據共享方法。安全多方計算繼承了分布式的特點,計算參與方地位平等且互不信任,無中心節點。利用加密算法,如同態加密等,數據接收方只能處理加密后的數據,無法獲知源數據信息。處理后的數據再傳送回數據發送方,發送方經過解密后獲得計算結果。安全多方計算利用密碼學和底層數據交互協議,保證計算參與方在不獲取源數據的情況下,完成數據處理操作,增強了數據的隱私性。早期,由于安全多方計算復雜度高,通常采用哈希映射[5]等方法進行傳輸,但其安全性不足。其他參與方可以通過枚舉操作來確定對方數據集中存在的元素,從而獲取對方的隱私信息。隨著邊緣計算[6]等新型計算架構的發展以及設備計算能力的增強,安全多方計算的實際需求和部署能力也相應提升,相關技術(如不經意傳輸拓展協議、秘密分享、隱私求交等)為數據隱私保護提供了可靠的指導方案和技術基礎。
近年來,云計算、物聯網和機器學習高速發展,廣泛應用于智慧城市、智慧安防等領域。海量異構數據聚合在云平臺上,通過各類機器學習和深度學習算法對數據進行分析,挖掘數據隱藏的知識信息。然而,隨著數據和用戶隱私的關聯度越發密切,把全部源數據聚合到中心節點再進行模型訓練的方法隱私泄露風險就越大。因此,谷歌于2017 年提出聯邦學習,旨在不需要通過中心化的數據訓練就能獲得機器學習模型。各數據提供方在本地進行數據訓練,把參數等隱私無關信息發給參數服務器進行全局調優,再把優化后的模型應用到本地,以實現在不提供原始數據的情況下,獲取全局的數據“知識”。聯邦學習是典型的非聚合式數據共享方法,源數據不出本地,降低了隱私泄露的風險,同時完成了數據共享的目標,即獲得優化訓練模型。
數據的重要性日益增加,為了更好地保護數據隱私安全,本文針對非聚合式數據共享方法進行介紹和分析,主要綜述了安全多方計算和聯邦學習的相關研究。安全多方計算側重于數據傳輸和計算外包,本文從原理、算法復雜度、適用場景等情況比較分析各類交互協議,增強數據交互的安全性。聯邦學習側重于數據挖掘,旨在從多個數據孤島上全局分析數據潛在價值,其框架主要包括本地數據訓練、參數信息傳輸交互、參數服務器全局調優。本文從與數據隱私關聯性較強的數據源(本地數據)和通信傳輸兩方面討論對比現有的聯邦學習優化方法。此外,本文總結整理了現有面向隱私保護的非聚合式數據共享框架,同時從復雜多參與方場景、優化開銷平衡等方面提出了非聚合式數據共享隱私保護潛在的4 個研究方向及建議。
安全多方計算是密碼學領域用于多個數據方在無可信第三方的情況下,安全且保護隱私地協同計算某個或某些約定函數的方法。SMC 由Yao[4]于1982 年提出,用來解決著名的百萬富翁問題,即2 個百萬富翁比較誰更加富有,而不能泄露具體的財富值。
安全多方計算廣泛應用于敏感數據協同計算的場景。例如,根據個人的信用記錄、購買記錄、社交喜好等協同挖掘個性化推薦服務;廣告轉化率[7]收益計算,即利用屬于第三方平臺的廣告點擊數據和商品平臺的購買數據分析觀看特定廣告的用戶中有多大比例購買了該商品等。
安全多方計算利用數據交互協議,保證計算參與方在不知道源數據的情況下,完成數據處理操作,增強了數據的隱私性。不同的數據交互協議特點各異,適用場景也不同,主要的MPC 數據交互協議如下。
在基于加密的數據交互協議中,最常用的是同態加密技術,由Rivest、Adleman 和Dertouzos 提出[8]。該技術不僅支持加密數據傳統的傳輸、存儲操作,還支持用戶直接對加密數據進行計算,其結果等價于原始數據計算后再加密。
同態性質是針對加密函數來說的,一般分為加(減)法同態、乘(除)法同態(也稱單同態)和全同態。其簡單定義如下。設存在映射g:G1→G2,則有
全同態:同時滿足上述2 個性質
若一個加密函數滿足加法或乘法同態,則其支持在加密數據上做加法或乘法計算而不損害數據,若同時滿足加法、乘法同態,即全同態,則幾乎可以支持任何計算操作。廣泛使用的RSA 算法[9]滿足乘法同態,Paillier 算法[10]滿足加法同態。
同態加密常常應用在云計算環境中,保證數據傳輸過程和云中心節點計算時的數據隱私安全。例如,在云外包的場景中,Abadi 等[11]實現了2 個協議,通過加法同態加密等操作實現安全對抗半誠實對手,其中EO-PSI(efficient outsourced private set intersection)具有較好的大數據集拓展性。而文獻[12-13]采用加法同態加密技術實現隱私集合交集(PSI,private set intersection)協議和PSI-CA(private set intersection cardinality)協議。
針對兩方數據集大小差異大的情況,Resende等[14]使用同態加密和布谷鳥過濾器優化[15]中提出的協議,在半誠實對手模型中實現了單向隱私求交協議;文獻[16-18]則利用全同態加密解決數據集差異大的問題。
同態加密的優點是可以在不泄露源數據的情況下,得到同樣加密的計算結果,但是,合適的加密函數定義難,而且其最大的局限性在于復雜度過高,普遍應用還需要進一步的研究和發展。
安全多方計算主要包括計算和數據傳輸2 個方面。基于邏輯電路方案被認為是通用的計算設計方法,因為任何函數都可以轉化成對應的邏輯電路,借助對電路真值表的替換、加密和打亂,形成Garbled Table。參與方間的數據傳輸可以通過不經意傳輸技術交換必要的消息,最后某一方計算出最終的結果。圖2 展示了以兩方為例的情景。首先,由Alice 根據需求構造電路,確定真值表內容。為門中的每條線秘密地生成2 個密鑰,,分別對應輸入0、1,替換該門對應真值表中的值。用前兩項加密第三項,然后隨機打亂得到Garbled Table。Bob 通過不經意傳輸從Alice 那里獲得其輸入對應的密鑰、Garble Table 和自己輸入對應的密鑰等必要信息,最后計算該門對應的輸出C。在這一過程中,Bob 不用泄露自己的輸入,也不知道Alice的任何信息。
圖2 混淆電路示意
基于邏輯電路的計算方法有一定可行性,文獻[19]在智能手機上成功配置了基于電路的協議,并使用了Wi-Fi 通信。但該方法需要的邏輯門較多,實現復雜度較高。例如,計算編輯距離需要30 000 個門電路。為了降低復雜度,Pinkas 等[20]于2019 年提出了具有線性漸進通信復雜度的基于電路的協議,在集合大小為220時,該協議的通信復雜度不到文獻[21]協議的十一分之一,但后者可以拓展到多方環境。
不經意傳輸技術保證接收者只能從發送者的多個數據中獲取自己想要的數據,而發送者卻不知道這個具體的數據。不經意傳輸的構造方法有許多,如基于RSA(Rivest,Shamir,Adleman)構造[22]、基于橢圓曲線[23]等。近年來,高效的SMC 數據交互協議大部分是基于不經意傳輸拓展的[24-25],其性能較好,能夠僅通過少數公鑰操作和位操作完成大量的數據傳輸。例如,文獻[26]實現了在普通帶寬環境中(30~100Mbit/s)最快的SMC 協議,在半誠實對手環境和惡意對手環境中都能保證一定的安全性。它的底層協議是基于不經意拓展的輕量級多點不經意偽隨機函數。由于在某些環境下,協議計算的結果可能只是一個中間結果,因此,Ciampi等[27]基于不經意傳輸拓展實現能夠輸出“加密”的協議,類似的工作還有文獻[28-35]等。此外,文獻[36]利用差分隱私技術,選擇性地泄露部分不重要的信息,相比于文獻[32]提出的對抗惡意對手的協議,性能提升近63%。
秘密共享(secret-sharing)也是SMC 領域經常使用的技術,由Shamir[37]提出。秘密共享的關鍵是保證數據共享過程使用的信道是安全的。傳統方法采用的是加密技術,然而,密鑰的分享也面臨同樣的問題,即如何保證密鑰分享信道安全。非對稱加密技術的發展在很大程度上解決了該問題,但它的安全性也依賴于信道的誠實性,存在被中間人攻擊的可能。為了解決這一問題,秘密共享技術將秘密分成多份,由不同的信道傳輸,就算有惡意信道存在,也不能輕易還原完整的秘密。其形式化定義為
其中,s表示需要分享的秘密,t表示需要還原秘密的閾值,n表示將秘密拆分的數目。在一組參與者中,秘密由大家共同保管,只有當超過閾值的參與者相互合作時才能恢復完整的秘密數據。
秘密共享技術在安全多方計算場景中應用廣泛[38-39],數據方將數據和模型用秘密共享的方法加密拆分,發送至各參與方。在解決分布式集群一致性問題的拜占庭協議[40]中,也采用秘密共享協議將秘密分成多份傳送給各個假設的將軍,并在需要的時候恢復秘密。
隱私集合交集協議是MPC 領域使用較為廣泛的應用層協議,旨在多個數據方間計算數據交集。其具體定義如下。
發送方S和接收方R分別持有一個私有數據集X和Y,協議的目標是計算它們各自隱私集合的交集,即以X和Y為輸入,計算f(X,Y)=X∩Y,而不能泄露除交集之外的數據信息。
PSI 作為具體的應用層協議,它底層的數據傳輸和計算功能可以由同態加密、不經意傳輸、秘密分享等技術實現。此外,PSI 還可以根據具體的應用要求拓展出各種各樣的變體,例如,文獻[41]受可交換加密技術啟發,采用布隆過濾器優化,接收者可以更輕松地計算輸出,確保只有一方得知交集內容;只公布交集大小的應用場景[42-44],其中文獻[42]借助不經意評估方法實現惡意環境安全,結果表明其在云環境時的開銷比半誠實協議高25 倍,而且允許動態調節通信和計算之間的開銷比;隱藏一方輸入大小的應用場景[45-46],文獻[12]提出了一種適用于云計算環境的新的集合表示方法,基于加法同態公鑰密碼(PKC,private key cryptography)實現了2 個實用的協議,即PSI 和PSI-CA。
主要的SMC 數據交互協議比較如表1 所示。
表1 主要的SMC 數據交互協議比較
隨著云計算、人工智能、大數據等技術的發展,智能手機、可穿戴設備等產生了超大規模的數據,深度學習也隨著數據量的增長而得到更好的發展。由于設備的計算能力不斷增強,端設備數據與用戶隱私關聯度較高,非聚合式數據共享方法更受青睞,訓練數據保留在本地的聯邦學習算法得到廣泛研究。
聯邦學習是一種關注隱私保護的機器學習技術[47],源數據不離開本地設備,在多參與方或多計算節點之間開展高效的機器學習。聯邦學習是一個統稱,各數據提供方構成聯邦,共同訓練模型,其可使用的機器學習算法不局限于神經網絡,還包括隨機森林等。其框架主要由3 個部分構成:提供數據的多個本地節點、負責參數調優的中心參數服務器、參數傳輸鏈路(傳輸本地數據訓練后的模型參數至服務器,傳輸全局調優后的參數至各本地節點)。根據具體實現的深度學習模型和算法的不同,聯邦學習框架可以適用于各類數據分散的學習場景中。
本文側重于從源數據節點和通信傳輸2 個方面分析聯邦學習的優化方法及其相關的數據隱私保護技術。
聯邦學習中各源數據節點在本地進行訓練,僅上傳參數信息,避免數據隱私信息泄露。針對源數據節點的工作主要可以分為數據獲取和非平衡數據優化2 個方面。
3.1.1 數據獲取
聯邦學習擁有一定規模的本地數據節點提供源數據,但本地節點的管理較為松散,是自主構建聯邦模式,可以任意加入和離開。此外,本地節點的狀態是不可控的,如在線情況、誠實度、參與度、貢獻程度等。如何選擇適合的本地數據節點、如何激勵優質的節點參與并提供高質量的數據都是數據獲取階段需要考慮的問題。
1) 參加者選擇
本地數據節點的質量會影響總體的訓練過程,聯邦學習可通過選擇部分高質量參與者,提升算法效率。例如,FedAvg[48]從符合要求的本地節點(如在線且空閑的設備)中選取一定量的客戶端進行聚合;Goetz 等[49]提出主動聯合學習框架AFL(active federated learning),每個通信回合不是隨機均勻地選擇客戶,而是以模型和客戶數據為條件進行概率選擇;FedCS[50]根據資源的狀況主動管理本地節點,使其產生更多的聚合更新。
2) 激勵機制
通常的研究工作都假設設備無條件貢獻資源,但實際上設備是自私的,很難組建聯邦。因此,部分學者研究如何使本地數據節點積極參與到聯邦系統中,并制定高效的激勵機制[51-53]。首先,參與的節點之間可能會存在敵對競爭關系,雙方正面積極參與并均獲利十分關鍵。其次,參與者的貢獻程度不同,產生的效益也不一致,如何合理公平地分配收益也是值得研究的問題。此外,部分工作將激勵機制與防御惡意參與者結合,例如,Fmore[54]是移動邊緣場景的激勵機制框架,實驗證明提出的激勵機制能提高學習算法的性能。
3.1.2 非獨立同分布及不平衡數據的優化
數據分布及其質量對模型訓練有重要影響,尤其是在非聚合數據共享方法中。2017 年谷歌在FedSGD 算法的基礎上提出了FedAvg 算法[48],該算法對非獨立和不平衡數據都具有穩健性,為后續聯邦學習優化奠定了基礎。
1) 數據及模型架構優化
首先,從數據入手,部分解決方案利用共享數據子集[55-56]方法,在保護用戶隱私的前提下,提高模型準確率。其次,從模型本身架構入手,使之更加適應聯邦學習,例如,基于隨機梯度下降(SGD,stochastic gradient descent)的優化算法。從本地數據節點角度考慮,優化方法包括:對數據節點的要素進行插值更新[57]、對節點的目標函數添加一個近端項(proximal term)[58]、局部梯度添加可控的噪聲干擾并控制變量[59]、矯正本地數據的用戶漂移[60]等。
2) 模型個性化
模型個性化的聯邦學習也解決了數據非獨立同分布影響模型精度的問題。傳統聯邦學習下,中心參數服務器提供統一的本地模型,但在某些聯合學習場景下,參與方希望訓練的模型對自身利益最大化,而不是為了達成全局模型的共識而進行妥協。此外,多方數據的非獨立同分布特性可能會降低全局模型的精度,導致用戶參與聯邦學習所得的模型精度不理想[61]。模型個性化指參與方可自定義所訓練的本地聯邦學習模型,在利用本地數據集訓練本地私有模型的基礎上,參與全局公共模型的訓練,優化私有模型。
現有的模型個性化算法大多基于知識蒸餾實現,以完成不同模型間交換知識達成共識。表2 展示了支持模型個性化的聯邦學習框架對比分析,梳理了框架的異同點。
表2 模型個性化下的聯邦學習框架對比
Liu 等[62]提出了一種允許客戶獨立定制模型和設計訓練的聯邦學習框架——聯邦相互學習(FML,federated meta learning),其實現方式如圖3 所示。首先,訓練3 個本地模型(私有模型和中間模型);其次,通過深度相互學習與中間模型交換知識(不同于師生模型,模型間不存在強弱關系,交換的方向也是雙向的);隨后,通過合并中間模型獲取全局模型;最后,借助中間模型向私有模型傳達聯邦學習的知識。該方法可以讓本地數據節點完全獨立的設計不同于全局模型的私有模型,但同時會導致全局模型不再能開箱即用。
圖3 FML 實現方式
Ramanan 等[63]使用遷移學習和知識蒸餾開發一個通用的支持本地節點自主設計模型的聯邦學習框架。其假定參與方擁有較少的標準數據以及足量的公共數據集,借此聯合學習一個分類任務,并提出FedMD 算法:每個模型首先在公共數據方面進行充分的訓練;然后,借助遷移學習,對自己少量的私有數據進行訓練;隨后,借助知識蒸餾將私有模型的知識轉化為一個統一形式;最后,中央參數服務器收集這些轉化后的知識,計算出共識。相比于傳統聯邦學習,不存在所謂的全局模型,只存在一個知識蒸餾結果的共識,也不支持新的參與方,因為新的參與方可能會破壞現有的模型。
Roy 等[64]論證了FedAvg 也是一種元學習,并提出一種平均后悔上限分析框架,使聯邦學習與元學習構建聯系,讓模型個性化成為可能。
表3 對現有的聯邦學習數據源優化策略進行了對比總結。
表3 聯邦學習數據源優化策略
聯邦學習中有2 個必要的通信傳輸過程:數據節點傳輸本地數據訓練后的模型參數至服務器,中心參數服務器傳輸全局調優后的參數/模型至各本地節點。在雙向通信過程中,本地數據節點潛在的不可控網絡狀態(網絡時延、通信費用等)容易導致通信成為聯邦學習的瓶頸。
3.2.1 模型壓縮與降低通信頻次
針對通信這一任務本身,可以從降低通信頻次[48-49,65-68]和通信量方面進行優化。例如,AdaComm 自適應通信策略[69]從低通信頻率求平均值開始,以節省通信時延并提高收斂速度;增加通信頻率以實現較低的錯誤率,實驗證明其總體花費時間可減少到1/4。
從降低通信量考慮,可以進行通信數據壓縮,包括上行壓縮和下行壓縮。因為上行的速率總是低于下行的速率,所以更多的研究關注上行壓縮[70-73],部分研究同時壓縮上行和下行[74-75]。壓縮可分為有損壓縮和無損壓縮,相較于無損壓縮,有損壓縮能大大提升壓縮率,達到很好的壓縮效果,但是有一定損耗。在保證收斂率和準確率的前提下,更多的研究偏向于有損壓縮。在表4 中,本文對各個壓縮算法是否為有損壓縮、是否有下行壓縮、對非獨立同分布(Non-IID,non independent and identically distributed)數據是否有穩健性以及壓縮倍率等進行了分析和比較。
表4 不同聯邦學習壓縮算法對比分析
3.2.2 改變分布式體系結構
改變分布式體系結構也是優化計算節點間通信的有效方式之一。分布式體系結構包括對等、循環、服務器?客戶端等。單中央服務器?多客戶端的結構存在單點故障、主干網絡開銷過大等問題,可以利用對等架構解決。例如,對等網絡結構下的聯邦學習,其計算節點在有限通信的條件下,可以通過與相鄰節點聯合學習的方式解決通信瓶頸問題。相關研究主要集中在達成共識、協調構造全局模型、無中心模型聚合等方面。本節將去中心化的聯邦學習框架根據其訓練網絡的結構劃分為網型拓撲、樹型拓撲、抽象總線拓撲,并總結討論其模型聚合的方式及特點。
Savazzi 等[76]為降低主干網絡和中央服務器的通信開銷,避免邊緣設備長距離通信而導致訓練時延,提出基于云邊協同的聯邦學習框架,其網絡拓撲結構由傳統的星形拓撲結構轉化為樹形結構,子樹節點的層層聚合減少了主干網絡的數據傳輸量。邊緣云輔助的聯邦學習架構如圖4 所示。邊緣云聚合邊緣網絡下的本地節點的模型權重,中央云聚合邊緣云的權重,其聚合函數是專門設置的HierFAVG函數。此方案仍存在中央服務器,所有邊緣云聚合后才能進行云聚合,無法異步更新,降低了每輪聚合收斂的速度。
圖4 邊緣云輔助的聯邦學習架構
Sattler 等[77]提出與區塊鏈結合的去中心化聯邦學習框架。利用抽象總線拓撲結構,各參與方構建一個區塊鏈,基于區塊鏈存取全局模型。區塊鏈智能合約幫助訓練網絡的計算節點達成共識不借助中央服務器就完成全局模型聚合,具體包括:將全局模型權重向量劃分為數個塊數據,基于智能合約達成全局模型副本的共識,每個參與者投標訓練區塊上的塊。該框架還有一個顯著優勢,就是借助區塊鏈的記賬特性,在區塊鏈上推動計算,用戶可以獨立評估自己的成本效益比,并決定他們希望更新的塊數,量化多方參與計算的績效。但是,區塊鏈塊的數據大小限制會影響全局模型的劃分,從而影響該方案性能。
Yoshida 等[51]提出了對等網絡的去中心化聯邦學習框架,解決參與方分擔中央服務器聚合模型工作的問題。首先,隨機選擇一個節點開始廣播,獲取其他節點的權重、樣本數和版本號,僅記錄版本號大于自己的權重;其次,對權重進行加權平均,更新權重并增加版本號。此方案利用參與方充當某一輪的中央服務器角色,適合相互信任但又無法找出共識可靠第三方的場景。但是,該方案對節點的可靠性要求高,因為節點不僅承擔一個輪次的權重更新工作,還會廣播獲取其他節點的樣本數量和權重值,若存在惡意參與方,或者沒有可靠的安全協議支撐,就會造成數據不可用甚至出現模型安全問題。
Kang 等[78]提出了基于支持設備到設備(D2D,device-to-device)通信的5G 網絡進行去中心化聯邦學習的框架及去中心化的模型聚合算法CFA-GE(consensus based federated averaging with gradients exchange)。利用5G 網絡環境,該方法更適合大規模密集和完全分散的網絡,與以Mcmanhan 等[79]所提方法為代表的集中式深度學習方法形成鮮明對比。
表5 從算法的特點、隱私保護情況、適用場景等方面對部分聯邦學習優化算法進行了對比分析。
表5 聯邦學習的優化算法對比分析
本節主要介紹支持隱私保護的非聚合式數據共享框架,包括安全多方計算平臺JUGO 及編譯器Tasty、百度共享數據框架PaddleFL、微眾銀行FATE(federated AI technology enabler)、谷歌的 TFF(TensorFlow federated)以及英偉達Clara。表6 對這些框架進行了總結對比,分析了其各自特性及適用的場景。
表6 面向隱私保護的非聚合式數據共享框架
2018 年計算架構服務提供商矩陣元發布了通用的安全多方計算平臺JUGO,幫助用戶快速開發通用半誠實的兩方安全計算算法。JUGO 架構如圖5所示,算法模塊主要集成了混淆電路、同態加密等底層協議,供MPC-SDK 模塊調用。當參與方間協同商定計算邏輯后,借助矩陣元開發的Frutta 高級編程語言在MPC-IDE 集成開發環境上編寫實現,為上層的應用提供安全多方計算服務。最后,電路編譯器把電路邏輯編譯成電路文件。這些操作都可在GPU、FPGA 等硬件加速下實現,使協同計算過程更快地完成。
圖5 矩陣元JUGO 架構
此外,編譯器Tasty[80]能自動生成高效的基于同態加密和混淆電路技術的組合協議,用戶可以使用高級語言方便快速地描述該協議。Tasty 用于許多隱私保護協議,如PSI 相關應用、人臉識別等。圖6 展示了其主要工作流程,包括:1) 分析階段,運行時環境首先檢查協議描述是否存在語法錯誤,協議兩方是否在執行同一個協議,通過分析該協議自動確定哪方可以進行預計算;2) 設置階段,可預計算的參與方提前計算協議中獨立于它們輸入的部分,如混淆電路的生成和發送等;3) 在線/執行階段,各參與方提供自己的輸入,協議的在線部分(加密、解密、電路評估等)開始執行,直到計算出各參與方相應的輸出為止。
圖6 Tasty 工作流程
PaddleFL 是百度于2019 年開源的聯邦學習框架,主要提供2 種聯邦學習解決方案:Data Parallel和PFM(parallel federated learning with MPC)[81]。
4.2.1 數據并行化
各數據方通過Data Parallel 可以基于經典的橫向聯邦學習算法FedAvg[81-82]、DPSGD[83-84]等完成模型訓練。其服務架構如圖7 所示,分為編譯階段和運行階段。
圖7 數據并行化下的橫向聯邦學習服務架構
編譯階段包含以下4 個主要部分。1) FL-Strategy。用戶可以使用FL-Strategy 定義聯邦學習策略,如Fed-Avg。2) UDP(user-defined-program),為PaddleFL 程序,定義機器學習模型結構和訓練策略,如多任務學習。3) Distributed-Config。聯邦學習系統會部署在分布式環境中,需要對分布式訓練進行配置并定義分布式節點信息。4)FL-Job-Generator。給定 FL-Strategy、UDP 和Distributed Training Config,生成聯邦參數的服務器端和客戶端的FL-Job。
運行階段包含以下3 個組件。1) FL-Server,在云或第三方集群中運行的聯邦參數服務器。2)FL-Trainer,參與聯邦學習的每個組織都將有一個或多個與參數服務器通信的客戶端。3) FL-Scheduler,訓練過程中調度客戶端,在每個更新周期前,決定哪些客戶端可以參與訓練。
4.2.2 基于安全多方計算的聯邦學習
作為PaddleFL 的一個重要組成部分,PFM 是基于多方安全計算實現的聯邦學習方案。PFM 可以很好地支持橫向、縱向及聯邦遷移學習等多個場景,既可提供可靠的安全性,也具有可觀的性能。
PFM 中的安全訓練和推理任務是基于高效的多方計算協議,如三方安全計算協議 ABY3(three-party arithmetic-binary-Yao)[38]。在ABY3 中,參與方可分為輸入方、計算方和結果方。輸入方為訓練數據及模型的持有方,負責加密數據和模型,并將其發送到計算方。計算方為訓練的執行方,基于特定的多方安全計算協議完成訓練任務,只能得到加密后的數據及模型。計算結束后,結果方會拿到計算結果并恢復出明文數據。每個參與方可充當多個角色,如一個數據擁有方也可以作為計算方參與訓練。PFM 的整個訓練及推理過程如圖8 所示。其主要由3 個階段組成:數據準備、安全訓練/推理、結果解析。數據準備階段包括私有數據對齊和數據加密及分發。首先,PFM 通過PSI 協議允許數據擁有方在不泄露自己數據的情況下,找出多方共有的樣本集合。此功能主要支持縱向聯邦學習,因為其要求多個數據方在訓練前進行數據對齊,同時保護用戶的數據隱私。其次,數據方將數據和模型用秘密共享的方法加密,然后用直接傳輸或者數據庫存儲的方式傳到計算方。每個計算方只會拿到數據的一部分,因此計算方無法還原真實數據。
圖8 PFM 訓練及推理過程(IP_i、CP_i 以及RP_i 分別表示數據或模型的擁有方、計算方以及結果獲取方)
安全訓練/推理階段。PFM 擁有與PaddleFL 相同的運行模式。在訓練前,用戶需要定義SMC 協議、訓練模型以及訓練策略。PaddleFL 的多方安全計算模塊提供了可以操作加密數據的算子,在運行時算子的實例會被創建并被執行器依次運行。
結果解析階段。安全訓練和推理工作完成后,模型(或預測結果)將由計算方以加密形式輸出。結果方可以收集加密的結果,使用PFM 中的工具對其進行解密,并將明文結果傳遞給用戶。
4.3.1 概述
FATE 是由微眾銀行開源的一款工業級的聯邦學習框架,為用戶提供保護隱私的分布式機器學習服務[85]。FATE 涵蓋聯邦特征工程、聯邦機器學習模型訓練(FATE FederatedML)、聯邦模型評估、聯邦在線推理等。其中,FATE FederatedML 是聯邦學習算法功能組件,提供許多常見機器學習算法聯邦化實現。其主要功能如圖9 所示,具體如下:聯邦樣本對齊,包括縱向樣本ID 對齊、基于RSA+哈希等對齊方式;聯邦特征工程,包括聯邦采樣、聯邦特征分箱、聯邦特征選擇、聯邦相關性、聯邦統計等;聯邦機器學習,包括聯邦邏輯回歸、線性回歸、泊松回歸、聯邦SecureBost、聯邦DN、聯邦遷移學習等[86];多方安全計算協議,包括同態加密、秘密分享、RSA、Diffie-Hellman 交換算法等。
圖9 FATE FederatedML 主要功能
4.3.2 無損隱私保護系統
FATE 在實現縱向聯邦學習時,為聯邦學習環境下的模型訓練提供一種稱為SecureBoost 的無損隱私保護 tree-boosting 系統。如圖 10 所示,SecureBoost 在隱私約束下對數據進行對齊,協同學習共享gradient-tree boosting 模型[87],同時對多個私有方的所有訓練數據保密。FATE 利用基于隱私保護的樣本ID 匹配進行數據對齊。當數據垂直劃分在多個參與方上時,不同的參與方持有不同但部分重疊的用戶,這些用戶可以通過其唯一的用戶ID來識別。為了在沒有仲裁的情況下兼顧隱私并找到各方的共享用戶或數據樣本用戶集的非共享部分,FATE 使用文獻[88-89]所提的隱私保護協議,在加密方案下尋找數據樣本的用戶交集。
圖10 SecureBoost 框架
圖11 描述了在縱向聯邦學習時,隱私保護約束下的數據對齊流程,具體如下。
圖11 FATE 縱向聯邦學習的數據對齊實現流程
1) B 將公鑰(n,encry)加密后傳給A,建立加密通道。其中,n是公有密鑰,encry 是加密算法。
2) A 通過哈希函數H 逐個映射ui,并乘以加密后的隨機噪聲,然后將結果YA回傳給B。
3) B 解密后得到ZA,計算ZB,并將ZA和ZB回傳給A。
4) A 消除ZA中的隨機噪聲,然后進行一次哈希運算生成AD,再求ZA與DA的交集,最后A 回傳交集結果給B。
在多方安全訓練階段,FATE 利用SecureBoost的模型,實質上是將梯度提升樹學習算法XGBoost[90]進行轉換,使其適應聯邦學習環境。分裂節點的選擇和葉的最優權重計算僅取決于葉的g和h。其中,g和h分別是XGBoost 損失函數的一階導數和二階導數。而g、h與分類標簽存在關聯,攻擊方在一定條件下可以通過g和h恢復分類標簽。由XGBoost特點可知,每個被動方(無標簽數據的參與方)一旦獲得g和h,僅用其本地數據就能夠獨立地確定局部最優分裂。因此,非聯邦學習下活動方將g和h發送到每個被動方是可行的。但由于g和h可以用來獲取分類標簽信息,為了確保安全,聯邦學習要求各被動方無法直接訪問g和h,主動方(有標簽數據的參與方)在將g和h發送給被動方之前要進行加密。隨后,每個被動方使用加密的g和h確定局部最優分裂。被動方A 使用由主動方B 加密的g和h進行計算。其中,g和h在主動方B 側本地計算,B 側沒有泄露樣本分類標簽;被動方A 本地計算經加法同態加密后的梯度直方圖,B 解密梯度直方圖,但是不知道具體對應的ID 集合,保護了A側ID 集合隱私信息。
4.4.1 概述
TFE 是由谷歌開源的聯邦學習框架,可用于對分散式數據進行機器學習和計算[91]。開發者可基于其模型和數據來模擬聯邦學習算法并實驗新算法。TFF 提供的構建塊也可用于實現非學習計算,例如對分散式數據進行聚合分析。TFF 的接口可以分成兩層:1) FL API,提供了一組高階接口,開發者能夠利用其聯合訓練和評估實現TensorFlow 模型。2)FC(federated core)API,可以通過在強類型函數式編程環境中結合使用TensorFlow 與分布式通信運算符,簡潔地表達新的聯合算法。這一層也是構建聯合學習的基礎。
TFF 可用于模擬對聯合學習系統的目標攻擊和基于隱私的差異防御[92],使用潛在的惡意客戶端構建一個迭代進程。同時,TFF 還支持自定義的攻擊方式,通過編寫一個客戶端更新函數來實現新的攻擊算法。此外,新的防御方案可以通過定制狀態聚合函數及聚合客戶端輸出以獲得自定義安全全局更新策略。
4.4.2 隱私保護庫
谷歌開源的TensorFlow Privacy 是將差分隱私技術集成到諸如隨機梯度下降的迭代訓練過程中,提供了隱私保護Python 庫,以訓練具有差異隱私的機器學習模型[93]。引入模塊化方法最大限度地減少對訓練算法的更改,為隱私機制提供各種配置策略;隔離和簡化關鍵邏輯解決了在隱私敏感數據集上訓練機器學習模型的實際挑戰[94]。而TFF 與TensorFlow Privacy 隱私庫是互操作的,可以支撐聯邦訓練算法的不同隱私模型,例如,支持基礎的DP-FedAvg 算法進行差分隱私訓練。此外,TFF 還提供可擴展的隱私保護接口,可以實現自定義差分隱私算法并將其應用于聯邦平均的參數更新。
TFF 實現本地數據隱私保護的另一個重要方式是與生成式對抗網絡(GAN,generative adversarial network)結合,如DP-FedAvg-GAN 算法。Rangan等[95]展示了DP-FedAvg-GAN 算法下聯邦學習、生成模型和差分隱私相結合的有效性。
NVIDIA Clara 是一個醫療保健應用框架,用于人工智能成像、基因組學以及智能傳感器的開發和部署[47]。以服務器?客戶端結構的聯邦學習為特色,各數據持有方和中央服務器通過邊緣AI 計算平臺NVIDIA EGX 構建訓練網絡,實現支持隱私保護的智能計算。NVIDIA Clara 作為一個商業應用產品,需基于英偉達的GPU 硬件來獲取服務。
聯邦學習的中央服務器雖然通過適當地聚合客戶端本地模型更新可以獲得一個高精度的全局模型,但是共享的模型可能間接地泄露本地的訓練示例。NVIDIA Clara 云邊協同的架構,可以通過控制站點的全局模型只共享部分模型權重,從而保護隱私,并且數據較少暴露在模型反轉中。Paillier 等[10]探討了在聯邦學習系統中應用差分隱私技術來保護病人資料的可行性。其實驗結果表明,模型性能與隱私保護代價之間存在折中關系。
此外,為確保在客戶機?服務器通信時數據和模型的安全性,Clara 使用聯合學習令牌來建立客戶端和服務器之間的信任[22]。聯邦學習令牌會在整個聯邦訓練會話生命周期中使用。客戶端需要驗證服務器標識,服務器也需要驗證客戶端。客戶端?服務器數據交換基于HTTPS 協議進行安全通信。
隨著海量異構數據的日益增長,數據隱私保護問題迫在眉睫。非聚合式數據共享方法在數據分享模式基礎上增強了隱私保護,降低數據泄露的風險。通過總結分析安全多方計算、聯邦學習及非聚合式數據共享框架的發展,本文進一步提出了非聚合式數據共享領域在未來更為復雜的信息世界中面臨的挑戰和機遇。
隨著物聯網和邊緣計算的發展,智能設備能力不斷提升,數據往往分布在多個節點上。而且,節點動態性強,可以自由加入和離開,導致多參與方情況更加復雜和不穩定。
由于安全多方計算協議復雜度高,傳統的方法側重研究兩方參與場景,無法很好地拓展到多方環境。不能簡單地將兩方協議執行多次來達到多方計算,因為在簡單重復兩方協議的過程中,參與方會得到一些中間結果,而它本身是不能獲知這些中間結果的。雖然有部分研究者針對這一問題展開研究,但還未能完全解決。例如,Wang 等[96]提出讓某參與方充當領導者,組織協議在多方之間執行,但無法很好地應對領導者是惡意節點的情況,而且領導者的選擇也影響協議效率;Kolesnikov 等[97]借助不經意可編程的偽隨機函數(OPPRF,oblivious evaluation of a programmable pseudorandom function)的特性來完成多方計算,5 個各有 220個元素的參與者執行協議僅需72 s,但其實驗選取的是較小數字或較短字符串等簡單元素,不能很好地應對復雜場景。云計算給多參與方場景的安全計算帶來了機遇[98],其強大的計算和存儲能力可以用于支撐復雜的協議,但也存在一定挑戰。首先,傳統方法是針對數據存儲在本地、計算執行在本地的特點而設計的,不能照搬到云環境中。其次,云中心節點一般被認為是半誠實的,需要對傳輸數據進行加密,而這個操作會導致數據擁有方難以在協議執行過程中對外包的數據集進行訪問控制。因此,需要研究適應動態多參與方的安全計算協議,可以利用現有的一些高級密碼學成果和邊緣計算環境中的智能節點等,達到高效合理計算的目標。
參與方的增多也會影響聯邦學習算法的準確性和性能。首先,管理和篩選合格的參與方需要額外的開銷;其次,本地數據節點增多,其不同的數據分布會影響全局優化模型的效果。在最壞的情況下生成的聯合模型并不比在單個節點上訓練生成的模型好[99],在非獨立同分布的數據情況下,FedAvg 訓練卷積神經網絡的準確率會顯著下降[79]。改進的潛在方法包括增加并行性、增加本地節點的計算量、參與方聚類擇優、模型自適應調整等。針對參與方的動態變化及應對短時間內參與方數量彈性增加/降低等情況,如何設計一個快速收斂且保證準確率的算法模型還需要進一步的研究。
為了增強數據隱私保護,需要復雜的協議和算法保證最低程度的數據泄露,但在實現過程中,則會造成系統開銷增大。因此,如何平衡所需的優化性能和執行開銷是十分重要的問題,關系到方案的實際應用拓展情況。
在安全多方計算領域,Pinkas 等[29]提出貨幣成本衡量標準,其表示PSI 協議在云計算平臺執行所帶來的計算和通信開銷,并根據該標準設計了2 個半誠實對手安全協議,其中一個具有非常低的通信開銷,另一個則在計算開銷上表現出色,然而這2種特性并未出現在同一個協議上。如何權衡計算和通信開銷,在滿足應用場景和用戶隱私需求的情況下達到平衡,能否借助貨幣成本標準設計出更加折中的方案等,都是亟待解決的問題。
在聯邦學習領域,其分布式架構存在多節點的數據交換過程,需要較好的通信帶寬,多節點訓練的拓展性也與其正相關。然而,在大型異構環境分布式訓練中,本地數據節點常常會受到可用通信帶寬和資源的限制。梯度壓縮是解決這類問題的一種潛在的有效方法,但大多壓縮算法采用近似編碼表示內容,存在一定的信息損失,無法被廣泛采用。其次,運行速度會受到影響,而且可能造成優化后的所有梯度聚集或無法達到相同的測試性能。因此,如何在保證算法準確度的前提下減少通信成本仍然需要進一步研究。
非聚合式數據共享雖然能保證源數據不在單點聚合,但仍面臨一些潛在的安全問題。
虛假數據。攻擊者可以冒充虛假參與方,提交模擬的數據,造成數據中毒的情況。在安全多方計算場景中,此方案可以用來攻擊外包計算節點,消耗其資源,使真正參與方得不到公平的資源使用機會。在聯邦學習場景中,虛假數據會嚴重影響全局優化模型的準確性,造成嚴重后果。針對這一問題,可以嘗試從參與方認證、可靠性激勵等方面提出解決方案。
架構安全性。安全多方計算中,由于加密后的數據需要傳輸交互,若一個參與方被攻破,則信息可能被泄露。如果攻擊者獲悉加密方法及部分真實數據信息,就能在一定程度上破解密文。安全多方計算的數據安全性取決于使用的加密方法和數據傳輸通道的安全性。聯邦學習中參數服務器對本地數據及其訓練過程是不可見的,攻擊者可利用缺乏透明性對系統進行攻擊。通過有目的或無目的的模型攻擊,使訓練過程中數據樣本偏差不可察覺,影響全局模型的性能或操控模型偏向。如何確保本地數據節點提供誠實可信的訓練,保證整個聯邦學習流程的安全性仍然是一個難點。
隨著學術界和工業界對數據隱私保護問題的重視,研究者致力于開發各種增強數據隱私保護的技術,如何結合現有的技術,針對不同的應用場景,提升整體系統的數據隱私保護能力,也是未來值得研究的方向。
生成對抗網絡是一種深度神經網絡結構,由Goodfellow 等[100]在2014 年提出,它可以學習數據集分布,生成與數據集相似的逼真數據。利用GAN可以把同等特征的模擬數據發送給對方,而不泄露真實數據內容,保護源數據隱私。非聚合式數據共享方法主要強調數據共享的作用及其目標,若數據特征保留,則同樣可以訓練準確的模型。但現有的GAN 相關研究缺乏對GAN 模型的性能、可用性、生成樣本的質量等方面的客觀評價,導致模型的判定受一定主觀因素的影響。其次,仍然存在訓練過程不穩定、訓練結果難以收斂、模式崩潰等問題,PPGAN[101]、DPGAN[102]雖在一定程度上有所改善,但仍有很大的優化空間。
本地差分隱私(LDP,local differential privacy)[103]技術讓數據所有者在發布數據之前對數據進行擾動,避免需要信任的第三方進行數據收集和處理,保護源數據隱私。該技術能夠消除所增加的正、負噪聲,并且基于預定義的查詢來設計擾動機制,對指定的查詢能得到準確的估計。但目前的查詢類型比較單一,包括離散型數據的計數查詢和連續型數據的均值查詢,不支持其他類型的查詢,如范圍查詢、最值查詢等。其次,本地差分隱私對復雜數據類型研究的工作還不足,目前僅有文獻[104-105]等對圖等復雜數據進行了研究,不能很好地處理具有邊權或邊屬性的圖,以及特定圖的挖掘任務研究,如三角形計數和頻繁的子圖結構挖掘等。
聯邦學習框架需要上傳本地訓練模型的參數至中央參數服務器,中央服務器結合全局信息進行調優操作后,再把優化后的參數信息返回給各本地節點。參數數據傳輸鏈路及中央參數調優計算可結合安全多方計算技術,保證參數信息交互過程中的隱私安全性。具體的技術選型、計算操作實現還需要結合聯邦學習實際應用場景進行進一步的分析和優化。
隨著數據量的迅速增多以及用戶隱私保護需求的提高,傳統的集中式獲取全部數據的方式已不能很好地應對多方數據共享的場景,非聚合式數據共享有望成為主流。非聚合式數據共享在有效降低源數據隱私泄露風險的情況下,完成數據處理和挖掘的目標。本文簡要介紹了主要的非聚合式數據共享方法的研究現狀,首先,闡述早期非聚合式數據共享方法安全多方計算的相關技術,包括同態加密、不經意傳輸、秘密共享、隱私集合交集協議等。其次,從源數據節點和通信傳輸優化2 個方面介紹近期的非聚合式數據共享研究熱點聯邦學習技術。此外,本文還對比分析了非聚合式數據共享框架,如百度PaddleFL、微眾銀行FATE、谷歌TFF 等,給未來研究方案的實際構建和運行提供支撐。最后,本文提出了4 個非聚合式數據共享領域面臨的挑戰和潛在研究方向。期望本文可以為研究人員快速全面地了解和掌握非聚合式數據共享領域的基本現狀和研究發展提供參考和幫助。