羅長(zhǎng)銀,陳學(xué)斌,劉 洋,張淑芬
(1.華北理工大學(xué)理學(xué)院,河北 唐山 063210;2.河北省數(shù)據(jù)科學(xué)與應(yīng)用重點(diǎn)實(shí)驗(yàn)室,河北 唐山063210; 3.唐山市數(shù)據(jù)科學(xué)重點(diǎn)實(shí)驗(yàn)室,河北 唐山 063210)
近年來(lái),隨著數(shù)據(jù)挖掘等技術(shù)的快速發(fā)展,隱私數(shù)據(jù)安全保護(hù)顯得尤為重要,且傳統(tǒng)的隱私保護(hù)技術(shù)并不能滿足要求,2016年谷歌首次推出“聯(lián)邦學(xué)習(xí)”概念,受到社會(huì)各界以及專(zhuān)家學(xué)者的廣泛關(guān)注[1]。聯(lián)邦學(xué)習(xí)的訓(xùn)練數(shù)據(jù)來(lái)源于各個(gè)數(shù)據(jù)源上的本地?cái)?shù)據(jù),不需要收集、存儲(chǔ)數(shù)據(jù)到云端和整合多方數(shù)據(jù),這種方法大大減少了敏感信息泄露的風(fēng)險(xiǎn)[2]。但是,因聯(lián)邦學(xué)習(xí)的訓(xùn)練數(shù)據(jù)來(lái)源于不同數(shù)據(jù)源,訓(xùn)練數(shù)據(jù)并不能滿足獨(dú)立分布和訓(xùn)練數(shù)量一致這2個(gè)能影響聯(lián)邦模型的條件[3]。若數(shù)據(jù)源的訓(xùn)練數(shù)據(jù)分布不同,那么整合多方子模型成為巨大的難題[4]。文獻(xiàn)[5]使用logistic回歸模型作為初始模型對(duì)各個(gè)數(shù)據(jù)源的數(shù)據(jù)進(jìn)行訓(xùn)練,采用神經(jīng)網(wǎng)絡(luò)來(lái)整合多方子模型,但神經(jīng)網(wǎng)絡(luò)模型一般表現(xiàn)為非凸函數(shù),很難使參數(shù)平均化后的模型損失函數(shù)達(dá)到最優(yōu)。文獻(xiàn)[6]針對(duì)獨(dú)立同分布和非獨(dú)立同分布的數(shù)據(jù)進(jìn)行了研究,發(fā)現(xiàn)當(dāng)訓(xùn)練數(shù)據(jù)是非獨(dú)立分布時(shí),其訓(xùn)練的全局模型精度不能滿足預(yù)期要求。針對(duì)上述問(wèn)題,本文提出了聯(lián)邦集成算法,其所做的貢獻(xiàn)如下所示:
Figure 1 stacking集成過(guò)程圖1 stacking integration process
(1)通過(guò)RSA加密算法產(chǎn)生的公鑰來(lái)加密由 hash算法計(jì)算出的數(shù)據(jù)hash值與數(shù)據(jù)共同傳輸至各數(shù)據(jù)源,各數(shù)據(jù)源獲得數(shù)據(jù)并使用私鑰解密得到hash值,并重新計(jì)算數(shù)據(jù)的hash值,判斷傳輸計(jì)算的hash值與傳輸后重新計(jì)算的hash值是否相等。若二者相等,表明數(shù)據(jù)在傳輸過(guò)程中是安全與完整的,將數(shù)據(jù)存儲(chǔ)至對(duì)應(yīng)的數(shù)據(jù)源中;若二者不相等,表明數(shù)據(jù)在傳輸過(guò)程中被篡改,將數(shù)據(jù)從對(duì)應(yīng)的數(shù)據(jù)源中刪除。
(2)各數(shù)據(jù)源使用隨機(jī)森林、樸素貝葉斯、神經(jīng)網(wǎng)絡(luò)、極端隨機(jī)森林、GBDT(Gradient Boosting Decision Tree)和邏輯回歸作為初始全局模型分別在各數(shù)據(jù)源的數(shù)據(jù)上進(jìn)行訓(xùn)練,選擇最優(yōu)的作為初始全局模型,可以得到多個(gè)本地模型。
(3)各數(shù)據(jù)源的本地模型使用4種集成算法(stacking集成算法、voting集成算法、Adaboost集成算法和平均法)和不集成方式分別整合為新的全局模型,經(jīng)比較,stacking模型與Adaboost模型的效果最優(yōu),能滿足要求。
(4)使用256 B的由RSA加密算法產(chǎn)生的私鑰對(duì)新的全局模型進(jìn)行加密,各數(shù)據(jù)源使用公鑰進(jìn)行解密,以此來(lái)保證全局模型的安全性。
(1)聯(lián)邦學(xué)習(xí)。
聯(lián)邦學(xué)習(xí)是隱私保護(hù)下的算法優(yōu)化可實(shí)現(xiàn)路徑,同時(shí)也是保護(hù)數(shù)據(jù)安全中“數(shù)據(jù)孤島”問(wèn)題的解決方案[7]。聯(lián)邦學(xué)習(xí)允許從跨數(shù)據(jù)所有者分布的數(shù)據(jù)中構(gòu)建聯(lián)合模型,提供了跨企業(yè)的數(shù)據(jù)使用方式和模型構(gòu)建藍(lán)圖,實(shí)現(xiàn)了各個(gè)企業(yè)的自有數(shù)據(jù)不出本地,只通過(guò)加密機(jī)制下的參數(shù)交換,不違反數(shù)據(jù)隱私法規(guī)地建立優(yōu)化機(jī)器學(xué)習(xí)模型[8]。
(2)stacking集成算法。
stacking集成算法是一種堆疊算法,第1步使用多個(gè)算法求出結(jié)果,再將結(jié)果作為特征輸入到下一個(gè)算法中訓(xùn)練出最終的預(yù)測(cè)結(jié)果[9],如圖1所示。
(3)voting集成算法。
voting集成算法是通過(guò)多個(gè)模型和簡(jiǎn)單的統(tǒng)計(jì)量來(lái)進(jìn)行組合預(yù)測(cè)[10]。
(4)Adaboost集成算法。
Adaboost是一種迭代算法,其核心思想是針對(duì)同一個(gè)訓(xùn)練集訓(xùn)練不同的分類(lèi)器,然后把這些弱分類(lèi)器集合起來(lái),構(gòu)成一個(gè)更強(qiáng)的最終分類(lèi)器[11]。
(5)哈希算法。
哈希算法是將數(shù)據(jù)打亂混合,使用散列算法重新創(chuàng)建一個(gè)叫做散列值的指紋,通常用一個(gè)短的隨機(jī)字母和數(shù)字組成的字符串表示散列值[12]。
(6)RSA加密算法。
RSA加密算法是一種非對(duì)稱(chēng)加密算法,其公鑰和私鑰是一對(duì)大素?cái)?shù)的函數(shù),從一個(gè)公鑰和密文恢復(fù)出明文的難度,等價(jià)于分解2個(gè)大素?cái)?shù)之積[13]。
(7)隨機(jī)森林。
隨機(jī)森林是以決策樹(shù)為基學(xué)習(xí)器構(gòu)建集成的一種機(jī)器學(xué)習(xí)算法,是由很多決策樹(shù)分類(lèi)模型組成的組合分類(lèi)模型,每個(gè)決策樹(shù)分類(lèi)模型都有一票投票權(quán)來(lái)選擇最優(yōu)的分類(lèi)模型[14]。
(8)樸素貝葉斯。
樸素貝葉斯是一種基于貝葉斯決策理論的分類(lèi)方法,是貝葉斯分類(lèi)器的一種拓展與衍生[15]。
(9)神經(jīng)網(wǎng)絡(luò)。
神經(jīng)網(wǎng)絡(luò)是一種模仿動(dòng)物神經(jīng)網(wǎng)絡(luò)行為特征進(jìn)行分布式并行信息處理的算法模型,通過(guò)調(diào)整內(nèi)部大量節(jié)點(diǎn)之間互相連接的關(guān)系達(dá)到信息處理的目的[16]。
(10)極端隨機(jī)森林。
極端隨機(jī)森林同樣是一種多棵決策樹(shù)集成的分類(lèi)器,與隨機(jī)森林分類(lèi)器比較,區(qū)別是不采取bootstrap采樣替換策略,而是直接采用原始訓(xùn)練樣本,目的在于減少偏差;在每棵決策樹(shù)的決策節(jié)點(diǎn)上,分裂測(cè)試的閥值是隨機(jī)選擇的[17]。
Figure 2 Data collection stage of the federated ensemble algorithm 圖2 聯(lián)邦集成算法的數(shù)據(jù)收集階段
(11)邏輯回歸。
logistic回歸是一種廣義線性回歸(genera- lized linear model),模型形式為w′x+b,logistic回歸函數(shù)L將y=w′x+b對(duì)應(yīng)一個(gè)隱狀態(tài)p,p=L(w′x+b),根據(jù)p與1-p的大小決定因變量的值。如果L是logistic函數(shù),就是logistic回歸[18]。
(12)GBDT。
GBDT是一種用于回歸的機(jī)器學(xué)習(xí)算法,該算法由多棵決策樹(shù)組成,所有樹(shù)的結(jié)論累加起來(lái)作為最終答案[19,20]。
在聯(lián)邦集成算法包括數(shù)據(jù)收集階段與模型訓(xùn)練階段。從數(shù)據(jù)收集階段來(lái)說(shuō),首先是每個(gè)客戶(hù)端的數(shù)據(jù)進(jìn)行hash值計(jì)算,并將hash值與數(shù)據(jù)使用RSA加密算法產(chǎn)生的公鑰加密后傳輸至各數(shù)據(jù)源;其次是各數(shù)據(jù)源使用私鑰解密獲取hash值與數(shù)據(jù),各數(shù)據(jù)源需要重新計(jì)算數(shù)據(jù)的hash值;最后判斷傳輸前計(jì)算的hash值與傳輸后重新計(jì)算的hash值,若不相等,則刪除,若相等,則將數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)源內(nèi),并參與模型訓(xùn)練,具體過(guò)程如圖2所示。
在模型訓(xùn)練階段,首先是可信第三方使用由RSA加密算法產(chǎn)生的公鑰加密初始化的隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)、樸素貝葉斯、極端隨機(jī)森林、邏輯回歸和GBDT,并傳輸至各數(shù)據(jù)源;然后各數(shù)據(jù)源使用私鑰解密,獲取初始化的模型,并在各數(shù)據(jù)源上進(jìn)行訓(xùn)練,根據(jù)其性能選擇最優(yōu)的作為初始全局模型,得到本地模型;最后使用Adaboost、voting、stacking、平均法4種集成算法來(lái)整合本地模型參數(shù),得到更新的全局模型,并不斷迭代優(yōu)化此階段,以此提升全局模型的準(zhǔn)確率,具體過(guò)程如圖3所示。
Figure 3 Schematic diagram of the federated ensemble algorithm at the training model stage圖3 訓(xùn)練模型階段的聯(lián)邦集成算法示意圖
算法流程如下所示:
Step1使用各客戶(hù)端產(chǎn)生的數(shù)據(jù)計(jì)算其hash值,使用RSA加密算法所產(chǎn)生的公鑰加密其hash值并將數(shù)據(jù)共同傳輸至各數(shù)據(jù)源;各數(shù)據(jù)源獲得數(shù)據(jù)與使用私鑰解密的hash值,并重新計(jì)算數(shù)據(jù)的hash值,判斷傳輸前計(jì)算的hash值與傳輸后重新計(jì)算的hash值是否相等。若二者相等,將數(shù)據(jù)存儲(chǔ)于數(shù)據(jù)源中并參與模型訓(xùn)練,若二者不相等,表明數(shù)據(jù)在傳輸過(guò)程中被篡改,刪除該數(shù)據(jù)且不參與模型訓(xùn)練。
Step2對(duì)于聯(lián)邦學(xué)習(xí)框架來(lái)說(shuō),初始化的全局模型決定著最終模型的上限,本文選擇隨機(jī)森林模型、神經(jīng)網(wǎng)絡(luò)模型、樸素貝葉斯模型、極端隨機(jī)森林模型、邏輯回歸和GBDT 共6種模型作為初始化的全局模型,各數(shù)據(jù)源分別使用6種初始化的全局模型在本地進(jìn)行訓(xùn)練,根據(jù)6種模型在各數(shù)據(jù)源上訓(xùn)練的得分情況進(jìn)行選擇。
Step3將最優(yōu)的初始全局模型在各數(shù)據(jù)源上分別進(jìn)行訓(xùn)練,并不斷優(yōu)化其對(duì)應(yīng)的參數(shù),建立各數(shù)據(jù)源所對(duì)應(yīng)的本地模型。
Step4采用voting方法、Adaboost方法、stacking方法和平均法分別對(duì)各數(shù)據(jù)源所對(duì)應(yīng)的本地模型進(jìn)行集成,使更新的全局模型準(zhǔn)確率滿足要求。
Step5使用RSA加密算法產(chǎn)生256 B的密鑰對(duì),將公鑰分發(fā)至各數(shù)據(jù)源,使用私鑰加密新的全局模型傳輸至各數(shù)據(jù)源,各數(shù)據(jù)源使用公鑰解密,并使用新的全局模型再次訓(xùn)練。
采用上述算法流程設(shè)計(jì)的算法如算法1所示。
算法1聯(lián)邦集成算法
1.//(1)Data collection stage
2.fori=0 ton
3.D′i=E_hash(Di);
4.returnD′i
5.endfor
6.//(2)Generate secret key
7.fori=0 ton
8. Various data sources:Pi=Gpublic_RSA(x),pi=Gprivate_RSA(x);//xrepresents a random number
9.endfor
10.//(3)Validation dataset
11.fori=0 ton
12. Clients:D″i=E_Pi(D′i)
13. Various data sources:D′i=D_pi(D″i) and recalculate:D?i=E_hash(Di);
14.ifD′i≠D?i
15. deleteDi;
16. exit;
17.else
18. sendDito various data sources;
19.endfor
20.//(4)Model training stage
21.Trusted third party:y1,y2,y3,y4,y5,y6=E_RSA(m1,m2,m3,m4,m5,m6) send to various data sources;
22.Various data sources:m1,m2,m3,m4,m5,m6=D_RSA(y1,y2,y3,y4,y5,y6);
23.s1(Di),s2(Di),s3(Di),s4(Di),s5(Di),s6(Di)=m1_train(Di),m2_train(Di),m3_train(Di),m4_train(Di),m5_train(Di),m6_train(Di);
25.fori=1 ton
28.endfor
本文提出的聯(lián)邦集成算法能夠在保證模型準(zhǔn)確率的前提下,提升數(shù)據(jù)與模型的安全性。
3.2.1 算法的復(fù)雜度分析
聯(lián)邦集成算法的復(fù)雜度為哈希算法的復(fù)雜度、RSA加密算法產(chǎn)生的復(fù)雜度、選擇最優(yōu)的初始化全局模型并產(chǎn)生子模型的復(fù)雜度和將多個(gè)本地模型集成為最終的全局模型的復(fù)雜度之和。即時(shí)間復(fù)雜度為O(M(mnlogn)+M4),其中,n代表樣本數(shù),m表示特征數(shù),M表示有M棵樹(shù)來(lái)投票。事實(shí)上,采用聯(lián)邦學(xué)習(xí)框架和stacking集成算法必然會(huì)造成此算法的時(shí)間復(fù)雜度和空間復(fù)雜度均高于傳統(tǒng)的數(shù)據(jù)融合算法,但兼顧了模型準(zhǔn)確率和數(shù)據(jù)與模型的安全性[21]。
3.2.2 算法的安全性分析
該算法使用聯(lián)邦學(xué)習(xí)框架與集成學(xué)習(xí)的思想,從數(shù)據(jù)層面上,使用RSA加密算法對(duì)每個(gè)客戶(hù)端的數(shù)據(jù)進(jìn)行hash計(jì)算,并將hash值與數(shù)據(jù)共同傳輸至各數(shù)據(jù)源,各數(shù)據(jù)源重新計(jì)算其hash值,可保證數(shù)據(jù)在收集階段的安全性與完整性。從模型層面上:(1)采用RSA非對(duì)稱(chēng)加密算法,采用256 B的密鑰來(lái)加密全局模型,并將加密的全局模型分發(fā)至各數(shù)據(jù)源,各數(shù)據(jù)源根據(jù)新的全局模型再次進(jìn)行訓(xùn)練來(lái)優(yōu)化全局模型;(2)該算法是在聯(lián)邦學(xué)習(xí)的框架下實(shí)現(xiàn)的,各數(shù)據(jù)源的數(shù)據(jù)存儲(chǔ)在本地,消除了因數(shù)據(jù)傳輸帶來(lái)的風(fēng)險(xiǎn),提升了模型與數(shù)據(jù)的安全性。
本文設(shè)計(jì)的算法由Python語(yǔ)言和Pycharm集成軟件開(kāi)發(fā)實(shí)現(xiàn)。實(shí)驗(yàn)硬件環(huán)境為:Intel(R) Core i5-4200M CPU 2.50 GHz處理器,內(nèi)存8 GB;操作系統(tǒng)為Windows 10。在實(shí)驗(yàn)數(shù)據(jù)方面,采用從http://sofasofa.io/competition.php?id=2下載的數(shù)據(jù)集,該數(shù)據(jù)集有15.6 MB。
各客戶(hù)端使用RSA加密算法產(chǎn)生的公鑰來(lái)加密由hash算法計(jì)算的數(shù)據(jù)hash值,并與數(shù)據(jù)共同傳輸至各數(shù)據(jù)源,各數(shù)據(jù)源使用私鑰解密,且重新計(jì)算數(shù)據(jù)的hash值,判斷數(shù)據(jù)經(jīng)過(guò)傳輸?shù)膆ash值與傳輸前的hash值是否相等,將hash值相等的數(shù)據(jù)存儲(chǔ)至各數(shù)據(jù)源內(nèi),可保證數(shù)據(jù)在收集階段的安全性與完整性。
模型訓(xùn)練階段分為2部分,第1部分:可信第三方使用公鑰加密6種類(lèi)型的初始模型,并傳輸至各數(shù)據(jù)源;將集成后更新的全局模型使用公鑰加密傳輸至各數(shù)據(jù)源,各數(shù)據(jù)源使用私鑰解密進(jìn)行訓(xùn)練來(lái)優(yōu)化全局模型。第2部分:各數(shù)據(jù)源使用私鑰解密后,獲取6種初始模型,使用6種初始模型在各數(shù)據(jù)源上進(jìn)行訓(xùn)練,可以得到多個(gè)本地模型,同時(shí)選擇最優(yōu)的作為初始全局模型,然后使用集成算法進(jìn)行集成,獲得更新的全局模型準(zhǔn)確率均值。
為保證全局模型分發(fā)至數(shù)據(jù)源上的安全性,采用RSA加密算法隨機(jī)產(chǎn)生256 B的密鑰(圖4和圖5為公私鑰的變化圖),使用私鑰加密全局模型,將公鑰廣播至各數(shù)據(jù)源;各數(shù)據(jù)源使用公鑰解密全局模型進(jìn)行訓(xùn)練,以?xún)?yōu)化全局模型。
Figure 4 Change of public key generated by RSA encryption algorithm圖4 采用RSA加密算法產(chǎn)生的公鑰變化圖
在聯(lián)邦學(xué)習(xí)的框架下,初始全局模型的優(yōu)劣決定著模型的上限,本文選擇6種初始模型,分別為:隨機(jī)森林、樸素貝葉斯、極端隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)、邏輯回歸和GBDT,且使用平均值與標(biāo)準(zhǔn)差作為衡量初始全局模型優(yōu)劣的標(biāo)準(zhǔn),6種初始模型的性能如表1所示。
Figure 5 Change of private key generated by RSA encryption algorithm圖5 采用RSA加密算法產(chǎn)生的私鑰變化圖
Table 1 Performance of the initial model
從表1中可以看到,準(zhǔn)確率均值最高的依次是極端隨機(jī)森林、隨機(jī)森林、GBDT、神經(jīng)網(wǎng)絡(luò)、邏輯回歸和樸素貝葉斯,標(biāo)準(zhǔn)差從小到大的順序依次是邏輯回歸、隨機(jī)森林、GBDT、神經(jīng)網(wǎng)絡(luò)、極端隨機(jī)森林和樸素貝葉斯。隨機(jī)森林與極端隨機(jī)森林的準(zhǔn)確率相差不大,但標(biāo)準(zhǔn)差卻相差很大,故綜合考慮性能從高到低的排名是隨機(jī)森林、極端隨機(jī)森林、GBDT、神經(jīng)網(wǎng)絡(luò)、邏輯回歸和樸素貝葉斯。
根據(jù)6種初始全局模型在各數(shù)據(jù)源上的表現(xiàn),本文依次選用隨機(jī)森林、極端隨機(jī)森林、GBDT、神經(jīng)網(wǎng)絡(luò)、邏輯回歸和樸素貝葉斯作為初始全局模型。而對(duì)于多個(gè)本地模型采用stacking集成算法、voting集成算法、Adaboost集成算法和平均法依次對(duì)多個(gè)本地模型進(jìn)行集成,得到4種集成算法集成的新全局模型的準(zhǔn)確率。
圖6表示初始全局模型選用隨機(jī)森林時(shí)使用4種集成算法與傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法[22,23]在各數(shù)據(jù)源上訓(xùn)練的準(zhǔn)確率變化情況,本文將迭代100次的平均值作為訓(xùn)練結(jié)果的數(shù)值,表2為隨機(jī)森林使用4種集成算法與傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法的性能。
Figure 6 Accuracy changes in the training of four ensemble algorithms and traditional method on various data sources圖6 隨機(jī)森林使用4種集成算法 與傳統(tǒng)方法訓(xùn)練的準(zhǔn)確率變化情況
Table 2 Performance of random forest using four ensemble algorithms and traditional method
從表2可以得到,準(zhǔn)確率均值從高到低依次是傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法、Adaboost集成算法、stacking集成算法、平均法和voting集成算法,標(biāo)準(zhǔn)差從小到大的順序依次是Adaboost集成算法、stacking集成算法、傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法、平均法和voting集成算法,其中Adaboost集成算法與stacking集成算法比傳統(tǒng)方法的準(zhǔn)確率均值下降約0.2‰,傳統(tǒng)整合數(shù)據(jù)方法的準(zhǔn)確率均值為92.52%,Adaboost集成算法的準(zhǔn)確率均值為92.50%,stacking集成算法的準(zhǔn)確率均值為92.49%,且從標(biāo)準(zhǔn)差來(lái)看,模型最穩(wěn)定的是Adaboost集成算法與stacking算法(標(biāo)準(zhǔn)差越小模型越穩(wěn)定)。
極端隨機(jī)森林為初始全局模型的準(zhǔn)確率高于隨機(jī)森林,但標(biāo)準(zhǔn)差較大,說(shuō)明模型的穩(wěn)定性差,故綜合考慮其性能僅次于隨機(jī)森林。
圖7表示初始全局模型選用極端隨機(jī)森林使用4種集成算法與傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法在各數(shù)據(jù)源上的訓(xùn)練情況,本文將迭代100次的平均值作為訓(xùn)練結(jié)果的數(shù)值。表3為隨機(jī)森林使用4種集成算法與傳統(tǒng)整合數(shù)據(jù)方法的性能。
Figure 7 Accuracy changes of extreme random forest training using four integrated algorithms and traditional method圖7 極端隨機(jī)森林使用4種集成算法 與傳統(tǒng)方法訓(xùn)練的準(zhǔn)確率變化情況
Table 3 Performance of extreme random forest using four ensemble algorithms and traditional method
從表3可以得到,準(zhǔn)確率均值從高到低依次是傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法、stacking集成算法、Adaboost集成算法、平均法和voting集成算法,標(biāo)準(zhǔn)差從小到大的順序依次是Adaboost集成算法、stacking集成算法、平均法、傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法和voting集成算法,其中stack- ing集成算法與傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法準(zhǔn)確率均值相比,準(zhǔn)確率均值下降不到0.1‰,Adaboost集成算法與傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練方法相比,準(zhǔn)確率均值下降不到0.2‰,傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練方法的準(zhǔn)確率均值為92.402%,stacking集成算法的準(zhǔn)確率均值為92.399%,Adaboost集成算法的準(zhǔn)確率均值為92.384%,且模型最穩(wěn)定的是Adaboost集成算法與stacking算法。
GBDT為初始全局模型的準(zhǔn)確率低于隨機(jī)森林與極端隨機(jī)森林,其標(biāo)準(zhǔn)差高于隨機(jī)森林,低于極端隨機(jī)森林,說(shuō)明模型的穩(wěn)定性較差,故綜合考慮其性能次于隨機(jī)森林與極端隨機(jī)森林。
圖8表示初始全局模型為GBDT時(shí)使用4種集成算法與傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法在各數(shù)據(jù)源上訓(xùn)練的準(zhǔn)確率變化情況,本文將迭代100次的平均值作為其訓(xùn)練結(jié)果的數(shù)值。表4為GBDT使用4種集成算法與傳統(tǒng)整合數(shù)據(jù)方法的性能。
Figure 8 Accuracy changes of GBDT training using four integrated algorithms and traditional method圖8 GBDT使用4種集成算法 與傳統(tǒng)方法訓(xùn)練的準(zhǔn)確率變化
從表4可以得到,準(zhǔn)確率均從高到低依次是Adaboost集成算法、voting集成算法、stacking集成算法、傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法和平均法,標(biāo)準(zhǔn)差從小到大的順序依次是平均法、voting集成算法、stacking集成算法、傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法和Adaboost集成算法,其中Adaboost集成算法、voting集成算法、stacking集成算法的準(zhǔn)確率均高于傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法,Adaboost集成算法的準(zhǔn)確率均值92.676 5%,voting集成算法的準(zhǔn)確率均值為92.3%,stacking集成算法的準(zhǔn)確率均值為92.173 6%,傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法的準(zhǔn)確率均值為92.172 8%。
Table 4 Performance of GBDT using fourensemble algorithms and traditional method表4 GBDT使用4種集成算法與傳統(tǒng)方法的性能
神經(jīng)網(wǎng)絡(luò)為初始全局模型的準(zhǔn)確率低于隨機(jī)森林、極端隨機(jī)森林和GBDT,其標(biāo)準(zhǔn)差高于隨機(jī)森林與GBDT,低于極端隨機(jī)森林,說(shuō)明模型的穩(wěn)定性較差,故綜合考慮其性能次于隨機(jī)森林、極端隨機(jī)森林和GBDT。由于不同參數(shù)的神經(jīng)網(wǎng)絡(luò)無(wú)法使用Adaboost進(jìn)行集成,故采用stacking集成算法、voting集成算法和平均法來(lái)整合不同參數(shù)的神經(jīng)網(wǎng)絡(luò)。
圖9表示初始全局模型選用神經(jīng)網(wǎng)絡(luò)時(shí)使用3種集成算法與傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法在各數(shù)據(jù)源上訓(xùn)練的準(zhǔn)確率變化情況,本文將迭代100次的平均值作為其訓(xùn)練結(jié)果的數(shù)值。
Figure 9 Accuracy changes of neural network training using three ensemble algorithms and traditional method圖9 神經(jīng)網(wǎng)絡(luò)使用3種集成算法 與傳統(tǒng)方法訓(xùn)練的準(zhǔn)確率變化
表5為神經(jīng)網(wǎng)絡(luò)使用3種集成算法與傳統(tǒng)整合數(shù)據(jù)方法的性能。
Table 5 Performance of neural network using three ensemble algorithms and traditional method表5 神經(jīng)網(wǎng)絡(luò)使用3種集成算法與傳統(tǒng)方法的性能
從表5可以得到,準(zhǔn)確率均值從高到低依次是平均法、stacking集成算法、voting集成算法和傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法,標(biāo)準(zhǔn)差從小到大的順序依次是平均法、stacking集成算法、voting集成算法和傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法,其中平均法的準(zhǔn)確率均值為91.3697%,stacking集成算法的準(zhǔn)確率均值為91.266%,voting集成算法的準(zhǔn)確率均值為90.819 1%,傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法準(zhǔn)確率均值為90.6919%。
邏輯回歸為初始全局模型的準(zhǔn)確率低于隨機(jī)森林、極端隨機(jī)森林、GBDT和神經(jīng)網(wǎng)絡(luò),其標(biāo)準(zhǔn)差在6種模型中最低,說(shuō)明模型的穩(wěn)定性較好,故綜合考慮其性能次于隨機(jī)森林、極端隨機(jī)森林、GBDT和神經(jīng)網(wǎng)絡(luò)。
圖10表示初始全局模型選用邏輯回歸時(shí)使用4種集成算法與傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法在各數(shù)據(jù)源上訓(xùn)練的準(zhǔn)確率變化情況,將迭代100次的平均值作為訓(xùn)練結(jié)果的數(shù)值。表6為邏輯回歸使用4種集成算法與傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法的性能。
Figure 10 Accuracy changes of logistic regression using four kinds of integrated algorithms and traditional method圖10 邏輯回歸使用4種集成算法 與傳統(tǒng)方法訓(xùn)練的準(zhǔn)確率變化
從表6可以得到,準(zhǔn)確率均值從高到低依次是stacking 集成算法、傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法、voting集成算法、平均法和Adaboost集成算法,標(biāo)準(zhǔn)差從小到大的順序依次是平均法、voting集成算法、傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法、Adaboost集成算法和stacking集成算法,其中stacking集成算法的準(zhǔn)確率均值為89.76%,傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法準(zhǔn)確率均值為88.955%,voting集成算法的準(zhǔn)確率均值為88.88%,平均法的準(zhǔn)確率均值為88.705%,Adaboost集成算法的準(zhǔn)確率均值為86.81%。
Table 6 Performance of logistic regression using four integrated algorithms and traditional method表6 邏輯回歸使用4種集成算法與傳統(tǒng)方法的性能
樸素貝葉斯為初始全局模型的準(zhǔn)確率低于隨機(jī)森林、極端隨機(jī)森林、GBDT、神經(jīng)網(wǎng)絡(luò)和邏輯回歸,其標(biāo)準(zhǔn)差高于隨機(jī)森林、極端隨機(jī)森林、GBDT和神經(jīng)網(wǎng)絡(luò),說(shuō)明模型的穩(wěn)定性差,故綜合考慮其性能次于隨機(jī)森林、極端隨機(jī)森林、GBDT和神經(jīng)網(wǎng)絡(luò)。
圖11表示初始全局模型選用樸素貝葉斯時(shí)使用4種集成算法與傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法在各數(shù)據(jù)源上訓(xùn)練的準(zhǔn)確率變化情況,將迭代100次的平均值作為訓(xùn)練結(jié)果的數(shù)值。表7為樸素貝葉斯使用4種集成算法與傳統(tǒng)整合數(shù)據(jù)集中方法的性能。
Figure 11 Changes of naive Bayes training using four ensemble algorithms and traditional methods圖11 樸素貝葉斯使用4種集成算法 與傳統(tǒng)方法訓(xùn)練的準(zhǔn)確率變化
Table 7 Naive Bayes performance using fourensemble algorithms and traditional method
對(duì)于傳統(tǒng)處理多源數(shù)據(jù)的做法是將各數(shù)據(jù)源的數(shù)據(jù)整合在數(shù)據(jù)中心,并使用不同的初始化模型在數(shù)據(jù)中心上進(jìn)行訓(xùn)練,獲取多方均滿意的模型。圖12為隨機(jī)森林、極端隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)、樸素貝葉斯、GBDT、邏輯回歸6種模型使用傳統(tǒng)方法訓(xùn)練的情況。
Figure 12 Six models were trained using traditional method圖12 6種模型使用傳統(tǒng)方法訓(xùn)練的準(zhǔn)確率情況
從圖12中可以看到,隨機(jī)森林的準(zhǔn)確率最高,剩下的依次是極端隨機(jī)森林、GBDT、神經(jīng)網(wǎng)絡(luò)(多數(shù)情況下優(yōu)于樸素貝葉斯)、邏輯回歸和樸素貝葉斯(只有少數(shù)情況下優(yōu)于神經(jīng)網(wǎng)絡(luò))。表8是不同類(lèi)型的模型在數(shù)據(jù)中心(多源數(shù)據(jù)整合后的存儲(chǔ)處)的性能。
Table 8 Performance of different types of models in the data center表8 不同類(lèi)型的模型在數(shù)據(jù)中心的性能
聯(lián)邦集成學(xué)習(xí)算法常用的初始全局模型為隨機(jī)森林、樸素貝葉斯、神經(jīng)網(wǎng)絡(luò)、極端隨機(jī)森林、邏輯回歸和GBDT,分別在各數(shù)據(jù)源的數(shù)據(jù)上進(jìn)行訓(xùn)練,得到隨機(jī)森林的準(zhǔn)確度與極端隨機(jī)森林的準(zhǔn)確率最高,但極端隨機(jī)森林的模型穩(wěn)定性很差,所以綜合考慮選擇隨機(jī)森林作為最優(yōu)的初始全局模型,可以得到4種集成算法與傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法的結(jié)果除voting外,其他的3個(gè)均相差不大,但相比之下傳統(tǒng)整合多方數(shù)據(jù)集中訓(xùn)練的方法穩(wěn)定性較差,但可以使模型與數(shù)據(jù)的安全性得到很大的提升。所以,將Adaboost集成算法與stacking集成算法作為整合多個(gè)本地模型的集成算法。文獻(xiàn)[24]將stacking集成算法與Adaboost集成算法、voting集成算法進(jìn)行比較,結(jié)果表明stacking集成算法泛化能力強(qiáng)且適用于大數(shù)據(jù)樣本。所以,對(duì)于中小數(shù)據(jù)樣本而言,采用Adaboost集成算法來(lái)實(shí)現(xiàn)本文提出的聯(lián)邦集成算法;對(duì)于大數(shù)據(jù)樣本而言,采用stacking集成算法來(lái)實(shí)現(xiàn)本文提出的聯(lián)邦集成算法。
本文在基于聯(lián)邦學(xué)習(xí)和集成學(xué)習(xí)的思想下提出的聯(lián)邦集成學(xué)習(xí)算法,在集成算法的過(guò)程中,使數(shù)據(jù)以及模型的安全性得到明顯的提升,同時(shí)保持了全局模型的可用性。本文算法與傳統(tǒng)的整合多方數(shù)據(jù)集中訓(xùn)練的方法相比,主要還有3點(diǎn)需要改進(jìn):(1)數(shù)據(jù)融合時(shí)的時(shí)間復(fù)雜度與空間復(fù)雜度較高。(2)沒(méi)有考慮傳輸協(xié)議,即初始全局模型傳輸至各數(shù)據(jù)源和各數(shù)據(jù)源訓(xùn)練的本地模型傳輸至可信第三方兩部分傳輸協(xié)議的安全性問(wèn)題。(3)初始全局模型以及集成方法選擇得不全面,只選擇了聯(lián)邦學(xué)習(xí)常用的全局模型以及常用的集成方法。實(shí)驗(yàn)表明,本文算法在數(shù)據(jù)安全性以及模型準(zhǔn)確性和安全性上都有了很大的提升。未來(lái)將繼續(xù)研究聯(lián)邦集成學(xué)習(xí)算法中的模型在傳輸過(guò)程中的安全性問(wèn)題。