摘要:本文我們将主要介紹各種典型的圖神經網絡的網絡架構和訓練方法。
本文我們将主要介紹各種典型的圖神經網絡的網絡架構和訓練方法。文章《A Comprehensive Survey on Graph Neural Networks》[1]提供了一個全面的圖神經網絡(GNNs) 概述,并且将最新的圖神經網絡分為四類,即遞歸圖神經網絡(RecGNNs)、卷積圖神經網絡(ConvGNNs)、圖自動編碼器(GAEs)和時空圖神經網絡(STGNNs)。在圖神經網的實際應用中,卷積圖神經網絡的使用最為廣泛,是以,本文将重點介紹ConvGNNs一類網絡模型,如上圖GNN Roadmap所示。
1. 歐式空間卷積
在講卷積圖神經網絡(非歐空間做卷積)之前,我們先來回顧下卷積神經網絡(歐式空間做卷積)的過程。有一張如下圖所示的6*6的image,我們在做卷積的時候,通常會使用一個固定大小的卷積核,比如3*3,然後根據設定的步長滑動整張6*6的image,在每一次滑動之處與原圖相應位置做内積。如下圖為卷積核滑動兩次之後的結果。
但是對于非歐空間的圖結構,我們無法找到一個固定大小的卷積核去滑動整個圖區域,如下圖所示。
這時我們就要針對圖的特殊結構,借助歐式空間的卷積方法和圖結構特征,提出兩種卷積圖神經網絡的卷積方案:
方案一:
參考CNN的思想,對每個節點的鄰居進行某種方式的權重求和,即Spatial-based convolution。
方案二:
參考傳統的信号處理的方法,對原始信号進行處理,引入濾波器來定義圖卷積,圖卷積運算被解釋為從圖信号中去除噪聲,即Spectral-based convolution。
本篇我們将主要介紹基于空間的卷積圖神經網絡方法和對應的典型的網絡架構。
2. Spatial-based Convolution
在講基于空間的卷積圖神經網絡方法之前,我們先引入兩個術語:
lAggregate:
lReadout:
把所有節點的狀态特征集合起來代表整個圖的狀态特征(下右圖)。即采用某種sum或者average的方式将所有nodes的feature抽象成一個hidden state,并以此代表整張圖的feature。
2.1圖神經網絡(Neural Network for Graphs,NN4G)[2]
NN4G在圖神經網絡領域算是比較早(2009)的提出的卷積圖神經網絡模型,其通過直接将節點的鄰域資訊相加來進行圖卷積,表達式如下:
而readout層則通過對每一層的所有節點資訊的取平均,即下圖中所有紫色節點 ,進而獲得每一層圖的representation,并對每一層的資訊通過求和平均的方式進行整個圖的representation更新,即:
對于NN4G,其具體的計算過程可以用下面這幅圖概括。NN4G也是卷積圖神經網絡的代表性結構,後續的卷積圖神經網絡都是或多或少的在NN4G的基礎上做一些簡單的修改(Aggregate)而獲得。是以了解NN4G的運算流程對于了解基于空間的卷積圖神經網絡至關重要。
2.2擴散卷積神經網絡(Diffusion Convolutional Neural Network, DCNN)[3]
2.3混合模型(Mixture Model Networks, MoNET)[4]
通過上述模型,我們可以發現,當計算某個節點在某一層的hidden state的時候,對于該節點的所有鄰居上述算法都是一視同仁。但是實際情況可能是任何兩個節點之間的關系是有差別的。比如在一副社交關系圖譜中,某個個體和其所連接配接的所有個體親密關系通常不會相同。這就需要一種新的aggregate方式來解決。
MoNET同樣是定義了一種新的Aggregate的方式,在Aggregate階段不是簡單的對鄰居節點feature的平均求和,而是通過權重的方式,權重的計算則是通過衡量節點之間的度的距離方式,即:
當然這裡隻是提出了一種權重的計算方式,實際實作中可以選擇不同的權重實作方式。其中
表示節x 的度,圖中的w則是特征變換(比如NN),經過NN對節點feature進行編碼,最後對某一節點的鄰居節點特征權重求和。
2.4圖采樣聚合模型(Graph Sample and aggregate, GraphSAGE)[5]
GraphSAGE主要是通過對鄰居節點采樣的方法對節點資訊進行更新,即圖中的Step 1,然後再對這些采樣的節點資訊進行某種方式的聚合,主要有Mean\Pooling\LSTM三種aggregate的方法,即圖中的Step 2,Step 3則是利用聚合資訊進行目前節點label或者鄰居節點的預測,預測的方式有兩種,一種是無監督學習方式。無監督學習基于圖的損失函數希望臨近的頂點具有相似的向量表示(公式的前半部分),同時讓分離的頂點的表示盡可能區分(公式的後半部分),損失函數如下:
2.5圖注意神經網絡(Graph Attention Networks, GAT)[6]
注意力機制已經在傳統神經網絡CNN和RNN中有了成功的實踐,并且使用attention後模型的性能在特定任務上都有不少的提升。GAT是将attention機制實作在卷積圖神經網絡之中。這裡的attention就是一種用來計算節點與鄰居之間權重的方式,最後通過權重求和的方式更新節點的feature,節點間權重的計算公式如下:
下圖就是GAT模型的圖卷積層的更新過程,其中 e(energy)就是attention的權重。
3. 總結
本篇博文主要介紹了Spatial-based Convolution(基于空間的卷積圖神經網絡),以NN4G為基礎,分别介紹了DCNN,MONET,GrapgSAGE,GAT等卷積圖神經網絡結構以及其實作的方式。對于想要在圖神經網絡進行實踐的同學,可以先學習一些開源的圖神經網絡架構。目前完成度較好的圖神經網絡架構主要是基于PyTorch和MXNet的DGL (Deep Graph Library)和PyG (PyTorch Geometric)。
參考文獻
[1] ] Wu Z , Pan S , Chen F , et al. A Comprehensive Survey on Graph Neural Networks[J]. IEEE Transactions on Neural Networks and Learning Systems, 2019.[2] A. Micheli, "Neural Network for Graphs: A Contextual Constructive Approach," in IEEE Transactions on Neural Networks, vol. 20, no. 3, pp. 498-511, March 2009, doi: 10.1109/TNN.2008.2010350.[3] https://arxiv.org/abs/1511.02136[4] https://arxiv.org/pdf/1611.08402.pdf[5] https://arxiv.org/pdf/1706.02216.pdf[6] https://arxiv.org/pdf/1710.10903.pdf[7]https://mp.weixin.qq.com/s?__biz=MzkwNDE5MDY5Mg==&mid=2247486844&idx=1&sn=6ae21b181c208aa67bcd597572e0d840&chksm=c08b82f7f7fc0be178ac3b11d9df15280d74149c5246a7de641e927d13190afe7ce1f9d603e9&scene=21#wechat_redirect[8]. http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML2020/GNN.pdf
本文分享自華為雲社群《深入淺出圖神經網絡應用場景》,原文作者:就挺突然。
點選關注,第一時間了解華為雲新鮮技術~