聯邦GNN綜述與經典演算法介紹

京東雲開發者發表於2023-02-15

作者:京東科技 李傑

聯邦學習和GNN都是當前AI領域的研究熱點。聯邦學習的多個參與方可以在不洩露原始資料的情況下,安全合規地聯合訓練業務模型,目前已在諸多領域取得了較好的結果。GNN在應對非歐資料結構時通常有較好的表現,因為它不僅考慮節點本身的特徵還考慮節點之間的連結關係及強度,在諸如:異常個體識別、連結預測、分子性質預測、地理拓撲圖預測交通擁堵等領域均有不俗表現。

那麼GNN與聯邦學習的強強組合又會擦出怎樣的火花?

通常一個好的GNN演算法需要豐富的節點特徵與完整的連線資訊,但現實場景中資料孤島問題比較突出,單個資料擁有方往往只有有限的資料、特徵、邊資訊,但我們藉助聯邦學習技術就可以充分利用各方資料安全合規地訓練有強勁表現的GNN模型。

讀罷此文,您將獲得如下知識點:

•GNN經典演算法原理及計算模型

•聯邦學習定義與分類

•聯邦GNN的兩種分類方法及細節

•基於橫向聯邦的FedGNN模型(微軟亞研,2021)、基於縱向聯邦的VFGNN模型(浙大+螞蟻,2022)

一、GNN原理

1.1 圖場景及資料表示

能用圖刻畫的場景很多,比如:社交網路、生物分子、電商網路、知識圖譜等。

圖最基礎且通用的分類是將其分為:同構圖(一種節點+一種邊)與異構圖(節點型別+邊型別>2),相應的示意圖如下。

一般來說,原始的圖資料由兩部分組成:節點資料(節點型別+節點ID+節點特徵)、邊資料(邊型別+起點+終點)。原始資料經過解析處理後載入圖儲存模組,圖儲存的基本形式為鄰接矩陣(COO),但一般出於儲存與計算開銷考慮採用稀疏儲存表示(CSC/CSR)。

1.2 GNN任務分類

GNN任務一般分為如下四類:

•節點/邊分類:異常使用者識別。

•連結預測:user-item購物傾向、知識圖譜補全。

•全圖分類:生物分子性質預測。

•其他:圖聚類、圖生成。

1.3 GNN演算法原理

我們以GraphSAGE為例講解GNN的計算原理[1],大致包含三個過程:取樣、聚合、擬合目標。GraphSAGE示意圖如下:

GraphSAGE演算法的虛擬碼如下:

下面我們給合例項與公式詳細說明其計算過程,下圖先給出取樣過程與訊息傳遞過程的框架原理。

下圖給出了具體的訊息傳遞執行過程。

二、聯邦學習

之前機器學習模型訓練的經典架構是:資料中心從各客戶端或機構收集原始資料後,在資料中心對收集的全體資料進行模型訓練。近年來隨著資料隱私保護法規的頒佈和資料安全意識的提升,機構間交換明文資料就不可行了。如何綜合多個使用者或機構間資料來訓練模型?聯邦學習技術應運而生。聯邦學習一般分為如下兩大類[2]:

•聯邦學習(橫向):兩個機構擁有較多相同特徵,但是重合樣本ID很少。比如:北京醫院和上海醫院的病人資料。

•聯邦學習(縱向):兩個機構擁有較多相同樣本ID,但是機構間重合特徵較少。比如:北京銀行和北京保險公司的客戶資料。

2.1 橫向聯邦學習

如上圖所示,左邊紅虛線框內是資料表示,即重合樣本較少,但特徵相同。右邊是經典的橫向FedAvg演算法,每個客戶端擁有同樣的模型結構,初始權重由server下發至客戶端,待各客戶端更新本地模型後,再將梯度/權重傳送至server進行聚合,最後將聚合結果下發給各客戶端以更新本地模型。

2.2 縱向聯邦學習

如上圖所示,左邊紅虛線框內代表資料表示,即兩方擁有較多相同樣本ID,但是重合特徵較少。右邊是經典的兩方縱向DNN模型訓練架構[3],其中A方bottom層結果要傳送至B方,而B方擁有label,用來計算loss及梯度,詳細過程參考[4]。

三、聯邦GNN

3.1 聯邦GNN分類

3.1.1 圖物件+資料劃分

根據圖資料在客戶端的分佈規則,具體以圖物件(圖、子圖、節點)與資料劃分(橫向、縱向)角度來看,可以將聯邦GNN分為四類[5]:

1)inter-graph FL

在此分類中,客戶端的每條樣本是圖資料,最終的全域性模型處理圖級別的任務。此架構廣泛應用在生物工程領域,通常用圖來表示分子結構,其中節點表示原子,邊表示原子間的化學鍵。在藥物特性研究方面可以應用此技術,每個製藥廠k都維護了自己的分子-屬性資料集

,但都不想分享給競爭對手。藉助inter-graph FL技術,多家藥廠就可以合作研究藥物性質。在此例中,全域性模型為:

2)horizontal intra-graph FL

上圖中全部客戶端擁有的資料構成完整的圖,其中虛線表示本應存在但實際不存在的邊。此類架構中,每個客戶端對應的子圖擁有相同的特徵空間和標籤空間但擁有不同的ID。在此設定下,全域性GNN模型一般處理節點類任務和邊任務:

3)vertical intra-graph FL

此類架構中,客戶端共享相同的ID空間,但不共享特徵和標籤空間。上圖中的垂直虛線代表擁有相同ID的節點。在此架構中全域性模型不唯一,這取決於多少客戶端擁有標籤,同時也意味著此架構可進行multi-task learning。此架構主要用來以隱私保護的方式聚合各客戶端相同節點的特徵,共享相同節點的標籤。如果不考慮資料對齊和資料共享問題,則相應的目標函式定義為:

此架構一般應用在機構間合作,如反洗錢。犯罪分子採用跨多個機構的複雜策略進行洗錢活動,這時可應用此架構,透過機構間合作識別出洗錢行為。

4)graph-structured FL

此架構用來表示客戶端之間的拓撲關係,一個客戶端相當於圖中一個節點。此架構會基於客戶端拓撲聚合本地模型,全域性模型可以處理聯邦學習領域的各種任務和目標函式。全域性GNN模型旨在透過客戶端之間的拓撲關係挖掘背後的隱含資訊。此架構的經典應用是聯邦交通流量預測,城市中的監控裝置分佈在不同的地方,GNN用來描述裝置間的空間依賴關係。以上圖為例全域性GNN模型的聚合邏輯如下:

本節總結

3.1.2 二維分類法

根據參考文獻[6],我們可以從2個維度對FedGNNs進行分類。第一個維度為主維度,聚焦於聯邦學習與GNN如何結合;第二個維度為輔助維度,聚焦於聯邦學習的聚合邏輯,用來解決不同level的圖資料異構性。其分類彙總圖大致如下:

1)GNN-assisted FL

藉助結構化的客戶端來提升聯邦學習訓練效果,用虛線來表示客戶端之間的網路拓撲關係。此架構一般分為兩種形式:

•中心化架構:擁有客戶端間的全域性網路拓撲。可訓練GNN模型提升聯邦聚合效果,也可幫助客戶端更新本地模型。

•非中心化架構:客戶端間的全域性網路拓撲必須提前給定,這樣擁有子圖的客戶端就可以找到它在圖中的鄰居。

2)FL-assisted GNN

藉助分散的圖資料孤島來提升GNN模型效果,具體透過聯邦學習把圖資料孤島組織起來訓練一個全域性GNN模型。根據客戶端是否有相同節點,此架構可分為如下兩類:

•horizontal FedGNN:各客戶端擁有的重疊節點不多,有可能會丟失跨客戶端的連結,通常需要較複雜的處理方法。

•vertical FedGNN:各客戶端擁有相同的節點集合,但持有的特徵不相同。根據特徵的分割槽方式不同,相應的處理方法也隨之變化。

3)Auxiliary taxonomy

輔助分類聚焦於解決聯邦學習客戶端之間的異構性問題。具體可以分為三類:

•客戶端擁有相同ID:可將節點特徵或中間表徵上傳至聯邦伺服器進行聯邦聚合。常用於vertical FedGNN和有部分重複節點的水平FedGNN。

•客戶端擁有不同節點但相同網路結構:聯邦聚合物件主要是模型權重和梯度。常用於GNN-assisted FL和無重複節點的horizontal FedGNN。

•客戶端擁有不同網路結構:先把本地模型做成圖,然後將GNN作用於圖之上。聯邦聚合物件是GNN權重和梯度,常用於centralized FedGNN。

3.2 FedGNN

3.2.1 問題定義

3.2.2 FedGNN原理與架構

如上圖,FedGNN[7]由一箇中心伺服器和大量客戶端組成。客戶端基於其使用者互動物品與鄰居客戶端在本地維護了一個子圖。客戶端基於本地子圖學習user/item embedding,以及GNN模型,然後將梯度上傳給中心伺服器。中心伺服器用來協調客戶端,具體是在訓練過程中聚合從多個客戶端收集的梯度(基於FedAvg演算法),並將聚合後的梯度回傳給客戶端。如下我們將依次介紹一些技術細節。

FedGNN的完整演算法流程見下述Algorithm1,其中有兩個隱私保護模組:其一是隱私保護模型更新(Algorithm1的9-11行),用來保護梯度資訊;其二是隱私保護user-item圖擴充模組(Algorithm1中第15行),用來對user和item的高階互動進行建模。

3.2.3 隱私保護模型更新

embedding梯度和模型梯度(GNN+rating predictor)直接傳輸會洩露隱私,因此需要對此進行安全防護。因為每個客戶端維護了全量item的embedding表,透過同態加密保護梯度就不太現實(大量的儲存和通訊開銷),文獻[7]提出兩個機制來保護模型更新過程中的隱私保護。

1)偽互動物品取樣

隨機取樣M個使用者並未互動過的物品,根據互動物品embedding梯度分佈隨機生成偽互動物品embedding梯度。於是第i個使用者的模型和embedding梯度修改為

2)採用LDP(本地差分隱私)護本地梯度

首先透過梯度的無窮範數和閾值 δ 對梯度進行截斷,然後基於LDP思想採用0均值拉普拉斯噪聲對前述梯度進行擾動,從而實現對使用者隱私的保護。相應的公式表達為:

g i=clip(g i​,δ)+Laplace(0,λ)。受保護的梯度再上傳到中心伺服器進行聚合。

3.2.4 隱私保護圖擴充

客戶端本地user-item圖以隱私保護方式找到鄰居客戶端,以達到對本地圖自身的擴充。在中心化儲存的GNN場景中,user與item的高階互動可透過全域性user-item圖方便獲取。但非中心化場景中,在遵守隱私保護的前提下要想求得user-item高階互動不是易事。文章提出透過尋找客戶端的匿名鄰居以提升user和item的表徵學習,同時使用者隱私不洩露,詳細過程如下:

首先,中心伺服器生成公鑰並分發給各客戶端。客戶端收到公鑰後,利用同態加密技術對互動物品ID進行加密處理。前述加密ID和使用者embedding被上傳至第三方伺服器(不需要可信),透過PSI技術找到有相同互動物品的使用者,然後為每個使用者提供匿名鄰居embedding。最後,我們把使用者的鄰居使用者節點連線起來,這樣就以隱私保護的方式新增了user-item的高階互動資訊,豐富了客戶端的本地user-item子圖。

3.3 VFGNN

3.3.1 資料假設

訓練一個好的GNN模型通常需要豐富的節點特徵和完整的連線資訊。但是節點特徵和連線資訊通常由多個資料方擁有,也就是所謂的資料孤島問題。下圖我們給出圖資料縱向劃分的例子[8],其中三方各自擁有節點不同的特徵,各方擁有不同型別的邊。

3.3.2 演算法架構及流程

安全性假設:資料擁有方A,B,C和伺服器S都是半誠實的,並且假定伺服器S和任一資料擁有方不會合謀。這個安全假設符合大多數已有工作,並且和現實場景比較契合。

上圖即為VFGNN的架構圖,它的計算分為兩大部分:

•隱私資料相關計算:一般在資料擁有方本地進行。在GNN場景中,隱私資料有:節點特徵、label、邊資訊。

•非隱私資料相關計算:一般將計算權委託給半誠實server,主要是出於計算效率的考慮。

考慮到資料隱私性的問題,上述計算圖分為如下三個計運算元圖,且各自承擔的工作如下:

CG1:隱私特徵和邊相關計算。 先利用節點隱私特徵生成initial node embedding,這個過程是多方協同工作的。接著透過取樣找到節點的多跳鄰居,再應用聚合函式生成local node embedding。

CG2:非隱私資料相關計算。 出於效率考慮,作者把非隱私資料相關計算委託給半誠實伺服器。此伺服器把從各方收集的local node embedding透過不同的COMBINE策略處理生成global node embedding。接著可以進行若干明文類的操作,比如max-pooling、activation(這些計算在密文狀態下不友好)。進行一系列明文處理後,我們得到最後一個隱層輸出ZL​,然後把它傳送給擁有label的資料方計算預測值。

CG3:隱私標籤相關計算。 以節點分類任務為例 ,當收到ZL​後可以快速計算出預測值,具體透過softmax函式進行處理。

3.3.3 重要元件

Generating Initial Node Embedding

如果各方獨立生成initial node embedding(上圖a),則遵循如下計算公式:

如果各方協同生成initial node emb,則可按上圖b中應用MPC技術進行處理。

Generating Local Node Embedding

基於前述生成的initial node embedding,及節點的多跳鄰居節點,應用聚合函式可以生成local node embedding。鄰居節點的聚合操作必須在本地進行而不需要多方協同,目的是保護隱私的邊資訊。一個節點的鄰居節點聚合操作和常規GNN一樣,以GraphSAGE為例節點的聚合操作是透過取樣和聚合特徵形成了local node embedding,具體公式如下:

GraphSAGE中,常用的聚合函式有:Mean、LSTM、Pooling。接著資料擁有方把local node embedding傳送給半誠實伺服器,以進行COMBINE操作及後續的非隱私資料計算邏輯。

Generating Global Node Embedding

對各方傳來的local node embedding執行combine操作可以生成global node embedding。combine策略一般是可訓練且高表達容量,文章給出了三種策略:

1)Concat

2)Mean

3)Regression

3.3.4 隱私保護DP

如果在前向過程中把local node embedding直接傳給半誠實伺服器,或在反向傳播過程中直接傳遞梯度資訊很可能造成資訊洩露。本文提出了兩種基於DP的方法用來保護資訊釋出過程,演算法流程如下:

3.3.5 VFGNN前向演算法

以GraphSAGE處理節點分類任務為例,VFGNN演算法的前向過程描述如下:

3.4 其他演算法及專案

最近四年出現的聯邦GNN演算法[9]:

開源專案有:FedGraphNN[10]。

參考資料

1.Hamilton W, Ying Z, Leskovec J. Inductive representation learning on large graphs[J]. Advances in neural information processing systems, 2017, 30.

2.Yang Q, Liu Y, Chen T, et al. Federated machine learning: Concept and applications[J]. ACM Transactions on Intelligent Systems and Technology (TIST), 2019, 10(2): 1-19.

  1. https://fate.readthedocs.io/en/develop/_build_temp/python/federatedml/nn/hetero_nn/README.html

4.Zhang Y, Zhu H. Additively homomorphical encryption based deep neural network for asymmetrically collaborative machine learning[J]. arXiv preprint arXiv:2007.06849, 2020.

5.Zhang H, Shen T, Wu F, et al. Federated graph learning--a position paper[J]. arXiv preprint arXiv:2105.11099, 2021.

6.Liu R, Yu H. Federated graph neural networks: Overview, techniques and challenges[J]. arXiv preprint arXiv:2202.07256, 2022.

7.Wu C, Wu F, Cao Y, et al. Fedgnn: Federated graph neural network for privacy-preserving recommendation[J]. arXiv preprint arXiv:2102.04925, 2021.

8.Chen C, Zhou J, Zheng L, et al. Vertically federated graph neural network for privacy-preserving node classification[J]. arXiv preprint arXiv:2005.11903, 2020.

9.《圖聯邦學習進展與應用》 史春奇

  1. https://github.com/FedML-AI/FedML/tree/master/python/app/fedgraphnn

相關文章