隐私计算--联邦学习
目錄
聯(lián)邦學(xué)習(xí)
聯(lián)邦學(xué)習(xí)系統(tǒng)構(gòu)架
聯(lián)邦學(xué)習(xí)開源框架
聯(lián)邦學(xué)習(xí)分類
橫向聯(lián)邦學(xué)習(xí)
縱向聯(lián)邦學(xué)習(xí)
聯(lián)邦遷移學(xué)習(xí)
聯(lián)邦學(xué)習(xí)特點(diǎn)
參考推薦:
聯(lián)邦學(xué)習(xí)概念及應(yīng)用
https://blog.csdn.net/cao812755156/article/details/89598410?
https://blog.csdn.net/ms961516792/article/details/111875062?
https://blog.csdn.net/feng_zhiyu/article/details/108366482?
https://blog.csdn.net/weixin_44118034/article/details/111664918?
https://blog.csdn.net/hhhhhhhhhhwwwwwwwwww/article/details/116565815?
https://blog.csdn.net/thormas1996/article/details/90749913?
https://blog.csdn.net/weixin_42933718/article/details/104675702?
https://blog.csdn.net/hellompc/article/details/103779484?
https://blog.csdn.net/feng_zhiyu/article/details/108366439?
https://blog.csdn.net/sunyaowu315/article/details/96744126?
https://blog.csdn.net/Aibiabcheng/article/details/109956555?
https://blog.csdn.net/weixin_45439861/article/details/100670390?
https://blog.csdn.net/feng_zhiyu/article/details/108366704?
聯(lián)邦學(xué)習(xí)
聯(lián)邦學(xué)習(xí)(Federated Learning)是一種新興的人工智能基礎(chǔ)技術(shù),在 2016 年由谷歌最先提出,原本用于解決安卓手機(jī)終端用戶在本地更新模型的問題,其設(shè)計(jì)目標(biāo)是在保障大數(shù)據(jù)交換時(shí)的信息安全、保護(hù)終端數(shù)據(jù)和個(gè)人數(shù)據(jù)隱私、保證合法合規(guī)的前提下,在多參與方或多計(jì)算結(jié)點(diǎn)之間開展高效率的機(jī)器學(xué)習(xí)。其中,聯(lián)邦學(xué)習(xí)可使用的機(jī)器學(xué)習(xí)算法不局限于神經(jīng)網(wǎng)絡(luò),還包括隨機(jī)森林等重要算法。聯(lián)邦學(xué)習(xí)有望成為下一代人工智能協(xié)同算法和協(xié)作網(wǎng)絡(luò)的基礎(chǔ)。
在聯(lián)邦學(xué)習(xí)白皮書中給出了明確的聯(lián)邦學(xué)習(xí)的定義:
- 各方數(shù)據(jù)都保留在本地,不泄露隱私也不違反法規(guī);
- 多個(gè)參與者聯(lián)合數(shù)據(jù)建立虛擬的共有模型,并且共同獲益的體系;
- 在聯(lián)邦學(xué)習(xí)的體系下,各個(gè)參與者的身份和地位平等;
- 聯(lián)邦學(xué)習(xí)的建模效果和將整個(gè)數(shù)據(jù)集放在一處建模的效果相同,或相差不大(在各個(gè)數(shù)據(jù)的用戶對(duì)齊或特征對(duì)齊的條件下);
- 遷移學(xué)習(xí)是在用戶或特征不對(duì)齊情況下,也可以在數(shù)據(jù)間通過交換加密參數(shù)達(dá)到知識(shí)遷移的效果。
? ? ? ?綜上,聯(lián)邦學(xué)習(xí)的目的是:使多個(gè)參與方在保護(hù)數(shù)據(jù)隱私、滿足合法合規(guī)要求的前提下繼續(xù)進(jìn)行機(jī)器學(xué)習(xí),解決數(shù)據(jù)孤島問題。在實(shí)際中,孤島數(shù)據(jù)具有不同的分布特點(diǎn),根據(jù)這些特點(diǎn),可以提出相應(yīng)的聯(lián)邦學(xué)習(xí)方案。以孤島數(shù)據(jù)的分布特點(diǎn)為依據(jù)可將聯(lián)邦學(xué)習(xí)分為三類:橫向聯(lián)邦學(xué)習(xí)、縱向聯(lián)邦學(xué)習(xí)和聯(lián)邦遷移學(xué)習(xí)。
聯(lián)邦學(xué)習(xí)是使得多方在不共享本地?cái)?shù)據(jù)的前提下,進(jìn)行多方協(xié)同訓(xùn)練的機(jī)器學(xué)習(xí)方式。因此,他在實(shí)現(xiàn)功能的同時(shí),能夠很好的保護(hù)數(shù)據(jù)隱私。目前聯(lián)邦學(xué)習(xí)支持的算法:SecureBoost,線性回歸,邏輯回歸,神經(jīng)網(wǎng)絡(luò)算法等。
1、聯(lián)邦學(xué)習(xí)優(yōu)勢(shì)
- 數(shù)據(jù)隔離,數(shù)據(jù)不會(huì)泄露到外部,滿足用戶隱私保護(hù)和數(shù)據(jù)安全的需求;
- 能夠保證模型質(zhì)量無損,不會(huì)出現(xiàn)負(fù)遷移,保證聯(lián)邦模型比割裂的獨(dú)立模型效果好;
- 參與者地位對(duì)等,能夠?qū)崿F(xiàn)公平合作;
- 能夠保證參與各方在保持獨(dú)立性的情況下,進(jìn)行信息與模型參數(shù)的加密交換,并同時(shí)獲得成長。
聯(lián)邦學(xué)習(xí)系統(tǒng)構(gòu)架
以包含兩個(gè)數(shù)據(jù)擁有方(即企業(yè) A 和 B)的場(chǎng)景為例介紹聯(lián)邦學(xué)習(xí)的系統(tǒng)構(gòu)架。該構(gòu)架可擴(kuò)展至包含多個(gè)數(shù)據(jù)擁有方的場(chǎng)景。假設(shè)企業(yè) A 和 B 想聯(lián)合訓(xùn)練一個(gè)機(jī)器學(xué)習(xí)模型,它們的業(yè)務(wù)系統(tǒng)分別擁有各自用戶的相關(guān)數(shù)據(jù)。此外,企業(yè) B 還擁有模型需要預(yù)測(cè)的標(biāo)簽數(shù)據(jù)。出于數(shù)據(jù)隱私保護(hù)和安全考慮,A 和 B 無法直接進(jìn)行數(shù)據(jù)交換,可使用聯(lián)邦學(xué)習(xí)系統(tǒng)建立模型。聯(lián)邦學(xué)習(xí)系統(tǒng)構(gòu)架由三部分構(gòu)成:
?第一部分:加密樣本對(duì)齊。由于兩家企業(yè)的用戶群體并非完全重合,系統(tǒng)利用基于加密的用戶樣本對(duì)齊技術(shù),在 A 和 B 不公開各自數(shù)據(jù)的前提下確認(rèn)雙方的共有用戶,并且不暴露不互相重疊的用戶,以便聯(lián)合這些用戶的特征進(jìn)行建模。
第二部分:加密模型訓(xùn)練。在確定共有用戶群體后,就可以利用這些數(shù)據(jù)訓(xùn)練機(jī)器學(xué)習(xí)模型。為了保證訓(xùn)練過程中數(shù)據(jù)的保密性,需要借助第三方協(xié)作者 C 進(jìn)行加密訓(xùn)練。以線性回歸模型為例,訓(xùn)練過程可分為以下 4 步:
- 協(xié)作者 C 把公鑰分發(fā)給 A 和 B,用以對(duì)訓(xùn)練過程中需要交換的數(shù)據(jù)進(jìn)行加密。
- A 和 B 之間以加密形式交互用于計(jì)算梯度的中間結(jié)果。
- A 和 B 分別基于加密的梯度值進(jìn)行計(jì)算,同時(shí) B 根據(jù)其標(biāo)簽數(shù)據(jù)計(jì)算損失,并把結(jié)果匯總給 C。C 通過匯總結(jié)果計(jì)算總梯度值并將其解密。
- C 將解密后的梯度分別回傳給 A 和 B,A 和 B 根據(jù)梯度更新各自模型的參數(shù)。
迭代上述步驟直至損失函數(shù)收斂,這樣就完成了整個(gè)訓(xùn)練過程。在樣本對(duì)齊及模型訓(xùn)練過程中,A 和 B 各自的數(shù)據(jù)均保留在本地,且訓(xùn)練中的數(shù)據(jù)交互也不會(huì)導(dǎo)致數(shù)據(jù)隱私泄露。因此,雙方在聯(lián)邦學(xué)習(xí)的幫助下得以實(shí)現(xiàn)合作訓(xùn)練模型。
第三部分:效果激勵(lì)。聯(lián)邦學(xué)習(xí)的一大特點(diǎn)就是它解決了為什么不同機(jī)構(gòu)要加入聯(lián)邦共同建模的問題,即建立模型以后模型的效果會(huì)在實(shí)際應(yīng)用中表現(xiàn)出來,并記錄在永久數(shù)據(jù)記錄機(jī)制(如區(qū)塊鏈)上。提供數(shù)據(jù)多的機(jī)構(gòu)所獲得的模型效果會(huì)更好,模型效果取決于數(shù)據(jù)提供方對(duì)自己和他人的貢獻(xiàn)。這些模型的效果在聯(lián)邦機(jī)制上會(huì)分發(fā)給各個(gè)機(jī)構(gòu)反饋,并繼續(xù)激勵(lì)更多機(jī)構(gòu)加入這一數(shù)據(jù)聯(lián)邦。以上三部分的實(shí)施,既考慮了在多個(gè)機(jī)構(gòu)間共同建模的隱私保護(hù)和效果,又考慮了以一個(gè)共識(shí)機(jī)制獎(jiǎng)勵(lì)貢獻(xiàn)數(shù)據(jù)多的機(jī)構(gòu)。所以,聯(lián)邦學(xué)習(xí)是一個(gè)「閉環(huán)」的學(xué)習(xí)機(jī)制。
聯(lián)邦學(xué)習(xí)開源框架
目前業(yè)界中主要的聯(lián)邦學(xué)習(xí)框架有FATE、TensorFlow Federated、PaddleFL、Pysyft等。
2019年2月,微眾銀行開源FATE開源項(xiàng)目,截止2019年12月發(fā)布FATE vl.2版本,覆蓋橫向聯(lián)邦學(xué)習(xí),縱向聯(lián)邦學(xué)習(xí),聯(lián)邦遷移學(xué)習(xí),得到了社區(qū)內(nèi)廣泛的關(guān)注與應(yīng)用。同時(shí),FATE 提供20多個(gè)聯(lián)邦學(xué)習(xí)算法組件,涵蓋LR、GBDT、DNN等主流算法,覆蓋常規(guī)商業(yè)應(yīng)用場(chǎng)景建模需求。尤真值得注意的是,FATE提供了一站式聯(lián)邦模型服務(wù)解決方案,涵蓋聯(lián)邦特征工程,聯(lián)邦機(jī)器學(xué)習(xí)模型訓(xùn)練,聯(lián)邦模型評(píng)估,聯(lián)邦在線推理,相比真他開源框架,在工業(yè)應(yīng)用上高顯著的優(yōu)勢(shì)。
Open Minded開源的Pysyft框架,較好地支持橫向聯(lián)邦學(xué)習(xí)。該框架同時(shí)支持Tensorflow、Keras、Pytorch,為使用人員快速上手提供了較多的選擇。Pysyft提供了安全加密算子,數(shù)值運(yùn)算算子,及聯(lián)邦學(xué)習(xí)算法,用戶也可以高效搭建自己的聯(lián)邦學(xué)習(xí)算法。相比較FATE,OpenMinded尚未提供高效的部署方案及serving端解決方案,相比工業(yè)應(yīng)用,更適合作為高效的學(xué)術(shù)研究、原型開發(fā)的工具。
谷歌開源的TensorFlow Federated框架,截止2019年12月已發(fā)布至0.11版本,較好地支持橫向聯(lián)邦學(xué)習(xí)。其中,可以通過 Federated Learning (FL) API,與Tensorflow/Keras交互,完成分類、回歸等任務(wù)。用戶也可以通過真提供的Federated Core (FC) API,通過在強(qiáng)類型函數(shù)編程環(huán)境中將TensorFlow與分布式通信運(yùn)算符相結(jié)合,簡(jiǎn)潔地表這新的聯(lián)合算法。目前TensorFlow Federated在安全加密算子上缺少開放實(shí)現(xiàn),同時(shí)缺少對(duì)線上生產(chǎn)的完善支撐。
2019年11月,百庭宣布開源真聯(lián)邦學(xué)習(xí)框架PaddleFL。PaddleFL開源框架中包含了DiffieHellman等安全算子,及LR等機(jī)器學(xué)習(xí)算法。由于真開源時(shí)間較短,算子豐富程度遜于上述三個(gè)框架。PaddleFL的優(yōu)勢(shì)在于通過與百度機(jī)器學(xué)習(xí)開源框架Paddle Paddle的交互,吸引相關(guān)生態(tài)開發(fā)者加入開發(fā)。
?
聯(lián)邦學(xué)習(xí)分類
我們用數(shù)據(jù)集(I,X,Y)表示訓(xùn)練樣本,按照樣本和特征的分布情況,可以將聯(lián)邦學(xué)習(xí)分為:
- 橫向聯(lián)邦學(xué)習(xí)(Horizontal Federated Learning,HFL),適用于特征信息重疊較多的場(chǎng)景,通過提升樣本數(shù)量達(dá)到訓(xùn)練模型效果的提升。比如兩個(gè)異地的銀行之間就可以構(gòu)建橫向聯(lián)邦學(xué)習(xí)模型。
- 縱向聯(lián)邦學(xué)習(xí)(Vertical Federated Learning,VFL),適用于參與雙方樣本重疊較多時(shí)的場(chǎng)景,通過豐富樣本特征維度,實(shí)現(xiàn)機(jī)器學(xué)習(xí)模型的優(yōu)化。比如銀行和商業(yè)公司之間可以構(gòu)建縱向聯(lián)邦學(xué)習(xí)模型。
- 聯(lián)邦遷移學(xué)習(xí)(Federated Transfer Learning,FTL),樣本和特征重疊都較少時(shí),需要進(jìn)行數(shù)據(jù)遷移。
橫向聯(lián)邦學(xué)習(xí)
橫向聯(lián)邦學(xué)習(xí)在兩個(gè)數(shù)據(jù)集的用戶特征重疊較多,而用戶重疊較少的情況下,我們把數(shù)據(jù)集按照橫向(即用戶維度)切分,并取出雙方用戶特征相同而用戶不完全相同的那部分?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練。這種方法叫做橫向聯(lián)邦學(xué)習(xí)。比如有兩家不同地區(qū)的銀行,它們的用戶群體分別來自各自所在的地區(qū),相互的交集很小。但是,它們的業(yè)務(wù)很相似,因此,記錄的用戶特征是相同的。此時(shí),我們就可以使用橫向聯(lián)邦學(xué)習(xí)來構(gòu)建聯(lián)合模型。谷歌在2016年提出了一個(gè)針對(duì)安卓手機(jī)模型更新的數(shù)據(jù)聯(lián)合建模方案:在單個(gè)用戶使用安卓手機(jī)時(shí),不斷在本地更新模型參數(shù)并將參數(shù)上傳到安卓云上,從而使特征維度相同的各數(shù)據(jù)擁有方建立聯(lián)合模型。
- 參與方擁有的數(shù)據(jù)特征相同(包括標(biāo)簽),即數(shù)據(jù)特征是對(duì)齊的;訓(xùn)練樣本ID不同(或者交集很少)。
- 橫向聯(lián)邦學(xué)習(xí)也稱為“樣本橫向劃分的聯(lián)邦學(xué)習(xí)”,或者跨樣本的聯(lián)邦學(xué)習(xí)。
- 橫向聯(lián)邦學(xué)習(xí)可以增加訓(xùn)練樣本的總量。
橫向聯(lián)邦模型?
訓(xùn)練步驟:
?在兩個(gè)數(shù)據(jù)集的用戶特征重疊較多,而用戶重疊較少的情況下,可將數(shù)據(jù)集按照橫向(用戶維度)進(jìn)行切分,并取出雙方用戶特征相同而用戶不完全相同的那部分?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練,這種方法叫做橫向聯(lián)邦學(xué)習(xí)。Google在2016年提出了針對(duì)安卓手機(jī)模型更新的數(shù)據(jù)聯(lián)合建模方案[2, 3],在不同的用戶使用手機(jī)時(shí),在手機(jī)本地持續(xù)地更新模型參數(shù),并將參數(shù)上傳至云端。從而利用不同用戶的、特征維度相同的這些數(shù)據(jù)建立一個(gè)橫向聯(lián)邦學(xué)習(xí)方案。
?
縱向聯(lián)邦學(xué)習(xí)
縱向聯(lián)邦學(xué)習(xí)在兩個(gè)數(shù)據(jù)集的用戶重疊較多而用戶特征重疊較少的情況下,我們把數(shù)據(jù)集按照縱向(即特征維度)切分,并取出雙方用戶相同而用戶特征不完全相同的那部分?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練。這種方法叫做縱向聯(lián)邦學(xué)習(xí)。比如有兩個(gè)不同的機(jī)構(gòu),家是某地的銀行,另一家是同一個(gè)地方的電商。它們的用戶群體很有可能包含該地的大部分居民因此用戶的交集較大。但是,由于銀行記錄的都是用戶的收支行為與信用評(píng)級(jí),而電商則保有用戶的瀏覽與購買歷史,因此它們的用戶特征交集較小。縱向聯(lián)邦學(xué)習(xí)就是將這些不同特征在加密的狀態(tài)下加以聚合,以增強(qiáng)模型能力。目前,邏輯回歸模型、樹形結(jié)構(gòu)模型和神經(jīng)網(wǎng)絡(luò)模型等眾多機(jī)器學(xué)習(xí)模型已經(jīng)逐漸被證實(shí)能夠建立在此聯(lián)邦體系上。
- 各個(gè)參與者擁有的樣本ID相同,數(shù)據(jù)特征不同縱向聯(lián)邦學(xué)習(xí)也稱為“按特征劃分的聯(lián)邦學(xué)習(xí)”。
- 參與方擁有相同的樣本ID。
- 參與者之間需要交換中間結(jié)果,不交換原始數(shù)據(jù)。
- 通常應(yīng)用于企業(yè)間的聯(lián)邦學(xué)習(xí)場(chǎng)景。
縱向聯(lián)邦模型?
訓(xùn)練步驟:
part1:Encrypted entity alignment,即隱私求交(PSI);part2:Encrypted model training.
?在兩個(gè)數(shù)據(jù)集的用戶重疊較多,而用戶特征重疊較少的情況下,可將數(shù)據(jù)集按照縱向(特征維度)切分,并取出雙方用戶相同而用戶特征不完全相同的那部分?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練,這種方法叫做縱向聯(lián)邦學(xué)習(xí)[1]。一個(gè)常見的例子是:有兩個(gè)不同機(jī)構(gòu),一家是某地的銀行,另一家是同一個(gè)地方的電商。它們的用戶群體很有可能包含該地的大部分居民,因此用戶的交集較大。但是,由于銀行記錄的都是用戶的收支行為與信用評(píng)級(jí),而電商則保有用戶的瀏覽與購買歷史,因此它們的用戶特征交集較小。縱向聯(lián)邦學(xué)習(xí)就是將這些不同特征在加密的狀態(tài)下加以聚合,以增強(qiáng)模型能力的聯(lián)邦學(xué)習(xí)。
目前,邏輯回歸模型、樹型結(jié)構(gòu)模型和神經(jīng)網(wǎng)絡(luò)模型等眾多機(jī)器學(xué)習(xí)模型已經(jīng)逐漸被證實(shí)能夠建立在這個(gè)縱向聯(lián)邦學(xué)習(xí)體系上。
?
聯(lián)邦遷移學(xué)習(xí)
聯(lián)邦遷移學(xué)習(xí)在兩個(gè)數(shù)據(jù)集的用戶與用戶特征重疊都較少的情況下,我們不對(duì)數(shù)據(jù)進(jìn)行切分,而利用遷移學(xué)習(xí)國來克服數(shù)據(jù)或標(biāo)簽不足的情況。這種方法叫做聯(lián)邦遷移學(xué)習(xí)。比如有兩個(gè)不同機(jī)構(gòu),一家是位于中國的銀行,另一家是位于美國的電商。由于受地域限制,這兩家機(jī)構(gòu)的用戶群體交集很小。同時(shí),由于機(jī)構(gòu)類型的不同,二者的數(shù)據(jù)特征也只有小部分重合。在這種情況下,要想進(jìn)行有效的聯(lián)邦學(xué)習(xí),就必須引入遷移學(xué)習(xí),來解決單邊數(shù)據(jù)規(guī)模小和標(biāo)簽樣本少的問題,從而提升模型的效果。
在兩個(gè)數(shù)據(jù)集的用戶與用戶特征重疊都較少的情況下,我們部隊(duì)數(shù)據(jù)進(jìn)行切分,而利用遷移學(xué)習(xí)克服數(shù)據(jù)或標(biāo)簽不足的情況,這種方法叫做聯(lián)邦遷移學(xué)習(xí)。還是借用在縱向聯(lián)邦學(xué)習(xí)小節(jié)中銀行和電商的例子,不同的是,銀行和電商不在同一個(gè)地方,而是相去甚遠(yuǎn)。這導(dǎo)致,受到地域的限制,銀行和電商的用戶交集很小。同時(shí),二者的數(shù)據(jù)特征交集也很小。在這種情況下,需要在聯(lián)邦學(xué)習(xí)中引入遷移學(xué)習(xí),用于解決單邊數(shù)據(jù)規(guī)模小、標(biāo)簽樣本少的問題,來提升模型的效果。
聯(lián)邦學(xué)習(xí)特點(diǎn)
- 數(shù)據(jù)絕對(duì)掌握:每一個(gè)參與方數(shù)據(jù)都不離開本地,模型信息在各參與方之間以加密的形式傳輸,且
- 保證不能由模型推測(cè)出原始數(shù)據(jù);
- 參與方不穩(wěn)定:不同參與方在計(jì)算能力、通信穩(wěn)定性方面存在差異,導(dǎo)致聯(lián)邦學(xué)習(xí)相對(duì)于分布式機(jī)器學(xué)習(xí)存在不穩(wěn)定情況;
- 通信代價(jià)高:參與方不穩(wěn)定造成通信代價(jià)高;
- 數(shù)據(jù)非獨(dú)立同分布:不同參與方數(shù)據(jù)分布不同;
- 負(fù)載不均衡:參與方在數(shù)據(jù)量級(jí)上存在差異,但聯(lián)邦學(xué)習(xí)中無法實(shí)現(xiàn)負(fù)載均衡。
注:僅作資料整理!!
如有錯(cuò)誤、侵權(quán),請(qǐng)聯(lián)系筆者更改刪除!!!?
《新程序員》:云原生和全面數(shù)字化實(shí)踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀總結(jié)
以上是生活随笔為你收集整理的隐私计算--联邦学习的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SM3密码杂凑算法
- 下一篇: 隐私计算--差分隐私