簡單且可擴展的圖神經網絡

迄今爲止,阻礙圖神經網絡在工業應用中得到廣泛採用的挑戰之一,是難以將其擴展到像 Twitter 關注圖這樣的大型圖。節點之間的相互依賴性使得將損失函數分解爲單個節點的貢獻具有挑戰性。在本文中,我們描述了 Twitter 開發的一個簡單的圖神經網絡架構,它可以處理非常大的圖。

前文回顧

《專欄 | 圖深度學習:成果、挑戰與未來》

本文最初發表於 TowardsDataScience 博客,經原作者 Michael Bronstein 授權,InfoQ 中文站翻譯並分享。本文由Michael Bronstein和 Fabrizo Frasca、Emanuele Rossi 合著。

圖神經網絡是近年來興起的用於學習圖結構數據的一類機器學習模型。圖神經網絡已經成功應用於各種不同領域的關係和相互作用的模型系統,包括社會科學、計算機視覺和圖形學、粒子物理學、化學和醫學。直到最近,該領域的大多數研究都集中在開發新的圖神經網絡模型,並在小圖上進行測試(如 CORA,它是一個僅包含約 5K 節點的引文網絡,目前仍在廣泛使用【1】)。另一方面,工業問題通常涉及到規模巨大的圖,比如 Twitter 或 Facebook 社交網絡,它們包含數億個節點和數十億條邊。文獻中闡述的大部分方法都不適用於這些環境。

簡而言之,圖神經網絡是通過聚合來自局部鄰居節點的特徵來操作的。將 d 維節點特徵排列成n × d維矩陣X此處 n 表示節點數),在流行的 GCN (圖卷積網絡)模型【2】中實現的對圖最簡單的卷積類操作,將節點方向的變換和跨相鄰節點的特徵擴散相結合:

Y= ReLU(AXW)

這裏W是所有節點共享的可學習矩陣,A是線性擴散操作符,相當於鄰域中特徵的加權平均值【3】。這種形式的多層可以像傳統的卷積神經網絡中那樣按順序應用。圖神經網絡可以設計成在節點級(例如在社交網絡中檢測惡意用戶)、邊級(例如鏈接預測,這是推薦系統中的典型場景)或整個圖(例如預測分子圖的化學性質)上進行預測。節點分類任務可以由一個兩層的 GCN 來執行,形式如下:

Y= softmax(AReLU(AXW)W’)

爲什麼擴展圖神經網絡具有挑戰性?在前面提到的節點預測問題中,節點扮演樣本的角色,對圖神經網絡進行訓練。在傳統的機器學習設置中,通常假設樣本是以統計獨立的方式從某個分佈中提取的。這反過來又允許將損失函數分解爲單獨的樣本貢獻,並採用隨機優化技術一次處理小子集(小批次)。事實上,幾乎每個深度神經網絡結構都是用小批次進行訓練的。

另一方面,在圖中,由於節點通過邊相互關聯,因此,在訓練集中的樣本之間產生了統計相關性。此外,由於節點之間的統計相關性,採樣可能會引入偏差:例如,它可能會使一些節點或邊比訓練集中的其他節點或邊出現的頻率更高,這種“副作用”需要適當處理。最後但並非最不重要的是,必須保證採樣子圖保持圖神經網絡可以利用的有意義的結構。

在許多關於圖神經網絡的早期工作中,這些問題都被掩蓋了:諸如 GCN 和 ChebNet【2】、MoNet【4】和 GAT【5】等架構都是使用全批次梯度下降法進行訓練的。這就導致了必須在內存中保存整個圖的鄰接矩陣和節點特徵。因此,例如,一個 L 層的 GCN 模型具有時間複雜度 𝒪(Lnd²) 和內存複雜度 𝒪(Lnd +Ld²) 【7】,即使對中等大小的圖來說,這些複雜度也是令人望而卻步的。

解決可擴展性問題的第一個工作是 GraphSAGE【8】,這是 Will Hamilton 和其他作者共同撰寫的一篇開創性論文。GraphSAGE 使用鄰域採樣和小批次訓練相結合的方法來訓練大型圖上的圖神經網絡(SAGE 是“Sample and aggregate”的首字母縮寫,是該方案的參考)。其主要思想是,爲了計算具有 L 層的 GCN 的單個節點的訓練損失,只需要該節點的 L-跳鄰居,因爲圖中較遠的節點不參與計算。問題是,對於“小世界”類型的圖,如社交網絡,一些節點的 2 跳鄰域可能已經包含了數百萬個節點,這使得它太大而無法存儲在內存中【9】。GraphSAGE 解決這個問題的方法是對第 L 跳鄰居採樣:從訓練節點開始,它統一使用替換固定數量的 K 個 1 跳鄰居進行採樣,然後對這些鄰居中的每一個再次採樣 K 個鄰居,以此類推,持續 L 次。這樣,對於每個節點,我們都能保證有一個有邊界的 L 跳採樣鄰域的 𝒪(kᴸ) 節點。如果我們再構造一批有 b 個訓練節點,每個節點都有自己獨立的 L 跳鄰域,我們得到的內存複雜度爲 𝒪(bkᴸ),與圖的大小 n 無關,GraphSAGE 的一批次計算複雜度爲 𝒪(bLd²kᴸ)。

image

GraphSAGE 鄰域採樣法。從完整圖中對一批 b 節點進行下采樣(在本例中,b=2,紅色和淺黃色節點用於訓練)。右邊是以 k=2 採樣的 2 跳鄰域圖,它獨立地用於計算嵌入,從而計算出紅色和淺黃色節點的的損失。

GraphSAGE 的一個顯著缺點是採樣節點可能會出現多次,因此可能會引入大量冗餘計算。例如,在上圖中,深綠色節點出現在兩個訓練節點的 L 挑鄰域中,因此它的嵌入在批次中計算了兩次。隨着批次大小 b 和樣本數量 k 的增加,冗餘計算量也隨之增加。此外,儘管每個批次的內存都有 𝒪(bkᴸ) 節點,但是損失只計算其中的 b,因此,對於其他節點的計算在某種意義上也是浪費的。

爲了消除 GraphSAGE 的冗餘計算,提高每個批次的效率,多項後續工作集中在改進小批次的採樣。這方面的最新研究成果是 ClusterGCN【11】和 GraphSAINT【12】,它們採用了圖採樣的方法(而不是 GraphSAGE 的鄰域採樣)。在圖採樣方法中,對於每個批次,對原始圖的子圖進行採樣,並在整個子圖上運行一個完整的類似 GCN 模型。挑戰在於確保這些子圖保留大部分原始邊,並且仍然呈現有意義的拓撲結構。

ClusterGCN 通過首先對圖進行聚類來實現這一點。然後,在每個批次中,模型在一個聚類上進行訓練。這允許每個批次中的節點儘可能緊密地連接起來。

GraphSAINT 提出了一種通用的概率圖採樣器,通過對原始圖的採樣子圖來構造訓練批次。圖採樣器可以根據不同的方案設計:例如,它可以執行均勻節點採樣、均勻邊採樣,或者通過使用隨機漫步來計算節點的重要性,並將其作爲採樣的概率分佈,進行“重要性”採樣。

同樣重要的是要注意到,採樣的優勢之一是在訓練過程中,它可以作爲一種邊級 Dropout,這可以使模型規範化,並有助於提高性能【13】。然而,邊 Dropout 需要在推理時仍能看到所有的邊,這在這裏是不可行的。圖採樣可能產生的另一個效果是減少瓶頸【14】,以及由此產生的“過度擠壓”現象,這種現象源於鄰域的指數擴展。

在我們最近與 Ben Chamberlain、Davide Eynard 和 Federico Monti 合作的論文【15】中,我們研究了針對節點分類問題設計簡單、無採樣架構的可能性。你可能想知道,考慮到我們剛纔強調的間接好處,爲什麼還會有人寧願放棄採樣策略?這其中有幾個原因。首先,節點分類問題的實例彼此可能存在很大的不同,而且據我們所知,到目前爲止還沒有系統地研究採樣實際上除了減輕計算複雜性之外還提供了積極效果的情況。其次,採樣方案的實現引入了額外的複雜性,我們相信一個簡單的、強大的、無採樣的、可擴展的基準架構是很有吸引力的。

我們的方法是基於最近的一些實證研究結果。首先,簡單的固定聚合器(如 GCN)在許多情況下往往比較複雜的聚合器性能更好,比如 GAT 或 MPNN【16】。其次,雖然深度學習的成功是建立在很多層的模型之上,但是在圖深度學習中是否需要深度,仍然是一個有待研究的問題。特別是,Wu 和合著者【17】認爲,具有單個多跳擴散層的 GCN 模型可以與多層模型具有同等的性能。

通過將不同的、固定的鄰域聚合器結合在一個卷積層中,可以獲得一個極易擴展的模型,而不需要藉助圖採樣【18】。換句話說,所有與圖相關的(固定的)操作都在架構的第一層,因此可以進行預計算;然後可以將預聚合的信息作爲輸入饋送到模型的其餘部分,由於缺乏鄰域聚合,該模型歸結爲多層感知器(Multi-layer perceptron,MLP)。重要的是,即使採用這樣一個淺卷積方案,通過採用幾個可能是專門的、更復雜的擴散操作符,仍然可以保留圖過濾操作的表達力。例如,可以設計包括局部子結構計數【19】或圖 Motif【20】的操作符。

image

SIGN 架構由一個類似於 GCN 的層組成,其多個線性擴散操作符可能作用域多跳鄰域,然後是節點級應用 MLP。其效率的關鍵是對擴散特徵(紅色標記)的預計算。

所提出的可擴展架構,我們稱之爲可擴展初始類圖網絡(Scalable Inception-like Graph Network,SIGN),對於節點分類任務,其形式如下:

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

這裏Aᵣ 是線性擴展矩陣(例如歸一化鄰接矩陣、其冪或 Motif 矩陣),Wᵣ 和W’是可學習的參數。如上圖所示,通過附加的節點層,可以使網絡變得更深:

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

最後,當對同一個擴散操作符采用不同的冪級數時(如A₁=A₂=等),圖操作有效地從鄰域中越跳越多地聚合,類似於在同一網絡層中擁有不同感受野的卷積濾波器。這種與經典 CNN 中流行的初始模塊的類比解釋了所提出的架構的名稱【21】。

如前所述,上述方程中的矩陣乘積A₁X,……,AᵣX並不依賴於可學習的模型參數,因此可以預計算。特別是,對於非常大的圖,這種預計算可以使用 Apache Spark 這樣的分佈式計算基礎設施有效地進行擴展。這有效地降低了整個模型的計算複雜度,達到了 MLP 的水平。此外,通過將擴展轉移到預計算步驟,我們可以聚合來自所有鄰居的信息,從而避免採樣以及隨之而來的可能信息損失和偏差。

SIGN 的主要優點在於它的可擴展性和效率,因爲它可以使用標準的小批次梯度下降法進行訓練。我們發現,我們的模型在推理時比 ClusterGCN 和 GraphSAINT 快了兩個數量級,而且在訓練時也快得多(所有這些都保持了正確率與非最先進的 GraphSAINT 接近)。

image

OGBN-Products 數據集上不同方法的收斂性。與 GraphSaint 和 ClusterGCN 相比,SIGN 的變體收斂速度更快,驗證 F1 得分也更高。

image

OGBN-Products 數據集上不同方法的預處理、訓練和推理時間(以秒爲單位)。雖然 SIGN 預處理速度較慢,但它的訓練速度較快,推理時間比其他方法快近兩個數量級。

此外,我們的模型支持任何擴散操作符。對於不同類型的圖,可能需要不同的擴散操作符,而且我們發現一些任務可以從基於 Motif 的操作符(如三角形技術)中受益。

image

SIGN 和其他可擴展方法在一些流行數據集的節點分類任務上的性能。基於三角形 Motif 的擴散操作符在 Flickr 上獲得了有趣的性能提升,並在 PPI 和 Yelp 上提供了一些改進。

儘管只有單個圖卷積層和線性擴散操作符的限制,但 SIGN 在實踐中表現得非常好,取得了與更復雜的模型相當甚至更好的結果。鑑於它的速度和實現的簡單性,我們設想 SIGN 將成爲大規模應用的簡單基線圖學習方法。也許更重要的是,這樣一個簡單模型的成功,引出了一個更基本的問題:我們真的需要深度圖神經網絡嗎?我們猜想,在許多關於社交網絡和“小世界”圖的學習問題中,我們應該使用更豐富的局部結構,而不是求助於蠻力式的深度架構。有趣的是,傳統的卷積神經網絡架構是按照相反的趨勢發展的(更深的網絡,更小的過濾器),因爲有計算優勢,並且能夠將簡單的特徵組成複雜的特徵。我們不確定同樣的方法是否適用於圖,因爲在圖中,組成性要複雜得多(例如,某些結構不能通過消息傳遞來計算,無論網絡有多深)。但可以肯定的是,還需要更精細的實驗來檢驗這一猜想。

參考文獻

【1】 最近引入的Open Graph Benchmark現在提供了包含數百萬個節點的大型圖。社區可能需要一段時間才能轉向它。

【2】《半監督分類與圖卷積網絡》(Semi-supervised classification with graph convolutional networks,T.Kipf、M.Welling,2017 年)。Proc.ICLR 引入了流行的 GCN 架構,該架構是基於 Defferrard 等人提出的 ChebNet 模型的簡化而衍生的。《具有快速局部光譜過濾功能的圖上卷積神經網絡》(Convolutional neural networks on graphs with fast localized spectral filtering),Proc.NIPS,2016 年。

【3】 作爲擴散操作符,Kipf 和 Wling 使用了帶有自環的圖鄰接矩陣(即節點本身參與其特徵更新),但也有其他可能的選擇。擴散操作可以像 MoNet【4】或 GAT【5】模型一樣,做成特徵依賴型的A(X)X(即仍然是節點特徵的線性組合,但權重取決於特徵本身),也可以像消息傳遞神經網絡(Message-passing neural networks,MPNN)【6】一樣,做成完全非線性的 𝒜(X)。爲簡單起見,我們將重點討論應用於節點分類的 GCN 模型。

【4】 《使用混合模型卷積神經網絡在圖和流形上進行幾何深度學習》(Geometric Deep Learning on Graphs and Manifolds Using Mixture Model CNNs),F.Monti 等人,2017 年,Proc.CVPR。

【5】 《圖注意力網絡》(Graph Attention Networks),P. Veličković 等人,2018 年,Proc.ICLR。

【6】 《量子化學中的神經信息傳遞》(Neural message passing for quantum chemistry),J. Gilmer 等人,2017 年,Proc.ICML。

【7】 此處爲簡單起見,我們假設圖具有邊數 |ℰ|=𝒪(n) 的稀疏性。

【8】 《大型圖的歸納表示學習》(Inductive Representation Learning on Large Graphs),W. Hamilton 等人,2017 年,Proc.NeurIPS。

【9】 這類圖的鄰居數量隨着鄰域的擴散而呈指數級增長。

【10】 替換採樣意味着某些相鄰節點可以出現多次,特別是當相鄰節點的數目小於 k 時。

【11】 《Cluster-GCN:一種訓練深度大型圖卷積網絡的有效算法》(Cluster-GCN: An Efficient Algorithm for Training Deep and Large Graph Convolutional Networks),W.-L. Chiang 等人,2019 年,Proc.KDD。

【12】 《GraphSAINT:基於圖採樣的歸納學習方法》(GraphSAINT: Graph Sampling Based Inductive Learning Method),H.Zeng 等人,2020 年,Proc. ICLR。

【13】 《DropEdge:基於深度圖卷積網絡的節點分類》(DropEdge: Towards deep graph convolutional networks on node classification),Y. Rong 等人,2020 年,Proc.ICLR。一種類似於 DropOut 的想法,在訓練過程中使用隨機的邊子集。

【14】 《論圖神經網絡的瓶頸及其實踐意義》(On the bottleneck of graph neural networks and its practical implications),U. Alon、E. Yahav,2020 年,arXiv:2006.05205。該論文確定了圖神經網絡中的過度擠壓現象,這與序列遞歸模型中觀察到的現象相似。

【15】 《SIGN:可擴展的初始圖神經網絡》(SIGN: Scalable Inception Graph Neural Networks),Frasca 等人,2020 年。圖表示學習及其它方面的 ICML 研討會。

【16】 《圖神經網絡評估的缺陷》(Pitfalls of graph neural network evaluation),O. Shchur 等人,2018 年,關係表徵學習研討會。論文表明瞭簡單的圖神經網絡模型與更爲複雜的圖神經網絡模型具有同等的性能。

【17】 《簡化圖神經網絡》(Simplifying graph neural networks),F. Wu 等人,2019 年,Proc.ICML。

【18】 雖然我們強調 SIGN 不需要採樣來提高計算效率,但圖下采樣還有其他原因可以解釋它爲什麼是有用的。《擴散改進圖學習》(Diffusion improves graph learning),J. Klicpera 等人,2020 年,Proc.NeurIPS 表明,採樣擴散矩陣提高了圖神經網絡的性能。我們在早期的 SIGN 實驗中也觀察到了同樣的現象。

【19】 《通過子圖同構計數提高圖神經網絡的表達能力》(Improving graph neural network expressivity via subgraph isomorphism counting),G. Bouritsas 等人,2020 年,arXiv:2006.09252。論文說明了如何通過結構節點編碼闊的可證明強大的圖神經網絡。

【20】 《MotifNet:基於 Motif 的有向圖卷積網絡》(MotifNet: a motif-based graph convolutional network for directed graphs),F. Monti、K. Otness、M. M. Bronstein,2018 年,arXiv:1802.01572。論文使用了基於 Motif 的擴散操作符。

【21】 《深入瞭解卷積》(Going deeper with convolution),C. Szegedi 等人,2015 年,Proc.CVPR 在已經很經典的 Google LeNet 架構提出了初始模塊。公平地說,我們並不是第一個想到圖初始模塊的人。我們的合作者,來自慕尼黑理工大學(TU Munich)的 Anees Kazi,去年是倫敦帝國學院(Imperial College)的訪問學生,是她首先給我們介紹了圖初始模塊。

【22】 請注意,到達高階領域通常是通過深度堆疊圖卷積層與直接鄰域的操作來實現的;在我們的架構中,這是在第一層通過圖操作符的冪來直接實現的。

作者介紹:

Michael Bronstein,倫敦帝國理工學院教授,Twitter 圖機器學習研究負責人,CETI 項目機器學習主管、研究員、教師、企業家和投資者。

原文鏈接:

https://towardsdatascience.com/simple-scalable-graph-neural-networks-7eb04f366d07

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章