0
本文作者: 周蕾 | 2020-07-08 08:02 | 專題:金融聯(lián)邦學(xué)習(xí)公開(kāi)課 |
對(duì)百度來(lái)說(shuō),聯(lián)邦學(xué)習(xí)+金融會(huì)產(chǎn)生怎樣的火花?
雷鋒網(wǎng)AI金融評(píng)論推出的《BATJ高管公開(kāi)課》第四期,就邀請(qǐng)到了百度智能云智慧金融事業(yè)部算法負(fù)責(zé)人謝國(guó)斌做客線上講堂,揭秘百度智能云在金融領(lǐng)域的安全計(jì)算布局和技術(shù)思考。
此次課程,他將分享基于聯(lián)邦學(xué)習(xí)技術(shù)的百度金融安全計(jì)算平臺(tái)(度信)建設(shè)與實(shí)際應(yīng)用,講述如何借力安全技術(shù)架構(gòu)、脫敏方法和合規(guī)制度設(shè)計(jì),在“用戶充分授權(quán)、數(shù)據(jù)來(lái)源合法合規(guī)”前提下,打破數(shù)據(jù)孤島,實(shí)現(xiàn)多方數(shù)據(jù)加密融合建模,助力金融企業(yè)業(yè)務(wù)的開(kāi)展。
本文整理:佳慧,以下為謝國(guó)斌演講全文內(nèi)容:
我們?cè)诟芏嗟慕鹑诳蛻暨M(jìn)行溝通的時(shí)候,他們普遍面臨的痛點(diǎn),就是數(shù)據(jù)孤島和隱私保護(hù)的問(wèn)題。
目前的現(xiàn)狀是,一方面要保護(hù)客戶的隱私,另外一方面,數(shù)據(jù)孤島在不同的程度上存在著,去年央行發(fā)布的金融科技三年發(fā)展規(guī)劃里,也強(qiáng)調(diào)了要“消除信息的壁壘;數(shù)據(jù)融合?!?nbsp;
今年4月,國(guó)務(wù)院也在《關(guān)于構(gòu)建更加完善的要素市場(chǎng)化配置體制機(jī)制的意見(jiàn)》里,強(qiáng)調(diào)了數(shù)據(jù)的共享、數(shù)據(jù)資源的整合和安全保護(hù)。
所以,“數(shù)據(jù)孤島”和“隱私保護(hù)”兩者的困境,在業(yè)內(nèi)一直是個(gè)難題。
行業(yè)里做這塊技術(shù)的公司,一般有如下路徑在積極探索:
其中一種就是聯(lián)邦學(xué)習(xí);還有與之接近的,就是在做參數(shù)交換、梯度交換的時(shí)候,會(huì)用到的多方安全計(jì)算。另一種以硬件加密為主,可信計(jì)算(TEE),在內(nèi)存里做安全加密。以及基于云安全,做安全隔離域的方法。
基于剛才說(shuō)到的痛點(diǎn),百度推出了度信金融安全計(jì)算平臺(tái),做數(shù)據(jù)融合,前提是強(qiáng)調(diào)用戶要充分授權(quán),數(shù)據(jù)來(lái)源要合法、合規(guī)。也提出了聯(lián)合建模產(chǎn)品,拒絕數(shù)據(jù)孤島的存在,產(chǎn)品對(duì)上面幾種路徑都是支持的。
今天的要點(diǎn),主要是分享在聯(lián)邦學(xué)習(xí)和多方安全計(jì)算技術(shù)路徑上,我們所做的嘗試和產(chǎn)品的研發(fā)。
我們的金融安全計(jì)算平臺(tái)有以下特點(diǎn):
平臺(tái)主要服務(wù)于金融行業(yè)to B客戶,會(huì)考慮行業(yè)里特別關(guān)注的一些場(chǎng)景,比如營(yíng)銷、風(fēng)控、投研、反欺詐。我們基于金融的建模,有一些專用的功能點(diǎn)增強(qiáng)。從安全特性上,無(wú)論硬件軟件,有多種的方式進(jìn)行技術(shù)加固。
金融云專區(qū)上,我們通過(guò)了國(guó)家的四級(jí)等級(jí)保護(hù);數(shù)據(jù)流通方面,我們今年通過(guò)了信通院的相關(guān)技術(shù)測(cè)評(píng)。
從計(jì)算建模層面看,我們是自主操作,甲方乙方各自操作,全程免編碼,流程很簡(jiǎn)單,性能比同類的算法也要快。
私有云、公有云和私有化方面,我們有多種方式部署,產(chǎn)品目前也能提供工業(yè)級(jí)的使用體驗(yàn),包括嚴(yán)格的工程封裝、項(xiàng)目的驗(yàn)證實(shí)測(cè),還有百度沉淀的金融行業(yè)案例、提供金融行業(yè)的場(chǎng)景的解決方案。
我們這個(gè)平臺(tái)建設(shè),剛才提到用三大類技術(shù)方案,統(tǒng)一前端入口和統(tǒng)一后臺(tái)架構(gòu)。
后臺(tái)的架構(gòu),從下往上看,分為執(zhí)行層、應(yīng)用層、操作層、場(chǎng)景層。
從執(zhí)行層看,中間是基于多方計(jì)算的聯(lián)邦學(xué)習(xí)引擎,引擎最下面是基于加密的密碼學(xué)算法和一些常用的不經(jīng)意傳輸、同態(tài)加密、密鑰分享等。
往上是基于密碼學(xué)算法的多方安全計(jì)算,雙方或多方的加密數(shù)據(jù)的協(xié)調(diào)和交換,隱私的PSI對(duì)齊、ID化、聯(lián)邦分析和聯(lián)邦學(xué)習(xí)。
再往上是應(yīng)用層一些基于模型的算法的應(yīng)用,這個(gè)是標(biāo)準(zhǔn)的機(jī)器學(xué)習(xí)建模流程。
操作層有可視化的操作平臺(tái)和4A安全賦能金融行業(yè),打造營(yíng)銷風(fēng)控端對(duì)端的場(chǎng)景化建模功能。
我們的平臺(tái)架構(gòu),需要滿足三個(gè)不同的客戶需求:
定制化方案要滿足客戶不同的安全等級(jí)要求;有客戶對(duì)建模要求較高,那對(duì)算子、算法、模型多樣性、交互和應(yīng)用性方面要求就高一些,我們也會(huì)提供類似的解決方案。還有對(duì)不同的資源配置,構(gòu)建私有云、公有云和專有云支撐,支持不同的部署方案。
這個(gè)平臺(tái)的操作很簡(jiǎn)單,就是三個(gè)步驟。
先是合作的AB雙方,完成本地?cái)?shù)據(jù)的上傳。原則上都是上傳到自己的IDC機(jī)房里,數(shù)據(jù)不出域。
第二步細(xì)分為幾個(gè)小步驟:
1.數(shù)據(jù)的融合,會(huì)通過(guò)隱私保護(hù)的求交技術(shù)PSI,達(dá)到雙方的數(shù)據(jù)的可用不可見(jiàn)。
強(qiáng)調(diào)一下,融合不會(huì)泄露雙方的數(shù)據(jù)隱私,比如說(shuō)甲方有一億的客戶,B方有5000萬(wàn)的客戶,雙方去求交集,求出來(lái)只有500萬(wàn)客戶,那么我們只知道這500萬(wàn)的交集,剩下的客戶群雙方都是不知道的。
即使求交了這500萬(wàn)的客戶,我們也只有某一個(gè)主要的使用方,比如甲方銀行在使用的時(shí)候,才知道這500萬(wàn)相互求交的客戶號(hào)碼是什么。
2.求交的這批客戶,我們會(huì)進(jìn)行簡(jiǎn)單的特征工程,一些算法模型訓(xùn)練,包括像機(jī)器學(xué)習(xí)的邏輯回歸、GBDT等,也按照這個(gè)數(shù)據(jù)拆分,做完模型訓(xùn)練、輸出模型報(bào)告以后,進(jìn)行模式部署、模型推理和預(yù)測(cè)發(fā)布。
第一步上傳樣本比較簡(jiǎn)單,把數(shù)據(jù)上傳以后,摁一個(gè)按鍵,就會(huì)看到這一橫行里數(shù)據(jù)的上傳成功,然后AB雙方在這個(gè)地方點(diǎn)鼠標(biāo)發(fā)布,數(shù)據(jù)才傳到本地的服務(wù)器上面。
第二步模型訓(xùn)練,會(huì)自動(dòng)包含剛才說(shuō)的樣本對(duì)齊,包括可選的特征工程,還有算法參數(shù)、算法選擇等。
在模型訓(xùn)練過(guò)程中,等它出來(lái)一個(gè)結(jié)果,就會(huì)有一些像我這里截屏的模型,配置基本信息,比如雙方對(duì)齊了多少樣本,有哪一些特征?這里只能看到特征名稱。我們算法所涉及的每一個(gè)主要參數(shù)是什么樣的。這里以邏輯式回歸為例,生成模型評(píng)估報(bào)告,像ROC、KS值等等,就完成整個(gè)模型訓(xùn)練。
第三步就是模型預(yù)測(cè),需要在頁(yè)面新建預(yù)測(cè)任務(wù)名稱,包括描述,還有我們選擇哪個(gè)預(yù)測(cè)的模型。生成的模型在這里做選擇,再選擇要預(yù)測(cè)的數(shù)據(jù)集,點(diǎn)藍(lán)色按鈕完成整個(gè)模型預(yù)測(cè)過(guò)程。一定時(shí)間后,就會(huì)看到右下角預(yù)測(cè)成功的顯示,整個(gè)模型的離線預(yù)測(cè)就完成了,也可以用新建預(yù)測(cè)服務(wù)以API的方式供外調(diào)用。
我們平臺(tái)的設(shè)計(jì)理念,是全程免編碼,通過(guò)鼠標(biāo)的拖拽來(lái)完成的。
這家銀行開(kāi)展信貸業(yè)務(wù)時(shí),需要通過(guò)互聯(lián)網(wǎng)去線上獲客,但它并沒(méi)有這種線上資源或流量去投放,也沒(méi)有相關(guān)風(fēng)險(xiǎn)管理經(jīng)驗(yàn),于是它就跟某家互聯(lián)網(wǎng)公司進(jìn)行渠道上的聯(lián)合建模,實(shí)現(xiàn)精準(zhǔn)獲客和控制風(fēng)險(xiǎn)。
首先是銀行把他的數(shù)據(jù)和互聯(lián)網(wǎng)合作方,把數(shù)據(jù)在自己的機(jī)房里邊準(zhǔn)備好,然后各自聯(lián)邦學(xué)習(xí)時(shí),上傳梯度參數(shù)。
在互聯(lián)網(wǎng)渠道這一端,主要是上傳數(shù)據(jù),建模發(fā)生在銀行這端自行操作,就完成了整個(gè)建模過(guò)程,達(dá)到了數(shù)據(jù)模型建設(shè),完成后確定合適人群。
第三步,精準(zhǔn)廣告投放,包括精準(zhǔn)獲客,這部分我們項(xiàng)目的客戶日均調(diào)用量是50萬(wàn)筆。整體貸后表現(xiàn)非常好,降低了風(fēng)險(xiǎn),也節(jié)約了這家銀行的成本。
因?yàn)殂y行沒(méi)有過(guò)往的一些互聯(lián)網(wǎng)行為信息,也需要為此通過(guò)互聯(lián)網(wǎng)渠道來(lái)合作、來(lái)進(jìn)行聯(lián)合建模。聯(lián)邦學(xué)習(xí)最后的效果就是,讓申請(qǐng)率提升了,通過(guò)率又穩(wěn)定在一定的范圍內(nèi),不良率低于銀行業(yè)同業(yè)平均水平。
這個(gè)案例,我們推送的貸款客戶金額是超過(guò)千萬(wàn);通過(guò)率控制在穩(wěn)定范圍;該案例的不良貸款率是0.38 ,比去年銀行業(yè)1.81的不良率低了不少。
這個(gè)案例是一家車險(xiǎn)公司的業(yè)務(wù),在客戶里篩選健康險(xiǎn)的意向用戶,進(jìn)行精準(zhǔn)點(diǎn)對(duì)點(diǎn)促銷。建模流程與上個(gè)案例類似,由保險(xiǎn)公司提供的高響應(yīng)人群樣本和互聯(lián)網(wǎng)公司的數(shù)據(jù)進(jìn)行融合訓(xùn)練,最后結(jié)果運(yùn)用于全量的車險(xiǎn)客戶群。
效果上,這個(gè)模型的AUC值達(dá)到了0.76,減少了對(duì)客戶的打擾,也降低了營(yíng)銷的成本。
聯(lián)邦學(xué)習(xí)本質(zhì)上是軟件加密技術(shù),數(shù)據(jù)不出域、不出本企業(yè),主要是通過(guò)梯度參數(shù)出域。從本質(zhì)上來(lái)說(shuō)是去中心化的方案。橫向聯(lián)邦由谷歌在2016年的時(shí)候研發(fā)出來(lái),即數(shù)據(jù)的水平切分,主要用于金融同業(yè)間的數(shù)據(jù)融合。
橫向聯(lián)邦學(xué)習(xí)的計(jì)算步驟主要有四:雙方發(fā)送加密的梯度,安全的聚合,發(fā)送聚合的加密梯度參數(shù),再解密梯度更新模型。
縱向聯(lián)邦學(xué)習(xí)基于數(shù)據(jù)的垂直細(xì)分,主要用于金融業(yè)和非金融行業(yè),特別是像一家銀行和一家互聯(lián)網(wǎng)公司的數(shù)據(jù)融合。兩家公司的客戶群很多時(shí)候是重疊的,特征互補(bǔ)。
首先有分發(fā)公鑰,加密交換中間的結(jié)果,再進(jìn)行加密梯度和損失的計(jì)算,然后更新模型。
在和金融企業(yè)溝通的時(shí)候,我們發(fā)現(xiàn)他們關(guān)注的點(diǎn)有這些:
整個(gè)聯(lián)邦學(xué)習(xí)里,金融企業(yè)運(yùn)用最多的是縱向聯(lián)邦學(xué)習(xí),金融機(jī)構(gòu)更想看到的是和他非同業(yè)之間的數(shù)據(jù)融合。
銀行在和第三方機(jī)構(gòu)合作時(shí),非常強(qiáng)調(diào)這些數(shù)據(jù)進(jìn)來(lái)以后,對(duì)指標(biāo)的一些增量貢獻(xiàn),在意的是在現(xiàn)有基礎(chǔ)上的提升。如果在現(xiàn)有基礎(chǔ)上,引入的數(shù)據(jù)源沒(méi)有很大幅度的提升、效果不明顯,對(duì)金融機(jī)構(gòu)的吸引力就會(huì)降低。
同時(shí)金融機(jī)構(gòu)也強(qiáng)調(diào)數(shù)據(jù)源的差異化,如果數(shù)據(jù)來(lái)源都很類似,那對(duì)指標(biāo)的貢獻(xiàn)、對(duì)模型效果,提升度不是很大。
聯(lián)邦學(xué)習(xí)是整個(gè)框架里的主要技術(shù)。
另外,多方安全計(jì)算所涉及的加密技術(shù),其主要原理如圖左所示,四個(gè)參與方在針對(duì)任何一方都沒(méi)有可信的情況下,安全地進(jìn)行多方協(xié)同計(jì)算。
在一個(gè)分布式的網(wǎng)絡(luò)中,多個(gè)的參與實(shí)體各自持有秘密的輸入,完成對(duì)某函數(shù)的計(jì)算;但是要求每一個(gè)參與實(shí)體,除了計(jì)算的最終結(jié)果以外,其他的中間過(guò)程,包括自己其他客戶的原始數(shù)據(jù),任何的輸入數(shù)據(jù)都是不可以看到、都是不可以獲得的,這保證了參與各方的數(shù)據(jù)的安全性。
在安全計(jì)算過(guò)程中,所用到的一些密碼學(xué)或加密技術(shù),概括起來(lái)有這么七種。
混淆電路,來(lái)自于物理學(xué)電路原理:一堆人各自擁有隱私數(shù)據(jù),想把數(shù)據(jù)合起來(lái)進(jìn)行計(jì)算,但又不想把數(shù)據(jù)交換給別人,典型的案例就是百萬(wàn)富翁問(wèn)題。
不經(jīng)意傳輸,服務(wù)的某一個(gè)接收方,以不經(jīng)意的方式得到服務(wù)的發(fā)送方輸入的一些信息、信號(hào),這樣就可以保護(hù)接受者的隱私不被發(fā)送者所知道。
秘密的比較協(xié)議,計(jì)算的雙方各輸入一個(gè)數(shù)值,但是他們又希望在不向?qū)Ψ叫孤蹲约旱臄?shù)據(jù)的前提下,比較出這兩個(gè)數(shù)的大小。
同態(tài)加密,用這種方法先計(jì)算,后解密,也等價(jià)于先解密后計(jì)算。同態(tài)加密里也有加法同態(tài)、乘法同態(tài),包括全同態(tài)、偏同態(tài)、半同態(tài)等,它在聯(lián)邦學(xué)習(xí)中應(yīng)用也較多。
秘密分享,將秘密分割存儲(chǔ),多個(gè)參與者要相互協(xié)作才能恢復(fù)秘密的消息,如果有一方?jīng)]有參與,是沒(méi)有辦法把這個(gè)秘密完全恢復(fù)出來(lái)的。
零知識(shí)證明,證明者能夠在不向驗(yàn)證者提供任何有用的信息情況下,使驗(yàn)證者相信某個(gè)論斷是正確的。
差分隱私,這在業(yè)界應(yīng)用也比較多。
百度在多方安全計(jì)算方面,有自己的MPC平臺(tái)架構(gòu)。我們的平臺(tái)架構(gòu)分為這么六層,從基礎(chǔ)到應(yīng)用,有運(yùn)行環(huán)境基于DOCKER的,還有基于云和SERVER的。
在基礎(chǔ)的運(yùn)行環(huán)境往上,有剛才說(shuō)到的六七種加密算法。再往上是整個(gè)系統(tǒng)包括TLS、4A這一塊的安全。再往上是系統(tǒng)平臺(tái)層,有用戶角色管理,包括數(shù)據(jù)和分布式調(diào)度、監(jiān)控等。再往上看是數(shù)據(jù)的接入,再到數(shù)據(jù)的應(yīng)用。
下面我會(huì)重點(diǎn)介紹三類算法,都是百度自研的。
第一種是邏輯回歸,邏輯回歸是常用的二分類的分類器,在這種分類器上面我們加了一個(gè)基于PrivC的加密算法的邏輯回歸,這種算法是基于MPC的安全學(xué)習(xí)。
我們?cè)?9年的安全頂會(huì)上面發(fā)表了關(guān)于這個(gè)算法的文章,特點(diǎn)是訓(xùn)練速度和在公開(kāi)的服務(wù)器上的明文相比,速度大概會(huì)是在明文算法的40倍以內(nèi),也就是明文算法假如要用時(shí)1分鐘,那么我們要用時(shí)40分鐘。
這里有一個(gè)案例,就是我們基于深度MNIST公開(kāi)數(shù)據(jù)集,6萬(wàn)行784位的運(yùn)算,我們用時(shí)25秒,時(shí)間還是比較快的。
在下面的截圖,我們看到一些Table2,在一些加減還有一些常規(guī)的比較上面,基于我們自研的PrivC的算法和公開(kāi)的其他的一些加密算法,像ABY、EMP、SPDZ等等,我們的運(yùn)算速度都比他們快,標(biāo)出的黑色數(shù)值是越小越好。
我們的準(zhǔn)確率和明文算法比,會(huì)達(dá)到99%左右,比明文算法低一點(diǎn)點(diǎn),一般的梯度,有時(shí)候建模如果控制得不太好,都會(huì)有一些模型的損耗,而我們的損耗是比較少的。
第二種算法,就是基于梯度提升的算法,有GBDT、XGBoost,再快一點(diǎn)的有LightGBM,我們這種算法叫SecureGBM,它是在LightGBM級(jí)別的基礎(chǔ)上改造而成的。
基于 LightGBM基礎(chǔ)上改造而成的這種算法,我們也是發(fā)表在19年的IEEE國(guó)際大數(shù)據(jù)會(huì)議上,大家看到左下角有一個(gè)截圖,紅色的框是百度自研的叫SecureGBM,藍(lán)色的框,LightGBM-(A,B)就是明文算法,我們算法最后的結(jié)果和同類的最好的明文算法去比,在沒(méi)有用任何加密的和普通的建模相同的條件下,AUC值的差距大概是在3%以內(nèi)。
我們也比較了其他的一些明文算法,在這個(gè)圖里邊是-A或者-B,它是用了一些加密的聯(lián)邦的一些算法去比AUC值,我們的算法都是比其它的算法會(huì)高一些,但我們會(huì)比明文的算法大概低三個(gè)AUC值,在3%以內(nèi)。
第二個(gè)是它的運(yùn)算速度,從這個(gè)截圖看到,對(duì)比了16,000個(gè)樣本,我們的算法和明文算法去比的話,我們的速度大概是明文算法的6倍,也就是明文算法如果用一分鐘的話,我們會(huì)用六分鐘,這個(gè)已經(jīng)是非常好的效果了。
這個(gè)地方我們也提到,我們現(xiàn)在用的這個(gè)Paper里邊是16,000個(gè)樣本,如果樣本增加到10萬(wàn)個(gè),或者再往上增加,我們這個(gè)算法的運(yùn)算效率會(huì)更高。
那么我們SecureGBM和明文算法的LightGBM,雙方數(shù)據(jù)在一起,比較了在訓(xùn)練集上的AUC值和F1值,大家會(huì)看到有一條紅線和一條藍(lán)線,在截圖里面紅線和藍(lán)線絕大多數(shù)時(shí)候是靠在一起的,走勢(shì)是相同的,非常的接近。
說(shuō)明我們的這個(gè)算法和明文的LightGBM的算法,在AUC值、在F1、在訓(xùn)練集上和測(cè)試集上,達(dá)到了非常類似的一個(gè)效果。
第三種算法基于深度學(xué)習(xí),PaddleFL,是在我們百度自研的一個(gè)開(kāi)源的深度學(xué)習(xí)框架飛槳的基礎(chǔ)上,研發(fā)出來(lái)的開(kāi)源的聯(lián)邦學(xué)習(xí)框架。
下面是開(kāi)源框架的github的網(wǎng)址,通過(guò)PaddleFL,使用人員可以很輕松的去復(fù)制和比較不同的聯(lián)邦學(xué)習(xí)算法,也可以在分布式的大規(guī)模集群里面去使用。
這種PaddleFL主要用在深度學(xué)習(xí)算法里邊,用在計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理和推薦算法的一些領(lǐng)域,也提供一些傳統(tǒng)的機(jī)器學(xué)習(xí)的訓(xùn)練策略。
比如說(shuō)像多任務(wù)學(xué)習(xí),還有一些遷移學(xué)習(xí)、主動(dòng)學(xué)習(xí)等等,我們底層也提供基于分布式的訓(xùn)練和Kubernetes的訓(xùn)練任務(wù)的彈性的調(diào)度能力,可以進(jìn)行全站開(kāi)源軟件的侵入和部署,下面是基于我們的飛槳的一個(gè)的架構(gòu)圖。
接下來(lái)是編程模型、參數(shù)服務(wù)器、到端側(cè)訓(xùn)練和彈性調(diào)度,再往上是我們聯(lián)邦學(xué)習(xí)的訓(xùn)練策略及應(yīng)用。
聯(lián)邦學(xué)習(xí)策略這塊我們也有縱向的聯(lián)邦學(xué)習(xí),剛才提到的PrivC的邏輯回歸,橫向的聯(lián)邦學(xué)習(xí),還包括DPSGD基于差分隱私的隨機(jī)梯度等等。
我們也有常態(tài)的一些機(jī)器學(xué)習(xí),像遷移學(xué)習(xí),多任務(wù)學(xué)習(xí),主動(dòng)學(xué)習(xí)等基于聯(lián)邦學(xué)習(xí)的任務(wù),還有基于深度學(xué)習(xí)的自然語(yǔ)言處理、視覺(jué)、推薦這一塊的學(xué)習(xí)任務(wù),都是在PaddleFL的基礎(chǔ)上來(lái)做深度聯(lián)邦學(xué)習(xí)的建模。
PaddleFL的架構(gòu)設(shè)計(jì),圖的左邊叫編譯Compile Time,是首先通過(guò)聯(lián)邦策略,去設(shè)計(jì)一些算法策略,然后在中間設(shè)計(jì)訓(xùn)練策略,再用分布式的配置,合成以后,傳到中間任務(wù)的調(diào)度上面。任務(wù)調(diào)度再傳到參數(shù)的任務(wù)和訓(xùn)練的任務(wù)上面生成了job以后,再傳到這邊運(yùn)行。
運(yùn)行這一塊有參數(shù)的服務(wù)器和worker,再下面是調(diào)度器,整個(gè)就會(huì)把服務(wù)提起來(lái),然后進(jìn)行分布式的訓(xùn)練,這是PaddleFL的架構(gòu)設(shè)計(jì)。
同理,我們也有基于MPC的聯(lián)邦學(xué)習(xí),分成三部分,一是圖右部分,基于數(shù)據(jù)的準(zhǔn)備,首先有私有數(shù)據(jù)的對(duì)齊和數(shù)據(jù)加密及分發(fā)。
二是訓(xùn)練和推理過(guò)程,和Paddle的運(yùn)行模式一樣。首先要定義協(xié)議,在策略訓(xùn)練和推理完成后,就會(huì)到這個(gè)圖的最右邊進(jìn)行結(jié)果的重構(gòu)。
這一塊就會(huì)把模型的結(jié)果或者預(yù)測(cè)結(jié)果,由加密方以加密的形式輸出,結(jié)果方可以收集加密的結(jié)果,在PFM工具中進(jìn)行解密,再將明文的結(jié)果傳遞給用戶,就完成了整個(gè)MPC的聯(lián)邦學(xué)習(xí)過(guò)程。
我們先看看現(xiàn)有的模式,現(xiàn)有的模式只有幾個(gè),在沒(méi)有用到聯(lián)邦學(xué)習(xí)的時(shí)候,狀態(tài)是自己的IDC機(jī)房的網(wǎng)絡(luò)和外界是隔離的,沒(méi)有聯(lián)通互聯(lián)網(wǎng),數(shù)據(jù)不進(jìn)不出,因?yàn)橹挥玫阶约旱暮诵南到y(tǒng)的數(shù)據(jù),數(shù)據(jù)是物理隔離的。
但是這個(gè)模式最大的問(wèn)題,就是在它的建模過(guò)程中,會(huì)存在著一些天花板,比如剛才提到的KS值,如果做到0.35了,就再也不能再往上做了。
模型效果更多的取決于特征工程,而他又沒(méi)有用過(guò)外面的無(wú)論是互聯(lián)網(wǎng),還有政府,一些運(yùn)營(yíng)商的一些領(lǐng)域的數(shù)據(jù),那么一些風(fēng)控也好,營(yíng)銷的行為它是拿不到的,模型的上限是由多維度、多樣性來(lái)決定的,所以達(dá)不到很好的建模效果。
于是就衍生出來(lái)第二種模式,叫標(biāo)準(zhǔn)分的調(diào)用模式,標(biāo)準(zhǔn)分的第二個(gè)模式,它也是有自有機(jī)房,但是它的網(wǎng)絡(luò)變成不是隔離的了,而是單通道的,就是它的數(shù)據(jù)只進(jìn)不出。
在網(wǎng)絡(luò)這塊,因?yàn)殚_(kāi)了一個(gè)單向的通道,有可能存在一些被黑客攻擊的風(fēng)險(xiǎn),這個(gè)標(biāo)準(zhǔn)分的調(diào)用也有一些弊端。
大家知道,進(jìn)來(lái)的只是一些標(biāo)準(zhǔn)分,也就是說(shuō),外面的數(shù)據(jù)過(guò)來(lái)的可能就是一個(gè)變量或者兩個(gè)變量,它是一個(gè)高維特征壓縮以后的、降維以后的一些特征的輸入,每次輸入只有那么兩三個(gè)特征。
這種高維特征壓縮降到兩三個(gè)維度以后,有非常多的特征信息是損失了的,所以它提升的建模效果在信貸場(chǎng)景可能只提升那么一兩個(gè)點(diǎn),比如像KS值是0.35,提升到0.37、0.38就到了天花板了。
我們今天談到聯(lián)邦學(xué)習(xí)的模式,它的數(shù)據(jù)通道是雙通道的,雙方要進(jìn)行梯度或模型參數(shù)的交換。
首先,雙方數(shù)據(jù)對(duì)上面的一個(gè)中間節(jié)點(diǎn)要進(jìn)行上傳,但是它的原始數(shù)據(jù)沒(méi)有出域,它的參數(shù)數(shù)據(jù)或者模型的參數(shù)或者梯度參數(shù),是通過(guò)加密的方式來(lái)出域的。
從這個(gè)角度來(lái)看,因?yàn)樗木W(wǎng)絡(luò)通道打開(kāi)了,存在潛在的被黑客去攻擊的風(fēng)險(xiǎn)。梯度參數(shù)的話,從現(xiàn)在的業(yè)內(nèi)的研究來(lái)看,也存在一些被反解,或者一些隱私被攻擊的方法。
還有一個(gè),它有一個(gè)強(qiáng)烈假設(shè),就是需要參與的雙方或者各方,需要滿足誠(chéng)實(shí)、半誠(chéng)實(shí)模型的原則,如果有一方有嚴(yán)重的欺詐,去改變了模型的一些參數(shù),或者是一些游戲規(guī)則,模型的安全也會(huì)受到一些挑戰(zhàn)。
這是聯(lián)邦學(xué)習(xí)目前和上面的現(xiàn)有模式、標(biāo)準(zhǔn)的模式相比,所面臨的一些優(yōu)點(diǎn)和缺點(diǎn)。
那么這里會(huì)就提到模型提效,模型提效是一把雙刃劍?,F(xiàn)有模式下,在右邊的這樣一個(gè)方程式,目標(biāo)標(biāo)簽Y是來(lái)自于金融企業(yè)本身,它的X特征也是來(lái)自于這家企業(yè),企業(yè)只用自有的數(shù)據(jù)建模,沒(méi)有外部數(shù)據(jù)帶來(lái)模型效果提升,就會(huì)面臨天花板。
我們?cè)倏绰?lián)邦學(xué)習(xí)這種方式,剛才提到,通過(guò)梯度參數(shù)的交換來(lái)建立模型,那么基本上雙方數(shù)據(jù)沒(méi)有降維,外部提升的最大好處就是,帶來(lái)的模型效果提升非常大,與明文相比的話,它的精度損失基本上還是比較小的。
但是,在和很多金融企業(yè)溝通后,知道它有非常大的短板,企業(yè)有各種各樣的顧慮。
1.建模的過(guò)程中,即使想用聯(lián)邦學(xué)習(xí)來(lái)進(jìn)行建模,金融企業(yè)很多時(shí)候并不愿意把自己的特征放進(jìn)來(lái),但是可能只會(huì)將自己客戶的ID和目標(biāo)變量Y放進(jìn)來(lái),因?yàn)榻鹑谄髽I(yè)會(huì)覺(jué)得用聯(lián)邦學(xué)習(xí)來(lái)建模,有可能存在一些數(shù)據(jù)安全的問(wèn)題。
2.他們也希望拿到一些數(shù)據(jù)以后,再做二次建模,以滿足金融監(jiān)管的要求,因?yàn)樵诮鹑诒O(jiān)管這一塊,特別是在信貸風(fēng)控的場(chǎng)景,希望金融機(jī)構(gòu)要自控這個(gè)模型本身,而不能把這個(gè)模型交給外部的機(jī)構(gòu)去控制。
在數(shù)據(jù)的安全保證和數(shù)據(jù)提效的前提下,聯(lián)邦學(xué)習(xí)還要面對(duì)什么樣的得和舍呢?
第一個(gè),從運(yùn)算速度來(lái)看,現(xiàn)有的銀行在自己的機(jī)房里面進(jìn)行明文計(jì)算的數(shù)據(jù)建模,它的特點(diǎn)是運(yùn)算速度很快,可以用像spark、Tensorflow、PaddlePaddle等分布式技術(shù)去做這種很成熟的運(yùn)算。
但是到聯(lián)邦學(xué)習(xí)就不一樣了,剛才提到,它的訓(xùn)練速度至少會(huì)比明文計(jì)算,少則慢一個(gè)數(shù)量級(jí),慢10倍幾十倍,也有慢兩個(gè)數(shù)量級(jí)幾百倍的這種可能性。
第二塊就是它現(xiàn)有的分布式技術(shù)還不太成熟,這是他在速度這一塊可能需要去考量的。
第二個(gè),從算法種類來(lái)說(shuō),明文算法它是基于Python的開(kāi)源社區(qū),算法生態(tài)非常多,上千種上萬(wàn)種,頂級(jí)論文的開(kāi)源代碼,基本上就是按天、按周來(lái)迭代,更新的頻次非???。
但是在聯(lián)邦學(xué)習(xí)的算法過(guò)程中,要考慮到數(shù)據(jù)參數(shù)的加密,所以它的研發(fā)非常困難,我們的算法種類相對(duì)而言都是比較少的。業(yè)界現(xiàn)在能看到的也就是那么幾種或者幾十種,并且也不可能把最新的算法研發(fā)出來(lái)用在聯(lián)邦學(xué)習(xí)這個(gè)領(lǐng)域。
第三塊,就是產(chǎn)品的應(yīng)用性,因?yàn)楝F(xiàn)在基于明文數(shù)據(jù)的這種算法,AI開(kāi)發(fā)平臺(tái)有非常多,支持多種框架,還有它和數(shù)據(jù)的中臺(tái)的融合,非常好對(duì)接。
那么對(duì)純代碼方式來(lái)講,金融行業(yè)去使用時(shí),因?yàn)榻鹑谛袠I(yè)很多用戶也不是經(jīng)常做coding,所以他的學(xué)習(xí)曲線比較難、比較高。
剛才也提到如果用代碼這種方式,它跟這個(gè)操作系統(tǒng)有些時(shí)候需要linux shell腳本方式進(jìn)行交互,那么它的安全性可能會(huì)存在一些缺陷。百度的度信平臺(tái)在這一塊用純界面的方式,也面臨著一些開(kāi)發(fā)的周期和實(shí)施的難度。這個(gè)是聯(lián)邦學(xué)習(xí)與建模要考慮的問(wèn)題。
所以我們?cè)诳紤]安全,在考慮數(shù)據(jù)對(duì)建模效果業(yè)務(wù)績(jī)效的前提下,我們?cè)谶\(yùn)算速度上,在算法的種類的選擇上,在產(chǎn)品的應(yīng)用上,都做了一些權(quán)衡和一些損失,但有些時(shí)候這種損失和這種權(quán)衡是值得的。
下面一點(diǎn),就是百度金融專有云,如果是聯(lián)邦學(xué)習(xí)在我們的金融云、專有云上面進(jìn)行部署的話,我們還額外提供七重的數(shù)據(jù)安全保障。
這七重的數(shù)據(jù)安全保障在這個(gè)圖里邊用1234567都標(biāo)注出來(lái)了。一塊是我們提供異地的災(zāi)備,我們?cè)谖錆h、北京和上海有異地的百度金融云專區(qū)。
在數(shù)據(jù)的交換過(guò)程中,我們會(huì)提供一些芯片級(jí)的算法級(jí)的加密,包括在網(wǎng)絡(luò)的通路上,也提供一些加密的傳輸,讓加密的數(shù)據(jù)被截取以后都是不可用、不可解的。我們參與方的數(shù)據(jù)在云上的鏈路也好,在云上的一些硬件的里面,雙方都是互不可見(jiàn)的。
在完成了整個(gè)建模的過(guò)程以后,比如說(shuō)金融企業(yè)的數(shù)據(jù)要有用戶要查處,最后模型在使用的時(shí)候,有一個(gè)數(shù)據(jù)的健全,如果沒(méi)有授權(quán)的話,是不可以去使用產(chǎn)出模型的。
除了聯(lián)邦學(xué)習(xí)以外,我們?cè)谡麄€(gè)云上、在物理鏈路上、存儲(chǔ)量上、硬件上做了各種各樣的加密去保證安全,而不只是運(yùn)用了聯(lián)邦學(xué)習(xí)技術(shù)本身,或者只是開(kāi)發(fā)一個(gè)平臺(tái)。
在和金融企業(yè)的溝通中,我們發(fā)現(xiàn),即便雙方要進(jìn)行聯(lián)邦數(shù)據(jù)的融合建模,也可以采取剛才說(shuō)到的,雙方先有兩個(gè)數(shù)據(jù)寬表,然后再進(jìn)行融合的聯(lián)邦學(xué)習(xí)。
在生成這兩個(gè)雙方的數(shù)據(jù)寬表的同時(shí),還可以采取一些更加安全的數(shù)據(jù)脫敏方法,用的比較多的就是K-匿名化,這個(gè)是保護(hù)客戶數(shù)據(jù)隱私的一種重要方法。
我們希望雙方在生成數(shù)據(jù)寬表的時(shí)候,甲方和乙方都能夠采用類似于匿名化的技術(shù),讓雙方的原始特征數(shù)據(jù)脫敏得比較徹底,不能夠被反推。雖然聯(lián)邦學(xué)習(xí)本身也非常安全,在這個(gè)基礎(chǔ)上,我們能夠用更多的數(shù)據(jù)脫敏的方法。
右邊這一種也是類似的,我們會(huì)用差分隱私的一個(gè)方法,在數(shù)據(jù)集中里面產(chǎn)生一定的噪聲,這種隨機(jī)造成它可以通過(guò)一些概率分布前置來(lái)產(chǎn)生,這樣就在設(shè)計(jì)過(guò)程中很難去推斷出客戶的一些隱私。
和金融機(jī)構(gòu)合作時(shí),在數(shù)據(jù)的安全管控上,我們也會(huì)提供一整套的安全的合規(guī)的保障制度。
首先是從公司的治理層面,數(shù)據(jù)和流程層面及安全的能力層面,我們從不同的角度去看這家金融企業(yè)和它合作的另外一個(gè)互聯(lián)網(wǎng)企業(yè),只要用到度信平臺(tái),我們會(huì)提供一整套的關(guān)于安全保障機(jī)制的建議。
還有一塊就是數(shù)據(jù)的生命周期安全,我們考慮到六個(gè)環(huán)節(jié),數(shù)據(jù)的收集和產(chǎn)生要合規(guī),我們有數(shù)據(jù)的分類分級(jí)和安全日志。那么在傳輸和傳遞過(guò)程中,有加密和傳輸?shù)陌踩谋O(jiān)控。
第三塊就是存儲(chǔ),在存儲(chǔ)的安全和數(shù)據(jù)的加密備份這一塊,也要考慮安全。
第四就是它整個(gè)數(shù)據(jù)的加工的環(huán)境,使用方和用戶授權(quán)等等,也要保證安全。
第五個(gè)環(huán)節(jié)涉及整個(gè)的流通與共享,包括對(duì)內(nèi)流通和對(duì)外流通,我們要考慮相關(guān)的安全性。
當(dāng)我們使用完聯(lián)邦學(xué)習(xí)以后,也要有相應(yīng)的動(dòng)作,不要讓數(shù)據(jù)留存在雙方的服務(wù)器里邊。整個(gè)的安全制度合規(guī)保障和數(shù)據(jù)的生命周期,都是我們?cè)趯?shí)踐中慢慢總結(jié)出來(lái)的。
對(duì)于整個(gè)聯(lián)邦學(xué)習(xí),額外增加了一些針對(duì)金融行業(yè)更加安全的一些舉措和方法論。
我們也通過(guò)度信在這樣一個(gè)平臺(tái)的實(shí)施過(guò)程中,慢慢把這種方法論傳遞給金融機(jī)構(gòu),傳遞給合作方,讓我們整個(gè)在運(yùn)用聯(lián)邦學(xué)習(xí)的過(guò)程中,更加保證整個(gè)數(shù)據(jù)的安全,讓數(shù)據(jù)可用不可見(jiàn)。
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。
本專題其他文章