羅長(zhǎng)銀,陳學(xué)斌*,馬春地,王君宇
(1.華北理工大學(xué)理學(xué)院,河北唐山 063210;2.河北省數(shù)據(jù)科學(xué)與應(yīng)用重點(diǎn)實(shí)驗(yàn)室(華北理工大學(xué)),河北唐山 063210;3.唐山市數(shù)據(jù)科學(xué)重點(diǎn)實(shí)驗(yàn)室(華北理工大學(xué)),河北唐山 063210)
(*通信作者電子郵箱chxb@qq.com)
谷歌于2016 年提出了一種新興的隱私保護(hù)技術(shù)——聯(lián)邦學(xué)習(xí)[1],因其具有保護(hù)隱私和本地?cái)?shù)據(jù)安全的優(yōu)勢(shì),被廣泛應(yīng)用于多個(gè)領(lǐng)域。
聯(lián)邦學(xué)習(xí)可以應(yīng)用至金融領(lǐng)域,如楊強(qiáng)教授團(tuán)隊(duì)將聯(lián)邦學(xué)習(xí)應(yīng)用在小額信貸的風(fēng)險(xiǎn)管理、反洗錢(qián)等案例中[2];聯(lián)邦學(xué)習(xí)還可應(yīng)用于語(yǔ)音識(shí)別,如:保險(xiǎn)客服的語(yǔ)音識(shí)別與質(zhì)量檢測(cè)的語(yǔ)音識(shí)別,采用聯(lián)邦學(xué)習(xí)的框架建立二者共享的語(yǔ)音識(shí)別(Automatic Speech Recognition,ASR)模型,并取得了很好的收益。
聯(lián)邦學(xué)習(xí)的訓(xùn)練數(shù)據(jù)來(lái)源于不同數(shù)據(jù)源,導(dǎo)致訓(xùn)練數(shù)據(jù)的分布與數(shù)量成為影響聯(lián)邦模型的條件。若數(shù)據(jù)源的訓(xùn)練數(shù)據(jù)分布不同,那么整合多方本地模型就成為難題。文獻(xiàn)[3]使用Logistic 回歸模型作為初始全局模型對(duì)各數(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ù)[4]達(dá)到最優(yōu)。針對(duì)此問(wèn)題,文獻(xiàn)[5]中提出了聯(lián)邦平均算法FedAvg,采用權(quán)重或梯度的平均值來(lái)整合多方本地模型后獲得整合的全局模型。但文獻(xiàn)[6]針對(duì)聯(lián)邦平均算法FedAvg 提出了深度梯度泄漏算法,能夠根據(jù)本地模型的梯度更新還原出大部分訓(xùn)練數(shù)據(jù)。同時(shí),上述文獻(xiàn)均沒(méi)有考慮聯(lián)邦模型時(shí)效性的問(wèn)題。
針對(duì)數(shù)據(jù)安全性與模型時(shí)效性問(wèn)題,本文提出了一種面向區(qū)塊鏈的在線聯(lián)邦增量學(xué)習(xí)算法。該算法利用集成學(xué)習(xí)的思想來(lái)整合多方本地模型,以訓(xùn)練出多方都滿足的全局模型。訓(xùn)練結(jié)果表明,該算法的準(zhǔn)確度比傳統(tǒng)整合數(shù)據(jù)訓(xùn)練模型的方法略有降低,但數(shù)據(jù)與模型在訓(xùn)練模型階段的安全性得到提升;同時(shí)相較一般聯(lián)邦學(xué)習(xí)模型,該算法可以將每個(gè)時(shí)間段、每次迭代的參數(shù)與結(jié)果自動(dòng)上傳至對(duì)應(yīng)的數(shù)據(jù)塊中并快速同步,數(shù)據(jù)傳輸成本大大降低;而且因區(qū)塊鏈數(shù)據(jù)不可篡改與不可刪除的特點(diǎn),使模型在存儲(chǔ)階段擁有雙重保障敏感數(shù)據(jù)的安全性。
區(qū)塊鏈的概念在文獻(xiàn)[7]中首次提出,是分布式數(shù)據(jù)存儲(chǔ)、點(diǎn)對(duì)點(diǎn)傳輸、共識(shí)機(jī)制、加密算法、時(shí)間戳、哈希算法以及相關(guān)計(jì)算機(jī)技術(shù)組成互聯(lián)網(wǎng)時(shí)代的創(chuàng)新應(yīng)用模式。
區(qū)塊鏈因其具有去中心化、數(shù)據(jù)不可篡改、數(shù)據(jù)安全可靠與可溯源以及集體維護(hù)的優(yōu)勢(shì),所以被廣泛應(yīng)用。例如:文獻(xiàn)[8]利用區(qū)塊鏈去中心化的特點(diǎn),提出了基于區(qū)塊鏈的電子健康記錄安全存儲(chǔ)模型。
區(qū)塊鏈由多個(gè)區(qū)塊連接而成,它利用哈希算法對(duì)每個(gè)數(shù)據(jù)區(qū)塊的頭部進(jìn)行運(yùn)算可以得到一個(gè)哈希值,使用這個(gè)哈希值可以將區(qū)塊之間連接起來(lái)構(gòu)成一條鏈,此為區(qū)塊鏈結(jié)構(gòu)的本質(zhì)。數(shù)據(jù)區(qū)塊當(dāng)中記錄了當(dāng)前時(shí)間下的交易信息,采用默克爾樹(shù)信息進(jìn)行保存。每一個(gè)數(shù)據(jù)區(qū)塊由區(qū)塊頭與區(qū)塊體組成,數(shù)據(jù)區(qū)塊的結(jié)構(gòu)如圖1所示。
RSA 加 密 算 法 是Ron Rivest、Adi Shamir 和Leonard Adleman 三人于1977 年在文獻(xiàn)中首次提出[9],因其是一種非對(duì)稱加密算法,所以在公開(kāi)密鑰加密和電子商業(yè)中被廣泛應(yīng)用。例如:文獻(xiàn)[10]提出的基于強(qiáng)認(rèn)證技術(shù)的會(huì)話初始協(xié)議安全認(rèn)證模型使用RSA 數(shù)字簽名來(lái)保證消息傳輸?shù)臋C(jī)密性、真實(shí)性、完整性和不可否認(rèn)性。
橢圓曲線數(shù)字簽名算法(Elliptic Curve Digital Signature Algorithm,ECDSA)[11]是使用橢圓曲線加密(Elliptic Curve Cryptography,ECC)算法對(duì)DSA(Digital Signature Algorithm)的模擬,在2000年成為IEEE和NIST的標(biāo)準(zhǔn),具有生成的密鑰長(zhǎng)度短而且簽名和驗(yàn)證速度更快,在具有相同安全性的情況下,所需的存儲(chǔ)資源更少的優(yōu)點(diǎn),因此被廣泛應(yīng)用。

圖1 區(qū)塊鏈結(jié)構(gòu)示意圖Fig.1 Schematic diagram of blockchain structure
聯(lián)邦學(xué)習(xí)是隱私保護(hù)下的算法優(yōu)化可實(shí)現(xiàn)路徑和保護(hù)數(shù)據(jù)安全的“數(shù)據(jù)孤島”問(wèn)題的解決方案[12]。具體實(shí)現(xiàn)過(guò)程為:對(duì)多個(gè)參與方在本地私有數(shù)據(jù)上進(jìn)行模型訓(xùn)練,然后將不同的模型參數(shù)上傳到云端進(jìn)行整合和更新,之后將更新的參數(shù)發(fā)送至各參與方。整個(gè)過(guò)程私有數(shù)據(jù)不出本地,既保證了數(shù)據(jù)隱私,同時(shí)解決了各參與方“數(shù)據(jù)孤島”的困境,根據(jù)其實(shí)現(xiàn)過(guò)程使得聯(lián)邦同樣具有聯(lián)邦學(xué)習(xí)保護(hù)隱私和本地?cái)?shù)據(jù)安全的優(yōu)勢(shì)。
在有監(jiān)督學(xué)習(xí)算法[13]中,訓(xùn)練出的模型在滿足穩(wěn)定性的同時(shí)還要求模型各方面的性能都較好,但實(shí)際情況是有時(shí)只能得到多個(gè)有所偏好的模型(弱監(jiān)督模型[14])。集成學(xué)習(xí)[15]就是將多個(gè)弱監(jiān)督模型組合成一個(gè)更好、更全面的強(qiáng)監(jiān)督模型,集成學(xué)習(xí)的思想是即使某一個(gè)弱分類(lèi)器得到了錯(cuò)誤的預(yù)測(cè),其他的弱分類(lèi)器也可以將錯(cuò)誤糾正回來(lái)。在集成學(xué)習(xí)中,stacking 集成是目前提升機(jī)器學(xué)習(xí)性能最有效的方法[16-18]。從圖2 中可以看出,stacking 集成分為兩步:1)使用多個(gè)算法求出結(jié)果;2)將結(jié)果作為特征輸入到下一個(gè)算法中訓(xùn)練出最終的預(yù)測(cè)結(jié)果[19-21]。

圖2 stacking集成示意圖Fig.2 Schematic diagram of stacking ensemble
在線聯(lián)邦增量學(xué)習(xí)算法是在聯(lián)邦學(xué)習(xí)的框架與集成學(xué)習(xí)的思想下建立的,圖3為該算法的整體框架。從圖3中可以看出,該算法包括數(shù)據(jù)收集階段、模型訓(xùn)練階段和模型存儲(chǔ)階段三個(gè)階段。在數(shù)據(jù)收集階段使用數(shù)字簽名來(lái)保證數(shù)據(jù)的安全性與完整性;在訓(xùn)練模型階段采用聯(lián)邦學(xué)習(xí)框架與增量學(xué)習(xí)算法,保證了數(shù)據(jù)的安全性與模型的時(shí)效性;在模型存儲(chǔ)階段,采用區(qū)塊鏈來(lái)存儲(chǔ)每個(gè)時(shí)間段內(nèi)各模型的參數(shù),使數(shù)據(jù)傳輸成本大大降低,同時(shí)使數(shù)據(jù)的安全性得到保障。

圖3 基于區(qū)塊鏈的聯(lián)邦增量學(xué)習(xí)算法的整體框架Fig.3 Overall framework of federated incremental learning algorithm based on blockchain
數(shù)據(jù)收集階段的算法如圖4 所示,具體流程如下:1)各客戶端需要計(jì)算數(shù)據(jù)的hash 值,并使用由RSA 加密算法產(chǎn)生的公鑰來(lái)加密hash 值,再傳輸至各數(shù)據(jù)源。2)各數(shù)據(jù)源使用私鑰解密,并重新計(jì)算數(shù)據(jù)的hash 值。3)判斷解密得到的hash值與重新計(jì)算的hash 值是否相等:若相等,需要將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)源中,等待模型訓(xùn)練;若不相等,表明此客戶端的數(shù)據(jù)在傳輸過(guò)程中被篡改,以此可保證數(shù)據(jù)收集階段數(shù)據(jù)的安全性與完整性。
模型訓(xùn)練階段的算法如圖5 所示,具體流程如下:1)由可信第三方使用RSA 加密算法將初始全局模型傳輸至各數(shù)據(jù)源,保證模型安全性;2)各數(shù)據(jù)源將解密的初始全局模型在歷史數(shù)據(jù)與增量數(shù)據(jù)上進(jìn)行訓(xùn)練,獲得每個(gè)時(shí)間段內(nèi)的本地模型;3)將本地模型傳輸可信第三方,可信第三方使用stacking集成算法來(lái)整合多個(gè)本地模型,獲得每個(gè)時(shí)間段更新的全局模型,且不斷迭代訓(xùn)練。其中,該階段訓(xùn)練模型的公式如下:
初始全局模型分為三種情況:


其中:i表示當(dāng)前為訓(xùn)練模型的次數(shù);n表示上一次訓(xùn)練模型時(shí)的數(shù)據(jù)源個(gè)數(shù);j表示當(dāng)前訓(xùn)練的數(shù)據(jù)源;Dij表示增量數(shù)據(jù)集;s1(Dij)、s2(Dij)、s3(Dij)表示初始化參數(shù)的隨機(jī)森林m1、樸素貝葉斯m2、神經(jīng)網(wǎng)絡(luò)m3在增量數(shù)據(jù)集上訓(xùn)練的模型。

圖4 數(shù)據(jù)收集階段算法流程Fig.4 Flowchart of data collection stage

圖5 模型訓(xùn)練階段算法流程Fig.5 Flowchart of model training stage
模型存儲(chǔ)階段的算法如圖6 所示,可以看到將各個(gè)時(shí)間段內(nèi)本地模型的參數(shù)使用ECDSA上傳至數(shù)據(jù)塊2至n-1中,數(shù)據(jù)塊1中存儲(chǔ)的是本輪時(shí)間段內(nèi)初始全局模型,數(shù)據(jù)塊n存儲(chǔ)的是本輪更新后的全局模型,以此來(lái)保證ti時(shí)間段的本地模型以及全局模型的安全,利用區(qū)塊鏈的不可逆和不可篡改以及可追溯的特點(diǎn)來(lái)保證模型層面上的安全。

圖6 模型存儲(chǔ)階段算法流程Fig.6 Flowchart of model storage stage
綜上所述,基于區(qū)塊鏈的在線聯(lián)邦增量學(xué)習(xí)算法的流程如下:
1)數(shù)據(jù)收集階段。
步驟1 由可信第三方使用RSA 加密算法產(chǎn)生的公鑰傳輸至各數(shù)據(jù)源與客戶端;
步驟2 客戶端計(jì)算數(shù)據(jù)的hash 值,并將hash 值加密與數(shù)據(jù)共同傳輸至數(shù)據(jù)源;
步驟3 數(shù)據(jù)源使用私鑰解密,并重新計(jì)算數(shù)據(jù)的hash值,將傳輸前后計(jì)算的hash 相等的數(shù)據(jù)存儲(chǔ)至數(shù)據(jù)源,不相等的刪除。
2)模型訓(xùn)練階段。
步驟1 各數(shù)據(jù)源使用RSA 加密算法產(chǎn)生的公鑰傳輸至可信第三方;
步驟2 可信第三方將初始化參數(shù)的隨機(jī)森林、樸素貝葉斯、神經(jīng)網(wǎng)絡(luò)使用公鑰加密并傳輸至各數(shù)據(jù)源;
步驟3 各數(shù)據(jù)源使用初始化參數(shù)的3 種模型在歷史數(shù)據(jù)上進(jìn)行訓(xùn)練,根據(jù)3 種初始化參數(shù)模型的準(zhǔn)確度計(jì)算其平均值與方差來(lái)衡量模型的性能,將性能最優(yōu)的作為初始全局模型;
步驟4 從t2時(shí)間段起,判斷是否有新增加或減少的數(shù)據(jù)源;
步驟5 若出現(xiàn)新增加的數(shù)據(jù)源,將初始化參數(shù)的隨機(jī)森林、樸素貝葉斯、神經(jīng)網(wǎng)絡(luò)傳輸至新的數(shù)據(jù)源,并重新計(jì)算并選擇性能最優(yōu)的作為ti時(shí)間段的初始全局模型;
步驟6 若減少了數(shù)據(jù)源,需要根據(jù)上一次訓(xùn)練初始全局模型時(shí)的準(zhǔn)確度重新計(jì)算并選擇性能最優(yōu)的作為ti時(shí)間段的初始全局模型;
步驟7 若無(wú)新增或減少數(shù)據(jù)源,將ti-1時(shí)間段上更新的全局模型作為ti時(shí)間段上的初始全局模型;
步驟8 將初始全局模型在ti時(shí)間段產(chǎn)生的增量數(shù)據(jù)上進(jìn)行訓(xùn)練,獲得ti時(shí)間段的本地模型;
步驟9 各數(shù)據(jù)源將ti時(shí)間段的本地模型傳輸至可信第三方;
步驟10 可信第三方使用stacking 集成算法來(lái)整合ti時(shí)間段的多方本地模型,獲得ti時(shí)間段上的更新的全局模型。
3)模型存儲(chǔ)階段。
步驟1 將可信第三方在ti時(shí)間段上使用ECDSA 算法產(chǎn)生的私鑰傳輸至各數(shù)據(jù)源,公鑰傳輸至區(qū)塊i;
步驟2 各數(shù)據(jù)源使用私鑰加密ti時(shí)間段的初始全局模型參數(shù)、本地模型參數(shù)、更新的全局模型參數(shù)并傳輸至區(qū)塊i;
步驟3 區(qū)塊i使用公鑰解密并將初始全局模型參數(shù)、本地模型參數(shù)、更新的全局模型參數(shù)依次存儲(chǔ)至數(shù)據(jù)塊1,2,…,n中。
算法偽代碼如下:


2.2.1 算法的復(fù)雜度分析
聯(lián)邦增量學(xué)習(xí)算法的復(fù)雜度為Hash 算法的復(fù)雜度、RSA加密算法的復(fù)雜度[15]、ECDSA 數(shù)字簽名算法的復(fù)雜度、首輪最優(yōu)的初始全局模型的復(fù)雜度、模型傳輸?shù)膹?fù)雜度、首輪模型整合的復(fù)雜度、模型更新的復(fù)雜度、模型存儲(chǔ)的復(fù)雜度之和,即時(shí)間復(fù)雜度為O(((n*log(n)*d*k) +N3+Wk+2+Gk+2)*l),其中:n表示樣本數(shù),d表示特征維度總數(shù),k示決策樹(shù)數(shù)量,N表示加密算法的復(fù)雜度,W表示模型傳輸?shù)膹?fù)雜度,G表示模型傳輸?shù)膹?fù)雜度,l表示輪數(shù)。采用聯(lián)邦學(xué)習(xí)與stacking 集成算法將必然造成此算法的時(shí)間復(fù)雜度和空間復(fù)雜度均高于傳統(tǒng)的數(shù)據(jù)融合算法。傳統(tǒng)數(shù)據(jù)處理方法的時(shí)間復(fù)雜度為:O((n*log(n)*d*k) +N3+W+G),其中,n表示總體樣本數(shù),d表示特征維度,k表示決策樹(shù)數(shù)量,N表示加密算法的復(fù)雜度,W表示模型傳輸?shù)膹?fù)雜度,G表示模型存儲(chǔ)的復(fù)雜度。因本文算法采用增量上傳,聯(lián)邦增量算法的時(shí)間復(fù)雜度為:O((n/l*log(n/l)*d*k) +N3+W+G),通信開(kāi)銷(xiāo)節(jié)約的時(shí)間復(fù)雜度為采用聯(lián)邦學(xué)習(xí)與stacking 集成算法在增量數(shù)據(jù)上進(jìn)行訓(xùn)練,在保證了所訓(xùn)練模型準(zhǔn)確率的情況下,時(shí)間復(fù)雜度比傳統(tǒng)數(shù)據(jù)處理技術(shù)要低。
2.2.2 算法的安全性分析
聯(lián)邦增量學(xué)習(xí)算法使用了聯(lián)邦學(xué)習(xí)的框架與區(qū)塊鏈的性質(zhì),從數(shù)據(jù)層面上,使用RSA 加密算法對(duì)每個(gè)客戶端的數(shù)據(jù)進(jìn)行hash 計(jì)算,并將hash 值與數(shù)據(jù)共同傳輸至各數(shù)據(jù)源,各數(shù)據(jù)源重新計(jì)算其hash 值,可保證數(shù)據(jù)在收集階段的安全性與完整性。從模型層面上可分為兩部分:1)從模型傳輸?shù)慕嵌龋褂肦SA 加密算法產(chǎn)生的公鑰Pij對(duì)初始全局模型Hi進(jìn)行加密并傳輸至各數(shù)據(jù)源;各數(shù)據(jù)源使用私鑰pij解密并進(jìn)行訓(xùn)練,可保證模型傳輸過(guò)程中的安全性。2)從模型存儲(chǔ)的角度,由可信第三方使用ECDSA 產(chǎn)生密鑰對(duì),使用私鑰對(duì)ti時(shí)間段的初始全局模型Hi、本地模型hi1,hi2,…,hin和更新的全局模型hi進(jìn)行簽名并傳輸至區(qū)塊i,區(qū)塊i使用公鑰進(jìn)行驗(yàn)證并依次存儲(chǔ)區(qū)塊i的數(shù)據(jù)塊中(其中,初始全局模型Hi存儲(chǔ)至數(shù)據(jù)塊1,本地模型hi1,hi2,…,hin存儲(chǔ)至數(shù)據(jù)塊2,3,…,n-1,更新的全局模型hi存儲(chǔ)至數(shù)據(jù)塊n),可保證模型存儲(chǔ)過(guò)程中的安全性。
2.2.3 算法的時(shí)效性分析
聯(lián)邦增量學(xué)習(xí)算法采用增量學(xué)習(xí)的思想:在數(shù)據(jù)層面上,將各數(shù)據(jù)源在[ti-1,ti](i=1,2,…,n)時(shí)間段內(nèi)所產(chǎn)生的數(shù)據(jù)表示為ti-1時(shí)間段上訓(xùn)練模型時(shí)的數(shù)據(jù),從而可保證數(shù)據(jù)層面的時(shí)效性;在模型層面上,將ti-1時(shí)間段更新的全局模型hi-1作為ti時(shí)間段的初始全局模型hi進(jìn)行訓(xùn)練,可得ti時(shí)間段的本地模型hi1,hi2,…,hin及更新的全局模型hi,從而可保證模型層面的時(shí)效性。
綜上可以看出,本文提出的在線聯(lián)邦增量學(xué)習(xí)算法的準(zhǔn)確性比傳統(tǒng)的數(shù)據(jù)融合模型略有下降,但具有很高的時(shí)效性與安全性。
該算法由python語(yǔ)言和pycharm集成軟件開(kāi)發(fā)實(shí)現(xiàn),實(shí)驗(yàn)硬件環(huán)境為:Inter 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。
將數(shù)據(jù)集隨機(jī)劃分成17 份表示不同數(shù)據(jù)源(k=1,2,…,17)在不同時(shí)間段內(nèi)所產(chǎn)生的數(shù)據(jù),隨機(jī)對(duì)數(shù)據(jù)集劃分100 次能更合理地表示各數(shù)據(jù)源中的數(shù)據(jù)。隨機(jī)劃分100次的數(shù)據(jù)集反映出劃分前后數(shù)據(jù)的變化關(guān)系,隨機(jī)劃分?jǐn)?shù)據(jù)集可以滿足數(shù)據(jù)源特征相同樣本不同的需求,以及可以滿足交叉驗(yàn)證模型的合理性。使用RSA 加密算法產(chǎn)生的公鑰來(lái)加密數(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ù)在收集階段的安全性與完整性。
本文實(shí)驗(yàn)分為四個(gè)部分,第一部分:將隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)、樸素貝葉斯作為初始模型分發(fā)至各數(shù)據(jù)源,在歷史數(shù)據(jù)集上進(jìn)行訓(xùn)練,根據(jù)三種模型訓(xùn)練的結(jié)果計(jì)算準(zhǔn)確度的平均值(mean,即準(zhǔn)確率)及方差(variance),選擇準(zhǔn)確率最高且方差最小的作為初始全局模型。第二部分:將ti時(shí)間段的初始全局模型分發(fā)至各數(shù)據(jù)源,并進(jìn)行訓(xùn)練得ti時(shí)間段的本地模型,再使用stacking 集成算法集成本地模型,得ti時(shí)間段最有效的更新的全局模型。第三部分:各數(shù)據(jù)源使用RSA 加密算法產(chǎn)生256 B 的密鑰對(duì),將其公鑰傳輸至可信第三方,ti時(shí)間段的初始全局模型使用公鑰加密并傳輸至各數(shù)據(jù)源,各數(shù)據(jù)源使用私鑰解密并進(jìn)行訓(xùn)練。第四部分:可信的第三方使用ECDSA 數(shù)字簽名算法產(chǎn)生密鑰對(duì),將其私鑰傳輸至各數(shù)據(jù)源,公鑰傳輸至對(duì)應(yīng)的區(qū)塊中,各數(shù)據(jù)源使用私鑰對(duì)ti時(shí)間段的初始全局模型參數(shù)、本地模型參數(shù)、更新的全局模型參數(shù)進(jìn)行簽名并傳輸至對(duì)應(yīng)的區(qū)塊,區(qū)塊使用公鑰進(jìn)行驗(yàn)證并存儲(chǔ)相應(yīng)的數(shù)據(jù)塊中。因隨機(jī)森林、樸素貝葉斯、神經(jīng)網(wǎng)絡(luò)三種模型具有隨機(jī)性,所以本文將每種初始模型迭代100 次,計(jì)算其平均值及方差來(lái)衡量初始模型的性能,表1 反映了初始模型在4個(gè)數(shù)據(jù)源的歷史數(shù)據(jù)上的性能。

表1 三種初始模型在歷史數(shù)據(jù)上迭代100次的準(zhǔn)確度均值與方差Tab.1 Means and variances of 100 iterations of three initial models on historical data
從表1 可以看出,對(duì)于歷史數(shù)據(jù)來(lái)說(shuō),平均值由大到小的順序是隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)、樸素貝葉斯,而方差由小到大的順序是隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)、樸素貝葉斯,綜合考慮隨機(jī)森林的性能最優(yōu),故本文選擇隨機(jī)森林作為首輪的初始全局模型,且使用stacking 集成算法依次對(duì)首輪初始模型在數(shù)據(jù)源上建立的模型進(jìn)行集成,得到首輪更新的全局模型的準(zhǔn)確度。因隨機(jī)森林作為初始全局模型具有隨機(jī)性,且數(shù)據(jù)為隨機(jī)劃分而成,所以本文將初始模型在隨機(jī)劃分的數(shù)據(jù)集上迭代10 次的平均值作為數(shù)據(jù)劃分一次模型的準(zhǔn)確度,將劃分100 次數(shù)據(jù)的平均值作為首輪模型的準(zhǔn)確度。圖7 是在歷史數(shù)據(jù)集的4 個(gè)數(shù)據(jù)源上使用隨機(jī)森林在隨機(jī)劃分一次數(shù)據(jù)上迭代過(guò)程的準(zhǔn)確率變化情況。

圖7 初始全局模型H0在隨機(jī)劃分一次數(shù)據(jù)上迭代過(guò)程的準(zhǔn)確率變化情況Fig.7 Changes in accuracy of a iteration of initial global model H0on once randomly divided data
隨機(jī)森林在首輪數(shù)據(jù)的準(zhǔn)確度可表示為隨機(jī)森林在劃分100次的數(shù)據(jù)且在每次劃分的數(shù)據(jù)上迭代10次訓(xùn)練準(zhǔn)確度的平均值,可保證每次數(shù)據(jù)的準(zhǔn)確性,同時(shí)每次均產(chǎn)生4 個(gè)本地模型hin(n=1,2,3,4),為檢驗(yàn)本地模型的性能,采用準(zhǔn)確度平均值及方差來(lái)衡量。
從表2 可以看出,初始全局模型H0在t1時(shí)間段上數(shù)據(jù)的準(zhǔn)確度均值均在91.8%以上,且方差都很小,表明多個(gè)本地模型的性能都很好,且本地模型在數(shù)據(jù)上訓(xùn)練的準(zhǔn)確度均值結(jié)果幾乎相等。

表2 H0在t1時(shí)間段的增量數(shù)據(jù)上迭代100次的準(zhǔn)確度均值與方差Tab.2 Means and variances of 100 iterations of H0on incremental data in t1period
將訓(xùn)練的多個(gè)本地模型使用stacking集成算法來(lái)集成,得到更新后的全局模型h1在t1時(shí)間段數(shù)據(jù)上的準(zhǔn)確度保持在91.858%,且方差為4.889 5×10-6,說(shuō)明更新的全局模型h1有很好的穩(wěn)定性。
為檢驗(yàn)t1時(shí)間段更新的全局模型h1在t2時(shí)間段上的訓(xùn)練結(jié)果,本文算法將會(huì)判斷在ti時(shí)間段上有無(wú)新增加或減少的數(shù)據(jù)源,實(shí)驗(yàn)中假設(shè)在t2時(shí)間段和t1時(shí)間段的數(shù)據(jù)源一致,t3時(shí)間段將會(huì)減少1 個(gè)數(shù)據(jù)源,t4時(shí)間段將會(huì)增加1 個(gè)數(shù)據(jù)源,當(dāng)ti時(shí)間段新增加或減少了數(shù)據(jù)源,那ti時(shí)間段的初始全局模型Hi需要重新計(jì)算。因t2時(shí)間段和t1時(shí)間段的數(shù)據(jù)源一致,所以將t1時(shí)間段更新的全局模型h1作為t2時(shí)間段的初始全局模型H1,在t2時(shí)間段所產(chǎn)生的數(shù)據(jù)上進(jìn)行訓(xùn)練。
表3中的數(shù)據(jù)為t2時(shí)間段的初始全局模型H1在每次隨機(jī)劃分的數(shù)據(jù)上迭代10 次訓(xùn)練的平均值,可保證每次數(shù)據(jù)的準(zhǔn)確性,同時(shí)每次均產(chǎn)生4個(gè)本地模型hin(n=1,2,3,4),為檢驗(yàn)t2時(shí)間段本地模型的性能,仍采用平均值及方差來(lái)衡量。
從表3 中可以看到,在t2時(shí)間段的初始全局模型H1的準(zhǔn)確度均在91.8%以上,且方差都很小,表明初始全局模型H1在t2時(shí)間段內(nèi)所產(chǎn)生的數(shù)據(jù)上訓(xùn)練的結(jié)果均很好,模型很穩(wěn)定。
將t2時(shí)間段訓(xùn)練的多個(gè)本地模型使用stacking 集成算法來(lái)集成,得到更新后的全局模型h2的準(zhǔn)確度保持在91.86%以上,且方差為6.12 × 10-6,說(shuō)明更新的全局模型h2有很好的穩(wěn)定性。

表3 H1在t2時(shí)間段的增量數(shù)據(jù)上迭代100次的準(zhǔn)確度均值與方差Tab.3 Means and variances of 100 iterations of H1on incremental data in t2period
為充分檢驗(yàn)增加或減少數(shù)據(jù)源對(duì)算法的影響,將t3時(shí)間段減少1 個(gè)數(shù)據(jù)源(3 個(gè)數(shù)據(jù)源)進(jìn)行訓(xùn)練,因數(shù)據(jù)源發(fā)生變化,所以需要重新計(jì)算t3時(shí)間段的初始全局模型H2,同樣地使用準(zhǔn)確度均值及方差衡量3 種初始模型性能。表4 是三種初始全局模型在t3時(shí)間段的增量數(shù)據(jù)上重新計(jì)算的準(zhǔn)確度均值與方差的變化情況。從表4 可以看出,隨機(jī)森林的準(zhǔn)確度均值與方差明顯優(yōu)于樸素貝葉斯和神經(jīng)網(wǎng)絡(luò),而神經(jīng)網(wǎng)絡(luò)的準(zhǔn)確度均值與方差均優(yōu)于樸素貝葉斯。

表4 三種初始模型在t3時(shí)間段的增量數(shù)據(jù)上迭代100次的準(zhǔn)確度均值與方差Tab.4 Means and variances of 100 iterations of three initial models on incremental data in t3period
表5中的數(shù)據(jù)為t3時(shí)間段的初始全局模型H2在每次隨機(jī)劃分的數(shù)據(jù)上迭代100 次的準(zhǔn)確度均值,可保證每次數(shù)據(jù)的準(zhǔn)確性,同時(shí)每次均產(chǎn)生4 個(gè)本地模型hin(n=1,2,3,4)。從表5可以看出減少數(shù)據(jù)源可以使初始全局模型H2的準(zhǔn)確度有所增加,且方差較小,滿足實(shí)驗(yàn)性需求。

表5 H2在t3時(shí)間段的迭代100次的準(zhǔn)確度均值與方差Tab.5 Means and variances of 100 iterations of H2on incremental data in t3period
將t3時(shí)間段訓(xùn)練的多個(gè)本地模型使用stacking 集成算法集成,得到更新后的全局模型h3的準(zhǔn)確度保持在91.931%以上,且方差為5.7×10-6,說(shuō)明更新的全局模型h3有很好的穩(wěn)定性。同時(shí)可以看到數(shù)據(jù)源的減少可以使更新的全局模型h3的準(zhǔn)確度有所提升,且方差在變小,說(shuō)明減少數(shù)據(jù)源可以使模型更加穩(wěn)定。
為檢驗(yàn)增加數(shù)據(jù)源對(duì)聯(lián)邦增量學(xué)習(xí)算法的影響,在t3時(shí)間段的基礎(chǔ)上增加2 個(gè)數(shù)據(jù)源,表6 反映的是初始模型在5 個(gè)數(shù)據(jù)源上訓(xùn)練情況。從表6 可以看出,增加數(shù)據(jù)源后初始全局模型H3的準(zhǔn)確度均有所下降,且方差也都有所增加,但隨機(jī)森林的準(zhǔn)確度依舊很高,模型的穩(wěn)定性也較好。

表6 三種初始模型在t4時(shí)間段的增量數(shù)據(jù)上迭代100次的準(zhǔn)確度均值與方差Tab.6 Means and variances of 100 iterations of three initial models on incremental data in t4period
表7中的數(shù)據(jù)為t4時(shí)間段的初始全局模型H3在每次隨機(jī)劃分的數(shù)據(jù)上迭代100 次的準(zhǔn)確度均值,可保證每次數(shù)據(jù)的準(zhǔn)確性,同時(shí)每次均產(chǎn)生4 個(gè)本地模型hin(n=1,2,3,4)。從表7 可以看出,增加數(shù)據(jù)源使初始全局模型H2的準(zhǔn)確度有所減小,且新增加的數(shù)據(jù)源所對(duì)應(yīng)的方差比原有數(shù)據(jù)源的方差要大,但還是能滿足實(shí)驗(yàn)需求。
將t4時(shí)間段訓(xùn)練的多個(gè)本地模型使用stacking 集成算法來(lái)集成,得到更新后的全局模型h4的準(zhǔn)確度保持在91.588%以上,且方差為9.315× 10-6,說(shuō)明更新的全局模型h4有很好的穩(wěn)定性。同時(shí)可得到在增加數(shù)據(jù)源后,在t4時(shí)間段的數(shù)據(jù)上,全局模型h4的準(zhǔn)確度達(dá)到91.59%,且方差很小。

表7 H3在t4時(shí)間段的增量數(shù)據(jù)上迭代100次的準(zhǔn)確度均值與方差Tab.7 Means and variances of 100 iterations of H3on incremental data in t4period
傳統(tǒng)的多源數(shù)據(jù)源處理技術(shù)將多方數(shù)據(jù)整合后再進(jìn)行訓(xùn)練,所訓(xùn)練的模型準(zhǔn)確率為92.521%,方差為0.934 × 10-6(為保證數(shù)據(jù)的準(zhǔn)確度與真實(shí)性,該數(shù)據(jù)為隨機(jī)森林在整合的數(shù)據(jù)上迭代100次的準(zhǔn)確度均值與方差)。
為保證每次初始全局模型Hi能夠安全傳輸至各數(shù)據(jù)源,需使用256 B的公鑰加密模型進(jìn)行傳輸。
圖8反映出可信第三方與各數(shù)據(jù)源使用RSA 加密算法在不同的時(shí)間段內(nèi)產(chǎn)生的公鑰與私鑰的變化情況,可信第三方使用不同的公鑰來(lái)加密不同時(shí)間段的初始全局模型,進(jìn)而提升不同時(shí)間段內(nèi)初始全局模型傳輸?shù)陌踩裕煌瑫r(shí),各數(shù)據(jù)源使用不同的公鑰來(lái)加密本地模型并傳輸至可信第三方,可以提升不同時(shí)間段內(nèi)本地模型傳輸?shù)陌踩浴?/p>

圖8 RSA加密算法的公鑰、私鑰變化圖Fig.8 Public and private key changes of RSA encryption algorithm
為保證模型在傳輸過(guò)程的安全性以及防止模型被篡改與攻擊的風(fēng)險(xiǎn),本文由可信的第三方使用ECDSA 數(shù)字簽名算法產(chǎn)生密鑰長(zhǎng)度為570 的密鑰對(duì)與RSA 加密算法產(chǎn)生的256 B的密鑰對(duì),圖8 反映出RSA 加密算法產(chǎn)生的密鑰對(duì)的變化情況,各數(shù)據(jù)源將RSA 加密算法產(chǎn)生的公鑰傳輸至可信第三方,私鑰保留在各數(shù)據(jù)源中。
各數(shù)據(jù)源使用圖9(b)中的私鑰對(duì)每個(gè)時(shí)間段的初始全局模型、本地模型、更新的全局模型使用由第三方提供的私鑰進(jìn)行簽名,并傳輸至對(duì)應(yīng)區(qū)塊的數(shù)據(jù)塊中。區(qū)塊鏈中對(duì)應(yīng)區(qū)塊的數(shù)據(jù)塊使用圖9(a)中的公鑰進(jìn)行驗(yàn)證,驗(yàn)證過(guò)程能夠驗(yàn)證模型參數(shù)是否完整地傳輸至數(shù)據(jù)塊中,同時(shí)也能降低模型在傳輸過(guò)程中被篡改及攻擊的風(fēng)險(xiǎn)。

圖9 ECDSA的公鑰、私鑰變化圖Fig.9 Public and private key changes of ECDSA
對(duì)于模型存儲(chǔ)階段,RayBaaS 平臺(tái)能夠快捷、高效地構(gòu)建基于區(qū)塊鏈的服務(wù)和應(yīng)用,硬件設(shè)備采用Inter Core i5-4200M CPU 2.50 GHz 處理器進(jìn)行實(shí)驗(yàn),區(qū)塊鏈底層基于CentOS 7.6操作系統(tǒng)進(jìn)行部署,存儲(chǔ)的數(shù)據(jù)包括ti時(shí)間內(nèi)的初始全局模型參數(shù)、本地模型參數(shù)、更新的全局模型參數(shù),將t1時(shí)間段內(nèi)的初始全局模型參數(shù)存儲(chǔ)至區(qū)塊1的數(shù)據(jù)塊1中,本地模型參數(shù)存儲(chǔ)至區(qū)塊1的數(shù)據(jù)塊2、3、4、5中,更新的全局模型參數(shù)存儲(chǔ)至區(qū)塊1的數(shù)據(jù)塊6中;將t2時(shí)間段內(nèi)的初始全局模型參數(shù)存儲(chǔ)至區(qū)塊2的數(shù)據(jù)塊1中,本地模型參數(shù)存儲(chǔ)至區(qū)塊2的數(shù)據(jù)塊2、3、4、5中,更新的全局模型參數(shù)存儲(chǔ)至區(qū)塊2的數(shù)據(jù)塊6 中;t3時(shí)間段內(nèi)的初始全局模型參數(shù)存儲(chǔ)至區(qū)塊3 的數(shù)據(jù)塊1 中,本地模型參數(shù)存儲(chǔ)至區(qū)塊3 的數(shù)據(jù)塊2、3、4 中,更新的全局模型參數(shù)存儲(chǔ)至區(qū)塊3的數(shù)據(jù)塊5中;t4時(shí)間段內(nèi)的初始全局模型參數(shù)存儲(chǔ)至區(qū)塊4的數(shù)據(jù)塊1中,本地模型參數(shù)存儲(chǔ)至區(qū)塊4的數(shù)據(jù)塊2、3、4、5、6中,更新的全局模型參數(shù)存儲(chǔ)至區(qū)塊4的數(shù)據(jù)塊7中。
在線聯(lián)邦增量學(xué)習(xí)算法將隨機(jī)森林、神經(jīng)網(wǎng)絡(luò)、樸素貝葉斯分發(fā)至歷史數(shù)據(jù)上進(jìn)行訓(xùn)練并迭代100 次,計(jì)算其準(zhǔn)確度均值及方差作為衡量初始全局模型的標(biāo)準(zhǔn),其中隨機(jī)森林在歷史數(shù)據(jù)上的準(zhǔn)確度為91.4%,且方差均小于1.2 × 10-5,所以將隨機(jī)森林作為首輪初始全局模型并分發(fā)至數(shù)據(jù)源進(jìn)行訓(xùn)練,且使用stacking 集成算法集成多個(gè)本地模型,獲得更新的全局模型h1在t1時(shí)間段內(nèi)所產(chǎn)生的數(shù)據(jù)的準(zhǔn)確度為91.858%。因t2時(shí)間段并無(wú)新增數(shù)據(jù)源,則將更新的全局模型h1作為t2時(shí)間段的初始全局模型分發(fā)至數(shù)據(jù)源并進(jìn)行訓(xùn)練,并使用stacking 算法來(lái)集成多個(gè)本地模型,獲得的全局模型h2的準(zhǔn)確率為91.86%,表明更新的全局模型h2具有很強(qiáng)的泛化性。為研究增加與減少數(shù)據(jù)源對(duì)初始全局模型的影響,在t3、t4時(shí)間段分別減少1 個(gè)數(shù)據(jù)源和增加1 個(gè)數(shù)據(jù)源,重新計(jì)算其平均值及方差,得到在t3時(shí)間段內(nèi)所產(chǎn)生的數(shù)據(jù)上隨機(jī)森林的準(zhǔn)確度最高,且均在91.8%以上,使用stacking 集成后的準(zhǔn)確度為91.9%;在t4時(shí)間段內(nèi)所產(chǎn)生的數(shù)據(jù)上隨機(jī)森林的準(zhǔn)確度最高為91.5%,使用stacking集成后的準(zhǔn)確度為91.58%,說(shuō)明增加與減少數(shù)據(jù)源會(huì)對(duì)初始全局模型產(chǎn)生影響。使用傳統(tǒng)的數(shù)據(jù)處理技術(shù)將多方數(shù)據(jù)整合后再進(jìn)行訓(xùn)練,獲得的模型的準(zhǔn)確率為92.521%,與之相比,本文算法的準(zhǔn)確度僅下降約1%,但數(shù)據(jù)及模型在訓(xùn)練過(guò)程中的安全性得到很大提升。
本文提出了一種面向區(qū)塊鏈的在線聯(lián)邦增量學(xué)習(xí)算法,采用數(shù)字簽名的方式保證數(shù)據(jù)在收集階段的安全性與完整性;使用stacking 集成算法來(lái)整合多方本地模型,雖然模型的準(zhǔn)確率略有下降,但模型的安全性得到提升,同時(shí)模型在增量數(shù)據(jù)上進(jìn)行訓(xùn)練,使模型具有時(shí)效性;將每個(gè)時(shí)間段的初始全局模型參數(shù)、本地模型參數(shù)、更新的全局模型上傳至對(duì)應(yīng)數(shù)據(jù)塊中并快速同步,使數(shù)據(jù)的傳輸成本降低,同時(shí)模型參數(shù)的安全性得到了保障。接下來(lái)的工作中,我們會(huì)嘗試將本文算法應(yīng)用到其他隱私保護(hù)技術(shù)中,在保證模型準(zhǔn)確率的基礎(chǔ)上,進(jìn)一步提升數(shù)據(jù)與模型的安全性。