5月22日,HKSAIR創會理事長、微眾銀行首席AI官、香港科技大學講席教授楊強老師,領銜HKSAIR《AI金融》系列線上講座第一課,主講聯邦學習及其四大應用場景。HKSAIR小編整理了課程演講稿,讀者可以配合直播回放觀看。
以下為楊強老師演講全文
我們這次的課程系列,與當前大家在工業界和學術界非常重視的一個議題相關,就是如何利用數據做人工智慧的模型,同時又能夠保護用戶的隱私,保護數據的安全。
很多同學聽說過深度學習,聽說過監督學習,可能沒有聽說過聯邦學習。這個也是要給大家交代一下聯邦學習的由來。
為什麼我在微眾銀行建立AI團隊?我在觀察金融的各個方面能不能用AI的模型給包裝起來。因此我們設計了以下四大版塊,產品和業務已經出爐,可以說是「AI落地急先鋒」。
詳細說一下AI+服務,比如開戶驗證身份要進行人臉/語音/指紋識別,又比如小微企業的企業主申請企業貸款上傳執照要通過OCR圖像識別、文字識別獲取,自動產生信用評估。現在AI+服務大概每天能處理百萬以上的這種需求。
以語音識別為例,我們做到了自主自研,與眾多業界領先的語音識別的提供者相比具有明顯優勢,一是因為我們金融領域的知識,有大量特定話術和專業詞彙的儲備,在各種具體的特殊環境下都能處理。二是我們有非常先進的聯邦學習技術,這就是今天的主題。還有遷移學習,可以很快把通用模型適配到特殊的場景。
AI+營銷,有了產品也要有能力傳播出去,找到對的人和企業,去提供金融服務。
怎麼找到正確的需求?比如微信朋友圈,大家有時候會看到小微企業貸款廣告,說明系統「認出」你是一個小微企業主。我們通過很多的特徵來識別,很快賦予額度給小微企業的企業主,秒級批准。另外,推薦系統是非常有用的一個技術,我們把推薦系統和遷移學習、聯邦學習結合起來,形成了新的技術優勢,後面會細說。
在金融行業一個很大的優勢,就是風控非常嚴格,要高效做信用評估,那就需要很多數據,360°來觀察企業或者申請貸款的用戶。但同時又不希望這些數據的隱私被暴露,如何能夠做到這一點?這,就是聯邦學習要做的事情。
舉例:金融保險定價,我們把違約概率大幅縮減,個性化的保險定價提升8倍。小微企業風控模型準確率提高,相應地,壞帳率降低。
我們有一個叫做攬月的產品,是從衛星視角往下看,能看到企業的經營狀況,比方說左下角可以通過卡車個數和活躍度看到礦業的經營狀況。右上角是農業種植區域,可以通過衛星評估產量。左上角是洪水泛濫受災地區,通過衛星對地區受災的程度進行定價。右下角是煙囪汙染,環境在投資裡是社會價值的體現,對環境的保護體現了公司治理水平,相應產生的ESG指數,很多也來自于于衛星圖像觀察。
綜上所述,這4個版塊,2個是前端的(服務、營銷),2個是後端的(風控、資管)。
金融小數據與隱私保護的雙重挑戰
在這個過程中,數據是非常缺乏的。要保護我們的隱私,同時也想要服務,怎麼做到?下面這句話叫做「數據不動,模型動」,希望大家就記住這7個字。這個就是聯邦學習的精髓。
AlphaGo出現以後,人工智慧井噴式發展。但我們周圍日常的生活,有的卻是小數據,不要以為大公司就一定有大數據。像在金融裡面有很多的數據,其實是黑天鵝現象。比方說在反洗錢應用中用於模型訓練的洗錢案例,其實數量並沒有想像中那麼多,還是屬於少數現象。這種數據拿它來訓練,效果不是很好。在醫療也是這樣,每天都有那麼多的病人,一定是大數據嗎?
有一家公司叫做第四範式,用人工智慧賦能金融場景。有很多頭部銀行都在使用它的產品,其中一個案例很有意思:豪車這種大額貸款,如果要建一個模型來做這種大額貸款的信用度的評估,數據往往是在上百例以內,這點樣本是沒有辦法訓練一個好的深度模型的,或許可以來訓練 support vector machine(支持向量機)或decision tree(決策樹),但往往不精確。
又比如,大家都很憧憬無人車的到來,但遲遲不來,其中一個重要的原因,就是因為無人車還不靠譜。我們不知道它見到一個它沒見過的情況會發生什麼,為了應付這種情況,可不可以把所有汽車上面的傳感器、攝像頭的數據全部聚合在一起,飛快地訓練一個無人車的視覺模型?不行,因為每一個在路上的車輛,雖然它可以收集自己前面的影像數據,但是它不肯把這個數據和別人去共享,因為它有很多出行隱私在裡面。即使這些無人車都是跟雲端在連接的,模型卻沒有辦法及時更新。
很多類似的端計算場景,就沒有辦法真正的實現,因為數據的割裂和短缺。
能不能把這些眾多的小數據集給聚合起來,成為大數據?過去,確實是這樣做的。現在,這樣做的結果就是違規。
比方說,歐洲在18年就推出了一個非常嚴格的個人隱私法規,說數據的擁有權是絕對在終端用戶那裡。如果伺服器端的公司,要用戶的數據來訓練某個模型,比方說搜尋引擎的模型,它就一定要得到用戶的許可。假設明天它要用同樣的數據去訓練推薦引擎的模型,那又得到用戶那去,得到新的許可。用戶如果哪天說不希望你用我的數據在你的模型裡了,那麼從此以後,這個公司就沒有辦法用用戶的新的數據,這個叫「被遺忘權」。
很多巨頭因此被罰,Google就被罰了5000多萬歐元, Facebook也遭受了滑鐵盧。
在國內,數據的隱私保護已經是處於一個非常嚴格的態勢,很多大數據公司,在過去都是新貴,但是現在都變成了階下囚。我們現在在國內的銀行裡面工作,深知數據是紅線,萬萬碰不得的。
應該說,聯邦學習現在已經變成了國內外的技術上的一個重大趨勢,並且它已經是一個跨領域的概念,它不僅僅是技術,而且是商業,它有自己的商業模式。
何為聯邦學習?
在過去,數據動模型不動,也就是說我們從各地來購買數據,或移動數據到一個中心點,在中心點建立模型。
用一個簡單的例子來給大家進行解釋:假設用一隻羊來類比機器學習模型,草就是數據,我們希望羊吃了草以後能夠長大。過去的做法是,把草買到一起來建立模型。比方說左邊的模型,左邊的箭頭是指向羊的。羊不動,但是草被購買到中心。相當於用簡單粗暴的辦法來獲取數據,形成大數據,來建立模型。
但我們希望能夠保護各自的隱私,所以讓草不動,讓羊動。這樣羊既能吃那個地方的草,主人又不知道到底吃了哪些草,久而久之羊就長大了——這個就是聯邦學習的新思路,就是讓草不出草場,本地主人無法知道羊吃了哪些草,但是羊還是長大了。
比如每一個手機都是我們個人在使用,形成了一堆樣本。有不同的手機,每個手機基本上取的這些特徵都一樣,但樣本卻不同。我們希望在數據不動的情況下,能夠聚合這些手機上的數據的這些能力,建立大數據模型。
左邊所示的數據集們,依次對應右邊各終端上面的數據。它們的特徵是縱向的,X1、X2、X3是類似的,但樣本U1、U2…U10卻是不同的。所以這個叫橫向切割,按樣本切割,簡稱「橫向聯邦學習」。
我們可以在本地建一個粗糙的模型,用w來表達它的參數,同時對參數加密。有密鑰的人才可以看到內涵,別人和伺服器也看不到加密後數據包裡的內容。伺服器得了加密後的參數,就可以通過某種形式,把這些加密後的參數加以更新、聚合、處理,形成一個更大的模型。
這裡大家可能會有疑問,你得到的是一個加密的包,是一堆亂碼,怎麼可以把兩堆亂碼加到一起?還成為一個有意義的模型?這個問題,我留在下一頁來解決。
每一個地方的數據,就對應這裡有一個顏色的小表格,行是每一個用戶的數據,列是每一維的特徵。可以看到這個特徵在不同終端上的特徵是類似的,但是用戶不一樣。按照用戶來切割,並沒有按照特徵來切割。
有了這樣的一個形態以後,我們就可以把剛才給大家講的故事,寫成一個算法。這個算法裡最關鍵的第4步是把運到伺服器端的加密模型,這些包用一個f函數來處理,它是一個機器學習算法,作用在參數上。
我們原來有這麼一種新型的加密算法,他可以讓機器學習的算法可以穿透加密層進到內涵,也就是說我們對一堆加密包的某種數學運算,相當於對於某種數學運算的加密。這其實是一個小學的概念,叫做distribution law(分配律)。
同態加密,可以把多項式的加密,分解成每項加密的多項式,A+B的加密,變成A的加密加B的加密,這是非常偉大的貢獻。因為這樣就使得我們可以拿一個算法,在外面把算法給全部加密,加密的一層可以滲透到裡面的每個單元。
安卓系統利用剛才所說的橫向切割,即橫向聯邦學習的方法,不斷更新一個總的模型,並且把總的模型分配到本地。在這個過程當中沒有數據移出本地,並且即使在雲端在進行運算的過程當中,也不會偷窺到任何的這個參數和任何的數據本身。所以,谷歌的安卓系統現在已經在使用,通過基博爾系統對輸入法進行更新。
如果是某網際網路公司和某家銀行合作,並不按照樣本切分,這兩家可能具有同樣的樣本,用戶群類似,但卻有不同的特徵。這種情況下,數據其實是按照特徵縱向來切割的,所以我們管這個模式叫做縱向聯邦學習。
比方說兩家數據擁有方各自建立一部分的模型,但是在建立的過程當中,它需要知道那一部分模型所計算的結果和梯度,計算的梯度來告訴最後的結果是在往哪個方向發展,這需要一個gradient和一個era。在交換過程中,又引入剛才所說的同態加密的算法,使得兩邊可以在不看對方數據內容的情況下,不斷更新自己這一部分的模型。
這是訓練的過程,我們還有使用的過程。使用的過程叫inference,也需要兩方來進行。也就是說,如果有一方到一半的時候說不合作了,那麼聯邦模型就應該停止,這個效果也是可以實現的。
我們現在講了兩種模式,一種是橫向聯邦,那麼橫向聯邦更多的是to c。to b 是幾家公司有意願合作,可能數目不多,但每一個地方的數據都是客觀的。在這種情況下,他們要做出1+1>2的效果,就可以用縱向聯邦來進行。
問:聯邦學習和分布式機器學習最能區分的點是什麼?
可能以前做機器學習的同學做過分布式機器學習,比方說有參數伺服器這樣的概念。分布式機器學習,目的是加速,加速的辦法是通過網絡、多個伺服器的平行並行計算。它就要考慮把這個數據給切分成不同的塊,使得每一塊的計算是在不同的伺服器上進行的,但是每一塊它的分布又是差不多的。
但在聯邦學習中,我們不能保證所有的數據擁有方,它的數據分布是一樣的。分布式機器學習的目標是加速,聯邦學習的目的是合作,同時保護隱私,所以最終目的還是不一樣。
問:聯邦學習和安全計算是什麼關係?國外是不是有類似的這種經驗?
安全計算應該說是聯邦學習的重要組成部分,聯邦學習不是一個孤立的算法,它是一個綜合性的學科,安全計算是為它提供工具的。前面說到安全是用同態加密來進行,也可以用其它的方法,比方說姚期智院士發明的Garbled Circuit(混淆電路)。
問:區塊鏈聽起來和聯邦學習有點像,都是在多方進行的,它們是不是有些異同?
它的做法可能有些相同,但是也有巨大的不同。相同的地方是它可以用區塊鏈的分布式記帳功能來進行有效的激勵措施。激勵措施是我剛才所沒有講的,就是說怎麼鼓勵參與方持續地投入,參與到聯邦裡面來。同時去中心化的概念,也是我們尤其是縱向聯邦裡面的一個概念。
但一個很大的不同是,區塊鏈為了保證 transparency,還有保證數據的不可篡改性,那麼它要把同樣一份數據多次copy到不同的場景,最後大家要有一個vote的機制,但是聯邦學習卻不然,聯邦學習是一個數據,只有一個copy,它不能夠出本地,所以它的目的就是通過這種uniqueness的方法來保證用戶的數據的隱私和安全。
還有我們新提出來的虎符性概念,就是多方參與,才能夠計算。缺了一方,這個就無效,就像戰國時代,你要把虎符兩個印要對上才能夠用兵,這個是聯邦學習的一個優點。
問:如果有一方數據是壞人怎麼辦?
比如橫向聯邦,如果有一個手機,它其實是壞人,它參與了計算,那麼它每次貢獻的模型都是在下毒,也就是說它在把最後的結果在朝著他對它自己有利的方向發展,或者在縱向聯邦的時候,兩方當中,其中有一方,它的目的就是為了窺探對方的隱私, 怎麼辦?
在場景下,我們有各種各樣的做法。比方說做OCR,written text是0,這個是原始數據,我們讓計算機識別0。如果不做加密,我們沒有一個機制,這種所謂的對抗是可以做到的,壞人是可以通過參數或者一系列梯度的洩露可以反猜原始數據。
在建立模型訓練的過程當中,如果這個模型的 gradient不斷被引向到一個第三方,第三方獲取 gradient,最後reconstruct我們就用data,通過這樣的辦法可以去做竊聽。題目也是在去年NIPS得到最佳paper的一個題目,是MIT韓松教授做的。
應付它的方法,也是聯邦學習的一個拿手好戲。比方說假設一個player,半誠實(Honest-but-curious)就是好奇,但本身不壞。還有人是惡意的,想搞破壞,想得到用戶隱私,然後獲利。對於不同的假設,可以設計不同的聯邦學習算法和多方計算算法來防止下毒,還可以做零知識(Zero knowledge)和一些知識(Some knowledge)分類。伺服器端也可以區分是不是惡意中心、惡意的數據節點和非惡意的數據節點。
問:金融場景有沒有遇到過壞人?
在聯邦學習裡面,如果有同學現在在找題目,說我能不能在聯邦學習找一個碩士題目或者找一個PHD的topic?完全有的,但是要聚焦,因為聯邦學習涉及的方面實在是太多了,所以如果你要找一個題目,你往往會找一個子題目,比方說如何能夠做到安全合規,如何能夠設計一種機制防禦攻擊,提高算法效率。
比方說我們科大的陳凱老師,他帶領的團隊就在設計全世界領先的算法,網絡效率可以通過網絡的設計,包括網絡protocol、晶片的設計來提高。還有王威老師、宋陽秋老師,都在設計算法,他們的算法都是非常精確的。
問:你講模型我還是雲裡霧裡的,模型到底是做什麼的?
打個比方,現在每個人都用手機,有時候也看抖音,一看就很長時間過去了。為什麼抖音能做到這一點?精準的推薦和個性化,利用數據來做推薦系統。
如圖所示,比方說我們有很多的手機,每個手機上都有數據。抖音的做法,是把每個手機上的數據上傳到雲端,再利用所聚集的大數據訓練模型,再適配到每一個人的個人數據上,就變成個性化推薦模型,再給推到手機端,就是循環往復這樣一個過程。
這過程有個缺點,就是它侵犯了用戶隱私,每個人的數據,雲端就會看到。怎麼防止?這裡我就要說聯邦學習+推薦系統,就是聯邦推薦,這個也是我們第一次提出federated recommendation的一個算法。
它的算法宗旨,就是對每一個手機上的 transaction,用戶以前看過的視頻或者書,進行矩陣分解,得到用戶空間和產品空間。如果你們喜歡數學,你們可能知道本徵值、本徵向量,線性代數裡面的概念,實際上就是求這個值,但基於本地數據求值是非常不準的。所以通過聯邦學習,能夠讓他們既能夠利用所有的數據來求 ,同時不把本地的數據暴露給其他任何人。這就是聯邦推薦的概念,可以在toB的形勢下實現,就是縱向聯邦。
縱向聯邦現在應用在哪裡呢?又有一個新的名詞,叫做聯邦廣告。
現在網際網路的一大經濟支柱就是廣告,在現有的廣告架構下,廣告是不可避免地侵犯用戶隱私。聯邦廣告可以讓廣告方、投放的媒體方、用戶方各自保留自己的數據,同時提高投放準確率。
問:聯邦學習訓練後的模型是一個公共的模型,而各個客戶端的數據經常是non-iid的,怎麼辦?
聯邦學習訓練後的模型,是一個公共的模型,而各個客戶端的數據經常是分布都不一樣,比方說我們有一個手機是女生用的,她看的短視頻和一個男生用的手機的看的短視頻,可能是完全不一樣的短視頻,因此我們拿他們兩個的數據粗暴地做數據聯邦,這個效果是肯定不好的,這是機器學習的一個常識。
怎麼辦?我們還有元學習,和多任務學習、遷移學習是可以解決non-iid問題的。
又要給大家提一個新名詞,叫做聯邦遷移學習,在之前每一端都先要做一個聯邦遷移學習,找到自己的一個子空間,在這個數據子空間的比對下,大家可以認識到自己找到的子空間,各自找到子空間是屬於同分布的就可以。那麼找到子空間,可以用聯邦學習來實現。這個領域論文非常的少,所以如果有同學在找題目,我鼓勵大家在這個方面發力,一定是明年各個頂會的文章,best paper一定是屬於你們的。
聯邦學習應用案例
小微企業信貸風控:假設我們要給一些小微企業貸款,又不知道小微企業的情況,第一個可以問詢的是央行徵信,比方說他過去在某個銀行貸過款,信用度如何,但這種數據,它的樣本往往是非常少的,所以只是去找央行的數據遠遠不夠。
我們希望用到的數據是多方面的,比如工商、稅務、輿情,還有各種資產的數據。但是這些數據擁有方,往往都是政府的不同部門、不同的企業。有專門的公司去幫助這些小微企業建立電子化的發票,有從專門的業務角度觀察,我們只有用聯邦學習才能說服他們來參與,否則他們擔心核心資產會被洩露。
這裡的例子,是我們在企業貸款裡面基於聯邦學習的風險控制模型。某個銀行和某個發票企業最後形成聯邦,大為提升準確率,降低壞帳率。
保險聯邦建模:保險其實就是風險,風險和數據是分不開的,數據越多,風險越低,因此保險公司在某些程度上也想合作,因為不同的保險公司有不同的數據。有的保險公司是專門為保險公司保險的,叫做再保險公司,比方說瑞士再保險公司,是世界上最大的再保險公司,有100多年的歷史,這些公司在過去因為數據割裂,沒有辦法合作的。現在就在用聯邦學習,而且取得了非常好的效果。
計算機視覺:比方說我們有不同的攝像頭,每個攝像頭都覆蓋一個區域,這個地方的數據是公司的核心資產,不願意和別的公司去share,但是他又希望利用到別的公司的數據,來增高自己的準確度,這個時候就可以用到聯邦學習,我們叫視覺聯邦,已經落地實施。每天深圳的建築工地用來探測危險,影響施工的一些現象,比方說明火抽菸和不戴安全帽的現象。
另外,語音識別、IOT在倉儲管理的場景,聯邦學習也有所應用。不同的倉庫可以形成線性聯邦,監測地方倉儲狀況,這些狀況就為風控模型和為物流業的決策提供了保障。
醫學應用:我們最近和騰訊的天眼實驗室合作,成功構建了一個「腦卒中發病風險預測模型」,通過使用來自就診記錄數量TOP5的醫院真實就診數據驗證,聯邦學習模型和集中訓練模型表現幾乎一致,在腦卒中預測模型中的準確率達到80%,僅比集中訓練模型準確率降低1%。
同時,聯邦學習技術顯著提升了不同醫院的獨立模型效果,特別是,對於兩家腦卒中確診病例數量較少的醫院而言,聯邦學習分別提升其準確率10%和20%以上。
聯邦學習不僅僅是一個算法,而是一個作業系統。因為有激勵機制在裡面,可以把不同的行業給凝聚在一起,使得大家有動力,不斷用聯邦學習來做聯盟。除了剛才提到的場景,還有銀行和監管聯合跨境反洗錢,網際網路+保險,網際網路+銀行風控,網際網路+零售,這些問題都可以通過聯邦學習更好解決。
我們建立生態,建立平臺,建立標準。也希望這個不僅僅是一個算法,而是新的paradise。我有的時候跟媒體講,AlphaGo代表了AI 1.0,它就是說在一個地方有數據,在一個地方有算法,在一個地方可以有一個很好的模型,就是AlphaGo。
現在我們進入了AI2.0,我們在不同的地方有數據、算法、業務,我們還可以做AI,這個是谷歌所沒有做到的,中國現在在這個方向是領頭的。
怎麼做到這一點?首先要建立標準。我們特別自豪的一點是,世界上第一個聯邦學習的產業聯盟,建立的IEEE的標準,已經到了最後一步,馬上就要正式發布了,敬請關注。同時在國內,有聯邦學習的團體標準,這個也是微眾銀行領銜發布。我們有一個聯邦學習的開源平臺,就在Linux Foundation上,是金牌的開源平臺,短短兩個月就收集到貢獻者打的上千星,到現在已經2000以上。在短時間得到這樣的認可,也是非常難得。
教育方面,我們先後出版了英文和中文版,是聯邦學習第一本書。另外還在做一個專題網頁,提供教學PPT、習題、考試題,為師生提供方便,希望大家都能夠很快了解這個領域,並且參與到裡面來。
問答環節
Q
公司需要付出算力,所以也需要回報。教授,不太明白激勵是什麼意思,公司間合作是共享參數,還需要激勵機制嗎?
A
假設一家銀行如果能夠獲得別人的參與,它的數據會增多,貸款壞帳率會
降低,收益會提高,各方面都會變好。
那別人為什麼要參與貢獻他的模型,參與到這個聯邦?是因為那家參與的公司因此會收到一些好處。
我們經常說數據價值,但是如果沒有一個機制來鼓勵大家之間的合作,來保障數據隱私,那麼這種價值是沒有辦法體現的。之前建立大數據交易市場,很激動人心,但最後有幾個交易市場在工作?零。因為參與方都不願意把數據給出去,他給出去,就好像一個箭射出去,就沒辦法再繼續掌握射出去的那支箭了。
但是聯邦學習,它的一個好處是paper use,也就是說我現在跟你合作了,你現在用我的來改進你的壞帳率,我收一份錢,用同樣的數據,因為我的數據沒有出本地,別人沒有辦法用到,我同樣的數據和保險公司、教育公司分別合作,分別收錢。這個數據就是你的資產,可以進行價值的交易,但是你數據本身是不出去的,不出本地的,還在你的掌握之中。聯邦學習就是這樣設計的。
深度學習是解決了生產力的問題,生產關係可以用聯邦學習來進行,這就是為什麼需要激勵機制。
他們共享參數也是共享加密的參數,但是他們真正的共享是價值,而且這個價值是可以用多次的,用多次這個概念是非常重要。如果你把一個數據賣出去,你數據的價值就除以二了,因為擁有你數據的那一方可以做和你一樣的事,甚至取代你。
HKSAIR《AI金融》講座預告
直播時間
2020年6月04日
20:00-21:00
分享主題
GPU在聯邦學習中的探索
胡水海
星雲Clustar 首席科學家
星雲Clustar 新技術研發負責人,香港科技大學博士,數據中心網絡、雲計算、RDMA網絡、分布式AI系統方向專家,在頂級網絡學術會議及期刊(SIGCOMM、NSDI、CoNEXT、ToN等)上發表過多篇論文。
目前負責星雲Clustar 產品新技術研究及創新等工作,帶領團隊進行星雲深度安全AI處理器產品的研發;長期聚焦於人工智慧在製造、保險、銀行等多個領域的技術研究,致力於將聯邦學習技術推向AI商用落地。