微眾銀行首席人工智能官楊強教授發(fā)表演講
推薦系統(tǒng)應(yīng)用廣泛,已經(jīng)滲透到人們生活各個方面,例如新聞推薦、視頻推薦、商品推薦等。為了實現(xiàn)精準的推薦效果,推薦系統(tǒng)會收集海量用戶和所推薦內(nèi)容的數(shù)據(jù),一般而言,收集的數(shù)據(jù)越多,對用戶和推薦內(nèi)容的了解就越全面和深入,推薦效果越精準。在現(xiàn)實場景中,隨著用戶數(shù)據(jù)安全和隱私保護相關(guān)政策相繼出臺和日益完善,這些數(shù)據(jù)通常為保護用戶數(shù)據(jù)隱私而以“數(shù)據(jù)孤島”的形式分散在不同的機構(gòu)。因此在“數(shù)據(jù)孤島”與“隱私保護”的現(xiàn)實問題中,在合理合法的前提下使用數(shù)據(jù)持續(xù)優(yōu)化效果提供優(yōu)質(zhì)服務(wù),是當(dāng)前推薦系統(tǒng)所面的巨大挑戰(zhàn)和首要任務(wù)。
FATE:首個支持聯(lián)邦學(xué)習(xí)架構(gòu)體系的工業(yè)級聯(lián)邦學(xué)習(xí)開源框架
微眾銀行在“數(shù)據(jù)孤島”和“隱私保護”問題上,是業(yè)界的引領(lǐng)者,它提出的聯(lián)邦學(xué)習(xí)解決方案能夠讓多個機構(gòu)同時協(xié)作,通過交換加密的模型參數(shù)進行綜合訓(xùn)練持續(xù)優(yōu)化模型,以合理合法的方式跨越數(shù)據(jù)鴻溝,解決“數(shù)據(jù)孤島”的問題。微眾銀行開發(fā)的工業(yè)級的聯(lián)邦學(xué)習(xí)開源框架–FATE(Federated AI Technology Enabler,https://www.fedai.org),作為聯(lián)邦學(xué)習(xí)全球首個工業(yè)級開源框架,支持聯(lián)邦學(xué)習(xí)架構(gòu)體系,為機器學(xué)習(xí)、深度學(xué)習(xí)、遷移學(xué)習(xí)提供了高性能聯(lián)邦學(xué)習(xí)機制,F(xiàn)ATE本身還支持多種多方安全計算協(xié)議,如同態(tài)加密、秘密共享、哈希散列等,具有友好的跨域交互信息管理方案。
聯(lián)邦推薦:微眾銀行首次將聯(lián)邦學(xué)習(xí)應(yīng)用于推薦場景
推薦系統(tǒng)中算法的目標是挖掘用戶和內(nèi)容、商品之間的聯(lián)系,根據(jù)問題的特點,微眾銀行將聯(lián)邦推薦算法總結(jié)成三類,如下圖所示,包括橫向聯(lián)邦推薦算法(也可稱為基于商品的聯(lián)邦推薦)、縱向聯(lián)邦推薦算法(也可稱為基于用戶的聯(lián)邦推薦)和遷移聯(lián)邦推薦。
聯(lián)邦推薦算法分類
縱向聯(lián)邦推薦(即基于用戶的聯(lián)邦推薦)主要解決參與方(機構(gòu))擁有大量相同的用戶但是不同的商品或用戶特征時如何協(xié)作構(gòu)建推薦系統(tǒng)的問題,例如新聞推薦服務(wù)商和視頻推薦服務(wù)商的聯(lián)邦,或者推薦服務(wù)商和用戶數(shù)據(jù)提供商的聯(lián)邦。橫向聯(lián)邦推薦(即基于商品的聯(lián)邦推薦)主要解決在參與方擁有大量相同的商品但是不同用戶群體時如何協(xié)作構(gòu)建推薦系統(tǒng)的問題,例如不同地區(qū)相同推薦服務(wù)之間的聯(lián)邦。遷移聯(lián)邦推薦主要解決參與方在相同用戶和商品都不多的情況,如何協(xié)作分享經(jīng)驗構(gòu)建推薦系統(tǒng)的問題。
針對不同的分類,基于當(dāng)前推薦系統(tǒng)最常用的矩陣分解(matrix factorization)和因子分解機(factorization machine)算法,微眾銀行提出聯(lián)邦矩陣分解、聯(lián)邦因子分解機等算法。這些聯(lián)邦推薦算法基于FATE框架開發(fā),使用統(tǒng)一的優(yōu)化流程。以縱向聯(lián)邦推薦的兩個場景為例子,給大家介紹縱向聯(lián)邦矩陣分解和縱向聯(lián)邦因子分解機的思路和優(yōu)化方法。
聯(lián)邦推薦場景一:參與機構(gòu)為大量相同用戶分別提供書籍和電影推薦服務(wù)
具有相同觀影興趣的用戶很可能有相同的閱讀興趣。因此雙方的聯(lián)邦是非常有必要的,結(jié)合雙方數(shù)據(jù)構(gòu)建的推薦系統(tǒng)在性能上會優(yōu)于僅僅使用一方數(shù)據(jù)構(gòu)建的系統(tǒng)。
縱向聯(lián)邦推薦場景一,多個參與機構(gòu)為大量相同用戶提供不同推薦服務(wù)
在這個場景下,以常用的矩陣分解為例子,給出縱向聯(lián)邦推薦的一個解決方案,我們讓兩個參與方在機構(gòu)內(nèi)部分別進行矩陣分解,將用戶在商品上的評分矩陣分解成user profile和item profit的乘積,如下圖中的公式所示:
縱向聯(lián)邦矩陣分解示意圖
其中user profile由雙方共享,為此我們引入一個可信的第三方server來維護共享的user profile,并幫助各方推薦算法的構(gòu)建 (在這里需要說明的是,在最新的FATE技術(shù)中,可信的第三方可以去除,基于加密技術(shù)以及多次通訊,雙方在安全可靠的方式下進行參數(shù)共享)。算法的優(yōu)化流程如下圖所示:
縱向聯(lián)邦矩陣分解優(yōu)化流程
首先由server初始化user profile并加密,參與方分別初始化自己的item profiles
Server將加密的user profile發(fā)送給參與方
參與方解密user profile并更新自己的item profile;同時計算user profile的梯度,加密后發(fā)送給server
Server匯總接收到user profile梯度,在密文狀態(tài)下更新user profile。
重復(fù)步驟2-4,直到收斂
從更新過程,我們可以看出,參與方的數(shù)據(jù)完全保持在本地,雙方僅交換user profile參數(shù),同時server也是在密文環(huán)境下操作雙方計算出來的user profile梯度,對內(nèi)容不知情,不存在隱私泄漏風(fēng)險。最后,雙方都有了自己的模型,而且模型是結(jié)合雙方的數(shù)據(jù)優(yōu)勢后共同構(gòu)建。
聯(lián)邦推薦場景二:參與機構(gòu)為推薦服務(wù)提供方和用戶數(shù)據(jù)提供方
以書籍推薦服務(wù)商和用戶興趣數(shù)據(jù)提供商的聯(lián)邦為例,書籍推薦服務(wù)商對用戶了解越深入推薦越精準。數(shù)據(jù)服務(wù)提供商在合理合法的前提下,進一步擴大數(shù)據(jù)的應(yīng)用價值。
縱向聯(lián)邦場景二示意圖
在有用戶特征的場景下,交叉特征對推薦系統(tǒng)效果的提升幫助非常大,例如交叉地區(qū)特征和運動興趣特征,可以給不同地區(qū)有不同運動興趣的用戶推薦合適的明星傳記。因子分解機(factorization machine)是推薦領(lǐng)域處理特征交叉的較常用算法。在聯(lián)邦推薦場景下,我們提出聯(lián)邦因子分解機,如下圖所示,在數(shù)據(jù)不出本地的情況下,同時完成參與方內(nèi)部的特征交叉和參與方相互之間的特征交叉。
縱向聯(lián)邦因子分解機示意圖
聯(lián)邦因子分解機的優(yōu)化過程如下圖所示,
首先參與方初始化自己的模型
參與方分別計算部分預(yù)估結(jié)果,部分損失值,部分特征的梯度等中間結(jié)果,加密后傳送給對方
雙方將加密并加入掩碼的梯度發(fā)送給server
Server解密帶掩碼的梯度匯總后發(fā)送給參與方
參與方去除掩碼并更新模型
重復(fù)步驟2-5,直到模型收斂
縱向聯(lián)邦因子分解機優(yōu)化流程
經(jīng)過聯(lián)合建模,參與方分別得到部分訓(xùn)練好的聯(lián)邦FM模型,當(dāng)對新樣本進行預(yù)測時,需要兩方一起完成預(yù)測任務(wù)
第一步,A、B雙方各自完成本身中間結(jié)果的計算,加密并傳到服務(wù)器
第二步,服務(wù)器聚合雙方中間結(jié)果,解密得到預(yù)測值
第三步,服務(wù)器將預(yù)測值發(fā)回給A方進行推薦
推薦系統(tǒng)是數(shù)據(jù)驅(qū)動的,數(shù)據(jù)對效果的提升有很大幫助。在使用數(shù)據(jù)的過程中,如何有效的保護隱私和安全是急需解決的問題。微眾銀行在該方向上做了初步的探索和應(yīng)用,同時,也在積極推進關(guān)于聯(lián)邦學(xué)習(xí)國家和國際標準的建立。楊強教授表示,我們會繼續(xù)開源我們的工具,與業(yè)界共鑄聯(lián)邦學(xué)習(xí)開放生態(tài)。