1. 程式人生 > 實用技巧 >擴充套件圖神經網路:暴力堆疊模型深度並不可取

擴充套件圖神經網路:暴力堆疊模型深度並不可取


編譯 | Mr Bear

編輯|陳大鑫

目前,阻礙圖神經網路在業界大規模應用的挑戰之一是:圖神經網路很難被擴充套件到 Twitter 的使用者關注關係圖這類大型圖上。

節點之間的相互依賴關係使我們很難將損失函式分解為各個獨立節點的影響。

在本文中,我們介紹了Twitter 研發的一種簡單的圖神經網路架構,該架構可以在大型圖上有效工作。

1

圖神經網路介紹

圖神經網路(GNN)是一類近年來逐漸興起的機器學習模型,它被用於學習圖結構的資料。GNN 已經被成功地應用於對各種不同領域(包括社會科學、計算機視覺和圖形學、粒子物理學、化學、醫學等)的關係和互動的系統進行建模。

直到最近,該領域內大多數的研究仍重點關注於研發新型 GNN 模型,並且在小型圖(例如,僅僅包含大約 5K 節點的引用網路 Cora 仍然被廣泛使用)上測試這些模型;相對來說,處理大規模應用的研究工作鮮有人涉足。

另一方面,工業界的實際問題往往需要處理超大規模的圖(例如,包含數百萬節點、數十億條邊的 Twitter 或 Facebook 的社交網路)。

大多數現有的文獻中描述的方法在這樣的大規模應用場景下並不適用。

簡而言之,GNN 通過聚合區域性鄰居節點的特徵來進行操作。當下流行的圖卷積網路(GCN)模型通過將 d 維節點特徵組織在一個 n×d 的矩陣 X 中(其中,n 代表節點的個數),在圖上實現了一種最簡單的類似於卷積的操作,它將節點層面上的變換與相鄰節點之間的特徵傳遞融合了起來。

Y= ReLU(AXW).

在這裡,W 是各節點之間共享的可學習的矩陣,A 是一個線性傳播運算元,相當於鄰居節點特徵的加權平均。正如在傳統的卷積神經網路(CNN)中一樣,我們可以將多層堆疊的這種形式應用在序列中。

GNN 可以被設計用於在節點層面上(例如,檢測社交網路中的惡意使用者)、邊的層面上(例如,推薦系統中典型的場景——連結預測)、或整個圖的層面上(例如,預測分子圖的化學性質)進行預測。例如,我們可以使用如下所示的雙層 GCN 執行節點級別的分類任務:

Y= softmax(AReLU(AXW)W’).

2

擴充套件圖神經網路的挑戰性

為什麼擴充套件圖神經網路十分具有挑戰性呢?

在上述節點級別的預測問題中,GNN 會在樣本節點上進行訓練。

在傳統的機器學習環境下,通常假設樣本是以統計上相獨立的方式從某個分佈中取樣得到的。反過來,這樣就可以將損失函式分解為獨立樣本的貢獻,並採用隨機優化技術。

然而,圖中的節點是通過邊相互關聯的,這使得訓練集中的樣本在統計意義上相互依賴。此外,由於節點之間的統計依賴性,取樣過程可能會引入偏置。

例如,這可能使得一些節點或邊在訓練集中比其它節點或邊出現得更頻繁,而我們需要恰當地應對這種「副作用」。

最後,同樣重要的是,我們需要保證取樣得到的子圖能夠保留 GNN 可以利用的有意義的結構。

在許多早期的圖神經網路工作中,並未考慮上述問題:諸如 GCN(圖卷積網路)、ChebNet、MoNet 和 GAT 等網路架構都是使用全批量梯度下降(full-batch gradient descent)演算法訓練的。

這使我們必須在記憶體中維持全部圖的鄰接矩陣以及節點特徵。因此,一個 L 層的 GCN 模型就具有了 O(Lnd²) 的時間複雜度和 O(Lnd +Ld²) 的空間複雜度,即使對於大小適度的圖來說,這也是無法接受的。

GraphSAGE 是研究圖神經網路的可擴充套件性問題的第一項工作,它是 Will Hamilton 等人撰寫的奠基性論文。GraphSAGE 將鄰居節點取樣與 mini-batch 訓練結合了起來,從而在大規模圖上訓練 GNN(「SAGE」指的是「取樣與聚合」)。

該論文的核心思想是,為了用一個 L 層的 GCN 計算某個節點上的訓練損失,只需要聚合該節點 L 跳之內鄰居節點的資訊,而在計算中不考慮圖中更遠一些的節點。

但問題在於,對於這種符合「小世界」模型的圖(例如社交網路),由某些節點 2 跳內的鄰居組成的子圖可能就已經包含數百萬的節點了,這使得我們很難將其儲存在記憶體中。

GraphSAGE 通過至多對 L 跳的鄰居進行取樣來解決該問題:從正在訓練的節點開始,該演算法多次有放回地均勻取樣 k 個 1 跳鄰居;接著,對於每一個該節點的鄰居節點,演算法以相同的方式再取樣 k 個鄰居節點,以此迭代式地取樣 L 次。通過這種方式,我們保證對於每個節點而言,可以聚合有界的 L 跳規模為 O(kᴸ) 的取樣鄰居節點。

如果我們使用 b 個訓練節點構建一個 batch,且每個節點的 L 跳鄰居節點相互獨立,那麼我們就會得到與圖的規模 n 無關的空間複雜度 O(bkᴸ)。使用 GraphSAGE 演算法時,一個 batch 的計算複雜度為 O(bLd²kᴸ)。

圖 1:GraphSAGE 的鄰居節點取樣過程。我們從完整的圖中下采樣得到包含 b 個節點的 batch (在本例中,b=2,我們將紅色和淡黃色的節點用於訓練)。在右側的圖中,我們取樣得到 2 跳鄰居節點圖,將其用於獨立地計算紅色和淡黃色節點的圖嵌入和損失。

GraphSAGE 有一個顯著的缺點,即取樣得到的節點可能會出現很多次(由於有放回的抽樣),因此可能會引入大量冗餘的計算。例如,在上圖中,深綠色的節點在兩個訓練節點的 L 跳鄰居中都出現了。因此,在一個 batch 中,該深綠色節點的嵌入會被計算兩次。

隨著 batch 大小 b 和取樣節點個數 k 的增長,冗餘計算的規模也會增大。此外,對於每個 batch 而言,儘管擁有 O(bkᴸ) 的空間複雜度,但只會利用 b 個節點計算損失函式。因此,從某種程度上說,對於其它節點的計算也是一種浪費。

在 GraphSAGE 之後,許多後續的工作重點關注改進 mini-batch 的取樣過程,從而減少 GraphSAGE 中的冗餘計算,並使得每個 batch 更加高效。

ClusterGCN 和 GraphSAINT 是該研究方向最新的工作,它們採用了「圖取樣」(與 GraphSAGE 的鄰居節點取樣相對應)技術。

在圖取樣方法中,我們在每一個 batch 中取樣得到原始圖的一個子圖,然後在整個子圖上執行類似於 GCN 的模型。在這裡,我們面臨的挑戰是,需要保證這些子圖保留了大多數原始的邊,並且能展現出有意義的拓撲結構。

為了實現上述目標,ClusterGCN 首先對圖進行了聚類;然後,在每一個 batch 中,該模型會在一個聚類上進行訓練。這使得每個 batch 中的節點會聯絡得儘可能的緊密。

GraphSAINT 則提出了一種通用的概率化的圖取樣器,它通過在原始的圖中取樣子圖來構建用於訓練的 batch。

我們可以根據不同的方案設計圖取樣器:例如,該取樣器可以執行均勻節點取樣、均勻邊取樣,或者通過使用隨機遊走計算節點的重要性、將其用於取樣的概率分佈從而進行「重要性取樣」。

請注意,進行取樣的好處之一是:在訓練時,取樣可以作為一種邊級別上的「dropout」技術,它可以對模型進行正則化,從而提升模型的效能。然而,在推理時,邊 dropout 仍然需要看到所有的邊,而在上述方法中,我們這些無法獲得這些邊的資訊。

圖取樣技術的另一個影響是,它可以減少在鄰居節點指數級增長的情況下,存在的「資訊瓶頸」及其造成的「過度擠壓」現象。

在我們與 Ben Chamberlian、Davide Eynard 以及 Federico Monti 等人聯合發表的論文 “SIGN: Scalable Inception Graph Neural Networks” 中,我們研究了為節點級分類問題設計簡單、與取樣無關的架構的可能性。

考慮到上文介紹的取樣技術的間接好處,讀者可能會問:為什麼我們要摒棄取樣策略呢?

原因如下:節點分類問題的例項之間可能存在顯著的差異,據我們所知,至今還沒有工作系統地研究了「何時取樣」能真正起到積極的作用,而不是僅僅減輕了計算複雜度。

對取樣方案的實現引入了額外的複雜性,而我們相信,我們需要的是一種簡單、強大、與取樣無關、可擴充套件的基線架構。

3

方法探究

我們的方法受到了一些近期釋出的實驗結果的啟發。首先,在很多情況下,簡單的固定的資訊聚合器(例如 GCN)比一些更加複雜的資訊聚合器(例如,GAT 和 MPNN)效能更好。

此外,儘管深度學習的成功是建立在擁有多層的模型之上的,但是在圖深度學習領域中,「模型是否需要很深」仍然是一個有待解決的開放性問題

具體而言,Wu 等人在論文「Simplifying Graph Convolutional Networks」中指出,只擁有一個多跳資訊傳播層的 GCN 模型可以擁有與具有多個資訊傳播層的模型相當的效能。

通過在單個卷積層中組合不同的、固定的鄰居節點聚合器,我們可以在不使用圖取樣技術的前提下,得到具有非常大的可擴充套件性的模型。換句話說,我們在該架構的第一層進行所有與圖相關的(固定的)操作,因此這些操作可以被預計算。

接下來,這些預先聚合的資訊可以作為模型其它部分的輸入,而由於缺少鄰居節點的資訊聚合,這些部分可以被歸納為一個多層感知機(MLP)。

需要指出的是,即使我們使用了這麼淺的卷積方案,通過採用一些(可能專用的、更復雜的)資訊傳播運算元,我們仍然能保留圖卷積操作的表達能力。例如,我們可以設計一些運算元來考慮「區域性子圖計數」或圖中的模體(motif)。

圖 2:SIGN 架構包含一個類似於 GCN 的層,它帶有多個線性傳播運算元,這些運算元可能作用於多跳鄰居節點。在這個層後面,會連線著一個面向節點級別應用的多層感知機。該架構之所以具有較高的計算效率,是由於對被傳播的特徵的預計算(如圖中紅色部分所示)。

我們提出的可擴充套件架構被稱為 SIGN,它面向的是如下所示的節點級分類任務:

Y= softmax(ReLU(XW₀| A₁XW₁| A₂XW₂| … | AᵣXWᵣ)W’)

其中,Aᵣ 是線性傳播矩陣(例如一個正則化的鄰接矩陣,它的冪,或者一個模體矩陣)。Wᵣ和 W’ 是可學習的引數。如圖 2 所示,該網路可以通過加入面向節點的層變得更深:

Y= softmax(ReLU(…ReLU(XW₀| A₁XW₁| … | AᵣXWᵣ)W’)…W’’)

最後,當我們對相同的傳播運算元應用不同的冪(例如,A₁=B¹, A₂=B²,等等)時,圖操作有效地在越來越遠的跳中聚合了來自鄰居節點的資訊,這類似於在相同的網路層中感受野不同的卷積核。

在這裡,與經典的卷積神經網路中「Inception」模組的類比,解釋了我們提出的論文的名字 SIGN 的由來。

如前文所述,上述等式中矩陣的積 A₁X,…, AᵣX 並不依賴可學習的模型引數,因此可以被預計算。具體而言,對於規模超大的圖來說,我們可以使用 Apache Spark 等分散式計算架構高效地擴充套件這種預計算過程。

這種做法有效地將整體模型的計算複雜度降低到了與多層感知機相同的水平上。此外,通過將資訊傳播過程轉移到預計算步驟中,我們可以聚合來自所有鄰居節點的資訊,從而避免取樣過程及其可能帶來的資訊損失與偏置。

SIGN 主要的優點在於其可擴充套件性與效率,我們可以使用標準的 mini-batch 梯度下降方法訓練它。

我們發現,在保持與目前最先進的 GraphSAINT 模型準確率非常接近的條件下,在推理階段,SIGN 的運算速度比 ClusterGCN 和 GraphSAINT 要快兩個數量級;而在訓練階段,SIGN 也要比它們快得多。

圖 3:在 OGBN-Product 資料集上,不同方法的收斂情況。SIGN 的各種變體都要比GraphSAINT 和 ClusterGCN 收斂地更快,並且能夠在驗證中得到更高的 F1 分數。

圖 4:在 OGBN-Product 資料集上,不同方法的預處理、訓練、推理時間(單位:秒)。儘管 SIGN 的預處理過程較為緩慢,但是 SIGN 在訓練階段要比對比基線快得多,並且在推理階段要比其它方法快上近兩個數量級。

此外,我們的模型也支援任意的傳播運算元。對於不同型別的圖而言,也許我們必須處理不同的傳播運算元。

我們發現,有一些任務可以獲益於基於模體的運算元(如三角形計數)。

圖 5:在一些流行的資料集上,SIGN 模型以及其它可擴充套件方法在節點分類任務中的效能。基於三角模體的傳播運算元在 Flickr 資料集上取得了較大的效能提升,在 PPI 和 Yelp 資料集上也有一定的效能提升。

儘管受限於只擁有單個圖卷積層,以及只使用了線性傳播運算元,SIGN 實際上可以良好執行,取得了與更加複雜的模型相當、甚至更好的效能。由於 SIGN 具有很快的運算速度並且易於實現,我們期待 SIGN 成為一種大規模應用的圖學習方法的簡單對比基線。

也許,更重要的是,由於這種簡單的模型取得了成功,我們不禁要提出一個更本質的問題:「我們真的需要深度的圖神經網路嗎」?

我們推測,在許多面向社交網路以及「小世界」圖的學習問題中,我們需要使用更為豐富的區域性結構資訊,而不是使用暴力的深度架構。

有趣的是,由於算力的進步以及將較為簡單的特徵組合為複雜特徵的能力,傳統的卷積神經網路架構朝著相反的方向發展(使用更小卷積核的更深的網路)。

我們尚不明確同樣的方法是否適用於圖學習問題,因為圖的組合性要複雜得多(例如,無論網路有多深,某些結構都不能通過訊息傳遞來計算)。

當然,我們還需要通過更多詳細的實驗來驗證這一猜想。

參考引用:

[1] The recently introducedOpen Graph Benchmarknow offers large-scale graphs with millions of nodes. It will probably take some time for the community to switch to it.

[2] T. Kipf and M. Welling,Semi-supervised classification with graph convolutional networks(2017). Proc. ICLR introduced the popular GCN architecture, which was derived as a simplification of the ChebNet model proposed by M. Defferrard et al.Convolutional neural networks on graphs with fast localized spectral filtering(2016). Proc. NIPS.

[3] As the diffusion operator, Kipf and Welling used the graph adjacency matrix with self-loops (i.e., the node itself contributes to its feature update), but other choices are possible as well. The diffusion operation can be made feature-dependent of the formA(X)X(i.e., it is still a linear combination of the node features, but the weights depend on the features themselves) like in MoNet [4] or GAT [5] models, or completely nonlinear,????(X), like in message-passing neural networks (MPNN) [6]. For simplicity, we focus the discussion on the GCN model applied to node-wise classification.

[4] F. Monti et al.,Geometric Deep Learning on Graphs and Manifolds Using Mixture Model CNNs(2017). In Proc. CVPR.

[5] P. Veličković et al.,Graph Attention Networks(2018). In Proc. ICLR.

[6] J. Gilmer et al.,Neural message passing for quantum chemistry(2017). In Proc. ICML.

[7] Here we assume for simplicity that the graph is sparse with the number of edges ||=????(n).

[8] W. Hamilton et al.,Inductive Representation Learning on Large Graphs(2017). In Proc. NeurIPS.

[9] The number of neighbours in such graphs tends to grow exponentially with the neighbourhood expansion.

[10] Sampling with replacement means that some neighbour nodes can appear more than once, in particular if the number of neighbours is smaller thank.

[11] W.-L. Chiang et al.,Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks(2019). In Proc. KDD.

[12] H. Zeng et al.,GraphSAINT: Graph Sampling Based Inductive Learning Method(2020) In Proc. ICLR.

[13] Y. Rong et al.DropEdge: Towards deep graph convolutional networks on node classification(2020). In Proc. ICLR. An idea similar to DropOut where a random subset of edges is used during training.

[14] U. Alon and E. Yahav,On the bottleneck of graph neural networks and its practical implications(2020). arXiv:2006.05205. Identified the over-squashing phenomenon in graph neural networks, which is similar to one observed in sequential recurrent models.

[15] Frasca et al.,SIGN: Scalable Inception Graph Neural Networks(2020). ICML workshop on Graph Representation Learning and Beyond.

[16] O. Shchur et al.Pitfalls of graph neural network evaluation(2018). Workshop on Relational Representation Learning. Shows that simple GNN models perform on par with more complex ones.

[17] F. Wu et al.,Simplifying graph neural networks(2019). In Proc. ICML.

[18] While we stress that SIGN does not need sampling for computational efficiency, there are other reasons why graph subsampling is useful. J. Klicpera et al.Diffusion improves graph learning(2020). Proc. NeurIPS show that sampled diffusion matrices improve performance of graph neural networks. We observed the same phenomenon in early SIGN experiments.

[19] G. Bouritsas et al.Improving graph neural network expressivity via subgraph isomorphism counting(2020). arXiv:2006.09252. Shows how provably powerful GNNs can be obtained by structural node encoding.

[20] F. Monti, K. Otness, M. M. Bronstein,MotifNet: a motif-based graph convolutional network for directed graphs(2018). arXiv:1802.01572. Uses motif-based diffusion operators.

[21] C. Szegedi et al.,Going deeper with convolution(2015). Proc. CVPR proposed the inception module in the already classical Google LeNet architecture. To be fair, we were not the first to think of graph inception modules. Our collaborator Anees Kazi from TU Munich, who was a visiting student at Imperial College last year, introduced them first.

[22] Note that reaching higher-order neighbours is normally achieved by depth-wise stacking graph convolutional layers operating with direct neighbours; in our architecture this is directly achieved in the first layer by powers of graph operators.

原文連結:

https://medium.com/@michael.bronstein/simple-scalable-graph-neural-networks-7eb04f366d07

來源:AI科技評論

推薦閱讀

深度人臉識別演算法串講!(文末留言贈書)

重磅盤點:過去8年中深度學習最重要的想法

清華大學劉知遠:知識指導的自然語言處理