0
本文作者: 周蕾 | 2020-04-23 14:58 | 專題:金融聯(lián)邦學(xué)習(xí)公開課 |
近期,微眾銀行首席人工智能官、香港科技大學(xué)講席教授楊強(qiáng)做客雷鋒網(wǎng)AI金融評論公開課,以“聯(lián)邦學(xué)習(xí)前沿的研究與應(yīng)用”為題,全面詳盡地講解了聯(lián)邦學(xué)習(xí)如何直面數(shù)據(jù)孤島和隱私保護(hù)的雙重挑戰(zhàn)。
關(guān)注微信公眾號 AI金融評論 ,在公眾號聊天框回復(fù)“聽課”,進(jìn)群可收看本節(jié)課程視頻回放。
本文編譯:卡卡。以下為楊強(qiáng)演講全文內(nèi)容與精選問答:
今天的題目是和金融相關(guān)的,先給大家講一下,為什么在金融行業(yè)有特別的需求來保護(hù)用戶隱私。我希望大家記住一句話:數(shù)據(jù)不動,模型動。
在金融行業(yè),現(xiàn)在大部分的應(yīng)用都是數(shù)據(jù)驅(qū)動的,卻面臨非常嚴(yán)峻的挑戰(zhàn)。
首先人工智能的力量來自于大數(shù)據(jù),但在實(shí)際運(yùn)用過程中碰到更多的都是小數(shù)據(jù)。比方說法律案例,有人做過統(tǒng)計(jì),案例最多也就收集到上萬個。又比如金融反洗錢,因?yàn)榉聪村X案例是少數(shù)的現(xiàn)象,所以每一個案例都非常重要。對于醫(yī)療圖像,非常好的標(biāo)注的醫(yī)療圖像也非常少。所以我們可以發(fā)現(xiàn):周邊更多的是小數(shù)據(jù),但AI恰恰需要使用大數(shù)據(jù)。
幾個例子:首先是在金融領(lǐng)域,比如信貸風(fēng)控、市場營銷,都需要大量的數(shù)據(jù)訓(xùn)練。大額貸款風(fēng)控的案例又非常少。要是來做深度學(xué)習(xí)模型,只用少量這種大額貸款的樣本是遠(yuǎn)遠(yuǎn)不夠的。
另外一個例子是智慧城市。智慧城市有很多的攝像頭,每一個攝像頭可以獲取的數(shù)據(jù)其實(shí)是有限的,希望聚合不同攝像頭的一些數(shù)據(jù)。但如果它們來自不同的公司,或涉及用戶隱私,就無法簡單粗暴合并。
大家都知道人工智能的一個未來(應(yīng)用方向)是無人車,但是每一輛無人車所面臨的新的數(shù)據(jù)卻是有限的。如果要更新我們的模型,就需要大量新的數(shù)據(jù),它來自于不同的無人車,每個車輛的數(shù)據(jù)里面肯定是有隱私,同時也是小數(shù)據(jù)。
又比如網(wǎng)購,像物流系統(tǒng)、供應(yīng)鏈系統(tǒng),有很多的倉儲,如果要自動化,就有很多的監(jiān)控的需求,這種數(shù)據(jù)往往是小數(shù)據(jù),也是分散型的數(shù)據(jù),把它聚合起來也不是那么容易。
比如拿手機(jī)看新聞,有很多推薦系統(tǒng),每個手機(jī)上面所獲取的用戶喜好信息,也是小數(shù)據(jù),聚合它也面臨到用戶隱私的問題。
問題是:周邊都是小數(shù)據(jù),是不是可以把它聚合起來,聚少成多?當(dāng)然這個是我們最直接的想法,人工智能一開始的發(fā)展也是這么來做的,但是現(xiàn)在面臨了嚴(yán)峻的挑戰(zhàn)。
社會層面,對于隱私和安全的意識越來越強(qiáng),政府的監(jiān)管,相關(guān)法律法規(guī)越來越嚴(yán)。
歐洲首先推出來的法規(guī)叫GDPR。它有各種條款,最重要的一條是要保護(hù)隱私的數(shù)據(jù),保證隱私權(quán)是掌握在用戶手中。自從它2018年推出來以后,已經(jīng)有不少的大公司被罰款,比如Facebook和Google。
在美國進(jìn)展稍微慢一點(diǎn),但現(xiàn)在加州的法律也跟上來了,叫CCPA。國內(nèi)也是法律嚴(yán)格化、全面化,各行各業(yè)的法律法規(guī)都面世了。
我們在訓(xùn)練模型過程中希望有海量的大數(shù)據(jù),現(xiàn)實(shí)卻是一個個數(shù)據(jù)的孤島。想把數(shù)據(jù)孤島連起來,形成一個大數(shù)據(jù),卻遇到了法律法規(guī)的嚴(yán)格限制。
我們面臨的兩個技術(shù)問題,也是我個人研究感興趣的問題:第一個是如何用遷移學(xué)習(xí)來解決小數(shù)據(jù),這個不在今天的講座里。今天重點(diǎn)放在右邊這個圖:數(shù)據(jù)都是碎的,如果想把碎的數(shù)據(jù)拼起來,有什么辦法?下面就要講一下我們的解決方案,聯(lián)邦學(xué)習(xí)(Federated Learning)。
Federated Learning,說白了想達(dá)到這樣一種狀態(tài):有多個數(shù)據(jù)源,有多個數(shù)據(jù)孤島,每一個數(shù)據(jù)源的數(shù)據(jù)都不動,都在本地。但是讓這一些具有數(shù)據(jù)源的擁有方(Owner)能夠達(dá)成一個協(xié)議,使得大家可以聯(lián)合起來建立一個模型,就是聯(lián)邦模型。可以有各種各樣建立合作模型的方式和算法,但是總目的一樣:就是改變以往的做法,讓數(shù)據(jù)在本地不動,通過交換一些模型的信息,讓模型成長起來。
這樣做需要一些數(shù)學(xué)工具和計(jì)算工具,前者最突出的就是有關(guān)隱私保護(hù)、加密建模的工具;后者最突出的就是分布式的機(jī)器學(xué)習(xí)。
可能有些同學(xué)是第一次聽到聯(lián)邦學(xué)習(xí)這個名詞,我用一個簡單的例子來給大家進(jìn)行解釋。
假設(shè)用一只羊來類比機(jī)器學(xué)習(xí)模型,我們希望羊吃了草以后能夠長大。
過去的做法是,把草買到一起來建立模型。比方說左邊的模型,左邊的箭頭是指向羊的。羊不動,但是草被購買到中心。相當(dāng)于用簡單粗暴的辦法來獲取數(shù)據(jù),形成大數(shù)據(jù),來建立模型。
但我們希望能夠保護(hù)各自的隱私,所以讓草不動,讓羊動。也就是說,我們帶著模型到不同的草場去訪問,那么久而久之羊就長大了——這個就是聯(lián)邦學(xué)習(xí)的新思路,就是讓草不出草場,本地主人無法知道羊吃了哪些草,但是羊還是長大了。
怎么落地?第一個做法,假設(shè)每一個數(shù)據(jù)擁有方具有不同的樣本,但是縱向特征卻基本一致。這就相當(dāng)于我們有那么大的一個大數(shù)據(jù)的數(shù)據(jù)集,從橫向進(jìn)行切割,形成了一堆一堆的樣本,他們的特征卻是類似的。
比如每一個手機(jī)都是我們個人在使用,形成了一堆樣本。有不同的手機(jī),每個手機(jī)基本上取的這些特征都一樣,但樣本卻不同。我們希望在數(shù)據(jù)不動的情況下,能夠聚合這些手機(jī)上的數(shù)據(jù)的這些能力,建立大數(shù)據(jù)模型。
就像這個圖左邊所示的數(shù)據(jù)集們,依次對應(yīng)右邊各終端上面的數(shù)據(jù)。它們的特征是縱向的,X1、X2、X3是類似的,但樣本U1、U2…U10卻是不同的。所以這個叫橫向切割,按樣本切割,簡稱橫向聯(lián)邦學(xué)習(xí)。
橫向聯(lián)邦學(xué)習(xí),用數(shù)學(xué)的形式表示它是一個矩陣。一個數(shù)據(jù)集是左上角,一個數(shù)據(jù)集是右下角,它們有很大的在特征方面的重疊,但是他們的樣本用戶卻不重疊,可能他們有各自的標(biāo)簽。
左邊和右邊有各自的標(biāo)簽,但是我們希望利用所有的數(shù)據(jù)來建模,而不是僅僅靠一個終端上面的數(shù)據(jù)來建一個小模型,希望把他們聚集起來建立大模型,但是他們的這些數(shù)據(jù)不能動。
這時候就需要用到橫向聯(lián)盟學(xué)習(xí)的模型。簡單來說,每個終端都和服務(wù)器有一個連接,要保證我們跟服務(wù)器的溝通,不是數(shù)據(jù)的溝通,而僅僅是模型參數(shù)的溝通。在這里參數(shù)是w1、w2直到wk,這些參數(shù)在旁邊有兩個直角括號([ ]),在數(shù)學(xué)上代表加密,所以在這里用到的是一個加密的數(shù)學(xué)模型。
這些參數(shù)加密以后,把加密的包送給服務(wù)器,服務(wù)器不懂加密包里面到底有什么,只知道這個是有關(guān)參數(shù)的加密包。現(xiàn)在有一種技術(shù)可以把這種加密包在服務(wù)器端進(jìn)行合起來,合起來的結(jié)果會形成一個新的模型,就是上面所示的神經(jīng)網(wǎng)絡(luò)模型。這就是第一步到第六步的流程。
在數(shù)學(xué)上,這樣的結(jié)合實(shí)際上是一種模型的疊加,兩個不同的數(shù)據(jù)集,它建立的兩個不同分類模型,一個是線性模型,另外一個可能是KNN模型,這兩個模型合起來就會形成一個高維空間的模型。
我們希望在這個建模過程中,每一個數(shù)據(jù)集都不向服務(wù)器端泄露它本身的數(shù)據(jù),只是它們的參數(shù)在進(jìn)行溝通。而且參數(shù)的溝通也是加密的,這就保證了隱私。
細(xì)節(jié)來說,現(xiàn)在有一種特別好的加密方法,在兩個加密包進(jìn)行聚合的時候,可以不看每一個加密包里面的數(shù)據(jù),但我們就把它的包裝和他的內(nèi)核進(jìn)行調(diào)換,這樣a的加密加上b的加密,就等于a加b的加密。
打個比方,兩個包裝好的東西合起來,包裝就到外面來了,里面是兩個東西的和。這個技術(shù)叫做同態(tài)加密,在座的同學(xué)如果有興趣,網(wǎng)上現(xiàn)在有大量的資源。國內(nèi)也有很多專家是在同態(tài)加密方面特別有成就。同態(tài)加密在過去做不好的一個原因是計(jì)算量太大,現(xiàn)在已經(jīng)發(fā)現(xiàn)有很好的解決算法,再加上硬件各方面都有進(jìn)步,所以同態(tài)加密已經(jīng)不是問題了。
同態(tài)加密的效果激發(fā)了很多機(jī)器學(xué)習(xí)人的想象力。比如Sigmod曲線,它是非線性,可以用一個線性來近似,近似以后就可以去計(jì)算損失函數(shù)以及加密結(jié)果。同態(tài)加密分配律(distribution law)就使得它的總的加密變成每一項(xiàng)的加密之和。
谷歌首先看到了優(yōu)勢,就提出了一個叫Federated Averaging,是一個橫向聯(lián)邦學(xué)習(xí)的做法。
我們可以想象成一個聯(lián)邦平均,就是有n個模型,現(xiàn)在要求它們的平均值,但這個事要在服務(wù)器端做的時候,我們不希望服務(wù)器能夠看到每一項(xiàng)它所包含的內(nèi)容,所以假設(shè)手機(jī)每一天獲取了新的數(shù)據(jù)以后,我們要更新在手機(jī)上面的一些機(jī)器學(xué)習(xí)模型。比方說 next word prediction和人臉識別。我們就可以選擇一些手機(jī),用這個辦法對它的新數(shù)據(jù)進(jìn)行聯(lián)邦求和,最后就在保護(hù)用戶隱私的前提下,能夠不斷更新手機(jī)上的數(shù)據(jù)。
這個已經(jīng)在Google、在安卓系統(tǒng)得到了應(yīng)用,現(xiàn)在有眾多的手機(jī)商,包括我們國內(nèi)的手機(jī)商都非常感興趣。其他的廠商比如物聯(lián)網(wǎng)、智能家居的這些公司,如果還沒有聽說聯(lián)邦學(xué)習(xí)的話,他們就會落伍了。
剛才講的是橫向聯(lián)邦,是按用戶來分割,按樣本來分割。那有沒有這種情況:樣本幾乎都一樣,在不同的數(shù)據(jù)擁有方,但特征不一樣。比如不同機(jī)構(gòu)、公司之間,面臨的用戶幾乎都是一樣的,但是他們的特征不一樣。
舉例來說,視頻網(wǎng)站有很多用戶的視頻喜好,賣書的網(wǎng)店幾乎也有同樣的用戶集,但它們的特征卻不一樣,這邊是有關(guān)書的,那邊是有關(guān)視頻的。又比如兩個銀行,一個銀行可能有很多貸款,另外一個銀行可能有很多理財(cái),他們的用戶群可能也是有很大的重疊。
過去的做法是把數(shù)據(jù)買過來,然后在一個服務(wù)器上加以聚合,現(xiàn)在這個事兒行不通了。我們就思考聯(lián)邦學(xué)習(xí)能不能來做這個事兒。
這種聯(lián)邦是特征不同,但是樣本重疊,按照特征豎著來切,所以叫縱向聯(lián)邦。如圖所示,兩個機(jī)構(gòu)之間的溝通也是加密的模型參數(shù),而不是數(shù)據(jù)本身。給到任意兩個數(shù)據(jù)A和B,不一定所有的是樣本都重疊。但是如果我們有辦法找到足夠多的重疊的那一部分,就可以在這一部分上進(jìn)行建模,用聯(lián)邦學(xué)習(xí)來建模。
下面就分成兩個問題:
在不泄露用戶本身數(shù)據(jù)隱私的情況下,不告訴用戶和特征值前提下,兩個數(shù)據(jù)擁有方能夠共同找到他們所共同擁有的樣本。
在找到這些樣本以后,利用這些樣本作為訓(xùn)練數(shù)據(jù)來共同建模。再之后就是如何使用。
如何建模:
縱向聯(lián)邦的大概思路是,這個模型是A方有一部分的模型,B方有另外一部分的模型。就像戰(zhàn)國時代的虎符,一個印被切成兩塊,只有當(dāng)這個印是能夠完全重疊的時候,才能證明這個將軍是得到了真正的國王的命令——左邊有模型A,右邊有模型B,這兩個合起來才能形成聯(lián)盟來進(jìn)行共同的推理。
再看細(xì)節(jié):首先是有一個墻,這個墻表示數(shù)據(jù)不能通過墻來交換。左邊有機(jī)構(gòu)A,右邊有機(jī)構(gòu)B,這兩個機(jī)構(gòu)在溝通的時候要非常的小心,只能溝通一些加密后的模型參數(shù)。
這個算法用4個步驟在右邊這里展開,下面我就先一步一步的來給大家進(jìn)行講解。
第一步:如圖所示,假設(shè)左邊這個機(jī)構(gòu)有這么一個用戶或者樣本的一個集合X,右邊也有一個樣本的集合Y,在不暴露X和Y的前提下能夠找到他們的交集。
第二步:算各自的模型,記住機(jī)構(gòu)A要做一部分的模型,機(jī)構(gòu)B要做另外一部分的模型。首先在機(jī)構(gòu)A先做第一步,把初始參數(shù)和每一個樣本做一下點(diǎn)積,把這個點(diǎn)積的結(jié)果加密,然后把它通過加密算法送給B。
第三步:B得到了這個包,不知道里面有什么,但它可以通過同態(tài)加密去更新對樣本的計(jì)算結(jié)果,得到結(jié)果以后和真值去比對,就會得到一個損失值,它會把 loss再加密反饋給A。
往往在這個情況下,如果有一個組織者(Coordinator),它會使程序簡化,所以 B也可以把這個結(jié)果直接給Coordinator。
第四步:Coordinator得到了這個結(jié)果以后,再加密這個結(jié)果,再加一些噪音,再分發(fā)給A和B,讓它們各自去更新自己的模型參數(shù),這就使得每一個參與方都不知道對方的數(shù)據(jù)和特征,同時它可以更新自己的參數(shù)。這個流程多次后,A和B的模型就逐漸形成了。
如果有一個新用戶過來,就可以通過Party A和Party B各自的參與,通過一個類似的流程來完成——這就是在縱向聯(lián)邦的前提下,特征不重疊、樣本重疊,互相不知道對方樣本的前提下,也能夠建模。
總結(jié):所謂橫向聯(lián)邦學(xué)習(xí),按橫向來切割數(shù)據(jù),更多的使用場景在于很多個終端和一個服務(wù)器的聯(lián)邦學(xué)習(xí)??v向聯(lián)邦學(xué)習(xí),按特征來切割數(shù)據(jù)。使用時,大家基本是在同一個位置或者Level,兩家公司之間的。
所以說左邊橫向聯(lián)邦比較適用于toC,右邊縱向聯(lián)邦對toB比較適用。
特別要說的是,在18年初的時候,我們在微眾銀行發(fā)現(xiàn),用戶隱私的保護(hù)是讓眾多數(shù)據(jù)擁有方合作時的一個挑戰(zhàn),如何在不同的銀行和機(jī)構(gòu)之間聯(lián)合建模,同時保護(hù)數(shù)據(jù)隱私?我們就發(fā)展出了toB的聯(lián)邦學(xué)習(xí)。
谷歌的相關(guān)研究團(tuán)隊(duì)在一直是在安卓系統(tǒng)團(tuán)隊(duì)下面,所以他們比較關(guān)心橫向聯(lián)邦學(xué)習(xí)?,F(xiàn)在美國和歐洲是橫向比較多,在我們國內(nèi)是縱向比較多。聯(lián)邦學(xué)習(xí)現(xiàn)在是雙頭發(fā)展。
因?yàn)榈谌接锌赡苄孤队脩綦[私,是可以(去掉)的,只不過要多加一些步驟,整體步驟變得比較冗長,但是可以做到,這里不再展開。
聯(lián)邦學(xué)習(xí)和區(qū)塊鏈其實(shí)不一樣,最重要的區(qū)別在于:聯(lián)邦學(xué)習(xí)是利用數(shù)據(jù)的價值,它的一個特點(diǎn)是數(shù)據(jù)不能夠被復(fù)制放到別的節(jié)點(diǎn)上。區(qū)塊鏈?zhǔn)且WC信息的透明和不能篡改性,所以要把數(shù)據(jù)復(fù)制到不同的節(jié)點(diǎn)上。雖然最終的目的都是在多方形成共識、形成聯(lián)合,但是他們確實(shí)有所不同。
從數(shù)學(xué)的角度,從計(jì)算機(jī)的角度來講,引入一個多方機(jī)制時,要問以下三個問題:
第一問,一致性?,F(xiàn)在有多方,那么我按照不同的次序來做事情,我得到的結(jié)果是不是一樣?我們希望是一樣的。對于數(shù)據(jù)庫來說,查詢結(jié)果一定要一樣。聯(lián)邦學(xué)習(xí)也是一樣的。
第二問,原子性。當(dāng)有一方掛了,大家是不是可以退到原來的狀態(tài)。
第三問,虎符性,就是安全性。這對聯(lián)邦學(xué)習(xí)是尤其重要的一個特性。但是區(qū)塊鏈和這種多方計(jì)算、安全計(jì)算,以及我們所說的模型計(jì)算和數(shù)據(jù)的這種合作卻無關(guān)。
剛才講到要么樣本有重疊,要么特征有重疊,但是如果兩者都沒有重疊,這個時候就要請出遷移學(xué)習(xí)。
遷移學(xué)習(xí)的思路是,假設(shè)兩個數(shù)據(jù)集的樣本和特征幾乎都沒有交集,我可以在他們的子空間里面找到有重疊的地方。怎么找?這就是通過同態(tài)加密和剛才所說的分布式交互機(jī)制。找到以后,就可以在子空間里面進(jìn)行橫向聯(lián)邦或者縱向聯(lián)邦了。
壞人是怎么混進(jìn)來的?比方說做OCR(手寫識別),我們讓計(jì)算機(jī)識別0。如果不做加密,我們沒有一個機(jī)制,這種所謂的對抗是可以做到的,壞人是可以通過參數(shù)或者一系列梯度的泄露可以反猜原始數(shù)據(jù)。
因此數(shù)學(xué)家們就琢磨各種辦法,來對壞人分類。
其中誠實(shí)(Honest)就是好人;半誠實(shí)(Honest-but-curious)就是好奇,但本身不壞。還有人是惡意的,想搞破壞,想得到用戶隱私,然后獲利。
對于不同的假設(shè),可以設(shè)計(jì)不同的聯(lián)邦學(xué)習(xí)算法和多方計(jì)算算法,還可以做零知識(Zero knowledge)和一些知識(Some knowledge)分類。服務(wù)器端也可以區(qū)分是不是惡意中心、惡意的數(shù)據(jù)節(jié)點(diǎn)和非惡意的數(shù)據(jù)節(jié)點(diǎn)。
比方說有一個手機(jī),專門想設(shè)計(jì)一些虛假的數(shù)據(jù),以此來控制整個服務(wù)器端的平均模型。怎么防止這個現(xiàn)象發(fā)生?這些問題在之后的系列公開課中會涉及,這些工作現(xiàn)在都是在進(jìn)行當(dāng)中的,大家可以去網(wǎng)上搜。
安全策略方面,有兩個特別的例子,大家在網(wǎng)上都可以找到。一個叫做模型攻擊,它通過對模型的參數(shù)動手腳來控制整個聯(lián)邦模型。還有一種是對數(shù)據(jù)攻擊,它參與到聯(lián)邦計(jì)算里面,使得它對聯(lián)邦模型的控制取得決定性的作用,這些都有文章和解決方案。
另外,怎么樣能夠持續(xù)鼓勵這些不同的數(shù)據(jù)擁有方,持續(xù)參與到聯(lián)邦建模里面來,使得每個人都不斷的獲得收益,同時使得集體的收益最大化?這是博弈論和經(jīng)濟(jì)學(xué)、模型應(yīng)該做的事情,也有很多工作在開展這方面的研究。
在推薦系統(tǒng)和聯(lián)邦學(xué)習(xí)的這種交集也可以產(chǎn)生,比方說兩個數(shù)據(jù)方,推薦電影和推薦圖書的,他們兩個在商業(yè)上可能沒有競爭,所以它們決定合作,但是又不想把隱私泄露給對方,他們就可以用以下的辦法來做聯(lián)邦學(xué)習(xí):
ABC不同的數(shù)據(jù)擁有方,可以通過矩陣分解的辦法,把每一方所擁有的用戶數(shù)據(jù)看成是一些子矩陣的乘積,用線性代數(shù)形成這樣一個子矩陣的乘積,這三個不同的用戶就分解成三個用戶的特征向量乘以一個圖書的特征向量的矩陣,這些向量的計(jì)算就是我們通過聯(lián)邦學(xué)習(xí)希望能夠計(jì)算出來的。具體到怎么計(jì)算,這里有一個算法,看上去比較新穎和復(fù)雜,可能會把大家搞暈。
簡單說一下大概做法:
每一個數(shù)據(jù)擁有方,首先對自己的數(shù)據(jù)進(jìn)行矩陣分解,然后再把里面的一部分參數(shù),比如剛才所說的圖書的本征向量進(jìn)行加密,運(yùn)到服務(wù)器端,就可以把這些不同的向量,通過橫向聯(lián)邦學(xué)習(xí)進(jìn)行同態(tài)平均起來,然后再把平均的更新值再分發(fā)給不同的用戶端。通過這樣的一個做法,就可以做到在 Federated Averageing的框架下,做到矩陣的更新。
現(xiàn)在我們也可以推廣到縱向推薦系統(tǒng),就是他們的用戶有很大重疊,但特征卻沒有重疊。微眾銀行現(xiàn)在推出了第一個用聯(lián)邦學(xué)習(xí)、聯(lián)邦推薦做的廣告系統(tǒng),所以叫做聯(lián)邦廣告。這個廣告系統(tǒng)可以不知道用戶的隱私,也可以不確切知道媒體的隱私。
因?yàn)槲覀兿M玫降氖谴髷?shù)據(jù),也就是說數(shù)據(jù)來自不同的角度,比方說對用戶貸款進(jìn)行風(fēng)險(xiǎn)管理,需要財(cái)務(wù)、輿情、司法、稅務(wù)、行政等等很多這樣的數(shù)據(jù),他們都是在不同的數(shù)據(jù)擁有方里面,我們希望是把它們形成一個聯(lián)邦的聯(lián)盟來共同建模。比如一個合作企業(yè)和一個銀行,這是縱向聯(lián)邦,因?yàn)橛脩粲凶銐虼蟮闹丿B,但是他們的特征卻不一樣,用剛才所說的那些算法做出來的效果,就提升了不少,在這里對應(yīng)的就是貸款不良率的大幅下降。
我們現(xiàn)在跟一個瑞士的再保險(xiǎn)公司就有深度的合作,所謂再保險(xiǎn)就是對保險(xiǎn)公司的保險(xiǎn),你可以想象在再保險(xiǎn)公司下面有一大堆保險(xiǎn)公司,這些保險(xiǎn)公司既是競爭又是合作的關(guān)系,它們之間的合作就需要用到聯(lián)邦學(xué)習(xí)。
可以通過縱向聯(lián)邦,也可以通過橫向聯(lián)邦,還可以通過縱向和橫向聯(lián)邦的某種結(jié)合,變成小范圍的橫向聯(lián)邦、大范圍的縱向聯(lián)邦。有各種各樣非常有趣的結(jié)構(gòu),也取得了非常好的效果。
假設(shè)不同的計(jì)算機(jī)圖像來自不同的公司,他們之間是有這種意愿去合作的。可以想象一個橫向聯(lián)邦學(xué)習(xí)系統(tǒng),因?yàn)樗麄兊膱D像樣本不一樣,但特征幾乎都是相同,都是像素,所以可以用在智慧制造、安防、城市這些領(lǐng)域,現(xiàn)在也正在應(yīng)用當(dāng)中。
以我們跟極視角的合作為例,他的一個業(yè)務(wù)是幫助建筑公司去監(jiān)控建筑工地的安全,這里有很多建筑公司本身的隱私,不想向其他的建筑公司去透露,但是他們每一家的數(shù)據(jù)又是有限的,通過聯(lián)邦學(xué)習(xí)能夠把總的模型建立起來分發(fā)給他們,能夠滿足他們安全施工的要求。
語音系統(tǒng)可能是來自不同的錄音,比方說有的是服務(wù)中心的錄音,有的是手機(jī)上的錄音,有的是別的公司的錄音,那么每一家的錄音可能都是不同的這個角度來觀察這些用戶。有沒有辦法把這些錄音給聚集起來,在不移動那些數(shù)據(jù)的前提下,建立一個總的模型,利用不同錄音、語言、數(shù)據(jù)集的錄音來訓(xùn)練我們的聯(lián)邦模型?
實(shí)驗(yàn)室環(huán)境里的無人車,得到的數(shù)據(jù)是有限的,但是假設(shè)滿大街的無人車,每一輛每時每刻都在獲取新的數(shù)據(jù)。有沒有辦法不暴露每個無人車上具體的數(shù)據(jù),同時把它聚集起來,能夠形成一個聯(lián)邦模型?具體做法是聯(lián)邦學(xué)習(xí)加上強(qiáng)化學(xué)習(xí),就是強(qiáng)化聯(lián)邦學(xué)習(xí)。
里面有很多倉庫的管理和監(jiān)控,就用到剛才所說的計(jì)算機(jī)視覺和聯(lián)邦學(xué)習(xí)的這種溝通。上下游的關(guān)系,庫存的預(yù)測,是供應(yīng)鏈里面的難題,也可以通過這種聯(lián)邦學(xué)習(xí)來更好地解決。
暢想一下,未來有了聯(lián)邦學(xué)習(xí)這樣的技術(shù),有了像GDPR還有用戶隱私這樣的監(jiān)管要求,五年十年以后,我們的社會會發(fā)展成為一種什么樣的形式?我也相信我們會到這樣的一個社會節(jié)點(diǎn)上,有很多的聯(lián)盟會形成,這就是生態(tài)。
有很多不同的公司自愿的組織起來,通過聯(lián)邦學(xué)習(xí),在沒有顧慮的前提下能夠自由合作,聯(lián)邦學(xué)習(xí)的激勵機(jī)制可以公平地讓這種生態(tài)不斷存活下去,越來越大,像雪球一樣地?cái)U(kuò)大。它可以防止數(shù)據(jù)壟斷,讓擁有小數(shù)據(jù)的公司也可以活下去——我們所說的人工智能的社會性,這是真正能做到Ethical AI的一項(xiàng)技術(shù)。
Federated Learning這個詞出現(xiàn)以后,我們就一直在想把這個詞翻譯成中文。我們考慮到,每一個數(shù)據(jù)擁有方就像一個“邦”,他們之間的關(guān)系,就像一個邦交。他們可能還有一個Coordinator,或者是他們共同有這么一個模型,大家在共同使用,這就像是大家所共有的一個服務(wù)方,就是一個“聯(lián)邦”。
同時我們也領(lǐng)頭建立了第一個IEEE標(biāo)準(zhǔn),這個標(biāo)準(zhǔn)的制定現(xiàn)在還沒完全結(jié)束,現(xiàn)在已經(jīng)進(jìn)入了最后關(guān)頭。有眾多的著名公司都參與到了這個標(biāo)準(zhǔn)里。當(dāng)這個標(biāo)準(zhǔn)出現(xiàn)了以后,就會是世界上第一個國際的聯(lián)邦學(xué)習(xí)標(biāo)準(zhǔn),大家以后通過聯(lián)邦學(xué)習(xí)合作的時候,就可以根據(jù)這個標(biāo)準(zhǔn)來進(jìn)行,有一個共同的語言來交互。同時我們也在積極推動國內(nèi)的各種標(biāo)準(zhǔn),包括團(tuán)體標(biāo)準(zhǔn)和國家標(biāo)準(zhǔn)。
假設(shè)我們做了一個聯(lián)邦學(xué)習(xí)平臺,用戶會對平臺的安全性有所疑慮,會擔(dān)心存在后門。最好的辦法是公開、開源,大家可以看到每一行代碼,可以放心去用。我們從一開始就認(rèn)為聯(lián)邦學(xué)習(xí)的技術(shù)推動,離不開開源。所以我們開源了世界上第一個關(guān)于聯(lián)邦學(xué)習(xí)的開源項(xiàng)目,被Linux foundation列為金牌項(xiàng)目,就是FATE系統(tǒng)。
這是一個工業(yè)級別的聯(lián)邦學(xué)習(xí),已經(jīng)支持我剛才所說的橫向聯(lián)邦、縱向聯(lián)邦、聯(lián)邦遷移學(xué)習(xí)、聯(lián)邦強(qiáng)化學(xué)習(xí)和聯(lián)盟推薦?,F(xiàn)在有新的版本支持異構(gòu)計(jì)算,支持各種各樣的聯(lián)邦學(xué)習(xí),并且我們跟VMWare深度合作、深度綁定,推出了一個系統(tǒng),叫做KubeFATE的系統(tǒng),幫助用戶更好地在Cloud上面進(jìn)行應(yīng)用。
聯(lián)邦學(xué)習(xí)還有什么值得研究?這里面還有太多事可以做了,比方說如何能夠做到安全合規(guī)、防御攻擊、提升算法效率、提升系統(tǒng)架構(gòu),如何做更多的技術(shù)應(yīng)用,做很好的聯(lián)盟機(jī)制、激勵機(jī)制去鼓勵大家。所以在各個方面我們只是開了個頭,后面還有大量的工作是需要做的。
問:聯(lián)邦學(xué)習(xí)和分布式機(jī)器學(xué)習(xí)最能區(qū)分的點(diǎn)是什么?
楊強(qiáng):首先是數(shù)據(jù)分布特點(diǎn)。分布式機(jī)器學(xué)習(xí)中數(shù)據(jù)一般被均勻(iid)的分布至各參與計(jì)算節(jié)點(diǎn),目標(biāo)是通過并行計(jì)算提升效率。聯(lián)邦學(xué)習(xí)中數(shù)據(jù)天然的存在于不同領(lǐng)域、機(jī)構(gòu)的數(shù)據(jù)孤島中,數(shù)據(jù)分布差異大,不均勻(Non-iid)。另外分布式學(xué)習(xí)更關(guān)注效率,往往在數(shù)據(jù)中心進(jìn)行,數(shù)據(jù)擁有方是同一個體。聯(lián)邦學(xué)習(xí)更關(guān)注安全,數(shù)據(jù)擁有方是多個個體。
問:現(xiàn)在有公司在做區(qū)塊鏈跟MPC(例如聯(lián)邦學(xué)習(xí),同態(tài)加密)的結(jié)合,您怎么看?
楊強(qiáng):區(qū)塊鏈與聯(lián)邦學(xué)習(xí)可以很好的結(jié)合互補(bǔ)。聯(lián)邦學(xué)習(xí)可以用區(qū)塊鏈的分布式記賬等功能實(shí)現(xiàn)參與各方價值互換和有效激勵,也可以用區(qū)塊鏈去中心化的屬性來實(shí)現(xiàn)參與聯(lián)邦學(xué)習(xí)計(jì)算的中心節(jié)點(diǎn)的替代。區(qū)塊鏈與聯(lián)邦學(xué)習(xí)不同, 區(qū)塊鏈把數(shù)據(jù)重復(fù)復(fù)制在各個節(jié)點(diǎn)實(shí)現(xiàn)共識機(jī)制,所有上鏈數(shù)據(jù)是公開的,而參與聯(lián)邦學(xué)習(xí)的各方數(shù)據(jù)不同且是私密的。
問:聯(lián)邦學(xué)習(xí)訓(xùn)練后的模型是一個公共的模型,而各個客戶端的數(shù)據(jù)經(jīng)常是Non-iid的,不知老師對此有何見解?
楊強(qiáng):(橫向)聯(lián)邦學(xué)習(xí)的效果提升主要來源于各方樣本量的聚合,訓(xùn)練的目標(biāo)是得到一個在所有參與方數(shù)據(jù)上都適用的有泛化能力的模型。各方數(shù)據(jù)分布Non-idd的情況可以通過聯(lián)邦學(xué)習(xí)加元學(xué)習(xí)、多任務(wù)學(xué)習(xí)來解決。
問:請問如何保證各個部分?jǐn)?shù)據(jù)的質(zhì)量?比如說醫(yī)療影像數(shù)據(jù)標(biāo)注的質(zhì)量參差不齊。
楊強(qiáng):在實(shí)際生產(chǎn)上,可以通過在各方節(jié)點(diǎn)上部署檢驗(yàn)機(jī)制的方法來為參與訓(xùn)練的樣本的數(shù)據(jù)質(zhì)量進(jìn)行閾值淘汰,也可以通過結(jié)合一些機(jī)器學(xué)習(xí)技術(shù),比如GAN,來模擬生成訓(xùn)練樣本進(jìn)行檢驗(yàn)。另外訓(xùn)練時多采用cross-validation等數(shù)據(jù)驗(yàn)證方法也可以有效控制數(shù)據(jù)質(zhì)量問題。
問:聯(lián)邦學(xué)習(xí)中,不同數(shù)據(jù)孤島在聯(lián)邦學(xué)習(xí)過程中是否有隱含權(quán)重(即算法模型中本身沒有設(shè)計(jì)權(quán)重,但實(shí)際學(xué)習(xí)中形成了不同權(quán)重),如何解決?
楊強(qiáng):聯(lián)邦學(xué)習(xí)算法本身按數(shù)據(jù)量的大小來分配權(quán)重,假設(shè)數(shù)據(jù)是分布均勻的。實(shí)際上,也可以通過分析數(shù)據(jù)源與目標(biāo)數(shù)據(jù)源的相似性等方法來設(shè)計(jì)權(quán)重。
問:FATE框架和Tensorflow Federated Framework框架各有什么優(yōu)缺點(diǎn)?
楊強(qiáng):FATE框架是第一個工業(yè)級FL框架,從業(yè)界應(yīng)用出發(fā),支持橫向、縱向和遷移聯(lián)邦學(xué)習(xí)等學(xué)習(xí)框架和各種安全計(jì)算組件。TensorflowTF目前只支持橫向聯(lián)邦,多適用于學(xué)術(shù)研究,相對簡潔,容易上手。
問:聯(lián)邦學(xué)習(xí)對RPA部署及數(shù)據(jù)中臺部署的影響?
楊強(qiáng):聯(lián)邦學(xué)習(xí)可以作為RPA中采用AI技術(shù)的一個組件。RPA多面臨非標(biāo)性、數(shù)據(jù)分隔等挑戰(zhàn),RPA部署系統(tǒng)可以通過聯(lián)邦學(xué)習(xí)的方式提高產(chǎn)品效果。
問:請問聯(lián)邦學(xué)習(xí)如何應(yīng)用到教育大數(shù)據(jù)領(lǐng)域?
楊強(qiáng):聯(lián)邦學(xué)習(xí)可以幫助實(shí)現(xiàn)定制化教育。教育機(jī)構(gòu)可以基于存儲在學(xué)生個人移動設(shè)備(如智能手機(jī)和筆記本電腦)中的數(shù)據(jù),協(xié)作地構(gòu)建一個通用學(xué)習(xí)計(jì)劃模型。在此模型基礎(chǔ)上,還可根據(jù)每一個學(xué)生的特長、需求、技能和興趣,構(gòu)建定制化、個性化的學(xué)習(xí)指導(dǎo)模型。
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)原創(chuàng)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。
本專題其他文章