京東超大規模聯邦學習探索實踐

**導讀:**對於 AI 飛速發展的今天來說,大規模的多維度、高質量的數據是其成功的關鍵要素,也是制約其進一步發展的重要瓶頸。隨着大家對數據的重要性與隱私性的認知程度的不斷提升,跨組織的數據的合作越來越謹慎,相關隱私法律法規也陸續出臺 (GDPR),這樣就造成了大量了的數據孤島,無法充分的利用數據進行分析、決策,嚴重製約了 AI 的發展。聯邦學習在保證數據隱私安全及合法合規的基礎上,打破數據孤島,實現共同建模,共創共贏,將成爲未來 AI 發展的一個重要方向,9N-FL 作爲聯邦學習的整體開源解決方案,也會在未來發揮越來越大的作用。

本文將通過了解聯邦學習的原理以及解決方案 9N-FL,並且結合本公司的業務,進行應用,爲大分享如何開闢新的業務模式與增長點。

01

背景

基於數據孤島的考量而提出聯邦學習,數據孤島的產生有以下兩方面的原因:

上述都限制了數據的流動,造成了大量信息孤島。如右圖所示,主要有兩種方式造成信息孤島:第一是企業獲得用戶信息越來越難;第二是企業之間數據不共享。

02

聯邦學習概述

1. 聯邦學習概述

信息孤島的解決方案是聯邦學習。2016 年,谷歌提出在安卓手機用戶中進行聯邦學習,解決個人用戶數據在終端上的隱私問題,它可以不上傳用戶隱私數據,在終端上進行模型訓練。後續衆多業內研究機構和組織對聯邦學習投入了極大的熱情,研究了更加安全、使用範圍更廣的聯邦學習機制,將聯邦學習應用到更加廣闊的領域。

聯邦學習的本質是基於數據隱私保護的一種分佈式機器學習技術或機器學習框架。聯邦學習的目標是在保證數據隱私安全及合法合規的基礎上,在模型無損的前提實現共同建模,提升 AI 模型的效果。

2. 聯邦學習的特徵

聯邦學習框架有以下四個特徵:

3. 聯邦學習的分類

聯邦學習主要分爲三大類:橫向聯邦學習、縱向聯邦學習、聯邦遷移學習,聯邦遷移學習用的稍微少一些。

9N-FL 主要解決的是縱向聯邦學習的問題。

4. 聯邦學習的架構

如圖是聯邦學習的架構,主要簡單介紹了橫向聯邦學習架構和縱向聯邦學習架構。

03

京東開源聯邦學習解決方案 - 9NFL

1. 9N-FL 總體架構

項目背景:我們部門主要是做廣告營銷,在京東站外的一些營銷場景中有很多用戶,對於我們來說我們並不認識,比如在抖音、快手這些渠道投放廣告的時候,這個用戶我們不認識,但我們又想給他都放廣告,對於頭條和快手來說,他們不可能把用戶的原始數據給我們。我們就想了一個辦法,可以做一下聯邦學習,這樣對於我們不認識的用戶,也可以去進行廣告競拍。

項目大概是在 2019 年 11 月份進行的開發,2020 上半年進行了正式的上線,並且在 2020 年 9 月份完成了正式的對外開源。9N-FL 平臺主要包含以下幾個重要的部分:

主要創新點:

取得的成績:自上線以來,九數聯邦學習平臺(9N-FL)在取得了較好業務成績的同時,也經受住了業務大數據、大算力的考驗。在與媒體進行京東廣告投放業務場景中,基於媒體側大量的數據(例如,媒體興趣標籤)、京東側大量的用戶商業興趣及商品標籤數據,雙方使用聯邦學習平臺聯合建模,來優化廣告的觸發召回、CTR/CVR 模型等多個模塊,最終成功上線,取得了大概 15% 的收入提升。

2. 9N-FL 項目時間軸

這個是 9N-FL 的一個時間軸,2017 和 2018 年做聯邦學習的比較多,像微衆銀行、騰訊、百度、阿里,它們相對來說比較早。京東是在 2019 年 11 月正式開始進行聯邦學習平臺的開發,當時是基於業務爲出發點進行開發;在 2020 年 4 月份,完成了平臺的開發落地,雙方開始聯合建模;在 2020 年中做出了業務效果,並且進行了上線。在 2020 年 9 月,進行了平臺的開源,在 github 上搜 9N-FL 就可以搜到。

3. 京東開源聯邦學習解決方案 9N-FL

對於聯邦學習來說,它是一個全新的多交叉的領域知識,主要需要以下幾個方面的能力:

聯邦學習是一個跨多個領域的技術,它包含了大數據、實時計算、雲平臺、機器學習、深度學習、高併發架構、密碼學等方面的一些知識,整體要求比較高。

4. 9N-FL 具體工作

具體工作分爲以下幾個方面:

5. 9N-FL 聯邦學習模型

整體架構圖中公司 A 和公司 B 的數據是無法打通的,其實這就是一個超大規模的樣本匹配工作,爲下一步建模做準備。在傳統的聯邦學習過程中,一條樣本就是一個完整的輸入,中間可能會進行拆圖,沒有在最開始的輸入過程中拆,只是在中間的某一步進行了拆圖。但是聯邦學習從縱向上來看,把一個用戶的樣本數據一下子拆成了兩部分,聯邦學習的基礎就是一個超大規模樣本匹配的過程。接着往上就是大規模跨域聯合建模,藍色和紫色模型互不感知,只是在上層進行了數據連接,算一下 loss 作爲反向梯度傳輸。

6. 9N-FL 分層架構

7. 9N-FL 總體架構

9N-FL 的整體架構圖是一個對稱的結構,服務部署在兩家公司,每家公司都有一套完整的服務。比如 Coordinator:它是整個系統的總控;Proxy:涉及到跨網,可以理解成 gateway;Resource Manager:資源控制;Trainer:訓練器。

詳細過程:Coordinator 分爲 leader、follower 兩個角色。我們平時在機器學習平臺訓練的時候,只要開啓訓練就好,因爲不涉及跟別人的協調,但是對於聯邦學習來說,開啓訓練的時候涉及一個協調的問題,誰是主導者誰是跟隨者?主導發起訓練的就是主導者,比如圖的左側是主導者,它就是一個 leader,右側就是跟隨者 follower。所有的調度單元都是基於一個任務來調度,整個系統支持多任務的調度。首先左側的 Coordinator 通知對端,我要進行訓練,並且告訴對端我的樣本 meta 信息,包含樣本 (比如 ctr、cvr 樣本) 信息、時間信息,兩邊還有一些協商,就是針對這次任務,我要開啓多少個 trainer,比如要開啓 20 個,那麼兩邊都開啓了 20 個 trainer,但是怎麼調度起來呢?聯邦學習可以仿照傳統的機器學習,也就是現在的樣本分了兩個訓練器,一邊消費一半,這種情況下,我把樣本拼起來,把訓練器拼起來,我們就做了這麼一件事兒,把不同的訓練器做了個配對。配對完之後就涉及到訓練器的協商,左邊的訓練器會通知右側訓練器,告訴它我在我們這邊拿到了一條數據,這個數據的 meta 信息是什麼,同時會告訴對端也去拿相應的文件,兩邊都把相應文件拉下來之後,相當於做了消費同樣文件的動作。這樣兩邊就可以同時進行訓練,在訓練的過程中,不斷的交換這些梯度,把整個模型構建起來。Proxy 的作用是路由控制,比如第一個 trainer 把梯度分發給對端 proxy 之後,對端 proxy 知道它是要發給第一個 trainer 而不是發給第二個 trainer。整個 proxy 是一個無狀態的服務,它起到一個 gateway 的作用,是整個系統對外的暴露。我可能只監聽對外的一些端口,會有一些安全措施在裏面,裏面的服務包括 Coordinator、Resource manager、Trainer,它們都是不對外的,保證了數據安全。Trainer 主要包含兩個動作,一個就是兩邊取完數據後的協商,另一個就是在訓練過程中正向結果的傳輸和反向梯度的傳遞。

整體調度:

整體調度這塊是整個系統的總控,它控制整個系統的生命週期,比如任務的啓動、停止、監控;資源的申請,比如會給 trainer 申請資源;多任務的併發調度,比如我們進行聯邦學習的時候,是和多家公司進行合作,每家公司有不同的訓練目標,有的是訓練轉化的、有的是訓練召回的,建模方式可能不太一樣,所以說是多任務的並行併發調度。

資源管理:

資源管理用的是 K8S。

加密訓練:

同態加密:滿足密文同態運算性質的加密算法,即數據經過同態加密之後,對密文進行特定的計算,得到的密文計算結果在進行對應的同態解密後的明文等同於對明文數據直接進行相同的計算,實現數據的 “可算不可見”。

假如有兩個整數 A 和 B,要計算 A+B 的和 C 是多少。兩個數據對別人是不可見的,將這兩個數據拿給第三方計算,算之前同時先對 A 和 B 進行加密,再對密文計算結果,在整個計算過程中,原始數據 A 和 B 沒有暴露,得到密文結果後,再用同態解密的方式將密文解掉。

線性迴歸模型的訓練步驟:例子是基於第三方的方式,第三方持有私鑰,他會把公鑰發給 A 和 B,公鑰進行加密,私鑰進行解密。算 loss 和算梯度的整個過程是加密的,之前未加密的計算都對應着一個加密的計算。對於 LR 模型和樹模型都有公開的加密解決方案,計算速度偏慢,無法用在在線。京東在做對神經網絡加密方案的研究,目前已經在實驗階段,後續會有可用於實時的方案。

8. 9N-FL 開源解決方案

這塊是京東 9N-FL 開源的情況,大家有問題可以提 issue。

04

業務效果

如圖是基於媒體側廣告的投放的基本流程,雙方收入累計提升 20%+。

05

未來思考

京東 9N-FL 起步於 2019 年 11 月,團隊比較精簡,以下幾個方面待完善:

今天的分享就到這裏,謝謝大家。

在文末分享、點贊、在看,給個 3 連擊唄~

分享嘉賓:

杜寶坤

京東 | 資深算法專家

京東商業提升事業部 - 廣告質量部 - 資深算法專家,主要負責營銷端的聯邦學習以及站外的觸發算法。擁有十多年的互聯網工作經驗,曾經供職於百度、360 等多家知名互聯網公司。在互聯網搜索、推薦與廣告等方向的架構與算法方面,有多年的一線開發與項目管理經驗,並且成功主導過多個大型項目。2020 年在京東零售數據算法通道委員會的指導下,作爲項目技術與業務負責人帶領團隊完成京東超大規模聯邦學習框架 9N-FL 的落地,並且進行技術賦能,與營銷媒體端進行合作,取得了不俗的成績;同時 9N-FL 也於 2020 年 9 月進行開源,回饋社區。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/933nA30Xg_GBbjKtDRuBnQ