張君如,趙曉焱,2*,袁培燕,2
(1.河南師范大學(xué)計算機與信息工程學(xué)院,河南新鄉(xiāng) 453007;2.教學(xué)資源與教育質(zhì)量評估大數(shù)據(jù)河南省工程實驗室(河南師范大學(xué)),河南新鄉(xiāng) 453007)
(*通信作者電子郵箱zhaoxiaoyan@htu.cn)
隨著各種新型增強寬帶業(yè)務(wù)的蓬勃發(fā)展,網(wǎng)絡(luò)流量急劇上升,大量用戶線上和線下行為數(shù)據(jù)也日益完善。這些數(shù)據(jù)的深度挖掘與合理利用可以幫助運營商和服務(wù)商有效預(yù)測用戶下一步的行為,并且更好地指導(dǎo)產(chǎn)品的優(yōu)化以及業(yè)務(wù)的精細(xì)化運營。在現(xiàn)有行為預(yù)測研究中,大多數(shù)學(xué)者運用K-means聚類[1]、深度森林[2]等傳統(tǒng)機器學(xué)習(xí)方法來完成對用戶的個性化產(chǎn)品推薦或者情景感知等服務(wù)。例如,Salehinejad等[3]提出了一種以購買信息、忠誠度等作為變量的回歸神經(jīng)網(wǎng)絡(luò)顧客行為預(yù)測模型;Baumann 等[4]利用Python 中的Network X 框架生成的特征信息來構(gòu)建用戶行為預(yù)測模型。但是,傳統(tǒng)機器學(xué)習(xí)方法的高性能都是基于大規(guī)模數(shù)據(jù)庫的支持,而現(xiàn)實情景中很難實現(xiàn)大規(guī)模用戶數(shù)據(jù)的集中訓(xùn)練,原因主要有兩個方面:一方面從個人層面來說,個人數(shù)據(jù)存在不當(dāng)收集和用戶隱私泄露等問題;另一方面從企業(yè)層面來說,由于行業(yè)競爭、隱私政策等問題,在現(xiàn)實生活中想要把分散在不同公司或政府組織中的數(shù)據(jù)集進行整合幾乎是不可能的,或者是需要巨大成本。因此,傳統(tǒng)人工智能架構(gòu)應(yīng)用場景嚴(yán)重受限。如何在不泄漏數(shù)據(jù)隱私和保障信息安全的前提下完成大規(guī)模數(shù)據(jù)訓(xùn)練成為當(dāng)前學(xué)術(shù)界熱議的話題。
在此背景下,谷歌率先提出的聯(lián)邦學(xué)習(xí)技術(shù)應(yīng)運而生。作為端側(cè)人工智能的算法,聯(lián)邦機器學(xué)習(xí)[5]具有保護數(shù)據(jù)隱私、運行可靠性高等優(yōu)點,逐漸成為模型訓(xùn)練的發(fā)展趨勢之一。聯(lián)邦學(xué)習(xí)利用各參與方對本地的數(shù)據(jù)進行處理,通過控制各方之間通信與運算交替更新模型參數(shù),使得在己方數(shù)據(jù)不泄漏的情況下,盡可能保證所得模型與將數(shù)據(jù)聚合一方的非聯(lián)邦模型之間的差距足夠小。例如,文獻[6]中提出了一種對模型量化壓縮的計算方法來實現(xiàn)聯(lián)邦學(xué)習(xí);文獻[7]設(shè)計了一系列協(xié)議來實現(xiàn)分類和回歸樹保護隱私的功能,并證明其具有一定安全性和高效性;文獻[8]中提出聯(lián)邦學(xué)習(xí)FATE(Federated AI Technology Enabler)框架,通過設(shè)計一種SecureBoost算法來解決隱私保護下的多方參與與數(shù)據(jù)共享問題,并通過實驗證明該算法與其他非聯(lián)合梯度樹增強算法近似準(zhǔn)確;文獻[9-11]考慮到模型上傳云端所花費的時間,采取遷移學(xué)習(xí)的方法對模型特定層進行訓(xùn)練從而壓縮模型上傳的通信成本,完成模型訓(xùn)練;文獻[12]中提出了一種保護隱私的Federated Forest 機器學(xué)習(xí)算法,允許在具有相同用戶樣本但屬性集不同的不同區(qū)域的客戶上共同訓(xùn)練學(xué)習(xí),并證明了該算法可以減少通信開銷;文獻[13]利用隨機線性分類器(Random Linear Classifier,RLC)作為聯(lián)邦學(xué)習(xí)中的基本分類器,達(dá)到簡化隱私保護協(xié)議的目的。但是上述對聯(lián)邦學(xué)習(xí)體系的研究存在兩個值得關(guān)注的問題:第一,實際應(yīng)用問題。對聯(lián)邦學(xué)習(xí)的研究和實驗大多是以理想情況為前提,沒有考慮在多方參與情景下可能出現(xiàn)的風(fēng)險和問題,缺少在現(xiàn)實場景下對聯(lián)邦學(xué)習(xí)算法的仿真和驗證。第二,算法效果問題。聯(lián)邦學(xué)習(xí)在多方數(shù)據(jù)的訓(xùn)練上仍然存在通信成本高和訓(xùn)練效果差等問題,即如何有效提升聯(lián)邦學(xué)習(xí)的運行效率和算法準(zhǔn)確率也是當(dāng)前聯(lián)邦學(xué)習(xí)值得研究和探討的方向。
因此,為解決以上問題,本文對預(yù)測性能較好的Xgboost算法[14]進行分析和改進,提出了一種聯(lián)邦學(xué)習(xí)安全樹(Federated Learning Security tree,F(xiàn)LSectree)算法,以用戶行為預(yù)測為應(yīng)用場景,使得在保護數(shù)據(jù)隱私的前提下,實現(xiàn)聯(lián)邦算法在準(zhǔn)確率和運行效率上的高質(zhì)量訓(xùn)練。本文主要工作如下:1)提出一種面向多方的用戶行為預(yù)測架構(gòu),實現(xiàn)聯(lián)邦學(xué)習(xí)在現(xiàn)實場景下對數(shù)據(jù)隱私保護的應(yīng)用價值;2)提出FLSectree算法,通過聯(lián)合各參與方共同訓(xùn)練高質(zhì)量集成樹,有效地提升用戶行為預(yù)測模型中聯(lián)邦學(xué)習(xí)算法的準(zhǔn)確性和運行效率。
為了能夠更準(zhǔn)確預(yù)測用戶個人的請求內(nèi)容,同時實現(xiàn)對用戶數(shù)據(jù)的保護,本文聯(lián)系用戶偏好、位置信息和社會背景[15]這三個方面建立基于聯(lián)邦學(xué)習(xí)的用戶行為預(yù)測架構(gòu),完成用戶數(shù)據(jù)在本地的訓(xùn)練。
定義1主動方。聯(lián)邦學(xué)習(xí)中提供標(biāo)簽值的一方稱為主動方,在聯(lián)邦學(xué)習(xí)中占領(lǐng)主導(dǎo)地位,參與較為復(fù)雜的決策運算。當(dāng)然,主動方也可提供參與聯(lián)合的其余特征集合。
定義2被動方。聯(lián)邦學(xué)習(xí)中不提供標(biāo)簽值,只提供特征數(shù)據(jù)的一方稱為被動方,在聯(lián)邦模型的構(gòu)建中只參與基礎(chǔ)數(shù)據(jù)的提供,對于最終所預(yù)測的標(biāo)簽和樹的結(jié)構(gòu)完全不可知。
基于以上分析,本文構(gòu)建基于聯(lián)邦學(xué)習(xí)的用戶行為預(yù)測架構(gòu)如圖1所示。首先,將用戶行為預(yù)測的參與方分類如下。
1)被動方A:公共機構(gòu)(社會背景),如銀行、醫(yī)院等,記錄用戶身份、性別、教育程度、職業(yè)、家庭情況以及收入信息。
2)主動方B:網(wǎng)絡(luò)運營商(用戶偏好),如Youtube、Facebook 等,記錄用戶的瀏覽文件和瀏覽方式。其中瀏覽文件為預(yù)測的標(biāo)簽向量。
3)被動方C:定位軟件運營商(位置信息),如HERE、Google Earth等,記錄用戶瀏覽位置信息。
其次,由于用戶的行為數(shù)據(jù)分散在不同的運營商中,為保證數(shù)據(jù)隱私和安全,不將多方數(shù)據(jù)進行直接交換,而是利用聯(lián)邦學(xué)習(xí)在本地架構(gòu)三方聯(lián)邦學(xué)習(xí)系統(tǒng)??紤]到參與方自身訓(xùn)練能力有限,下發(fā)支持聯(lián)邦學(xué)習(xí)的云服務(wù)器協(xié)助完成強大的聯(lián)邦學(xué)習(xí)過程,其中服務(wù)器重點對主動方B 進行監(jiān)控和保護。最終,在每個運營商本地訓(xùn)練出自己的行為預(yù)測模型,實現(xiàn)在保護用戶隱私的前提下,聯(lián)合多方數(shù)據(jù)達(dá)到成功構(gòu)建用戶行為預(yù)測模型的目的。
接下來,本文將針對如何實現(xiàn)提出的聯(lián)邦用戶行為預(yù)測架構(gòu)展開討論,并在傳統(tǒng)機器學(xué)習(xí)算法基礎(chǔ)上提出一種新的能夠充分保護用戶隱私的聯(lián)邦學(xué)習(xí)安全樹FLSectree 用戶行為預(yù)測算法。
圖1 基于聯(lián)邦學(xué)習(xí)的用戶行為預(yù)測架構(gòu)Fig.1 User behavior prediction architecture based on federated learning
本文將參與方在共同建模過程存在泄露數(shù)據(jù)隱私風(fēng)險的參數(shù)稱為敏感數(shù)據(jù)。為挖掘聯(lián)邦學(xué)習(xí)過程中的敏感數(shù)據(jù),實現(xiàn)對數(shù)據(jù)隱私的保護,本文的FLSectree 算法通過掃描特征索引序列和加密分裂點等方法,減少參與方的通信次數(shù),保證在不降低算法準(zhǔn)確率的前提下,完成對參與方的本地模型訓(xùn)練,實現(xiàn)對用戶行為的高質(zhì)量預(yù)測。
本文設(shè)定損失函數(shù)與正則化項之和作為算法的目標(biāo)函數(shù)。為推導(dǎo)出聯(lián)邦模型構(gòu)建過程中潛在的敏感數(shù)據(jù),同時,實現(xiàn)目標(biāo)函數(shù)最小化,本文對損失函數(shù)關(guān)于的一階偏導(dǎo)數(shù)和二階偏導(dǎo)數(shù)進行定義,如式(1)所示:
并選取邏輯回歸損失,如式(2)所示:
1)確定參與方聯(lián)邦權(quán)利。信息宿主方向各個參與方下發(fā)公鑰;參與方則劃定樣本區(qū)域,并設(shè)定樣本交集編號ID={1,2,…,N}對于各個參與方是可知的。
2)將被動方進行特征排序和填充。被動方根據(jù)自己所擁有特征集合,根據(jù)特征值大小從小到大進行排序,形成其對應(yīng)ID 編號序列,稱為特征索引序列集。每方每個特征序列集一起形成有序特征集,在每組特征序列集中,特征不同值所對應(yīng)ID之間插入特殊字符α,其中對于缺失值按照獨立值處理。被動方將其特征序列集發(fā)送給主動方,注意在傳送的特征序列集中,只有已協(xié)商好的ID編號和特殊字符α,不涉及特征數(shù)值的傳輸,并且此傳輸過程在整個訓(xùn)練中只涉及一次。
3)主動方進行掃描與分裂。為提取分裂依據(jù),本文采用泰勒公式(5)對第t次迭代目標(biāo)函數(shù)進行二階展開:
其中:Ω(ft)為正則項;fk為第k棵樹模型。從目標(biāo)函數(shù)式(6)可知,其中只有一個變量ft(xi)。為找到一個ft最小化目標(biāo)函數(shù),主動方對產(chǎn)生的葉子節(jié)點進行歸組,將屬于第j個葉子節(jié)點的所有樣本xi劃入到一個葉子節(jié)點樣本集中,表示為I={i|q(xi)=j},將樹的復(fù)雜度式(7)代入式(6)可得:
其中:T為葉子節(jié)點數(shù);w為葉子權(quán)重值;γ為葉子樹懲罰正則項;λ為葉子權(quán)重懲罰正則項。為進一步簡化目標(biāo)函數(shù),本文做如下定義:
將式(9)代入式(8),得到最終目標(biāo)函數(shù)為式(10),并對目標(biāo)函數(shù)中每個葉子節(jié)點j拆解如式(11)所示:
由于Gj和Hj相對于第t棵樹可推,則每個葉子節(jié)點分值相當(dāng)于w j的一元二次函數(shù)。因為各葉子節(jié)點目標(biāo)子式相互獨立,當(dāng)每個葉子節(jié)點分值達(dá)到最值時,整個目標(biāo)函數(shù)達(dá)到最值。由一元二次函數(shù)的最值公式,計算得到當(dāng)每個葉子節(jié)點權(quán)重達(dá)到時,可達(dá)到最優(yōu)目標(biāo)函數(shù)為:
因此,主動方針對不同分裂點,將其ID 編號所對應(yīng)的gi和hi進行提取,設(shè)定節(jié)點的劃分依據(jù)為每次分裂是否帶給損失函數(shù)的增益,即有增益Gain的定義為:
主動方利用式(12)計算所產(chǎn)生的增益Gain。當(dāng)主動方對所有特征序列集的所有可能劃分節(jié)點進行一次掃描后,選取最大Gain值作為分裂點。然后,主動方按照層次遍歷法,對每個節(jié)點從1 開始進行編號,設(shè)編號為leaft(1 ≤leaft≤2max_depth-1)。主動方將對應(yīng)分裂出的節(jié)點編號leaft進行加密,設(shè)分裂點處的ID 編號u,特征類別為v,主動方將信息只返回給分裂出該點的相應(yīng)被動方。接收到信息的被動方根據(jù)u和v,找到對應(yīng)特征中具體值的分裂點,同時注意保留加密后的。
4)主動方根據(jù)此次分裂后的左右節(jié)點實例空間,對將每個特征序列集中的對應(yīng)的相應(yīng)實例空間進行提取,重復(fù)以上步驟,直到葉子節(jié)點產(chǎn)生,同時主動方計算相應(yīng)葉子權(quán)重w。當(dāng)達(dá)到設(shè)定的最大深度max_depth后,整棵樹構(gòu)建完成。
算法1 FLSectree訓(xùn)練過程。
FLSectree 訓(xùn)練結(jié)束后,預(yù)測過程較為簡單,預(yù)測樣本將公鑰下發(fā)給主動方和被動方。被動方判斷所擁有預(yù)測樣本的特征信息,得到判斷結(jié)果result leaft∈{L,R},即歸屬左子節(jié)點或右子節(jié)點。被動方對自己擁有的所有分裂節(jié)點判斷結(jié)果和加密節(jié)點編號進行匯總發(fā)送給主動方。主動方解密后代入已知樹結(jié)構(gòu)中,得到最終預(yù)測結(jié)果。
算法2 FLSectree預(yù)測過程。
從集成樹構(gòu)建上來看,不需要通過被動方參與計算gi和hi,主動方就可以完成對最佳分裂點的求解。從隱私保護上來看,只有主動方gi和hi直接涉及標(biāo)簽值yi的獲取問題。在整個構(gòu)建過程中,主動方完全把握對gi和hi的使用權(quán),而其余參與方只能參與特征值數(shù)據(jù)的提供,對于所預(yù)測標(biāo)簽完全不可見。因此,該集成樹在一定程度上是安全的。
為了應(yīng)對聯(lián)邦學(xué)習(xí)中可能出現(xiàn)數(shù)據(jù)掩蔽、參與方退出以及數(shù)據(jù)量過大而導(dǎo)致訓(xùn)練時間過長等問題,本文設(shè)定在FLSectree 構(gòu)建過程中,分配一個不偏向任意一方的輕量級服務(wù)器,由用戶對其進行直接管控,協(xié)助聯(lián)邦各方完成訓(xùn)練,并且設(shè)定一個有效的問題應(yīng)對機制對聯(lián)邦學(xué)習(xí)中的參與方進行規(guī)范和約束,從而增強算法的健壯性,保證訓(xùn)練正常進行。本文提出的聯(lián)邦問題應(yīng)對機制具體如下:
1)參與各方的數(shù)據(jù)不統(tǒng)一。FLSectree 算法考慮兩種解決方法:第一,數(shù)據(jù)量相差過大時,考慮選取重合部分最多的交集參與訓(xùn)練,對于空缺值按照缺失值處理;第二,如果數(shù)據(jù)量相差較少,則直接按照缺失值處理。
2)主動方在訓(xùn)練過程中退出。如果主動方拒絕參與本輪訓(xùn)練,則用戶可以尋找其他認(rèn)可的主動方或者用戶信任的輕量級服務(wù)器替代完成分裂點的增益計算。
3)被動方在訓(xùn)練過程中退出。如果某個被動方要求掩蔽部分節(jié)點不參與訓(xùn)練,則將其掩蔽特征值作為缺失值處理,如果某個被動方要求退出所有節(jié)點的訓(xùn)練或掩蔽率到達(dá)設(shè)定閾值,則收回對其下發(fā)的公鑰,忽略它在本次FLSectree 中構(gòu)建的節(jié)點即可。
4)主動方在推斷過程中退出。要求將主動方訓(xùn)練好的模型直接返回給信息宿主,用戶可以選擇其他可信任的主動方或者信任的輕量級服務(wù)器協(xié)助完成剩余推斷,且退出的主動方不再參與下輪訓(xùn)練。
5)被動方在推斷過程中退出。如果該被動方的節(jié)點分裂走向在FLSectree 推斷過程恰好沒有影響,則直接回收該被動方公鑰,并將其從聯(lián)邦方中刪除;如果缺失該被動方無法完成推斷,則要求該被動方將其訓(xùn)練完畢的半模型返回給用戶信任的輕量級服務(wù)器完成剩余結(jié)果的推斷。
6)參與聯(lián)合的任意一方無法負(fù)擔(dān)其運算量。當(dāng)數(shù)據(jù)量過大或計算流量過多時,參與方運算緩慢導(dǎo)致聯(lián)邦系統(tǒng)出現(xiàn)問題時,由用戶信任的服務(wù)器協(xié)助各方完成部分計算,保證每個參與方的訓(xùn)練能夠有效完成,從而優(yōu)化架構(gòu)的整體運算能力。
本文聯(lián)合不同機構(gòu)和企業(yè)數(shù)據(jù)對FLSectree 算法在用戶行為預(yù)測中的效果進行仿真實驗。為測試本文算法的有效性,采用Outbrain在560個網(wǎng)站上發(fā)布7億不同用戶的20億頁面瀏覽量數(shù)據(jù)集(https://www.kaggle.com/c/outbrain-clickprediction),提取編號 為234、236、515、2 191、2 861、452、4 099、4 154 共8 種頁面作為興趣預(yù)測標(biāo)簽,同時選取對應(yīng)美國加利福尼亞州、美國科羅拉多州、美國北卡羅來納州、加拿大曼尼托巴省、加拿大不列顛哥倫比亞省、加拿大魁北克省共6 種瀏覽位置和電腦端、手機端、平板端3 種瀏覽方式,共計2 231 條記錄作為本次實驗數(shù)據(jù)集。由于個人身份信息不易獲取,本文采用韓國延世大學(xué)(Yonsei)研發(fā)部署的移動監(jiān)控系統(tǒng)LifeMap(http://lifemap.yonsei.ac.kr)對用戶平均6 個月在韓國首爾的移動性數(shù)據(jù),根據(jù)用戶經(jīng)常出現(xiàn)的場景及位置的語義信息,仿真產(chǎn)生公共機構(gòu)方所持有的數(shù)據(jù)。基于本文提出的用戶行為預(yù)測架構(gòu),向不同機構(gòu)分配相應(yīng)數(shù)據(jù)集,實驗環(huán)境設(shè)置三臺(8 GB RAM,Intel Core i7-6500u CPU,Windows 10)機器模擬三個不同的機構(gòu),設(shè)置一個處理器為CentOS 7.3的輕量級服務(wù)器作為協(xié)助方。實驗程序由Python和Matlab共同完成。隨機提取不同機構(gòu)對應(yīng)數(shù)據(jù)集中100、500、1 000、1 500、2 000 條記錄分別實驗,同時選取前70%作為訓(xùn)練集,后30%作為測試集進行交叉驗證。實驗設(shè)定FLSectree 訓(xùn)練參數(shù)中,學(xué)習(xí)率eta=0.1,樹的最大深度max_depth=5,迭代次數(shù)num_bound=5,分類個數(shù)num_class=8,正則項λ=1.0,損失函數(shù)采用邏輯回歸和softmax做多分類預(yù)測結(jié)果。
為驗證提出的FLSectree 算法的有效性,本文以準(zhǔn)確率(ACCuracy,ACC)作為評價指標(biāo),在不同樣本數(shù)量的情況下,將不考慮隱私保護情景下,完全將所有數(shù)據(jù)集中在一個中心位置的三種傳統(tǒng)的分類預(yù)測算法,即集中式的隨機森林(Random Forest,RF)算法,支持向量機(Support Vector Machine,SVM)算法和Xgboost 算法,同樣采用聯(lián)邦思想SecureBoost 算法[8],以及只有主動方一方訓(xùn)練的Xgboost 算法與FLSectree 算法在準(zhǔn)確率的對比,實驗結(jié)果如圖2 所示。結(jié)果表明,集中式Xgboost 算法與FLSectree 算法完全重合,并且在整個過程中本文算法FLSectree 的準(zhǔn)確率明顯優(yōu)于其他預(yù)測算法。當(dāng)樣本數(shù)量為100 時,F(xiàn)LSectree 準(zhǔn)確率為0.733;當(dāng)樣本數(shù)量增加至2 000 時,F(xiàn)LSectree 準(zhǔn)確率接近0.9,相較于文獻[8]提升了9.09%。這是因為SectreeBoost 算法在加密過程中,為不泄露信息對節(jié)點構(gòu)建進行限制,導(dǎo)致預(yù)測精度有所降低。而FLSectree 算法在訓(xùn)練過程中采取特征序列掃描和分裂的方法對集成樹的節(jié)點進行無損分裂,故FLSectree 算法不會對算法參數(shù)造成損失。從整體來看,由于FLSectree 算法在目標(biāo)函數(shù)中加入了正則項,從而提高了算法的泛化能力,相較于傳統(tǒng)的SVM、RF 算法分別提升了55.45%和9.52%。從特征選擇上,單方的Xgboost算法的準(zhǔn)確率遠(yuǎn)遠(yuǎn)低于聯(lián)合后的算法,這說明多方聯(lián)合預(yù)測用戶行為的有效性。
圖2 不同樣本量下不同算法準(zhǔn)確率Fig.2 Accuracy of different algorithms with different sample sizes
圖3 不同樣本量下不同算法的運行時間Fig.3 Running times of different algorithms with different sample sizes
為驗證FLSectree算法的運行效率,本文對FLSectree算法輕量級服務(wù)器協(xié)助、集中式Xgboost 算法、文獻[8]中提出的SecureBoost算法在不同樣本數(shù)量上完成所有訓(xùn)練的運行時間進行對比,實驗結(jié)果如圖3 所示。從圖3 可以看出,除了數(shù)據(jù)量為變量,其他算法參數(shù)均相同。可以看到,SecureBoost算法的運行時間隨數(shù)據(jù)量的增多急速上升,這是因為SecureBoost算法在每次尋找最佳分裂點時,都要對gi和hi進行同態(tài)加密并且要求主動方與被動方進行一次通信,對于每一次拆分其通信時間為2*z*d*ct,ct表示密文的大小,z表示與要拆分的節(jié)點關(guān)聯(lián)的實例數(shù),d是被動方保留的特征數(shù)。盡管后來提出用存儲桶映射特征值,但這個通信成本仍然存在,特別是當(dāng)分裂點過多時,會導(dǎo)致其總通信時間呈線性增長。而本文提出的FLSectree 算法在樣本數(shù)量增多時,也沒有出現(xiàn)運行時間陡然上升的情況,這是因為,從通信成本上來講,在FLSectree算法的聯(lián)邦學(xué)習(xí)過程中,主動方與被動方只進行1 次同步通信,大大減少了參與方之間的通信次數(shù),進而減少了通信過程中不必要的響應(yīng)時間。從計算成本上看,也省去了每次分裂都要對gi和hi加密和解密的時間。盡管主動方在對實例空間進行貪心分割時,會造成計算成本有所上升,但是算法所節(jié)約出的通信成本遠(yuǎn)遠(yuǎn)大于計算成本。因此,本文算法比SecureBoost 算法運行時間降低了87.42%。從圖3 還可以看出,集中式Xgboost算法的運行時間遠(yuǎn)遠(yuǎn)低于其他聯(lián)邦學(xué)習(xí)算法,這是由于集中式Xgboost算法是在一個位置對參與方的融合數(shù)據(jù)進行訓(xùn)練,不需要參與方進行通信,這也反映出通信成本確實是聯(lián)邦學(xué)習(xí)耗費時間的關(guān)鍵因素。同時,實驗還對有無服務(wù)器協(xié)助進行對比,發(fā)現(xiàn)設(shè)置服務(wù)器后,本文算法運行時間減少了9.85%,表明在部分情況下,特別是數(shù)據(jù)量較大時,服務(wù)器的協(xié)助對提高FLSectree 算法的運行效率有較為明顯的作用。由聯(lián)邦問題應(yīng)對機制的設(shè)定可以看出,訓(xùn)練過程中參與方的掩蔽可能會對準(zhǔn)確率有所影響,推斷過程中參與方的退出可能會對運行時間有所影響。為進一步證明構(gòu)建的FLSectree 算法的健壯性,分別模擬算法在訓(xùn)練和推斷過程中,當(dāng)被動方和主動方以不同比率執(zhí)行掩蔽和退出操作時,本文算法在準(zhǔn)確率和運行時間方面的變化情況,運行結(jié)果如圖4~5所示。
圖4 訓(xùn)練過程中被動方掩蔽程度對準(zhǔn)確率的影響Fig.4 Impact of passive masking degree on accuracy during training
圖4描述了在訓(xùn)練過程中被動方A 和被動方C,即公共機構(gòu)和定位軟件運營商掩蔽對精確度的影響。從實驗結(jié)果可以看出,定位軟件運營商的掩蔽對精確度的影響更大一些,這可能是因為用戶行為與位置之間的相關(guān)性更強造成的。并且,當(dāng)兩方的掩蔽率分別在到達(dá)50%和30%之前,本文算法準(zhǔn)確率都能保持在0.8 以上。這是因為,F(xiàn)LSectree 算法相對于傳統(tǒng)的Boosting 算法有一個明顯的優(yōu)勢,通過缺失值在左右節(jié)點分配后的增益情況,對節(jié)點進行分裂,即對缺失值能自動學(xué)習(xí)分裂方向,極大程度上減小缺失值對算法的損失。因此,如果對掩蔽率閾值有較為合理的設(shè)定,能夠很好地減緩預(yù)測準(zhǔn)確率的下降。
圖5 推斷過程中被動方和主動方退出對運行時間的影響Fig.5 Impact of passive and active exits on running time in inference process
圖5 描述了在推斷過程中主動方和被動方以不同程度的退出對運行時間的影響。實驗結(jié)果表明,主動方和被動方不同程度的退出雖然會導(dǎo)致運行時間有所增加,但是整體增大幅度不超過9.58%,屬于可接受的時間范圍。這是因為設(shè)定的輕量級服務(wù)器可以有效承擔(dān)測試任務(wù),從而促使推斷過程能夠繼續(xù)進行。而且從實驗中可以看出,由于主動方存儲整個樹結(jié)構(gòu)以及相應(yīng)節(jié)點的加密信息,主動方的退出相對于被動方更影響運行時間,因此在向服務(wù)器交接時,往往會花費更多的通信成本。而被動方由于只是存儲一些特征節(jié)點信息,在交付時通信時間較短,故其退出對運行時間影響較小。并且由于被動方部分節(jié)點信息不一定參與到聯(lián)邦樹的構(gòu)造上,因此較低程度的退出對運行時間的影響較小。
本文針對聯(lián)邦學(xué)習(xí)中準(zhǔn)確率和運行效率較低的情況,提出了一種無損失的FLSectree 算法,解決了在用戶行為預(yù)測場景下保護數(shù)據(jù)隱私的問題。實驗結(jié)果表明,F(xiàn)LSectree 算法與非聯(lián)邦的Xgboost算法運行結(jié)果一致,有效提高了在用戶行為預(yù)測場景下聯(lián)邦學(xué)習(xí)算法的運行效率。在接下來的工作中,將挖掘更多刻畫用戶行為的特征數(shù)據(jù),如用戶軌跡中的時空特征、個人偏好等因素,進一步提升用戶行為預(yù)測效果;也考慮將FLSectree 聯(lián)邦算法應(yīng)用于更廣泛的領(lǐng)域,同時將聯(lián)邦思想應(yīng)用于更多機器學(xué)習(xí)算法,進一步推進在人工智能時代下聯(lián)邦學(xué)習(xí)對大數(shù)據(jù)隱私的保護。