摘要:本文帶大家從另一個角度來理解和認識圖卷積網路的概念。
本文分享自華為雲社群《技術綜述十二:圖網路的基本概念》,原文作者:一笑傾城。
基礎概念
筆者認為,圖的核心思想是學習一個函式對映f(.)f(.),藉助該對映,圖中的節點可以聚合自己的特徵與鄰居節點的特徵,從而生成該節點的新特徵表示。
Figure 1. 圖的一般推理過程[1]
圖神經網路 Vs. 卷積神經網路
如圖2所示,卷積神經網路的輸入資料一般是規則的矩陣型別資料,例如圖片。每個節點和其它節點的空間關係是固定的。而圖神經網路的輸入資料一般表現為不規則的拓撲結構,節點與節點的關係非常複雜,節點間的空間關係一般不做約束,節點間是否存在連線以及連線的數量不做約束。複雜的網路還涉及到連線的方向和子圖等概念。
Figure 2. 圖網路和卷積網路[1]
如圖3所示,如果將圖的每個節點等價視為影像中的每個畫素,其實,圖的工作過程可以類比CV中的經典問題:semantic segmentation。
Figure 3. semantic segmentation[2]
圖的基礎元件及其實現
圖在工作過程中,主要需要處理的問題有兩個,一個是節點資訊的提煉方式;另一個是鄰近節點的搜尋方式。整理如下:
鄰近節點的搜尋方式:
- 每個節點考慮全部其它節點
- 基於歐氏距離,只搜尋近鄰N個節點
節點資訊的提煉方式:
- MLP+Max Pooling直接進行特徵融合
- 基於attention,對周邊節點進行加權平均
- 普通attention
- Self-attention (Bert/Transformer)
其中,鄰近節點的搜尋方式有兩種,基於Bert作為圖卷積網路的方案,一般是全部節點統一輸入,每個節點在進行self-attention時,統一考慮其它節點,因此,可以視為全域性搜尋,典型的樣例是LayoutLM。而基於某種距離度量搜尋鄰近的節點的方式, 一般來說更加註重區域性資訊。可以依據特定任務進行一些定製化的距離設計。缺點是過於注重區域性資訊,不能讓圖網路充分發揮能力。
另一方面是節點資訊的提煉方式,簡單的方法就是直接對相鄰節點做1\times11×1卷積,再進行max pooling。目前更流行的方法是基於attention,普通attention,如圖4所示,輸入特徵一般由中心節點特徵t_iti和相鄰節點t_jtj,以及彼此的距離等資訊拼接而成,考慮周圍32個節點,則生成32個特徵,並在此基礎上計算權重向量\alpha_iαi,得到這32個特徵向量的權重,再進行加權和,得到節點ii的新特徵表達t'_iti′。基於self-attention的方法工作機制類似。
Figure 4. 圖節點資訊的提煉過程
總結
最後,圖卷積和卷積之間的一些對比整理在圖5中。我們可以觀察到一些有趣的現象,其實在卷積網路中,也有鄰近節點搜尋方式的一些工作,例如空洞卷積和可變形卷積。
Figure 5. 圖網路和卷積網路工作方式比較
參考文獻:
[1] Wu, Zonghan, et al. “A comprehensive survey on graph neural networks.” IEEE transactions on neural networks and learning systems (2020).
[2] Long, Jonathan, Evan Shelhamer, and Trevor Darrell. “Fully convolutional networks for semantic segmentation.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2015.