近日,富數科技安全計算首席專家卞陽做客雷鋒網公開課,以《隱私計算重構邊界,聯邦學習重新定義大數據》為題進行分享。
卞陽在課程中用武林各大門派做例子,詳細分析了聯邦學習和隱私計算安全部分的主要算法原理,以及聯邦學習如何實現跨越數據要素邊界,在供應鏈金融、聯合營銷、金融機構存客促活等具體場景中落地應用。
關注微信公眾號 AI金融評論 ,在公眾號聊天框回復「聽課」,進群可收看本節課程視頻回放。
以下為卞陽課程全場回顧和互動問答精選,雷鋒網AI金融評論做了不影響原意的編輯:
感謝大家能在周五參加公開課。我叫卞陽,來自富數科技。
數據有多重要?早期的語音識別有這樣一個情況:男聲識別率很高,但女聲識別率很低——因為(用於訓練的)素材語料太少。
如果兩家公司對比,算法水平高和數據量很多,哪家的人工智慧會做得更好?一般是數據更多的那家,因為它可以不斷優化算法。
今天主要和大家交流隱私計算、聯邦學習,以及它們與數據、大數據的關係。
現在人工智慧處處可見,有觀點說人工智慧會定義業務邊界,其實安全也有相同的特點。數位化時代如果沒有安全,業務也很難展開。
安全和人工智慧之間是何關係?未來若無智能,安全難以實現;若無安全可言,人工智慧亦無用武之地。
從資訊理論的角度來看,人工智慧和密碼學頗為有趣,二者實為一對悖論。
人工智慧是數據經過加工,提取其中信息,訓練後變成知識。這是熵減的過程:熵越少,可用性就越高。
密碼學正好相反:隱藏有用的信息,編碼、打亂,變成另外一個空間的數據。這是信息熵增的過程,可用性越來越低。
但現在既想做安全,又想得到更強大的AI,得到更多的知識,如何是好?
如下圖所示,原始數據處理後,變為脫敏數據,信息量減少。但這並不足夠,還需要對中間數據進行加密——(這些步驟)都是隱私計算範圍。
但這並沒有結束,還需從中提取有價值的信息,引入聯邦學習,提取更多知識。
以前聯邦學習、人工智慧和安全頗有些井水不犯河水的意思,互相關係不大。
2016年,歐盟制定GDPR,於2018年正式生效。而谷歌正是在2016年提出的聯邦學習——這時,人工智慧跟密碼學的交集變多。
而當聯邦學習逐漸成為熱點,跟隱私計算的重合度就越來越高。
下一階段,在完全數位化時代,(人工智慧與安全)二者很可能越來越深度融合。比如信通院制定了多方安全計算的數據流通產品標準,聽上去是安全相關,但也包含了機器學習。
聯邦學習的框架,不可避免會與安全相關。信通院也在制定聯邦學習的標準,當中也有不少關於安全的內容,於是變成了你中有我、我中有你的狀態。
「聯邦學習裡的安全怎麼做?」這是必然要討論的問題。之前很多專家已分享聯邦學習的算法原理,安全方面相對講得不多,我們這次會側重隱私計算方面來談。
若以江湖門派類比,安全多方計算(MPC)是少林派:歷史悠久,功力深厚,最早可以追溯到上世紀80年代,有秘密共享、傳輸混淆電路等一些非常強大的獨門武器。
武當派可以對應到同態加密。武當派的特點是簡潔、優雅,同態加密也類似:表達式清晰明了,實現起來卻很複雜。真正要做到全同態其實很難。
後起之秀華山派,可信計算環境(TEE)。當然,TEE跟聯邦學習關聯度較低,但也不排除某些聯邦學習解決方案能與TEE有所結合。
除此之外,還有像盲籤名、隱私信息檢索、零知識證明等這些相對更小的密碼學協議分支,同樣非常有用,好比泰山派峨眉派,它們共同組成了豐富多彩的隱私計算江湖。
共享這個詞有點讓人誤解,它並不是把各自的秘密數據真的共享了,而是各自的秘密還是可以得到安全的保護,但可以一起去計算得到結果,這個結果是可以共享的。
秘密共享的安全協議裡,有數據的提供方,另外還有計算方,當然計算方跟提供方可以合二為一。
對比一下秘密共享跟同態加密的差別:同態加密是由一方提供密鑰,計算是在一個環境一方進行的。秘密共享叫安全多方,所以是在多方進行計算,有這樣一個特點。
比如說提供方1有個數,以加法為例,提供方把數切片,有幾個計算方就切成幾片。切完之後有一片留在自己手上,不發給別人,其他片分發。實際怎麼切片,也有很多方法,不是只有一個算法。
現在先理解切成多片,每一方也會拿到其他方的切片,拿到以後就在本地做計算,比如說x1+y1+z1,這就是一個加法,加起來形成新的等式。c1c2c3就屬於中間結果,最後要求和,中間結果已經把各方的秘密混在一起了。
聯邦學習的計算表達式裡,往往有多方數據,聽起來很複雜,但通過這個方式,實際上沒有那麼複雜。
當然,秘密共享有安全條件,即安全門限。n-1的安全性,但(兩方的情況下)n-1=1,所以兩方加法不存在安全模型,必須要多方。
但在聯邦學習當中,很可能建模只有兩方,這是否會出現一方推算另一方的情況?
從資訊理論熵增熵減的理論來看,(為了避免這種情況)表達式不能夠太簡單。好在機器學習計算往往是矩陣集合計算,這樣複雜的表達式計算完會變成一個值,不可能由此反推原始數據。所以越複雜的計算,安全性越高。
光有加法不夠,還需要有乘法,但乘法複雜度比加法更高,原理類似。
安全多方計算有兩個優點:一是過程更加對等,不需要第三方拿了一個公鑰或私鑰去生成,其他方都依賴它進行加密解密。二是結果可以按照協議,分發給相對應的參與方。
同態加密(的原理是),誰有密鑰,肯定需要他去解密,安全性原理有所不同。
有些場合很難找到可信第三方,這時正是安全多方計算的發揮空間。除了乘法和加法,還有其他更複雜的計算,比如機器學習裡面有 log、指數等,這些運算都可以用乘法和加法來構造。不管運算多複雜,理論上都可以用多方安全技術求解。
第二個是密碼學裡非常重要的茫然傳輸,也叫不經意傳輸(Oblivious Transfer,OT),是聯邦學習做安全對齊的必備。
比如Alice手上有兩個信息,Bob想要其中一個,但是不希望Alice知道他拿了哪一個。
密碼學可以把協議構造更複雜些,比如n個信息裡取其一,或取m個,取出數量不能超出約定。既要有正確性,還要有安全性,這就是OT協議。
安全多方計算裡面還有個「武器」混淆電路,由圖靈獎獲得者姚期智老師發明。
原理是:假如所有的輸入都轉成0和1,進行比特的「與非或」門電路計算,最後得到一個結果。
但是Alice和Bob的輸入,都不希望另外一方知道,通過生成門電路處理,最後拿到的一個結果無法反推雙方的輸入。
如何在兩方間構造電路?如果是在對方那裡運行,不可避免要將輸入(內容)給到對方,或者從對方拿(結果)。這時,不經意傳輸就派上用場了,對方無從得知你拿走了哪一個,這就隱藏掉自己的一個信息。
所以,多方安全計算的混淆電路和茫然傳輸之間有關係,這些都是比較底層的理論。安全協議密碼學的這些內容,構成了聯邦學習的安全基礎。
大數據這個詞,從提出到現在已經很多年。早期,大家更多採用內部數據,隨後逐漸發現外部數據很有價值,就希望獲得儘可能多的外部數據。但在國內外監管法律法規下,獲取外部數據存在合規要求,大數據(的發展)也就受限。
數據如今已是生產要素。聯邦學習怎樣讓AI跨越數據要素邊界?這就是前文所述的「武器」如何運用。
在做機器學習之前,往往需要完成對齊的動作。如果不知道兩邊的樣本,也不清楚如何使用,學習自然無法進行。
舉例:Alice和Bob各有一個樣本集,兩邊怎麼安全對齊ID?首先要處理自己樣本裡的ID,這是一個加密的過程。我們可以這樣理解:
Step 1:把自己信息和一張複寫紙放到信封裡,給到 Bob。
Step 2:Bob在信封上簽名蓋章,再返回給Alice。
Step 3:Alice拿到之後打開信封,去掉掩碼,但因為有複寫紙,所以Bob的籤名也印到了Alice給的信息上。
Step 4:Bob把自己手上每個ID也做籤名。
因為只有他自己有私鑰,所以Alice無法生成這些ID。也正因為ID經過哈希後用私鑰籤名,Alice即使拿到信息,也無法判斷對應關係,只有她自己去掉了掩碼就事先拿到Bob籤名的這批ID,才能正好匹配上了。
如果Alice手上沒有ID,肯定匹配不上。如果她有一個ID,Bob那邊沒有,Bob自然也無法生成一個帶了自己籤名的信息。
但這並不是公平對等的方案,因為Alice獲得了一定的信息不對稱優勢:為什麼是她先知道Bob哪些ID跟她有對齊?
好在密碼學還有很多種武器,其中比特承諾就是更公平的一種方案,可以保證參與雙方通過一種公平的方式來交換信息,參與者相互間要麼都能得到對方的信息,要麼都得不到。
安全對齊真的安全嗎?用戶哪些ID的數據參與了後面的機器學習,在一些場景中也是敏感的,能隱藏ID嗎?這就變成更複雜的問題了。
所以樣本對齊有三個層次的安全:第一個,比較簡單的盲籤名的安全對齊,但不太公平。第二種是安全公平的交換,第三種要隱藏被匹配到模型中的ID。
對於第三種,密碼學也有辦法解答。行業中有人提出差分隱私方案,複雜度很高,噪音的加入也會導致模型效果有損失。我們也有另外的一些安全手段,有興趣大家可以進一步交流。
不可避免地,做聯邦學習一定要有安全計算。
我們知道聯邦學習有不同的流派,縱向、橫向、遷移。橫向聯邦學習的實現相對簡單,因為在本地就可以訓練,模型再到雲端匯總。
但縱向就比較複雜,一邊是y變量,一邊是x變量。一個表達式裡既有x本方的變量,又有對方的變量,怎麼算出結果?
聽上去不可思議,好在有前面提到的多方安全計算,即使表達式裡有n方數據,也可以從最簡單的加法乘法開始構造。只要實現了這兩個方法,就能將表達式求值,還能約定表達式結果值如何分配。
用同態加密做聯邦學習,相對簡單,但限制也更多一些,會需要第三方協助。但在實際商業場景中往往很難找到第三方。此時,多方安全計算就有它的用武之地。MPC(多方安全計算)的多方安全,名詞本身和「聯邦」更對應,參與方的關係也更加對等,可以在無可信第三方的情形下進行計算,完成建模學習。
聯邦學習如果沒有好的數據,訓練效果很難優秀。為保證數據質量,訓練前需要進行聯邦特徵工程。
從名詞上可以看出,無論是計算IV值、計算共線性,還是像importance這樣用於篩選變量的值,也是用聯邦方式來產生的。
在無法獲取對方數據的情況下,如何操作執行聯邦特徵工程?我們通過可視化交互界面,共同做安全計算,能計算出特徵IV值,還可以選擇多種分箱方式。
有了這個特徵工程以後,也可以判斷對方的數據質量,發現那些對接下來的建模有用的特徵欄位。
正如前文所述,聯邦學習需要一個發起方,不可能兩邊都操作或都不操作,總歸有一方在做具體主要的動作,當然另外一方可以去做審核和批准動作,有權限管控。
進行聯邦學習不光需要底層算法,同時也需要一個操作控制友好的界面。
另外還有探索性分析,比如說是否有異常值、缺失值,可以預先設定好規則,自動過濾日常值,更好控制訓練質量。
聯邦學習最核心的,肯定是機器學習算法。下圖是機器學習已完成任務示意圖。
聯邦學習過程中,網絡上兩方或多方共同計算,如果了解不到計算狀態,我們很難給出適當判斷。聯邦學習的性能比單機本地要慢很多,訓練幾十分鐘甚至更長時間都非常正常。在參與方之間需要將訓練過程可視化。
不同的場景下,算法變化會很多。為實際適應各種場景,需要有儘可能豐富的聯邦學習算法。
當企業發現自己數據有限,要和對方外部合作。數據獲取不到,互相不信任,或者有合規上的隱患。這時通過聯邦學習,數據會變得更易用。拿不到數據本身,但能能拿到數據的能力。
企業也希望使用過程儘可能簡單方便,比如哪些數據可用、授權權限管理;希望可以發現、搜索有價值的資源,在合作的雙方或多方相互能發現,有點像微信那樣加好友才能連上對方、驗證通過。
之後怎麼合作?有一方創建合作的項目,對方有什麼樣的數據資源,是y變量還是x變量,橫向還是縱向,都可以可視化創建合作項目,在合作項目中約定,之後就可以進行安全數據處理。虛擬融合就是安全對齊的過程,形成看上去是虛擬的樣本集,實際上還是分布的。然後選一個聯邦學習算法,在虛擬融合集上進行訓練。
聯邦學習結束後,它還是一個分布的模型,參與方各有各的子模型,所以聯邦模型的使用,也要用到安全多方計算。
各方有自己的數據和子模型,在表達式或數的模型裡,它的服務計算結構也是不一樣的。所以說我們還要支持把模型部署為服務,變成像API那樣可以對外提供,這樣才形成一個閉環。
通過聯邦學習,本來外部拿不到的數據,可以因此跨越邊界,獲得大數據能力,成為真正的大數據。
如果能夠拿到各種各樣的維度,在商業競爭中肯定有更加明顯的優勢。聯邦學習,能夠讓企業獲得了更強大的能力,就像上帝視角那樣,得到高維打低維的優勢。
從具體案例來看,富數科技在2017年就立項做多方安全計算,那也是網絡安全法生效的一年。
我們當時就覺得,數據安全非常重要,也需要有一種更好的方式來使用,所以發起了開源項目Unitedata,有多家合作單位聯合研究。
2018年,我們的UD聯盟系統上線,已有部分落地應用的案例執行;2019年,信通院多方安全計算的相關標準出臺後,我們也參與其中。富數安全計算聯邦學習平臺阿凡達(Avatar)也是最早通過信通院產品認證的。
為什麼叫阿凡達?眾所周知,這部電影是說地球人通過「阿凡達」這個化身進入到外星世界,本體沒有轉移。這個外星空間裡,納美人的頭髮就是一種神經元,由此連到靈魂樹,互相達成共識。
這點十分有趣,我們覺得這跟聯邦學習異曲同工:本體不轉移,以及相互連接達成更廣泛共識。所以阿凡達的意義是數字的世界裡相互連接,形成更開放生態。
富數Avatar平臺支持私有化部署,其中有兩個核心模塊:底層聯邦學習算法模塊,加密計算模塊。正如同計算機不光有 CPU,還需要有GPU一樣,有兩個核心共同工作才能夠實現聯邦學習。
使用阿凡達的兩家機構,他們可自身直接達成連接,不經過包括富數在內的任何第三方,就可以完成各種聯邦學習項目。
供應鏈金融裡的應收帳款,銀行需要稅務開票數據,但不容易拿到。
在一些項目中,企業若無授權,外部很難拿到數據,即便拿到也只是單個小的數據。但只拿一條數據,沒法完成聯邦學習,得要幾千、幾萬條稅務的數據和銀行的資金流水。
一邊是銀行資金交易信息,一邊是經營信息來進行訓練,兩邊維度不同,也沒法匯集到一起,這在以前難度非常大。
讓銀行把數據放進安全沙箱是辦法之一,但沙箱數據要出庫有風險,這就導致:雖然我們希望公共服務數據能夠對外賦能,實際操作中卻遇到安全隱患。
通過聯邦學習,比如銀行方企業交易數據仍由本地安全保護,同時可以連接到公共服務數據的開放平臺。數據資源在開放平臺上陳列可供選擇,審核後運行算法,看最終效果。
這樣一來,當小微企業想要去申請銀行貸款,銀行就有更適合的模型來判斷。
有些企業可能其實很大風險,經營情況不太穩定,由於銀行可以拿到更豐富的數據,比如從用電數據判斷企業經營趨勢,在風控模型上做得更好,預防潛在風險。貸前、貸中管理和實時監測,也很需要多方數據來訓練模型。
上文提到,模型部署成服務,可以做到明細的數據不需要傳到銀行,用這個模型即可計算出結果。這對企業來說,授權的範圍可以進一步縮小。不管是公共服務部門還是大數據機構,對於掌握數據方而言,數據安全性也更高,避免了數據在使用的過程中被留存,或者面臨更大風險。
品牌商想和合作方聯合營銷,必然要對用戶做一些判斷:哪些用戶適合什麼類型的產品?但些信息是汽車廠商自己掌握,大數據平臺很難判斷。
之前需要汽車廠商把CRM之類的信息,在大數據能力開放平臺裡建模,即駐場式建模。但對品牌商來說,數據放出去也存在隱患。
通過阿凡達聯邦學習,可以利用大數據平臺更大維度的數據——實際使用中可能有上千維度,聯合建模,再對用戶進行分層分群,不同車型能更好匹配潛在用戶,活動轉化率和最後效果得到巨大提升。
每家機構都會有大量睡眠客戶,非常希望激活,但它本身是睡眠客戶,很難得到更豐富的信息去判斷。用外部標籤判斷客戶,相當於把自己的客戶信息洩露出去了。其次,如果不能雙方建模,匹配度也不高。
存量客戶對外進行畫像匹配時,也可以通過安全方式去查詢,這跟前面講的盲籤名非常像。然後建模,非常典型的縱向聯邦學習模型,之後可以更好判斷,把客戶分組,不同組對應不同營銷策略。
在這個過程中,金融機構並沒有拿到存量客戶更多的信息,消費信息、上網行為拿不到,非常合規,但已經知道了客戶適合的產品,提升了金融競爭優勢。我們在實操中發現,跟專家模型相比,它的轉化率可以提高100%以上。
用了聯邦學習是否就一定安全合規?聯邦學習降低了數據洩露的風險,同時在具體使用中依然需要遵循數據合規的法律要求。安全對齊在某些解決方案或者情況下也還是會存在一定隱患,我們提供了更加公平的、尤其對甲方更加安全的對齊方式,合規性也更好。梯度洩露、樣本投毒等其他安全挑戰,需要有更好的解決方案,畢竟聯邦學習也在不斷成熟和發展之中。
對聯邦學習熟悉的朋友都知道,聯邦學習的計算量非常大。以往在本地非常快,不用加密也不用通信,因此(採用聯邦學習後)性能上面往往有兩個數量級的降低。我們也做了不少優化和嘗試,在性能上面還是取得了一些進展。
場景很多變,需要不同算法,也不光局限在機器學習。安全查詢就是非常強的需求。有一些情形還沒上升到學習的程度,但也要分析得到有用的知識,用多方安全計算可以解決。
在阿凡達的解決方案裡,從簡單的加密查詢到多方計算和統計,再到不同的機器學習算法,還有神經網絡、深度學習等。所以在場景適用性上面,我們也已經取得一些成績。
它是多方的應用,兩個解決方案之間若無統一標準,聯邦學習要進行下去肯定很難。
問:哪些金融細分領域更適合聯邦學習?,
卞陽:細分領域非常多,比如保險、反欺詐的應用場景,都非常典型。金融非常依賴數據,只要這個場景需要用到外部數據,聯邦學習就特別適合。當然有些場景是不是一定要用機器學習?像剛才提到的供應鏈,其實雙方在進入到機器學習之前,還要做變量的處理。雙方都有變量,還想衍生出新的變量,怎麼辦?這種情況用多方安全計算去衍生新變量,這個變量不反映用戶敏感信息,把變量構造出來。
問:供應鏈金融場景案例裡,聯邦學習和區塊鏈兩種方案有什麼區別和優勢?
卞陽:聯邦學習跟區塊鏈肯定很大區別。區塊鏈不講學習,共同點都是分布式,在某些情況下也可以相互配合。富數也有區塊鏈鬆耦合的方案,因為要多方聯邦學習,可以在區塊鏈進行智能合約,約定數據的規格、利益的歸屬,使這個機制更加公平。
問:自己做的隱私保護聯邦深度學習模型,用同態加密太慢,差分隱私保護效果不好怎麼辦?
卞陽:的確,同態加密性能是一個問題,用MPC可以優化,因為同態加密相對來講比較固定和簡潔,但優化空間會小。
問:聯邦學習的標準,哪個公司在牽頭制定?
卞陽:這個名詞首先最早提出是谷歌,微眾銀行應該是國內的一個旗手。所以IEEE會議的標準,微眾銀行是發起方,富數科技也是標準組的成員。
問:數據開放平臺和模型服務是誰所有的?
卞陽:對數據源來講,數據開放平臺肯定是屬於數據擁有者。模型如果是雙方共建、訓練產生的模型,最後生成的模型服務,是看模型調用過程,包括模型分布情況。除非參與建模的一方,把自己的模型授權給其他方。如果不授權,那就是共有。
問:休眠客戶的激活,本質是對客戶增加標籤維度,然後再激活客戶?
卞陽:如何激活,有不同的策略,這時要增加標籤的維度。如果因為策略不好,推了他不需要的產品,等於是騷擾,反而對客戶有壞影響,所以銀行要激活休眠客戶的時候也會非常謹慎。提高客戶匹配度,也變得非常重要。
問:各部分標註數據質量有好有壞,聯邦學習可以怎麼做?
卞陽:進行訓練之前,要對數據質量做聯邦處理和分析,特徵工程和探索性。當然這個過程也保護各方數據。統計性信息能不能給,也要經過授權,就可以在進入學習之前判斷標註的數據質量。如果前面不容易判斷,可以訓練出模型再去測試,評估其中維度的數據有沒有價值。
雷鋒網(公眾號:雷鋒網)雷鋒網雷鋒網
雷鋒網原創文章,未經授權禁止轉載。詳情見轉載須知。