EFLS开源 | 阿里妈妈联邦学习解决方案详解
??項目背景
移動互聯(lián)網(wǎng)時代出于隱私保護(hù)和數(shù)據(jù)安全,APP 之間的開放與互聯(lián)越來越少,使大量的信息孤島逐漸形成,限制了信息技術(shù)更好地服務(wù)廣大用戶的能力。2016年 Google 提出了以保護(hù)終端隱私為前提的機器學(xué)習(xí)方法——聯(lián)邦學(xué)習(xí)[1]。為了將聯(lián)邦學(xué)習(xí)理論更好地引入到阿里媽媽業(yè)務(wù)場景,發(fā)揮其隱私保護(hù)和算法理論的優(yōu)勢,阿里媽媽算法工程團(tuán)隊?與?阿里媽媽大外投廣告算法團(tuán)隊?于近期開源了 Elastic-Federated-Learning-Solution(彈性聯(lián)邦學(xué)習(xí)解決方案,以下簡稱 EFLS)項目。該項目經(jīng)過阿里媽媽外投廣告業(yè)務(wù)與業(yè)界多個合作方深入大規(guī)模實踐,旨在沉淀歸納出聯(lián)邦學(xué)習(xí)場景下通用的解決方案及算法實踐經(jīng)驗,希望未來可以對搜推廣業(yè)務(wù)在大規(guī)模稀疏場景下的聯(lián)邦學(xué)習(xí)應(yīng)用產(chǎn)生參考價值和加速作用。
本文將對 EFLS 項目的業(yè)務(wù)價值、核心功能以及關(guān)鍵實現(xiàn)做簡要介紹,希望給從事相關(guān)工作的同學(xué)帶來一點啟發(fā)和幫助,歡迎試用及交流討論。
GitHub地址:
https://github.com/alibaba/Elastic-Federated-Learning-Solution
??業(yè)務(wù)應(yīng)用
業(yè)務(wù)背景
目前聯(lián)邦學(xué)習(xí)技術(shù)已經(jīng)在金融領(lǐng)域大規(guī)模應(yīng)用,在廣告搜索推薦這種大規(guī)模稀疏場景領(lǐng)域的應(yīng)用和研究尚處于發(fā)展初期。作為 EFLS 的誕生地,阿里媽媽大外投業(yè)務(wù)具有如下特點:
伴隨著外部媒體短視頻流量異軍突起,商家有從媒體引流電商的需求,而商家在媒體直投存在后鏈路效果分析成本高、無法同時在多個媒體投放的問題。阿里媽媽大外投能夠建立統(tǒng)一的外投能力,服務(wù)商家一鍵投放多個媒體,同時在商家營銷服務(wù)上可以提供強大的營銷效果分析能力解決商家在外部媒體投放的痛點。
不同于淘內(nèi)廣告建模中我們能獲取豐富的前鏈路行為,我們在外投廣告中對用戶在媒體端的前鏈路行為一無所知。由于企業(yè)數(shù)據(jù)互為商業(yè)機密,媒體不能共享用戶的內(nèi)容偏好,而我們也不能透出用戶的電商偏好,外投廣告系統(tǒng)無法像內(nèi)投場景能夠形成數(shù)據(jù)閉環(huán)進(jìn)行全鏈路優(yōu)化。
為了更好的服務(wù)商家,媒體和阿里媽媽都有通過個性化建模提升商家roi的效果優(yōu)化訴求,伴隨著越來越強的隱私監(jiān)管,雙方的合作必須在更加合規(guī)的隱私保護(hù)的前提下進(jìn)行。
應(yīng)用方案
如上圖所示(圖中術(shù)語釋義請見附錄2),阿里媽媽大外投業(yè)務(wù)的在線廣告投放階段,媒體方和電商方會在雙方嚴(yán)格保護(hù)其各自用戶隱私的前提下,基于聯(lián)邦學(xué)習(xí)訓(xùn)練的點擊轉(zhuǎn)化率預(yù)估模型和ocpx機制為用戶推薦感興趣的廣告,以保證用戶體驗和商家的廣告投放效果。用戶根據(jù)興趣點擊后,將跳轉(zhuǎn)到電商平臺,電商側(cè)會存有商品特征、用戶歷史特征以及本次點擊收藏加購成交等信息。由于隱私數(shù)據(jù)不能泄漏,從媒體方的廣告推薦到電商方的收藏加購整個過程將被使用 instance_id 進(jìn)行標(biāo)識。在離線訓(xùn)練階段,媒體方與電商方將先通過在線模型產(chǎn)生的 log 結(jié)合 instance_id、加密設(shè)備id、廣告id 等生成樣本數(shù)據(jù),隨后雙方將采用樣本集合求交,通過加密傳遞instance_id等標(biāo)簽的方式,將樣本數(shù)據(jù)對齊。樣本數(shù)據(jù)對齊后,媒體方與電商方將采用對齊的樣本數(shù)據(jù),同時進(jìn)行模型訓(xùn)練。在訓(xùn)練過程中,有 label 的電商一方作為主導(dǎo)方,協(xié)同方媒體方會將一個訓(xùn)練的中間結(jié)果經(jīng)過隱私加密之后發(fā)送給主導(dǎo)方,主導(dǎo)方在計算反向的梯度之后,將協(xié)同方發(fā)送來的中間結(jié)果對應(yīng)的梯度經(jīng)過加密后發(fā)送給協(xié)同方,完成訓(xùn)練迭代。從而實現(xiàn)在不共享隱私數(shù)據(jù)的情況下,同時進(jìn)行媒體方與電商方的模型訓(xùn)練。
業(yè)務(wù)價值
依托于 EFLS,阿里媽媽 Unidesk 產(chǎn)品已助力珀萊雅、卡姿蘭、薇諾娜、花西子、修正等多個企業(yè)實現(xiàn)品牌和業(yè)務(wù)雙豐收。其中一些合作品牌在2個月時間內(nèi)獲得品牌 ROI 15% 的提升,經(jīng)營效果提升明顯,且放量也在逐步提高。
EFLS 希望能夠為隱私計算領(lǐng)域貢獻(xiàn)一份力量,在如今人們越來越注重隱私保護(hù)的大背景下,構(gòu)成在搜推廣的大規(guī)模稀疏場景下高效隱私計算的完整解決方案。接下來將重點介紹我們從業(yè)務(wù)中抽象和開源出來的 EFLS 的架構(gòu)與核心功能。
??項目架構(gòu)與核心功能
常用的聯(lián)邦學(xué)習(xí)主要有縱向聯(lián)邦學(xué)習(xí)和橫向聯(lián)邦學(xué)習(xí)兩種。當(dāng)兩個數(shù)據(jù)集的用戶特征重疊較多,而用戶重疊較少時,一般采用橫向聯(lián)邦學(xué)習(xí),把數(shù)據(jù)集按照橫向(即用戶維度)切分,并取出雙方用戶特征相同而用戶不完全相同的部分?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練。當(dāng)兩個數(shù)據(jù)集的用戶重疊較多而用戶特征重疊較少時,一般采用縱向聯(lián)邦學(xué)習(xí)把數(shù)據(jù)集按照縱向(即特征維度)切分,并取出雙方用戶相同而用戶特征不完全相同的那部分?jǐn)?shù)據(jù)進(jìn)行訓(xùn)練。[2]
EFLS v0.1 版本主要針對于兩方縱向聯(lián)邦學(xué)習(xí)場景,即支持兩個合作方在特征維度拓展樣本,并進(jìn)行聯(lián)合訓(xùn)練。在系統(tǒng)部分包含三個主要模塊:EFLS-Data(樣本集合求交)、EFLS-Train(聯(lián)邦聯(lián)合訓(xùn)練)以及 EFLS-Console(產(chǎn)品控制臺),在 EFLS-Algo 聯(lián)邦學(xué)習(xí)算法包部分提供了兩種在聯(lián)邦場景較為有效的算法模型。EFLS 的使用者可以在此基礎(chǔ)上根據(jù)自身情況自行生成樣本并選擇存儲方式,根據(jù)需要使用或者設(shè)計聯(lián)邦學(xué)習(xí)算法,并采用提供的 Web 控制臺管理與合作方的連接關(guān)系,并維護(hù)己方的樣本集合求交任務(wù)和聯(lián)邦聯(lián)合訓(xùn)練任務(wù)。
目前開源項目的核心功能主要有:
基于workflow的抽象開發(fā)的可視化web界面,便于進(jìn)行用戶、任務(wù)、數(shù)據(jù)和權(quán)限的管控,縮短開發(fā)周期。
基于Flink on K8S[4][5]云原生實現(xiàn)方案的樣本集合求交方案,方便資源按需調(diào)度和水平擴展,最大能夠支持百億規(guī)模樣本數(shù)據(jù)求交。
輕型的樣本求交客戶端方案,適用于服務(wù)端搭建好后,快速測試Flink on K8S集群公網(wǎng)連通情況,以及數(shù)據(jù)量小的客戶端在不配置Flink環(huán)境的情況下快速部署與服務(wù)端進(jìn)行樣本集合求交任務(wù)。
采用簡化協(xié)議、全C++通信實現(xiàn)的聯(lián)邦聯(lián)合訓(xùn)練框架,盡可能的提升訓(xùn)練性能。并實現(xiàn)了更精細(xì)的數(shù)據(jù)狀態(tài)恢復(fù)與模型加載校驗機制,能夠保證任務(wù)恢復(fù)的模型一致性與數(shù)據(jù)的零損失。
針對縱向聯(lián)邦場景,業(yè)內(nèi)首次開源了基于水平聚合的聯(lián)邦學(xué)習(xí)方法和基于層次聚合的聯(lián)邦學(xué)習(xí)方法兩種算法模型,通過設(shè)計更高效的特征融合方法,充分發(fā)揮聯(lián)邦框架的算法能力。
??技術(shù)詳解
整個系統(tǒng)架構(gòu)從業(yè)務(wù)處理流程角度分為三個模塊: Data Store(樣本生成與存儲)、EFLS-Data(樣本集合求交)和EFLS-Train(聯(lián)邦聯(lián)合訓(xùn)練)。三個模塊基于云上基礎(chǔ)設(shè)施(OSS等)進(jìn)行數(shù)據(jù)讀取與存儲,采用開源框架(Flink)實現(xiàn)分布式處理,整體運行在Kubernetes上。為方便用戶使用,采用WebConsole對接K8S服務(wù)接口,實現(xiàn)用戶管理,數(shù)據(jù)、模型和作業(yè)的可視化管控。
樣本集合求交
樣本生成后,需要將樣本根據(jù)標(biāo)簽求交對齊后,才能用于模型訓(xùn)練。
常規(guī)的流程分為樣本分桶、對應(yīng)桶樣本求交和結(jié)果檢驗三步:
當(dāng)求交任務(wù)到達(dá)時,常駐的Master會按需調(diào)度資源。在樣本分桶流程中,Master調(diào)出n個worker,并行讀入樣本,將每個樣本根據(jù)其哈希值分入到m個桶中。
整個樣本集合求交任務(wù)被分治為了相應(yīng)桶之間的樣本集合求交任務(wù)。Master再次調(diào)度出m個worker,客戶端第i個桶的worker與服務(wù)端第i個桶的worker進(jìn)行連接并采取gRPC遠(yuǎn)程通信求交。
求交完成后,客戶端與服務(wù)端分別計算各自求交結(jié)果的checksum值,并通過gRPC通信傳輸進(jìn)行比較。
另外在一些業(yè)務(wù)場景中,可能需要使用諸如用戶昵稱等敏感字段作為關(guān)聯(lián)鍵進(jìn)行樣本集合求交,為避免此類隱私字段泄漏給聯(lián)邦合作方,EFLS支持了經(jīng)典的 Blind RSA-based PSI 協(xié)議[3],即在gRPC數(shù)據(jù)傳輸前通過RSA加密等秘鑰方法,使得集合求交過程中聯(lián)邦雙方不能獲悉對方的原始信息。
聯(lián)邦模型訓(xùn)練
對于一個傳統(tǒng)的深度學(xué)習(xí)模型來說,訓(xùn)練方持有全部的訓(xùn)練所需要的特征和模型,可獨自完成前后向計算、更新梯度完成一次訓(xùn)練迭代。而在縱向聯(lián)邦學(xué)習(xí)的場景下,訓(xùn)練所需要的數(shù)據(jù)特征和模型分別由兩個聯(lián)邦計算方持有,不對對方泄露。在訓(xùn)練過程中協(xié)同方會將一個訓(xùn)練的中間結(jié)果經(jīng)過隱私加密之后發(fā)送給主導(dǎo)方,主導(dǎo)方在計算反向的梯度之后,除了更新本方的參數(shù),還需將協(xié)同方發(fā)送來的中間結(jié)果對應(yīng)的梯度經(jīng)過加密后發(fā)送給協(xié)同方,協(xié)同方使用該梯度進(jìn)行自身的參數(shù)更新。
EFLS-Train 基于社區(qū) Tensorflow1.15 版本開發(fā),通過擴展的方式實現(xiàn)了一套完整的聯(lián)邦學(xué)習(xí)訓(xùn)練方案。整個訓(xùn)練框架主要包括數(shù)據(jù)協(xié)同(聯(lián)邦Dataset),安全通信層(gRPC),隱私加密(保護(hù)前后向交互數(shù)據(jù))和高層訓(xùn)練API幾個部分。在保證數(shù)據(jù)安全的基礎(chǔ)上,我們還著重考慮了聯(lián)邦訓(xùn)練的性能和穩(wěn)定性,在數(shù)據(jù)交互協(xié)議、通信層和分布式容災(zāi)等方面進(jìn)行了多項優(yōu)化,保證聯(lián)邦訓(xùn)練任務(wù)能夠高效穩(wěn)定的運行。
EFLS-Train 各核心模塊的主要功能如下:
數(shù)據(jù)協(xié)同:提供一套標(biāo)準(zhǔn)的聯(lián)邦Dataset接口,封裝主從雙方的數(shù)據(jù)讀取及協(xié)同邏輯,保證雙方訓(xùn)練樣本的一致性。通過記錄樣本讀取進(jìn)度,在發(fā)生錯誤的情況下,訓(xùn)練任務(wù)能夠以最小的代價恢復(fù)到最近的狀態(tài)。
安全通信層:負(fù)責(zé)兩個聯(lián)邦計算方之間的通信,核心部分采用C++實現(xiàn),通過gRPC的SSL接口保證了通信安全。
隱私加密模塊:同時支持對前向數(shù)據(jù)和后向梯度進(jìn)行加密保護(hù),其中差分隱私加密方案允許用戶自定義加密程度,可以靈活的在安全和性能兩個方面進(jìn)行取舍
聯(lián)邦訓(xùn)練API:提供了類似Keras的高層API封裝,盡可能對用戶屏蔽了聯(lián)邦訓(xùn)練和普通訓(xùn)練的實現(xiàn)差異,讓用戶更容易上手使用。
聯(lián)邦算法創(chuàng)新
在外投廣告場景中,融合電商側(cè)和媒體側(cè)各自的特征優(yōu)勢,將媒體側(cè)學(xué)習(xí)到的用戶興趣引入到電商側(cè)模型中,可以充分發(fā)揮雙方特征優(yōu)勢來提升電商側(cè)模型預(yù)估效果。雙方的用戶原始數(shù)據(jù)出于保護(hù)用戶隱私的目的不能互傳。因此,在互不透出自身原始數(shù)據(jù)的情況下,我們希望利用媒體側(cè)學(xué)習(xí)到的特征表示來媒體側(cè)包含用戶豐富的媒體側(cè)特征,包括媒體興趣標(biāo)簽、轉(zhuǎn)發(fā)/點贊等社交行為,電商側(cè)包括用戶購買興趣、電商行為等。如果能夠提升電商側(cè)模型預(yù)估能力,聯(lián)邦學(xué)習(xí)為這一訴求提供了解決方案,媒體側(cè)發(fā)送其模型學(xué)習(xí)到的能夠反映用戶在媒體側(cè)偏好的低維特征向量(而非原始特征)到電商側(cè),電商側(cè)融合該特征向量后給出預(yù)估結(jié)果,并將梯度發(fā)送給媒體側(cè)來更新特征表示。在這個過程中,每一方僅擁有自身的用戶原始數(shù)據(jù)和模型參數(shù),而不能獲取對方的信息。
我們將電商特征和媒體特征融合問題定義為 Cross Domain 預(yù)估問題。一種直接的方法是將媒體側(cè)發(fā)送過來的特征向量拼接到電商側(cè)特征向量的方式進(jìn)行整合,該方法顯然難以充分挖掘雙方特征的潛力。EFLS針對縱向聯(lián)邦場景,業(yè)內(nèi)首次開源了兩種算法模型,通過設(shè)計更高效的特征融合方法,充分發(fā)揮聯(lián)邦框架的算法能力。
基于水平聚合的聯(lián)邦學(xué)習(xí)方法: 傳統(tǒng)的縱向聯(lián)邦通常將媒體側(cè)和廣告主側(cè)特征簡單進(jìn)行拼接,該方法難以充分挖掘雙方特征潛力。我們提出基于注意力機制的方法,將媒體側(cè)發(fā)送過來的特征向量與電商側(cè)模型的特征 進(jìn)行融合。注意力機制,是一種能讓模型對重要信息重點關(guān)注并充分學(xué)習(xí)吸收的方法。我們將電商側(cè)用戶、廣告、場景 Embedding ,與媒體側(cè)發(fā)送過來的特征向量通過多層感知機方式計算注意力權(quán)重,然后加權(quán)求和計算得到基于注意力的融合特征向量。通過上述水平融合方式,我們能夠直接令模型從 low-level 部分就開始吸收媒體特征,進(jìn)而充分融合來給出預(yù)估結(jié)果。
基于層次聚合的聯(lián)邦學(xué)習(xí)方法:為進(jìn)一步吸收媒體側(cè)模型的表征,我們提出基于層次表示自動聚合的聯(lián)邦學(xué)習(xí)(AutoHERI)[7]方法。將媒體側(cè)特征向量層次化地聚合連接到電商側(cè)預(yù)估模型的中間層,以提升模型的特征學(xué)習(xí)能力。由于聚合連接的組合方式隨著網(wǎng)絡(luò)層數(shù)增長而指數(shù)級增加,我們通過神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索技術(shù),自動搜索最優(yōu)的連接組合,使電商側(cè)模型學(xué)習(xí)到有效的特征聚合模式,整合不同域空間信息。通過高維空間融合方式,我們能夠從模型 high-level 部分自動學(xué)習(xí)特征聚合,進(jìn)而通過利用更豐富的媒體側(cè)特征向量來給出更好的預(yù)估結(jié)果。
產(chǎn)品控制臺
聯(lián)邦學(xué)習(xí)過程中有多方參與,流程相對復(fù)雜,因此對隱私和權(quán)限管控要求較高,需要參與方頻繁協(xié)調(diào)。因此為了降低用戶使用成本,我們設(shè)計了一套聯(lián)邦學(xué)過程的抽象,在此基礎(chǔ)上開發(fā)了Web產(chǎn)品控制臺,支持使用者可視化地進(jìn)行用戶、任務(wù)、數(shù)據(jù)和權(quán)限的管控,提升聯(lián)邦學(xué)習(xí)樣本模型實驗的迭代效率,縮短開發(fā)周期。
??未來規(guī)劃
接下來 EFLS 計劃在系統(tǒng)功能方面支持可擴展性更強的多方聯(lián)邦能力、自動彈性伸縮能力以及面向高效隱私加密的性能優(yōu)化,同時在算法方面將考慮通過多方聯(lián)邦、聯(lián)邦圖學(xué)習(xí)等算法創(chuàng)新挖掘多場景異質(zhì)數(shù)據(jù)源中蘊含的知識,并嘗試圖學(xué)習(xí)與加密算法高效融合的方法,確保在數(shù)據(jù)安全用戶隱私保護(hù)前提下,建立適用于搜推廣的召回、精排等模塊的預(yù)訓(xùn)練模型,探索研究針對樣本不足情況下,進(jìn)一步加強預(yù)訓(xùn)練階段對于外投廣告投放場景的感知能力。
附錄1:參考文獻(xiàn)
[1] McMahan H B, Moore E, Ramage D, et al. Communication-efficient learning of deep networks from decentralized data[C]// International Conference on Artificial Intelligence, 2017, 20(22): 1273-1282.
[2] Yang Q, Liu Y, Chen T, et al. Federated machine learning: Concept and applications[J]. ACM Transactions on Intelligent Systems and Technology (TIST), 2019, 10(2): 1-19.
[3] De Cristofaro E, Tsudik G. Practical Private Set Intersection Protocols with Linear Computational and Bandwidth Complexity[J]. IACR Cryptol. ePrint Arch., 2009, 2009: 491.
[4] flink官網(wǎng):https://ci.apache.org/projects/flink/flink-docs-release-1.13/
[5] Kubernetes官網(wǎng):https://kubernetes.io/docs/home/
[6] Dwork C. Differential privacy: A survey of results[C]// International Conference on Theory and Applications of Models of Computation. 2008: 1-19.
[7] Penghui Wei, Weimin Zhang, Zixuan Xu, Shaoguo Liu, Kuang-chih Lee, Bo Zheng. AutoHERI:Automated Hierarchical Representation Integration for Post-Click Conversion Rate Estimation. In Proc. of CIKM 2021 : The 30th ACM International Conference on Information and Knowledge Management. Virtual Event, QLD, Australia, November 1–5, 2021.
附錄2:術(shù)語釋義
ecpm:expected cost per mile,預(yù)估千次曝光成本
ecpc:expected cost per click,預(yù)估點擊成本
ctr: click through rate 點擊率
cvr:conversion rate 轉(zhuǎn)化率
bid:轉(zhuǎn)化出價
func:ocpx調(diào)價因子,調(diào)控廣告轉(zhuǎn)化成本
uid:加密的用戶id
adid:廣告id
instance_id:樣本唯一標(biāo)識
embedding:聯(lián)邦學(xué)習(xí)模型訓(xùn)練和交換的加密向量
關(guān)于我們
阿里媽媽算法工程團(tuán)隊?致力于打造面向搜推廣場景的業(yè)界領(lǐng)先的深度學(xué)習(xí)平臺,承擔(dān)著超大規(guī)模特征樣本工程、稀疏與多媒體模型訓(xùn)練及其高性能異構(gòu)計算加速、以及前沿算法領(lǐng)域全鏈路解決方案等關(guān)鍵職責(zé)。
歡迎有深度學(xué)習(xí)系統(tǒng)工程背景的同學(xué)加入。
阿里媽媽大外投廣告算法團(tuán)隊?是阿里集團(tuán)媒體推廣核心團(tuán)隊,依托于集團(tuán)龐大而真實的營銷場景,以AI技術(shù)驅(qū)動實現(xiàn)客戶商品營銷,并承擔(dān)集團(tuán)App用戶增長等業(yè)務(wù)需求。我們持續(xù)探索人工智能,聯(lián)邦學(xué)習(xí),深度學(xué)習(xí),強化學(xué)習(xí),知識圖譜,圖學(xué)習(xí)等前沿技術(shù)在外投廣告和用增方面的落地應(yīng)用。在創(chuàng)造業(yè)務(wù)價值的同時,團(tuán)隊近1年也在CIKM、SIGIR、KDD等領(lǐng)域知名會議上發(fā)表過多篇論文,熱忱歡迎對廣告算法,推薦系統(tǒng),NLP等方向感興趣的同學(xué)加入我們。
投遞簡歷郵箱:alimama_tech@service.alibaba.com
END
歡迎關(guān)注「阿里媽媽技術(shù)」
瘋狂暗示↓↓↓↓↓↓↓
總結(jié)
以上是生活随笔為你收集整理的EFLS开源 | 阿里妈妈联邦学习解决方案详解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【阿里妈妈数据科学系列】第五篇:实验指标
- 下一篇: CurvLearn开源 | 阿里妈妈曲率