共享學習:螞蟻金服提出全新數據孤島解決方案
機器之心專欄
來源:螞蟻金服
作者:王磊、王力
如果有 A、B、C 三位同學,他們各自手上有 10、15、20 塊錢,這時需要在相互不知道對方有多少錢的情況下,不藉助力第三方來計算三個人一共有多少錢。請問這時候,我們如何實現呢?——這,就是最經典的秘密共享場景。在看完這篇文章後,答案就出來了~
背景
互聯網時代,一切基於數據。
隨著人工智慧的興起,數據的質量和數量,已經成為影響機器學習模型效果最重要的因素之一,因此通過數據共享的模式來「擴展」數據量、從而提升模型效果的訴求也變得越發強烈。
但在數據共享過程中,不可避免會涉及到兩個問題:隱私泄露和數據濫用。
提到這兩個關鍵詞,大家一定都對其背後的緣由有所耳聞:
第一則:2018 年 3 月,劍橋諮詢公司通過 FaceBook 的數據共享漏洞,收集了 5000 萬用戶信息,據說有可能利用這些信息操控美國總統競選,造成惡劣社會影響;事件曝光後,FB 公司股票大跌 7%,引發一系列後續問題。
第二則:2018 年 5 月,歐盟通過 General Data Protection Regulation(GDPR)法案,法案指出:所有與個人相關的信息都是個人數據,對數據的使用行為必須要有用戶的明確授權。把對隱私保護的要求提到了一個新的高度。
隨著對數據安全的重視和隱私保護法案的出台,以前粗放式的數據共享受到挑戰,各個數據擁有者重新回到數據孤島的狀態,同時,互聯網公司也更難以收集和利用用戶的隱私數據。
數據孤島現象不僅不會消失,反而會成為新的常態,甚至它不僅存在於不同公司和組織之間,在大型集團內部也存在。未來,我們必須面對這樣的現狀:如果我們想更好的利用數據,用大數據和 AI 做更多有意義的事情,就必須在不同組織之間、公司與用戶之間進行數據共享,但這個共享需要滿足隱私保護和數據安全的前提。
隱私泄漏和數據濫用如同達摩克利斯之劍懸在各個公司和組織頭上,因此解決數據孤島,成為 AI 行業需要解決的首要問題之一。
如何解決數據孤島問題?
當前,業界解決隱私泄露和數據濫用的數據共享技術路線主要有兩條。一條是基於硬體可信執行環境(TEE:Trusted Execution Environment)技術的可信計算,另一條是基於密碼學的多方安全計算(MPC:Multi-party Computation)。
TEE 字面意思是可信執行環境,核心概念為以第三方硬體為載體,數據在由硬體創建的可信執行環境中進行共享。這方面以 Intel 的 SGX 技術,AMD 的 SEV 技術,ARM 的 Trust Zone 技術等為代表。TEE 方案的大致原理如下圖所示:
目前在生產環境可用的 TEE 技術,比較成熟的基本只有 Intel 的 SGX 技術,基於 SGX 技術的各種應用也是目前業界的熱門方向,微軟、谷歌等公司在這個方向上都有所投入。
SGX(Software Guard Extensions)是 Intel 提供的一套軟體保護方案。SGX 通過提供一系列 CPU 指令碼,允許用戶代碼創建具有高訪問許可權的私有內存區域(Enclave - 飛地),包括 OS,VMM,BIOS,SMM 均無法私自訪問 Enclave,Enclave 中的數據只有在 CPU 計算時,通過 CPU 上的硬體進行解密。同時,Intel 還提供了一套遠程認證機制(Remote Attestation),通過這套機制,用戶可以在遠程確認跑在 Enclave 中的代碼是否符合預期。
MPC(Multi-party Computation,多方安全計算)一直是學術界比較火的話題,但在工業界的存在感較弱,之前都是一些創業小公司在這個方向上有一些探索,例如 Sharemind,Privitar,直到谷歌提出了基於 MPC 的在個人終端設備的「聯邦學習」(Federated Learning)的概念,使得 MPC 技術一夜之間在工業界火了起來。MPC 方案的大致原理如下圖所示:
目前,在 MPC 領域,主要用到的是技術是混淆電路(Garbled Circuit)、秘密分享(Secret Sharing)和同態加密(Homomorphic Encryption)。
混淆電路是圖靈獎得主姚期智教授在 80 年代提出的一個方法。其原理是,任意函數最後在計算機語言內部都是由加法器、乘法器、移位器、選擇器等電路表示,而這些電路最後都可以僅由 AND 和 XOR 兩種邏輯門組成。一個門電路其實就是一個真值表,假設我們把門電路的輸入輸出都使用不同的密鑰加密,設計一個加密後的真值表,這個門從控制流的角度來看還是一樣的,但是輸入輸出信息都獲得了保護。
秘密分享的基本原理是將每個數字隨機拆散成多個數並分發到多個參與方那裡。然後每個參與方拿到的都是原始數據的一部分,一個或少數幾個參與方無法還原出原始數據,只有大家把各自的數據湊在一起時才能還原真實數據。
同態加密是一種特殊的加密方法,允許對密文進行處理得到仍然是加密的結果,即對密文直接進行處理,跟對明文進行處理後再對處理結果加密,得到的結果相同。同態性來自抽象代數領域的概念,同態加密則是它的一個應用。
當前,業界針對數據共享場景,利用上面的技術路線推出了一些解決方案,包括隱私保護機器學習 PPML、聯邦學習、競合學習、可信機器學習等,但這些方案只利用了其中的一部分技術,從而只適合部分場景,同時基本處於學術研究階段,沒有在生產環境落地。
共享機器學習:螞蟻金服數據孤島解決方案
為了更好的應對形勢變化,解決數據共享需求與隱私泄露和數據濫用之間的矛盾,螞蟻金服提出了希望通過技術手段,確保多方在使用數據共享學習的同時,能做到:用戶隱私不會被泄露,數據使用行為可控,我們稱之為共享機器學習(Shared Machine Learning)。
共享機器學習的定義:在多方參與且各數據提供方與平台方互不信任的場景下,能夠聚合多方信息並保護參與方數據隱私的學習範式。
從 17 年開始,螞蟻金服就一直在共享機器學習方向進行探索和研究,在結合了 TEE 與 MPC 兩條路線的同時,結合螞蟻的自身業務場景特性,聚焦於在金融行業的應用。
螞蟻金服共享機器學習方案擁有如下特性:
多種安全計算引擎整合,可基於不同業務場景來選擇合適的安全技術。既有基於 TEE 的集中式解決方案,也有基於 MPC 的分散式解決方案;既可滿足數據水平切分的場景,也能解決數據垂直切分的訴求;既可以做模型訓練,也可以做模型預測。
支持多種機器學習演算法以及各種數據預處理運算元。支持的演算法包括但不限於 LR,GBDT,Xgboost,DNN,CNN,RNN,GNN 等。
大規模集群化。支持大規模集群化,提供金融級的高效、穩定、系統化的支撐。
基於數年沉澱與積累,目前共享機器學習技術已在銀行、保險、商戶等行業成功落地諸多場景業務。通過在業務中打磨出的金融級共享機器學習能力,沉澱下來一套數據共享場景的通用解決方案,未來會逐步對外開放。
在幾年的艱苦研發中,共享學習累積專利 50 余項。在 2019 中國人工智慧峰會上,共享機器學習獲得「紫金產品創新獎」,在 8 月 16 日的全球人工智慧創業者大會上,共享智能獲得「應用案例示範獎」。
下面,我們將分享基於上面兩種路線的共享機器學習實踐細節。
基於 TEE 的共享學習
螞蟻共享學習底層使用 Intel 的 SGX 技術,並可兼容其它 TEE 實現。目前,基於 SGX 的共享學習已支持集群化的模型在線預測和離線訓練。
1. 模型在線預測
預測通常是在線服務。相對於離線訓練,在線預測在演算法複雜度上面會相對簡單,但是對穩定性的要求會更高。
提升在線服務穩定性的關健技術之一就是集群化的實現——通過集群化解決負載均衡,故障轉移,動態擴容等穩定性問題。
但由於 SGX 技術本身的特殊性,傳統的集群化方案在 SGX 上無法工作。
為此,我們設計了如下分散式在線服務基本框架:
該框架與傳統分散式框架不同的地方在於,每個服務啟動時會到集群管理中心(ClusterManager,簡稱 CM)進行註冊,並維持心跳,CM 發現有多個代碼相同的 Enclave 進行了註冊後,會通知這些 Enclave 進行密鑰同步,Enclave 收到通知後,會通過遠程認證相互確認身份。當確認彼此的 Enclave 簽名完全相同時,會通過安全通道協商並同步密鑰。
該框架具備如下特性:
通過集群化方案解決了在線服務的負載均衡,故障轉移,動態擴縮容,機房災備等問題;
通過多集群管理和 SDK 心跳機制,解決代碼升級,灰度發布,發布回滾等問題;
通過 ServiceProvider 內置技術配合 SDK,降低了用戶的接入成本;
通過提供易用性的開發框架,使得用戶在開發業務邏輯時,完全不需要關心分散式化的邏輯;
通過提供 Provision 代理機制,確保 SGX 機器不需要連接外網,提升了系統安全性。
目前在這套框架之上已經支持包括 LR、GBDT、Xgboost 等多種常用的預測演算法,支持單方或多方數據加密融合後的預測。基於已有框架,也可以很容易的擴展到其它演算法。
2. 模型離線訓練
模型訓練階段,除了基於自研的訓練框架支持了 LR 和 GBDT 的訓練外,我們還藉助於 LibOsOcclum 和自研的分散式組網系統,成功將原生 Xgboost 移植到 SGX 內,並支持多方數據融合和分散式訓練。通過上述方案,不僅可以減少大量的重複性開發工作,並且在 Xgboost 社區有了新的功能更新後,可以在 SGX 內直接復用新功能,無需額外開發。目前我們正在利用這套方案進行 TensorFlow 框架的遷移。
此外,針對 SGX 當下詬病的 128M 內存限制問題(超過 128M 會觸發換頁操作,導致性能大幅下降),我們通過演算法優化和分散式化等技術,大大降低內存限制對性能的影響。
基於 TEE 的多方數據共享學習訓練流程如下:
機構用戶從 Data Lab 下載加密工具
使用加密工具對數據進行加密,加密工具內嵌了 RA 流程,確保加密信息只會在指定的 Enclave 中被解密
用戶把加密數據上傳到雲端存儲
用戶在 Data Lab 的訓練平台進行訓練任務的構建
訓練平台將訓練任務下發到訓練引擎
訓練引擎啟動訓練相關的 Enclave,並從雲端存儲讀取加密數據完成指定的訓練任務。
採用該方式進行數據共享和機器學習,參與方可以保證上傳的數據都經過加密,並通過形式化驗證保證加密的安全性。
基於 MPC 的共享學習
螞蟻基於 MPC 的共享學習框架分為三層:
安全技術層:安全技術層提供基礎的安全技術實現,比如在前面提到的秘密分享、同態加密、混淆電路,另外還有一些跟安全密切相關的,例如差分隱私技術、DH 演算法等等;
基礎運算元層:在安全技術層基礎上,我們會做一些基礎運算元的封裝,包括多方數據安全求交、矩陣加法、矩陣乘法,以及在多方場景下,計算 sigmoid 函數、ReLU 函數等等;同一個運算元可能會有多種實現方案,用以適應不同的場景需求,同時保持介面一致;
安全機器學習演算法:有了基礎運算元,就可以很方便的進行安全機器學習演算法的開發,這裡的技術難點在於,如何盡量復用已有演算法和已有框架,我們在這裡做了一些有益的嘗試,但也遇到了很大的挑戰。
目前我們這套基於 MPC 的共享學習框架已支持了包括 LR、GBDT、GNN 等頭部演算法,後續一方面會繼續根據業務需求補充更多的演算法,同時也會為各種運算元提供更多的技術實現方案,以應對不同的業務場景。
基於 MPC 的多方數據共享學習訓練流程如下:
如圖所示,訓練步驟為:
機構用戶從 Data Lab 下載訓練服務並本地部署
用戶在 Data Lab 的訓練平台上進行訓練任務的構建
訓練平台將訓練任務下發給訓練引擎
訓練引擎將任務下發給機構端的訓練伺服器 Worker
Worker 載入本地數據
Worker 之間根據下發的訓練任務,通過多方安全協議交互完成訓練任務
訓練引擎的具體架構如下:
其中 Coordinator 部署於螞蟻平台,用於任務的控制和協調,本身並不參與實際運算。Worker 部署在參與多方安全計算的機構,基於安全多方協議進行實際的交互計算。
用戶在建模平台構建好的訓練任務流會下發給 Coordinator 的 Task Flow Manager,Task Flow Manager 會把任務進行拆解,通過 Task Manager 把具體演算法下發給 Worker 端的 Task Executor,Task Executor 根據演算法圖調用 Worker 上的安全運算元完成實際的運算。
利用這套方法,可以做到數據不出域就可以完成數據共享,訓練工具可以部署在本地的伺服器。
共享學習 VS. 聯邦學習
目前,國內對於數據共享場景的機器學習解決方案,比較熟悉的可能是由谷歌提出,又由微眾傳播的聯邦學習概念。
經過我們的了解,其實聯邦學習目前涉及兩個不同的概念:
第一種聯邦學習,旨在解決雲 端的訓練過程中,端上的隱私不要被暴露的問題,是一個 To C 數據水平切分的場景。除了保護端上的數據隱私外,其重點還在於如何解決訓練過程中,端自身可能掉線等問題。
第二種聯邦學習則主要用於解決 To B 場景中各方隱私不泄露的問題,即可以應用於數據的水平切分場景,也可以應用於數據垂直切分的場景。
它們側重於不同的數據共享場景,採用不同的技術,相比之下,螞蟻金服的共享學習兼容多種安全計算技術,並且支持多種機器學習演算法和使用場景。
除此之外,共享學習和聯邦學習的差異在於:
聯邦學習只解決數據不出域的情況,這就限制了其可以使用的技術(只有嚴格的 MPC 演算法才符合這個要求),而共享學習目前基於 TEE 的集中式共享學習技術,是聯邦學習沒有涉及的;
聯邦學習講究的是參與各方的「身份和地位」的相同,所以叫聯邦;而共享學習則不強調各共享方的地位對等,在很多場景下,不同的參與方是擁有不同的角色的。
因此無論從技術範圍還是應用場景上,聯邦學習都比共享學習的範圍要小。
未來展望
讓數據孤島在安全環境下進行連接、合作、共創、賦能,是螞蟻金服共享機器學習的核心使命。
共享機器學習作為一個安全與 AI 的交叉學科,正在越來越受到關注,尤其是在金融行業,有著廣闊的應用空間。但是,這個領域的各項技術,也遠未到成熟的階段。我們團隊經過兩年的摸索,也只是取得了階段性的一些成果,在演算法的計算性能以及支持演算法的多樣性等各個方面,還有一段路要走。
9 月 27 日杭州雲棲大會,螞蟻金服將向外界首次分享共享學習的理念和實踐,歡迎屆時關注。後續我們也會分享更多共享學習方面的研究進展及實踐經驗,歡迎業界同仁交流探討,共同探索更多更強的數據孤島解決方案,推進數據共享下的機器學習在更多場景下落地。
王磊,螞蟻金服高級技術專家
王力,螞蟻金服高級演算法專家
本文為機器之心專欄,轉載請聯繫本公眾號獲得授權。
------------------------------------------------


※前瞻研究:工業製造領域人工智慧發展與趨勢
※世界頂級電影特效公司都在讓AI「接管」特效製作
TAG:機器之心 |