策略產(chǎn)品經(jīng)理必讀系列—第六講聯(lián)邦學(xué)習(xí)篇

2 評(píng)論 7356 瀏覽 17 收藏 20 分鐘

編輯導(dǎo)語(yǔ):“聯(lián)邦學(xué)習(xí)”可以理解為多方學(xué)習(xí)或者說(shuō)共同學(xué)習(xí),這一概念也已經(jīng)在許多領(lǐng)域中應(yīng)用,那么作為策略產(chǎn)品經(jīng)理,你是否理解這一概念?這一概念又可以在哪些領(lǐng)域落地?本文作者進(jìn)行了總結(jié),一起來(lái)看一下。

前言

聯(lián)邦學(xué)習(xí)是近些年研究非常熱門(mén)的領(lǐng)域,目前在工業(yè)界很多領(lǐng)域已經(jīng)落地應(yīng)用了。本篇文章主要面向產(chǎn)品運(yùn)營(yíng)等非專(zhuān)業(yè)技術(shù)人士,通俗易懂地講解什么是聯(lián)邦學(xué)習(xí),主要解決什么問(wèn)題,以及在工業(yè)界的實(shí)際落地案例。

一、聯(lián)邦學(xué)習(xí)的發(fā)展歷程

提到聯(lián)邦(Federation),大家估計(jì)首先想到的就是英聯(lián)邦或者美聯(lián)邦,美國(guó)各個(gè)州組合在一起形成一個(gè)聯(lián)邦。聯(lián)邦學(xué)習(xí)( Federated Learning),字面直譯也就是多方參與,共同學(xué)習(xí)。

1. 最初的起源——橫向聯(lián)邦學(xué)習(xí)

聯(lián)邦學(xué)習(xí)最早是谷歌在2017.4月提出的,谷歌為此專(zhuān)門(mén)出了一個(gè)漫畫(huà)來(lái)解釋什么是聯(lián)邦學(xué)習(xí):https://zhuanlan.zhihu.com/p/101644082。

谷歌最開(kāi)始提出聯(lián)邦學(xué)習(xí)時(shí)是為了解決C端用戶(hù)終端設(shè)備上模型訓(xùn)練的問(wèn)題。C端用戶(hù)手機(jī)上的智能軟件提供服務(wù)時(shí)背后都得依靠模型,而模型的訓(xùn)練學(xué)習(xí)全部要基于用戶(hù)的數(shù)據(jù)。比如手機(jī)上的輸入法,基于不同人的打字拼音習(xí)慣,輸入法會(huì)不停更新會(huì)慢慢和每個(gè)人的打字習(xí)慣進(jìn)行匹配,用戶(hù)會(huì)覺(jué)得輸入法越來(lái)越智能。

那么過(guò)去這些手機(jī)輸入法是如何進(jìn)行模型訓(xùn)練的了?

過(guò)去的做法:將用戶(hù)每天產(chǎn)生的行為數(shù)據(jù)全部上傳至云端服務(wù)器,部署在服務(wù)器上的模型基于上傳的數(shù)據(jù)進(jìn)行訓(xùn)練,然后更新模型,最終實(shí)際應(yīng)用時(shí)本地需要請(qǐng)求云端服務(wù)。大致流程如下圖:

上述這種模型訓(xùn)練的方式,我們也叫做“集中式模型訓(xùn)練”,這種方式有兩個(gè)弊端:

  1. 無(wú)法保證用戶(hù)的數(shù)據(jù)隱私:服務(wù)商將用戶(hù)的數(shù)據(jù)全部采集到了服務(wù)器上進(jìn)行統(tǒng)一管理。這種方式在監(jiān)管對(duì)個(gè)人數(shù)據(jù)隱私管控越來(lái)越嚴(yán)的情況下,會(huì)越來(lái)越受限;
  2. 實(shí)時(shí)性難以保證:模型在應(yīng)用時(shí)需要通過(guò)網(wǎng)絡(luò)請(qǐng)求云端的模型,在網(wǎng)絡(luò)延遲或者沒(méi)有網(wǎng)絡(luò)的情況下,模型沒(méi)辦法發(fā)揮它的作用。

為了解決上述的弊端,谷歌提出了一種新的解決方案,并將它命名為“Federated Learning”。

總的來(lái)說(shuō)就是:用戶(hù)數(shù)據(jù)不出本地,所有模型的訓(xùn)練都是在設(shè)備本地進(jìn)行。本地模型訓(xùn)練完畢后將得到的模型參數(shù)or下降梯度,經(jīng)過(guò)加密上傳至云端,云端模型接收到所有上傳的加密參數(shù)or梯度后,結(jié)合所有的參數(shù)值進(jìn)行統(tǒng)一的聚合,比如通過(guò)加權(quán)平均得到新的模型參數(shù)or下降梯度,然后將新的結(jié)果再重新下發(fā)到本地,本地更新得到一個(gè)全新的模型。

這種方式我們又叫作“分布式模型訓(xùn)練”,大致的做法如下圖:

上述這種模型訓(xùn)練的方式有一個(gè)基本的要求:

本地模型-Local Model和云端模型- Global Model的特征必須一致:因?yàn)槲覀兪菂R總了無(wú)數(shù)本地模型的參數(shù),基于這些參數(shù)對(duì)云端模型進(jìn)行更新。如果這些模型的特征不一致,那么參數(shù)之間也沒(méi)有任何參考意義。

比如一個(gè)預(yù)測(cè)身高的模型,本地模型用“性別+年齡”特征,云端模型用“體重+膚色”特征,本地模型訓(xùn)練得到的模型參數(shù)上傳到云端,云端根本毫無(wú)參考價(jià)值。

所以上述這種聯(lián)邦學(xué)習(xí)我們又叫作“橫向聯(lián)邦學(xué)習(xí)”,模型之間使用的特征一致,只是使用的樣本數(shù)據(jù)不一樣。比如說(shuō)下圖本地模型使用的用戶(hù)特征都是一樣的,但是每個(gè)本地模型只能使用本地這一個(gè)用戶(hù)的數(shù)據(jù),無(wú)法使用其他用戶(hù)的數(shù)據(jù)進(jìn)行訓(xùn)練。

谷歌這種“分布式模型訓(xùn)練”的新模式一方面保護(hù)了用戶(hù)隱私,用戶(hù)數(shù)據(jù)不離開(kāi)本地;另一方面訓(xùn)練好的云端模型又下放到本地進(jìn)行應(yīng)用,這樣即使沒(méi)有網(wǎng)絡(luò)也可以使用。讀者可能還會(huì)對(duì)上述的聯(lián)邦學(xué)習(xí)方案存在以下幾個(gè)疑惑:

1)本地模型如何訓(xùn)練更新?很多時(shí)候我們的手機(jī)都處于閑置的狀態(tài),這個(gè)時(shí)候本地模型就可以開(kāi)始訓(xùn)練和上傳加密參數(shù);就像人體一樣,睡眠的時(shí)候長(zhǎng)高和做夢(mèng)來(lái)更新大腦的認(rèn)知系統(tǒng)。

2)模型部署本地會(huì)不會(huì)占據(jù)太多資源?很多時(shí)候我們?cè)谠贫朔?wù)器的模型都是幾個(gè)G,下放本地會(huì)不會(huì)很占資源。這種模型都是需要經(jīng)過(guò)壓縮和部分的特征刪減,確實(shí)特別大的模型無(wú)法下放本地。

3)上傳的數(shù)據(jù)可以是模型的特征參數(shù)或模型訓(xùn)練的下降梯度嘛?這二者均可,本身模型上的特征參數(shù)也是通過(guò)梯度下降法計(jì)算出來(lái)的,所以給下降梯度也是可以得到最終模型的特征參數(shù)。

4)上傳的數(shù)據(jù)為什么還要加密?加密的數(shù)據(jù)又如何使用?如果這些數(shù)據(jù)不進(jìn)行加密的話,有可能通過(guò)這些數(shù)據(jù)進(jìn)行反推導(dǎo),將原始數(shù)據(jù)推導(dǎo)出來(lái),當(dāng)然這個(gè)難度也很大,但為了保險(xiǎn)起見(jiàn)還是將所有的數(shù)據(jù)都進(jìn)行加密上傳。

云端得到的是一個(gè)加密數(shù)據(jù)包,基于加密狀態(tài)下的數(shù)據(jù)包云端模型即開(kāi)始更新計(jì)算,這里面有大量密碼學(xué)的知識(shí)在此不詳細(xì)展開(kāi),是一種“同態(tài)加密”的算法。整個(gè)計(jì)算過(guò)程中云端模型均不知道加密數(shù)據(jù)包里面的具體內(nèi)容。

2. B端的延伸——縱向聯(lián)邦學(xué)習(xí)

聯(lián)邦學(xué)習(xí)最開(kāi)始被谷歌提出時(shí)是為了解決C端用戶(hù)上傳數(shù)據(jù)隱私問(wèn)題。但是在實(shí)際工業(yè)界的問(wèn)題是B端企業(yè)之間的數(shù)據(jù)孤島問(wèn)題。比如京東和騰訊之間的合作。京東和騰訊之間的用戶(hù)肯定有絕大一部分是重疊的,京東有這部分用戶(hù)的電商數(shù)據(jù),騰訊有這部分用戶(hù)的社交數(shù)據(jù)。如果二者將彼此之間的數(shù)據(jù)共享,那么彼此各項(xiàng)模型上的效果都會(huì)有大幅提升,但是實(shí)際開(kāi)展時(shí)二者肯定不會(huì)共享彼此之間的數(shù)據(jù)。

那么我們?nèi)绾巫岆p方在不交換源數(shù)據(jù)的前提下,彼此提升各自模型的效果了?

谷歌的聯(lián)邦學(xué)習(xí)方案是“橫向“的,就像我們Part1.1里面說(shuō)的,本地模型和云端模型用的特征都是一樣的,模型的目標(biāo)也是一樣的。但是B端企業(yè)之間的模型目標(biāo)不一樣,特征也不一樣,就像京東和騰訊,二者的用戶(hù)存在重疊,但是場(chǎng)景不同,采集到的用戶(hù)特征也存在一定差異。這種情況下的聯(lián)邦學(xué)習(xí)方案我們叫做“縱向”。

比如京東&騰訊的用戶(hù)有ABCDE五個(gè)用戶(hù)是重疊的,騰訊有用戶(hù)的“性別”&“年齡”數(shù)據(jù),京東有“常住區(qū)域”、“消費(fèi)水平”&“購(gòu)物頻次”的數(shù)據(jù),二者結(jié)合起來(lái)可以使用樣本數(shù)據(jù)的所有特征建立一個(gè)效果更優(yōu)的模型??v向聯(lián)邦學(xué)習(xí)的研究是由香港科技大學(xué)計(jì)算機(jī)科學(xué)與工程學(xué)系主任,第一位華人國(guó)際人工智能協(xié)會(huì)(AAAI)院士&AAAI執(zhí)行委員會(huì)委員-楊強(qiáng)教授牽頭發(fā)起的。

楊強(qiáng)教授的整體縱向聯(lián)邦學(xué)習(xí)架構(gòu)分為以下幾個(gè)大的部分。

上圖是楊強(qiáng)教授縱向聯(lián)邦學(xué)習(xí)里面的架構(gòu),大家可以在眾多聯(lián)邦學(xué)習(xí)的文章中看到,整體還是比較抽象,我們以一個(gè)具體的案例來(lái)進(jìn)行講解。還是拿京東&騰訊合作的這個(gè)案例。

第一步:樣本對(duì)齊;騰訊和京東肯定都不會(huì)愿意暴露自己的原始數(shù)據(jù)。所以二者要在一起聯(lián)合建模,首先需要對(duì)齊二者重疊的樣本數(shù)據(jù);在不暴露原始數(shù)據(jù)的前提下,雙方如何對(duì)齊重疊的樣本數(shù)據(jù)了,其實(shí)就是對(duì)齊哪些用戶(hù)是共有的。這里同樣需要應(yīng)用到一種基于加密的用戶(hù)ID對(duì)齊技術(shù)。

第二步:標(biāo)簽統(tǒng)一;樣本對(duì)齊以后,因?yàn)檫@個(gè)場(chǎng)景下我們是結(jié)合騰訊的數(shù)據(jù)來(lái)訓(xùn)練京東的模型,所以整個(gè)訓(xùn)練過(guò)程中數(shù)據(jù)的標(biāo)簽即“是否點(diǎn)擊”Label由京東側(cè)管控。所有需要Label值參與的計(jì)算,都由京東側(cè)來(lái)完成,騰訊側(cè)不參與任何需要Label值的計(jì)算。

第三步:加密訓(xùn)練;最終要構(gòu)建的聯(lián)合模型是擁有X1-X5所有特征的,但是X1-X2特征數(shù)據(jù)在騰訊側(cè),X3-X5特征數(shù)據(jù)在京東側(cè),同時(shí)Label在京東側(cè)。所以在模型最開(kāi)始訓(xùn)練時(shí),兩邊模型各自使用自己有的特征和數(shù)據(jù),初始化自己的參數(shù)w,然后開(kāi)始計(jì)算。

整個(gè)訓(xùn)練我們需要引入一個(gè)第三方也就是“協(xié)作者C”,這里的“協(xié)作者C”,并不是說(shuō)要引入一家新的公司來(lái)參與到訓(xùn)練中,一個(gè)中間可以處理數(shù)據(jù)的地方即可?!皡f(xié)作者C”最開(kāi)始需要下發(fā)一個(gè)公鑰給到騰訊和京東,騰訊計(jì)算出來(lái)的中間結(jié)果經(jīng)過(guò)公鑰加密發(fā)給京東,京東也是如此。

然后彼此再計(jì)算各自的下降梯度,再進(jìn)行加密上傳給協(xié)作者C,這中間一般京東&騰訊都會(huì)加一些隨機(jī)數(shù)防止C直接獲取梯度信息,協(xié)作者C進(jìn)行解密后匯總雙方結(jié)果得到一個(gè)最終的梯度值然后再回傳給京東&騰訊,二者收到后減去最開(kāi)始加上的隨機(jī)數(shù)得到真實(shí)最終的梯度值,再更新模型的參數(shù)。

第四步:訓(xùn)練結(jié)束,聯(lián)合模型更新;步驟三重復(fù)循環(huán),直到最終模型收斂訓(xùn)練完畢,最終京東&騰訊側(cè)的模型參數(shù)都更新完畢,二者結(jié)合在一起就是一個(gè)聯(lián)合模型。后面京東側(cè)就使用該聯(lián)合模型來(lái)進(jìn)行線上應(yīng)用。后續(xù)有用戶(hù)來(lái)訪問(wèn)京東APP,如果該用戶(hù)在二者重疊的樣本中就訪問(wèn)聯(lián)合模型來(lái)從京東&騰訊兩側(cè)獲取加密數(shù)據(jù),最終給出預(yù)測(cè)結(jié)果。

3. 進(jìn)一步延伸——聯(lián)邦遷移學(xué)習(xí)

聯(lián)邦遷移學(xué)習(xí)其實(shí)就是將聯(lián)邦學(xué)習(xí)的思想和遷移學(xué)習(xí)的思想結(jié)合在了一起。橫向聯(lián)邦學(xué)習(xí)是特征一樣,樣本數(shù)據(jù)不一樣。縱向聯(lián)邦學(xué)習(xí)是樣本有重疊,但是特征不一樣。

實(shí)際工業(yè)界還會(huì)有一些情況就是特征不一樣,樣本數(shù)據(jù)還沒(méi)有重疊,這種情況下我們能不能聯(lián)合建模?

傳統(tǒng)的方式其實(shí)就是遷移學(xué)習(xí)了,將這些數(shù)據(jù)進(jìn)行升維或者降維,在子空間中可能會(huì)存在特征重疊或者用戶(hù)重疊。子空間中的交互就可以進(jìn)行遷移學(xué)習(xí)。那如何在遷移學(xué)習(xí)過(guò)程中保護(hù)各方的數(shù)據(jù)隱私,這時(shí)候引入聯(lián)邦學(xué)習(xí)的思想即可。

二、聯(lián)邦學(xué)習(xí)概述

上面介紹了聯(lián)邦學(xué)習(xí)的發(fā)展起源和各種分類(lèi),下面我們正式對(duì)于聯(lián)邦學(xué)習(xí)進(jìn)行一下定義。

1. 聯(lián)邦學(xué)習(xí)的定義

我們采用微眾銀行發(fā)布的《聯(lián)邦學(xué)習(xí)白皮書(shū)》里面的定義:

策略產(chǎn)品經(jīng)理必讀系列—第十一講通俗易懂講解聯(lián)邦學(xué)習(xí)

2. 聯(lián)邦學(xué)習(xí)的特征

通過(guò)我們總結(jié)一下聯(lián)邦學(xué)習(xí)的主要特征

  • 多方協(xié)作:有兩個(gè)或以上的聯(lián)邦學(xué)習(xí)參與方協(xié)作構(gòu)建一個(gè)共享的機(jī)器學(xué)習(xí)模型。每一個(gè)參與方都擁有若干能夠用來(lái)訓(xùn)練模型的訓(xùn)練數(shù)據(jù)。
  • 各方平等:聯(lián)邦學(xué)習(xí)的參與方各方之間都是平等的,并不存在高低貴賤。
  • 數(shù)據(jù)隱私保護(hù):在聯(lián)邦學(xué)習(xí)模型的訓(xùn)練過(guò)程中,每一個(gè)參與方擁有的數(shù)據(jù)都不會(huì)離開(kāi)該參與方,即數(shù)據(jù)不離開(kāi)數(shù)據(jù)擁有者。
  • 數(shù)據(jù)加密:聯(lián)邦學(xué)習(xí)模型相關(guān)的信息能夠以加密方式在各方之間進(jìn)行傳輸和交換,并且需要保證任何一個(gè)參與方都不能推測(cè)出其他方的原始數(shù)據(jù)。

3. 聯(lián)邦學(xué)習(xí)涉及到的學(xué)科

聯(lián)邦學(xué)習(xí)的框架中涉及到了各種各樣的學(xué)科,需要各個(gè)方面一起進(jìn)步進(jìn)而推動(dòng)聯(lián)邦學(xué)習(xí)的發(fā)展;

  • 基本的機(jī)器學(xué)習(xí)算法;
  • 分布式機(jī)器學(xué)習(xí);
  • 加密算法;
  • 模型壓縮;
  • 數(shù)據(jù)通信;
  • 經(jīng)濟(jì)學(xué)。

4. 聯(lián)邦學(xué)習(xí)的激勵(lì)機(jī)制

如何更好地激勵(lì)聯(lián)邦學(xué)習(xí)中作出重要貢獻(xiàn)的參與方?雖然參與的各方都是平等的,但是各方的貢獻(xiàn)是完全不一樣的。比如阿里和一些很小的互聯(lián)網(wǎng)公司合作一起建立一個(gè)聯(lián)邦學(xué)習(xí)模型,肯定阿里的用戶(hù)數(shù)據(jù)更加豐富和更有價(jià)值,如何去激勵(lì)這些在聯(lián)邦學(xué)習(xí)生態(tài)中做出更多貢獻(xiàn)的參與方,如何建立一種激勵(lì)機(jī)制,這也是聯(lián)邦學(xué)習(xí)未來(lái)重點(diǎn)研究的方向。

三、聯(lián)邦學(xué)習(xí)落地案例

聯(lián)邦學(xué)習(xí)目前在工業(yè)界落地最大的兩個(gè)領(lǐng)域就是廣告&金融風(fēng)控。

1. 廣告領(lǐng)域

互聯(lián)網(wǎng)企業(yè)中的RTB廣告,基于用戶(hù)的實(shí)時(shí)請(qǐng)求為用戶(hù)推薦他感興趣的商品,這里面的推薦模型就需要大量用到用戶(hù)的特征數(shù)據(jù)。

就像Part1.2中介紹的,很多互聯(lián)網(wǎng)企業(yè)只擁有用戶(hù)的一部分特征數(shù)據(jù),如果可以接入更多其他互聯(lián)網(wǎng)企業(yè)的數(shù)據(jù)或者是投放廣告主關(guān)于用戶(hù)的數(shù)據(jù),那么將大幅提升廣告推薦的效果,既能提升點(diǎn)擊率也可以提升廣告主的ROI;聯(lián)邦學(xué)習(xí)的出現(xiàn)就很好的解決了這個(gè)問(wèn)題。

2. 金融風(fēng)控領(lǐng)域

金融領(lǐng)域同樣如此,很多用戶(hù)在多家銀行擁有信貸記錄,甚至在一些互聯(lián)網(wǎng)金融機(jī)構(gòu)上擁有借貸記錄。單個(gè)金融機(jī)構(gòu)需要對(duì)該用戶(hù)做出全面客觀的資質(zhì)評(píng)判就需要結(jié)合用戶(hù)歷史所有的金融記錄才可以。

但是各大金融機(jī)構(gòu)之間除了央行統(tǒng)一管理的個(gè)人征信,其他數(shù)據(jù)之間彼此是不互通的,這些數(shù)據(jù)既是用戶(hù)的個(gè)人隱私也是銀行重要的資產(chǎn)。聯(lián)邦學(xué)習(xí)的出現(xiàn)同樣讓各大金融機(jī)構(gòu)之間可以聯(lián)合建模,對(duì)于用戶(hù)的資質(zhì)進(jìn)行全面客觀的評(píng)價(jià),降低貸款的違約率和資產(chǎn)的不良率。

四、橫向聯(lián)邦學(xué)習(xí)和邊緣計(jì)算的區(qū)別

有些小伙伴可能會(huì)把橫向聯(lián)邦學(xué)習(xí)和邊緣計(jì)算混淆,尤其是看了谷歌的這個(gè)漫畫(huà)以后,覺(jué)得橫向聯(lián)邦學(xué)習(xí)和邊緣計(jì)算有點(diǎn)像。

橫向聯(lián)邦學(xué)習(xí)的出現(xiàn)是為了解決數(shù)據(jù)隱私的問(wèn)題,將一些敏感數(shù)據(jù)在不離開(kāi)數(shù)據(jù)原有方的基礎(chǔ)上,讓模型在本地完成訓(xùn)練后,然后上傳加密的參數(shù)。而邊緣計(jì)算的本意是將計(jì)算能力部署在設(shè)備上,設(shè)備請(qǐng)求實(shí)時(shí)響應(yīng),減少云計(jì)算中的網(wǎng)絡(luò)延遲,這其中確實(shí)數(shù)據(jù)本身也不離開(kāi)本地也保護(hù)了數(shù)據(jù)隱私。

雖然二者有些交集但是出發(fā)點(diǎn)完全不一樣。橫向聯(lián)邦學(xué)習(xí)是為了保護(hù)用戶(hù)數(shù)據(jù)隱私,而邊緣計(jì)算是為了確保服務(wù)可以及時(shí)響應(yīng)降低減少云計(jì)算中的網(wǎng)絡(luò)延遲。

本文由 @King James 原創(chuàng)發(fā)布于人人都是產(chǎn)品經(jīng)理。未經(jīng)許可,禁止轉(zhuǎn)載。

題圖來(lái)自 Unsplash,基于 CC0 協(xié)議

該文觀點(diǎn)僅代表作者本人,人人都是產(chǎn)品經(jīng)理平臺(tái)僅提供信息存儲(chǔ)空間服務(wù)。

更多精彩內(nèi)容,請(qǐng)關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號(hào)或下載App
評(píng)論
評(píng)論請(qǐng)登錄
  1. 真不錯(cuò)!~

    來(lái)自北京 回復(fù)
    1. 祝你去大廠

      來(lái)自北京 回復(fù)