作者 | 賀華瑞
簡介什麼是GNN?圖 (Graph) 由結點和連邊組成,我們把應用於圖上的神經網絡算法稱為圖神經網絡 (Graph Neural Network, 簡稱GNN)。受啟發於卷積神經網絡 (Convolutional Neural Network, 簡稱CNN) 和圖嵌入算法,GNN以圖作為輸入,根據「相鄰的結點具有相似性」這一假設,對圖中結點採用聚合其周圍結點信息作為自身的表徵的方式,將圖中結點映射為連續向量空間中的向量,使得結構上相近的結點在嵌入空間中有相似的向量表示。
圖表示學習 [18]為什麼需要GNN?對於圖像、視頻、音頻等數據,經典的神經網絡 (如CNN和RNN) 已經能夠較好地處理,並且目前也已經取得了不錯的效果,為什麼我們還會需要GNN呢?究其原因,以上提到的數據類型屬於「排列整齊」的歐幾裡得結構數據 (Euclidean Structure Data),可以清晰地將它們表示為網格 (grid) 類型,對于格中任一點,總能很容易可以找出其鄰居結點,就在旁邊,不偏不倚。而現實生活中,除了以上提到的「規整」的網格結構數據外,還有社交網絡、化合物結構圖、生物基因蛋白以及知識圖譜等非歐幾裡得結構數據 (Non-Euclidean Structure Data)。LeCun 等人 [1] 總結常見非歐幾裡得結構數據有流形數據 (manifolds) 和圖數據 (graphs) 兩種,對這些數據中的某一點,很難定義出其鄰居結點來,或者不同結點的鄰居結點數量是不盡相同的。
manifold [19]graphGNN的訓練流程及應用在非歐幾裡得結構數據上,CNN和RNN等經典深度學習模型已不再適用,而GNN就是處理圖數據的一種新範式。給定一張由結點和連邊組成的圖作為輸入,GNN的訓練流程通常分三步走:(1)消息傳遞(message passing);(2)鄰域聚合(neighborhood aggregation);(3)狀態更新(representation update)。具體的公式在此不予詳述,感興趣的讀者可參看論文 [2]。經多輪迭代訓練後,GNN會為圖中各結點學習到穩定的向量表示,對這些向量做簡單處理,即可便捷地應用於不同的下遊任務。
那麼具體地,GNN可應用於哪些場景呢?有人製作了如下圖所示的GNN應用樹,GNN的應用範圍有多寬廣,由此可見一斑。
GNN應用樹 [20]舉例來說,國際著名的圖片社交平臺 Pinterest,就是GNN最成功的應用之一。用戶可以收藏平臺中的任何圖片,並根據自己的喜好將圖片放到不同的收藏夾中。鑑於每張圖可能會被不同用戶放入不同的收藏夾中,以每張圖片和每個收藏夾為結點,其中的連邊表示圖片被放入某個收藏夾,據此我們得到了一個由約30億結點和200億連邊組成的圖片-收藏夾二部圖(bipartite graph,也就是說連邊的兩端不可能同時是圖片或同時是收藏夾)。
GNN在Pinterest中的應用 [18]得到這樣的圖數據後,Pinterest 後臺做的事就是利用GNN鄰域聚合的方式(認為屬於同一個收藏夾的圖片是「鄰居」),為每張圖片生成一個向量 [3],使得含義相似的圖片在向量空間中的距離相近,從而當用戶點擊一張感興趣的圖片時,後臺可以迅速搜索向量空間中與該圖最相近的圖片,並向用戶推薦,藉此滿足用戶需求,也提高了網站的點擊率。注意整個過程中 Pinterest 並不需要對圖片進行視覺上的訓練與學習,從而大大減少了模型計算量與響應時間,甚至取得了比採用視覺模型更優越的推薦效果。
為什麼需要深層的GNN?通過前文較為輕鬆的入門介紹,我們對GNN已經有了大致的了解,接下來我們將繼續探討GNN的一些深層次機理。其實要說GNN是「深度」學習模型是有一些牽強的,因為在一般的結點/圖分類、連結預測等任務中,GCN [4]、GAT [5]、GIN [6] 等經典的GNN模型及其變體在2~4層即可達到很好的性能表現,且在繼續直接堆疊網絡層數時發現性能下降的現象。根據 ResNet [7]、DenseNet [8] 等深層化神經網絡模型在計算機視覺領域的成功,很自然地,我們想問GNN是否也有往深層化方向發展的需求呢?
近年來,許多學者研究了這一主題,在我看來,至少在以下兩種場景中,我們是需要深層GNN的:「少標籤半監督結點分類」和「少特徵半監督結點分類」。具體地,前者對應有小樣本文本分類問題,以每篇文章為結點,若文章之間有引用,則認為結點之間有邊相連,不同於一般的基於GNN的文本分類任務,輸入的圖中只有少量文本有類別標籤。此時,為提高分類準確率,不得不加深模型的網絡層數,這是因為各結點狀態更新時一般只聚合一跳鄰居信息,那麼網絡層數即反映結點的向量表示融合了幾跳內的鄰居信息,當標籤很少時,結點在淺層聚合過程中可能無法獲取有效的標籤信息,從而對分類性能造成不利影響。而第二種場景對應有推薦系統中的冷啟動問題,面對缺少歷史行為數據的新用戶,如何為其進行個性化推薦?系統只憑藉該類用戶的少量註冊信息(即與少量點擊商品的連邊)往往很難做出精準推薦,此時也需要利用深層GNN對該用戶的潛在消費興趣進行建模。
綜上兩種情景,GNN的網絡層數某種程度上表徵了各結點最終向量表示的信息來源範圍,正所謂「欲窮千裡目,更上一層樓」,網絡層數增加後,鄰域聚合的感受野也相應擴大,「知之深則行愈達」,理論上能更好地應對上述兩種任務。
深層化GNN的難點在哪裡?既然GNN層數加深理想情況下會有增益,那麼我們為什麼還不立即行動呢?前面提到過,GCN [4]、GAT [5]、GIN [6] 等經典的GNN模型在網絡層數超過2~4層時發生性能下降的現象,GNN加深的難點在哪裡呢?近年來,學者們已經接連發現加深GNN面臨三大障礙:過擬合 (over-fitting)、梯度消失 (gradient vanishing) 和過平滑 (over-smoothing)。前兩個障礙在深度學習領域已是司空見慣,在此不做贅述,我們主要分析一下 over-smoothing 的原因。Over-smoothing 由論文 [9] 首先發現,並在論文 [10] 中被進一步分析闡明,顧名思義, over-smoothing 即是在GNN多層網絡訓練中,隨著層數加大,圖中結點的向量表示趨向於相等的現象。具體來說,可以從兩個角度加以理解,首先是結點的角度,GNN結點的鄰域聚合被證明其實是 Laplacian smooth 的一種特殊形式,迭代地進行 Laplacian smooth 自然導致結點層面的 over-smoothing ;其次是特徵的角度,根據壓縮映射原理(參考之前的文章【基礎訓練】壓縮映射原理及其應用),迭代訓練層數的增加也會導致各結點向量表示的特徵維度層面的 over-smoothing 。
深層化GNN的研究脈絡及未來方向在掌握了深層化GNN面臨的幾大障礙後,以下將介紹目前主流的解決思路。對已有的文章進行梳理總結,我們知道現在大概存在兩種加深GNN的研究思路:
它山之石可以攻玉,日光之下並無新事,從故紙堆中我們可以幾乎可以找到一切想要的答案。既然GNN本就與CNN有剪不斷理還亂的關聯,我們很自然地會想到從CNN中遷移已有的研究成果,事實上這也確實奏效。如 JKNet [11] 在ResNet [7] 啟發下引入強弱自適應的殘差連接 ;DeepGCN [12] 從ResNet [7]、DenseNet [8] 以及 dilated CNN [13] 中汲取靈感,在各網絡層間引入residual/dense connections,並採用dilated convolutions直接擴張聚合感受野;DropEdge [11] 則是受 Dropout 啟發,針對圖學習場景做了一些改進;NodeNorm [12] 則是從 BatchNorm [13] 一系列工作中獲取思路。"頭痛醫頭,腳痛醫腳",有仰望星空的懷舊派,就有腳踏實地的現實主義。有學者針對上文三大難點逐個攻破,採用 SGC [14] 克服過擬合和梯度消失,隨後 Pairnorm [10] 被提出用於克服 over-smoothing 問題。Pairnorm [10] 的思想相當直接,即在目標函數中強制使相鄰結點的向量表示儘量相近,非相鄰結點的向量表示儘量相異。上述兩種思路皆為GNN深層化邁出了前進的一大步,做出了卓有成效的貢獻,那麼未來的深化GNN還有哪些可能的研究方向呢?我認為還有以下兩個可能的思路:
面向下遊任務對圖數據做稀疏化處理,使得深層GNN不傳播幹擾信息,從而有效減緩深層化的幾個障礙;GNN並不總是越深越好,模型應考慮數據集的特性,根據圖的局部稠密性做自適應深度調節。總結本文簡介了GNN及其應用,梳理概括了加深GNN層數的三大難點以及相應的研究思路與學術工作,並對深層化GNN未來可能的發展方向提出了暢想。GNN作為新興模型,還有很多可供推敲之處,深層化不過是其冰山一角。毋庸置疑的是,對於GNN,還有更多瑰麗的景色在深處等待我們去發掘。
[1] Bronstein M M, Bruna J, LeCun Y, et al. Geometric deep learning: going beyond euclidean data[J]. IEEE Signal Processing Magazine, 2017, 34(4): 18-42.
[2] Ying Z, Bourgeois D, You J, et al. Gnnexplainer: Generating explanations for graph neural networks[C]//Advances in neural information processing systems. 2019: 9244-9255.
[3] Ying R, He R, Chen K, et al. Graph convolutional neural networks for web-scale recommender systems[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining. 2018: 974-983.
[4] Kipf T N, Welling M. Semi-supervised classification with graph convolutional networks[J]. arXiv preprint arXiv:1609.02907, 2016.
[5] Veličković P, Cucurull G, Casanova A, et al. Graph attention networks[J]. arXiv preprint arXiv:1710.10903, 2017.
[6] Xu K, Hu W, Leskovec J, et al. How powerful are graph neural networks?[J]. arXiv preprint arXiv:1810.00826, 2018.
[7] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2016: 770-778.
[8] Huang G, Liu Z, Van Der Maaten L, et al. Densely connected convolutional networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2017: 4700-4708.
[9] Li Q, Han Z, Wu X M. Deeper insights into graph convolutional networks for semi-supervised learning[J]. arXiv preprint arXiv:1801.07606, 2018.
[10] Zhao L, Akoglu L. Pairnorm: Tackling oversmoothing in gnns[J]. arXiv preprint arXiv:1909.12223, 2019.
[11] Xu K, Li C, Tian Y, et al. Representation learning on graphs with jumping knowledge networks[J]. arXiv preprint arXiv:1806.03536, 2018.
[12] Li G, Muller M, Thabet A, et al. Deepgcns: Can gcns go as deep as cnns?[C]//Proceedings of the IEEE International Conference on Computer Vision. 2019: 9267-9276.
[13] Yu F, Koltun V. Multi-scale context aggregation by dilated convolutions[J]. arXiv preprint arXiv:1511.07122, 2015.
[14] Rong Y, Huang W, Xu T, et al. Dropedge: Towards deep graph convolutional networks on node classification[C]//International Conference on Learning Representations. 2019.
[15] Zhou K, Dong Y, Lee W S, et al. Effective training strategies for deep graph neural networks[J]. arXiv preprint arXiv:2006.07107, 2020.
[16] Ioffe S, Szegedy C. Batch normalization: Accelerating deep network training by reducing internal covariate shift[J]. arXiv preprint arXiv:1502.03167, 2015.
[17] Wu F, Zhang T, Souza Jr A H, et al. Simplifying graph convolutional networks[J]. arXiv preprint arXiv:1902.07153, 2019.
[18] http://web.stanford.edu/class/cs224w/
[19] https://www.wikiwand.com/zh/%E5%8D%A1%E6%8B%89%E6%AF%94%E2%80%93%E4%B8%98%E6%B5%81%E5%BD%A2
[20] https://mp.weixin.qq.com/s/1RUdmTr4bHjm6XYVdVRv5A
作者簡介:賀華瑞,2020年畢業於西安電子科技大學,獲得工學學士學位。現於中國科學技術大學電子工程與信息科學系的 MIRA Lab 實驗室攻讀研究生,師從王傑教授。研究興趣包括知識表示與知識推理。