Categories
程式開發

聯邦學習針對推薦場景化的技術原理解析


2019年12月8日至12月14日,微眾銀行首席人工智能官楊強教授受邀參加於加拿大溫哥華舉辦的人工智能和機器學習領域的國際頂級會議:神經信息處理系統大會(Conference and Workshop on Neural Information Processing Systems,簡稱NeurIPS)。在微眾銀行聯合谷歌、卡內基梅隆大學舉辦的聯邦學習國際研討會上,楊強教授以《Federated Recommendation》為主題,分享了微眾銀行首創的聯邦推薦技術的最新研究成果和應用落地。

聯邦學習針對推薦場景化的技術原理解析 1

圖:微眾銀行首席人工智能官楊強教授發表演講

推薦系​​統應用廣泛,已經滲透到人們生活各個方面,例如新聞推薦、視頻推薦、商品推薦等。為了實現精準的推薦效果,推薦系統會收集海量用戶和所推薦內容的數據,一般而言,收集的數據越多,對用戶和推薦內容的了解就越全面和深入,推薦效果越精準。在現實場景中,隨著用戶數據安全和隱私保護相關政策相繼出台和日益完善,這些數據通常為保護用戶數據隱私而以“數據孤島”的形式分散在不同的機構。因此在“數據孤島”與“隱私保護”的現實問題中,在合理合法的前提下使用數據持續優化效果提供優質服務,是當前推薦系統所面的巨大挑戰和首要任務。

FATE:首個支持聯邦學習架構體系的工業級聯邦學習開源框架

微眾銀行提出的聯邦學習解決方案能夠讓多個機構同時協作,通過交換加密的模型參數進行綜合訓練持續優化模型,以合理合法的方式跨越數據鴻溝,解決“數據孤島”的問題。微眾銀行開發的工業級的聯邦學習開源框架–FATE(Federated AI Technology Enabler,https://www.fedai.org),作為聯邦學習全球首個工業級開源框架,支持聯邦學習架構體系,為機器學習、深度學習、遷移學習提供了高性能聯邦學習機制,FATE本身還支持多種多方安全計算協議,如同態加密、秘密共享、哈希散列等,具有友好的跨域交互信息管理方案。

聯邦推薦

推薦系​​統中算法的目標是挖掘用戶和內容、商品之間的聯繫,根據問題的特點,微眾銀行將聯邦推薦算法總結成三類,如下圖所示,包括橫向聯邦推薦算法(也可稱為基於商品的聯邦推薦)、縱向聯邦推薦算法(也可稱為基於用戶的聯邦推薦)和遷移聯邦推薦。

聯邦學習針對推薦場景化的技術原理解析 2
聯邦學習針對推薦場景化的技術原理解析 3

圖:聯邦推薦算法分類

縱向聯邦推薦(即基於用戶的聯邦推薦)主要解決參與方(機構)擁有大量相同的用戶但是不同的商品或用戶特徵時如何協作構建推薦系統的問題,例如新聞推薦服務商和視頻推薦服務商的聯邦,或者推薦服務商和用戶數據提供商的聯邦。橫向聯邦推薦(即基於商品的聯邦推薦)主要解決在參與方擁有大量相同的商品但是不同用戶群體時如何協作構建推薦系統的問題,例如不同地區相同推薦服務之間的聯邦。遷移聯邦推薦主要解決參與方在相同用戶和商品都不多的情況,如何協作分享經驗構建推薦系統的問題。

針對不同的分類,基於當前推薦系統最常用的矩陣分解(matrix factorization)和因子分解機(factorization machine)算法,微眾銀行提出聯邦矩陣分解、聯邦因子分解機等算法。這些聯邦推薦算法基於FATE框架開發,使用統一的優化流程。以縱向聯邦推薦的兩個場景為例子,給大家介紹縱向聯邦矩陣分解和縱向聯邦因子分解機的思路和優化方法。

聯邦推薦場景一:參與機構為大量相同用戶分別提供書籍和電影推薦服務

具有相同觀影興趣的用戶很可能有相同的閱讀興趣。因此雙方的聯邦是非常有必要的,結合雙方數據構建的推薦系統在性能上會優於僅僅使用一方數據構建的系統。

聯邦學習針對推薦場景化的技術原理解析 4

圖:縱向聯邦推薦場景一,多個參與機構為大量相同用戶提供不同推薦服務

在這個場景下,以常用的矩陣分解為例子,給出縱向聯邦推薦的一個解決方案,我們讓兩個參與方在機構內部分別進行矩陣分解,將用戶在商品上的評分矩陣分解成user profile和item profit的乘積,如下圖中的公式所示:

聯邦學習針對推薦場景化的技術原理解析 5

圖:縱向聯邦矩陣分解示意圖

其中user profile由雙方共享,為此我們引入一個可信的第三方server來維護共享的user profile,並幫助各方推薦算法的構建(在這裡需要說明的是,在最新的FATE技術中,可信的第三方可以去除,基於加密技術以及多次通訊,雙方在安全可靠的方式下進行參數共享)。算法的優化流程如下圖所示:

聯邦學習針對推薦場景化的技術原理解析 5

圖:縱向聯邦矩陣分解優化流程

  • 首先由server初始化user profile並加密,參與方分別初始化自己的item profiles
  • Server將加密的user profile發送給參與方
  • 參與方解密user profile並更新自己的item profile;同時計算user profile的梯度,加密後發送給server
  • Server匯總接收到user profile梯度,在密文狀態下更新user profile。
  • 重複步驟2-4,直到收斂

從更新過程,我們可以看出,參與方的數據完全保持在本地,雙方僅交換user profile參數,同時server也是在密文環境下操作雙方計算出來的user profile梯度,對內容不知情,不存在隱私洩漏風險。最後,雙方都有了自己的模型,而且模型是結合雙方的數據優勢後共同構建。

聯邦推薦場景二:參與機構為推薦服務提供方和用戶數據提供方

以書籍推薦服務商和用戶興趣數據提供商的聯邦為例,書籍推薦服務商對用戶了解越深入推薦越精準。數據服務提供商在合理合法的前提下,進一步擴大數據的應用價值。

聯邦學習針對推薦場景化的技術原理解析 7

圖:縱向聯邦場景二示意圖

在有用戶特徵的場景下,交叉特徵對推薦系統效果的提升幫助非常大,例如交叉地區特徵和運動興趣特徵,可以給不同地區有不同運動興趣的用戶推薦合適的明星傳記。因子分解機(factorization machine)是推薦領域處理特徵交叉的較常用算法。在聯邦推薦場景下,我們提出聯邦因子分解機,如下圖所示,在數據不出本地的情況下,同時完成參與方內部的特徵交叉和參與方相互之間的特徵交叉。

聯邦學習針對推薦場景化的技術原理解析 8

圖:縱向聯邦因子分解機示意圖

聯邦因子分解機的優化過程如下圖所示,

  • 首先參與方初始化自己的模型
  • 參與方分別計算部分預估結果,部分損失值,部分特徵的梯度等中間結果,加密後傳送給對方
  • 雙方將加密並加入掩碼的梯度發送給server
  • Server解密帶掩碼的梯度匯總後發送給參與方
  • 參與方去除掩碼並更新模型
  • 重複步驟2-5,直到模型收斂

聯邦學習針對推薦場景化的技術原理解析 9

圖:縱向聯邦因子分解機優化流程

經過聯合建模,參與方分別得到部分訓練好的聯邦FM模型,當對新樣本進行預測時,需要兩方一起完成預測任務

第一步,A、B雙方各自完成本身中間結果的計算,加密並傳到服務器
第二步,服務器聚合雙方中間結果,解密得到預測值
第三步,服務器將預測值發回給A方進行推薦

推薦系​​統是數據驅動的,數據對效果的提升有很大幫助。在使用數據的過程中,如何有效的保護隱私和安全是急需解決的問題。微眾銀行在該方向上做了初步的探索和應用,同時,也在積極推進關於聯邦學習國家和國際標準的建立。