GNN圖神經網絡詳述-01

最近的有GNN學習需要,但這部分的資料整理還不算太多。本篇主要是作爲知識梳理,主要參考綜述性論文:Graph Neural Networks: A Review of Methods and Applications,在此基礎上結合理解進行翻譯和補充,首先想搞清楚目前的發展狀況和一些主要的研究方向。

注:下文中出現的所有名詞的說法即爲Graph,在此不討論Graph與Network的區別。個人理解圖是數學上提出的概念,網絡是一種特殊的圖,圖由其鄰接矩陣中包含的結構信息定義,網絡可能在其頂點具有任意數量的輔助信息,邊緣可以具有容量或重量等屬性,也可以是其他變量的函數。

Graph研究簡介

Graph是一種數據結構,常見的圖結構包含節點(node)和邊(edge),其中,節點包含了實體(entity)信息,邊包含實體間的關係(relation)信息。圖神經網絡(GNN)是基於圖結構的一種深度學習。
圖是種非結構化(也可以表達結構化數據,只算是一種特例)的數據表達方法,這恰好對應到現實生活中的很多信息,在實際情況下我們面對的許多任務都需要處理非結構化的數據,如物理系統建模(physics system)、學習分指紋(molecular fingerprints)、蛋白質接口預測(protein interface)以及疾病分類(classify diseases),這些都需要模型能夠從圖結構的輸入中學習相關的知識。

還有一些任務如文本(texts)和圖片(images),並能夠在提取出的圖結構中進行推理(reasoning),比如句子的關係依賴樹(dependency tree of sentences)和圖片的情景圖(scene graph of images),這些都需要圖推理模型。GNN通過網絡中節點之間的信息傳遞(message passing)來獲取圖中的依存關係(dependence of graph),GNN通過從節點任意深度的鄰居來更新該節點狀態,這個狀態能夠表示狀態信息。

GNN模型基於信息傳播機制,每個節點通過互相交換信息更新該節點自身的節點狀態,直到達到某個穩定值。

GNN起源

卷積神經網絡(CNN)和圖嵌入(graph embedding) 啓發了GNN的出現和發展。

首先,CNN因爲能夠提取出多尺度的局部空間特徵而被熟知,並將它們進行組合來構建更加高級的表示(expressive representations)。如果深入研究CNN和圖結構的特點,可以發現CNN的核心特點在於:

  • 局部連接(local connection)
  • 權值共享(shared weights)
  • 多層結構(multi-layer)

歐幾里得空間(左下)和非歐空間示意圖(右下):
在這裏插入圖片描述
這些同樣適用於圖問題上,因爲圖結構是最典型的局部連接結構,其次,共享權重可以減少計算量,另外,多層結構是處理分級模式(hierarchical patterns)的關鍵。最主要的不同之處在於,CNN只能在歐幾里得數據(Euclidean data),比如二維圖片和一維文本數據上進行處理,而這些數據只是圖結構的特例而已,對於一般的圖結構,可以發現很難將CNN中的卷積核(convolutional filters)和池化操作(pooling operators)遷移到圖的操作上。

對於圖嵌入(Graph Embedding),實際上嵌入(Embedding)就是對圖的節點、邊或者子圖(subgraph)學習得到一個低維的向量表示,傳統的機器學習方法通常基於人工特徵工程來構建特徵,但是這種方法受限於靈活性不足、表達能力不足以及工程量過大的問題,我們常提及的詞嵌入方法常見的模型有Skip-gram,CBOW等,而圖嵌入領域的常見模型有DeepWalk,Node2Vec等,但是這些方法有兩種缺點

  • 節點編碼中權重未共享,導致權重數量隨着節點增多出現線性增大,
  • 直接嵌入方法缺乏泛化能力,意味着無法處理動態圖以及泛化到新的圖。

GNN和傳統神經網絡的區別

再次比較一下GNN和先提出的一些神經網絡的區別,比如當前常用的深度神經網絡CNN和RNN,輸入是結構化的數據,如圖像和文本序列,因爲它們都需要節點的特徵按照一定的順序進行排列,但是,對於圖結構而言,並沒有天然的順序而言,如果使用順序來完整地表達圖的話,那麼就需要將圖分解成所有可能的序列,然後對序列進行建模,這種方式非常的冗餘以及計算量非常大,與此相反,**GNN採用在每個節點上分別傳播(propagate)**的方式進行學習,由此忽略了節點的順序,相當於GNN的輸出會隨着輸入的不同而不同。

另外,圖結構的邊表示節點之間的依存關係,傳統的神經網絡不是顯式地表達中這種依存關係,而是通過不同節點特徵來間接地表達節點之間的關係。通常來說,GNN通過鄰居節點的加權求和來更新節點的隱藏狀態。

最後,就是對於更高階段的人工智能來說,可靠的推理能力是一個非常重要的研究主題,人類大腦的推理過程基本上都是基於圖的方式,這個圖是從日常的生活經歷中學習得到的。GNN的作用是從非結構化數據比如情景圖片和故事文本中產生結構化的圖,因爲目前能夠使用和存儲的數據還是以結構化的數據爲主,最終目的是能爲更高層的AI系統作補充。

GNN分類

這篇論文對GNN模型分類如下:

  • 圖卷積網絡(Graph convolutional networks)和圖注意力網絡(graph attention networks),因爲涉及到傳播步驟(propagation step)。
  • 圖的空域網絡(spatial-temporal networks),因爲該模型通常用在動態圖(dynamic graph)上。
  • 圖的自編碼(auto-encoder),因爲該模型通常使用無監督學習(unsupervised)的方式。
  • 圖生成網絡(generative networks),因爲是生成式網絡。

GNN模型概覽

在該節中,首先提出原始的圖神經網絡問題以及處理方法,然後介紹各種GNN的變體模型,用來解決原始GNN的一些缺點,最後介紹三種通用的框架,包括MPNN、NLNN和GN。
如下表是論文通用的符號表示以及對應含義說明:
在這裏插入圖片描述
圖神經網絡
圖神經網絡的概念第一次在The Graph neural model一文中提出,該論文將現存的神經網絡模型擴展到處理圖領域的數據。在一個圖結構中,每一個節點由它自身的特徵以及與其相連的節點特徵來定義該節點。GNN的目標是學習得到一個狀態的嵌入向量(embedding)hvRs\mathbf{h}_{v} \in \mathbb{R}^{s},這個向量包含每個節點的鄰居節點的信息,其中,hv\mathbf{h}_{v}表示節點vv的狀態向量,這個向量可以用於產生輸出ov\mathbf{o}_{v},比如輸出可以是節點的標籤,假設ff是帶有參數的函數,叫做局部轉化函數(local transition function),這個函數在所有節點中共享,並根據鄰居節點的輸入來更新節點狀態,假設gg爲局部輸出函數(local output function),這個函數用於描述輸出的產生方式。那麼hv\mathbf{h}_{v}ov\mathbf{o}_{v}按照如下式子產生:
hv=f(xv,xco[v],hne[v],xne[v])(1) \mathbf{h}_{v}=f\left(\mathbf{x}_{v}, \mathbf{x}_{c o[v]}, \mathbf{h}_{n e[v]}, \mathbf{x}_{n e[v]}\right)\tag{1} ov=g(hv,xv)(2) \mathbf{o}_{v}=g\left(\mathbf{h}_{v}, \mathbf{x}_{v}\right)\tag{2}
其中,xv\mathbf{x}{v}xco[v]\mathbf{x}{c o[v]}hne[v]\mathbf{h}_{n e[v]}xne[v]\mathbf{x}_{n e[v]}分別表示節點vv的特徵向量,節點vv邊的特徵向量,節點vv鄰居節點的狀態向量和節點vv鄰居節點特徵向量。

假設將所有的狀態向量,所有的輸出向量,所有的特徵向量疊加起來分別使用矩陣H\mathbf{H}O\mathbf{O}X\mathbf{X}XN\mathbf{X}_{N}來表示,那麼可以得到更加緊湊的表示:
H=F(H,X)(3) \mathbf{H}=F(\mathbf{H}, \mathbf{X})\tag{3}

O=G(H,XN)(4) \mathbf{O}=G\left(\mathbf{H}, \mathbf{X}_{N}\right) \tag{4}

其中,FF表示全局轉化函數(global transition function),GG表示全局輸出函數(global output function),分別是所有節點ffgg的疊加形式,H\mathbf{H}是公式(3)不動點,並且在FF爲收縮映射的假設下H\mathbf{H}被唯一地定義。根據Banach的不動點定理,GNN使用如下的傳統迭代方法來計算狀態參量:
Ht+1=F(Ht,X)(5) \mathbf{H}^{t+1}=F\left(\mathbf{H}^{t}, \mathbf{X}\right)\tag{5} 其中,Ht\mathbf{H}^{t}表示H\mathbf{H}的第tt個迭代週期的張量,按照方程(5)迭代的系統按照指數級速度收斂收斂到最終的不動點解。

整個圖更新的過程如下:
在這裏插入圖片描述
上面的過程定義了GNN的框架,下一個任務是學習函數ffgg的參數,使用目標信息(使用tv\mathbf{t}_v表示特定節點的標籤)來進行監督學習,loss可以定義如下: loss=i=1p(tioi)(6) l o s s=\sum_{i=1}^{p}\left(\mathbf{t}_{i}-\mathbf{o}_{i}\right)\tag{6} 其中,pp表示監督的節點數量,學習算法使用梯度下降法,整個過程按照如下步驟進行:

  • 狀態hvt\mathbf{h}_{v}^{t}按照方程(1)的公式迭代更新TT個輪次,這時得到的H\mathbf{H}會接近不動點的解H(T)H\mathbf{H}(T) \approx \mathbf{H}
  • 權重W\mathbf{W}的梯度從loss計算得到。
  • 權重W\mathbf{W}根據上一步中計算的梯度更新。

原始的GNN有如下的缺點:

  • 對不動點使用迭代的方法來更新節點的隱藏狀態,效率並不高
  • 在迭代過程中,原始GNN使用相同的參數,而其他比較著名的模型在不同的網絡層採用不同的參數,使得模型能夠學習到更加深的特徵表達,而且,節點隱藏層的更新是順序流程,可以從GRU和LSTM的cell的結構中獲取靈感。
  • 一些邊(edges)上可能會存在某些信息特徵不能被有效地考慮進去
  • 如果需要學習節點的向量表示而不是圖的表示,那麼使用不動點的方法是不妥當的,因爲在不動點的向量表示分佈在數值上會非常的平滑,這樣的向量對於區分不同的節點並無太大幫助。

GNN的網絡變體

在該節中,論文首先列出各種GNN變體在不同的圖類型上的操作方式,這些變體擴展了原始模型的表達能力,然後,論文列出了在傳播步驟上的幾種結構(包括卷積、門機制、注意力機制和跳過連接),最後描述使用特定的訓練方法來提高訓練效率

不同的圖類型

原始的GNN輸入的圖結構包含帶有標籤信息的節點無向邊,這是最簡單的圖結構,其它種類的圖結構主要有有向圖、異質圖、帶有邊信息圖和動態圖。圖類型以及主要的模型如下圖:
在這裏插入圖片描述

  • 有向圖(Directed Graphs):無向邊可以看成是兩個有向邊的結合,但是,有向邊比無向邊能夠提供更多的信息,比如在知識圖譜裏面,邊開始於頭實體(head entity),結束於尾實體(tail entity),通常有向邊表示兩個節點之間存在某種關係

    論文DGP-Rethinking Knowledge Graph Propagation for Zero-Shot Learning使用兩種權重矩陣Wp\mathbf{W}_{p}Wc\mathbf{W}_{c}來結合更加精確的結構化信息,DGP的傳播方式如下:
    Ht=σ(Dp1Apσ(Dc1AcHt1Wc)Wp)(7) \mathbf{H}^{t}=\sigma\left(\mathbf{D}_{p}^{-1} \mathbf{A}_{p} \sigma\left(\mathbf{D}_{c}^{-1} \mathbf{A}_{c} \mathbf{H}^{t-1} \mathbf{W}_{c}\right) \mathbf{W}_{p}\right)\tag{7} 其中,Dp1Ap\mathbf{D}_{p}^{-1} \mathbf{A}_{p}Dc1Ac\mathbf{D}_{c}^{-1} \mathbf{A}_{c}分別是雙親(parents)和後代(children)的歸一化鄰接矩陣。

  • 異質圖(Heterogeneous Graphs):異質圖含有多種不同的節點種類,處理這種圖最簡單的方法是將每種節點的類型轉化爲One-hot特徵向量,然後將One-hot向量和原始的節點特徵進行連接,作爲該節點的特徵向量。其中,論文GraphInception提出將元路徑(metapath)概念用在異質圖的信息傳播上,通過元路徑的方式,我們可以根據節點類型和距離來對局部範圍內節點進行分組,對於每一組,GraphInception將它作爲異質圖的一個子圖,然後在子圖內進行傳播,並將不同異質圖得到的結果進行連接得到綜合的節點表示。

  • 帶有邊信息的圖(Graphs with Edge Information):在這種圖變體中,每一個邊都帶有額外的信息,比如權重和邊的類型,我們可以使用兩種方法來處理這種圖:

    一種方式是將原始的圖轉化爲一個二分圖(bipartite graph),處理方式爲將原始的邊轉化爲一個節點以及兩條新的邊,論文G2S的編碼器使用如下的傳播函數:
    hvt=ρ(1NvuNvWr(rvthut1)+br)(8) \mathbf{h}_{v}^{t}=\rho\left(\frac{1}{\left|\mathcal{N}_{v}\right|} \sum_{u \in \mathcal{N}_{v}} \mathbf{W}_{r}\left(\mathbf{r}_{v}^{t} \odot \mathbf{h}_{u}^{t-1}\right)+\mathbf{b}_{r}\right)\tag{8}
    其中,Wr\mathbf{W}_rbr\mathbf{b}_r是不同邊類型的傳播參數。
    另一種方式是在不同種類的邊上,使用不同的權重矩陣來進行傳播的方式,也就是說,每一種邊類型都關聯一個權重矩陣,顯然,對於邊類型有很多的情況下,這種方式的參數量會非常大,論文Modeling Relational Data with Graph Convolutional Networks採用兩種方法來減小參數。

  • 動態圖(Dynamic Graphs):動態圖類型有靜態的圖結構,並且能夠處理動態的輸入信號。DCRNN和STGCN首先使用GNN獲取空域信息,然後將該信息輸入到一個序列模型,比如sequence-to-sequence模型或者CNN模型。與此相反的是,Structural-RNN和ST-GCN同時獲取時間信息和空間信息。

傳播類型

論文中的傳播(propagation)指的是彙集從鄰居節點和連接的邊的信息,來對節點進行更新的過程,這個過程在模型中獲取節點(或邊)的隱藏狀態是非常重要的。對於信息傳播步驟(propagation step),有幾種主要的GNN變體,而在輸出步驟(output step)中,研究者通常使用簡單的前向傳播的神經網絡

不同的GNN的信息傳播變體使用下表進行列出,這些變體採用不同的信息傳播方式來從鄰居節點中獲取信息,並通過設定的更新器(updater)來對節點的隱藏狀態進行更新。

圖的節點更新的主要信息傳播(information aggregator)類型以及主要的模型如下圖:

在這裏插入圖片描述

不同類別模型的Aggregator計算方法和Updater計算方法如下表
在這裏插入圖片描述

  • 卷積(Convolution):這個方向上分爲頻域方法非頻域(空域)方法

    頻域方法使用圖的頻域表示,主要有以下幾種模型:

    • Spectral Network:論文提出了Spectral network,卷積操作定義爲傅里葉頻域計算圖拉普拉斯(graph Laplacian)的特徵值分解。這個操作可以定義爲使用卷積核gθ=diag(θ)\mathbf{g}_{\theta}=\operatorname{diag}(\theta)對輸入xRN\mathbf{x} \in \mathbb{R}^{N}(每一個節點有一個標量值)的卷積操作,其中θRN\theta \in \mathbb{R}^{N}

      gθx=Ugθ(Λ)UTx(9) \mathbf{g}_{\theta} \star \mathbf{x}=\mathbf{U} \mathbf{g}_{\theta}(\mathbf{\Lambda}) \mathbf{U}^{T} \mathbf{x}\tag{9}
      其中,U\mathbf{U}是標準化圖拉普拉斯矩陣L=IND12AD12=UΛUT\mathbf{L}=\mathbf{I}_{N}-\mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}}=\mathbf{U} \mathbf{\Lambda} \mathbf{U}^{T}的特徵向量矩陣,D\mathbf{D}是度矩陣(degree matrix),A\mathbf{A}是圖的鄰接矩陣(adjacency matrix),Λ\mathbf{\Lambda}爲以特徵值爲對角線上的值的對角矩陣。這個操作會有導致較高的計算量。

    • ChebNet:論文根據切比雪夫多項式定理,認爲gθ(Λ)\mathbf{g}_{\theta}(\mathbf{\Lambda})可以通過截取多項式的前KK項來進行估計,因此,操作爲
      gθxUk=0KθkTk(L~)UTx(10) \mathbf{g}_{\theta} \star \mathbf{x} \approx \mathbf{U}\sum_{k=0}^{K} \theta_{k} \mathbf{T}_{k}(\tilde{\mathbf{L}})\mathbf{U^{T}} \mathbf{x}\tag{10}
      其中,L~=2λmaxLIN\tilde{\mathbf{L}}=\frac{2}{\lambda_{\max }} \mathbf{L}-\mathbf{I}_{N}λmax\lambda_{max}表示矩陣L\mathbf{L}最大的特徵值,θRK\theta \in \mathbb{R}^{K}爲切比雪夫係數向量,切比雪夫多項式定義爲Tk(x)=2xTk1(x)Tk2(x)\mathbf{T}_{k}(\mathbf{x})=2 \mathbf{x} \mathbf{T}_{k-1}(\mathbf{x})-\mathbf{T}_{k-2}(\mathbf{x}),且有T0(x)=1\mathbf{T}_{0}(\mathbf{x})=1以及T1(x)=x\mathbf{T}_{1}(\mathbf{x})=\mathbf{x}。可以看出,這個操作是KK-localized,因爲在拉普拉斯中它是一個K階多項式。由此避免了計算拉普拉斯的特徵值。

    • GCN:論文限制了逐層的卷積操作,並設置K=1K=1來減緩過擬合的問題,它還近似了λmax2\lambda_{\max } \approx 2,最後簡化的方程如下
      gθxθ0x+θ1(LIN)x=θ0xθ1D12AD12x(11) \mathbf{g}_{\theta^{\prime}} \star \mathbf{x} \approx \theta_{0}^{\prime} \mathbf{x}+\theta_{1}^{\prime}\left(\mathbf{L}-\mathbf{I}_{N}\right) \mathbf{x}=\theta_{0}^{\prime} \mathbf{x}-\theta_{1}^{\prime} \mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}} \mathbf{x}\tag{11}
      使用兩個無限制的參數θ0\theta'_0θ1\theta'_1。在通過設置θ=θ0=θ1\theta=\theta_{0}^{\prime}=-\theta_{1}^{\prime}來限制參數的數量之後,我們可以得到一下的表達式
      gθxθ(IN+D12AD12)x(12) \mathbf{g}_{\theta} \star \mathbf{x} \approx \theta\left(\mathbf{I}_{N}+\mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}}\right) \mathbf{x}\tag{12}
      值得一提的是,疊加使用這個操作會導致數值不穩定性以及梯度爆炸或消失(因爲不斷地乘以同一個矩陣),因此,該論文裏面使用了重規整化操作(renormalization):
      IN+D12AD12D~12A~D~12(13) \mathbf{I}_{N}+\mathbf{D}^{-\frac{1}{2}} \mathbf{A} \mathbf{D}^{-\frac{1}{2}}\rightarrow{}\tilde{\mathbf{D}}^{-\frac{1}{2}} \tilde{\mathbf{A}} \tilde{\mathbf{D}}^{-\frac{1}{2}}\tag{13}
      其中A~=A+IN\tilde{\mathbf{A}}=\mathbf{A}+\mathbf{I}_{N}D~ii=jA~ij\tilde{\mathbf{D}}_{i i}=\sum_{j} \tilde{\mathbf{A}}_{i j},最後,論文將模型擴展爲含有CC個輸入通道的信號XRN×C\mathbf{X} \in \mathbb{R}^{N \times C}以及FF個濾波器來用於提取特徵
      Z=D~12A~D~12XΘ(14) \mathbf{Z}=\tilde{\mathbf{D}}^{-\frac{1}{2}} \tilde{\mathbf{A}} \tilde{\mathbf{D}}^{-\frac{1}{2}} \mathbf{X} \boldsymbol{\Theta}\tag{14} 其中,ΘRC×F\Theta \in \mathbb{R}^{C \times F}是濾波器參數矩陣,ZRN×F\mathbf{Z} \in\mathbb{R}^{N \times F}是卷積信號矩陣。

    在所有這些頻域方法中,學習得到的濾波器都是基於拉普拉斯特徵分解,也就是取決於圖的結構,這也就意味着,在一個特定結構上訓練得到的模型,並不能直接應用到另外一個結構不同的圖上

非頻域的方法直接在圖上定義卷積操作,也就是在空域上相鄰的鄰居節點上進行操作。這種非頻域方法的主要難點在於如何定義擁有不同鄰居數量的卷積操作以及保持CNN的局部不變性。主要的模型有如下一些:

  • Neural FPs:論文對不同度的節點使用不同的權重矩陣
    x=hvt1+i=1Nvhit1(15) \mathbf{x}=\mathbf{h}_{v}^{t-1}+\sum_{i=1}^{\left|\mathcal{N}_{v}\right|} \mathbf{h}_{i}^{t-1}\tag{15}

    hvt=σ(xWtNv)(16) \mathbf{h}_{v}^{t}=\sigma\left(\mathbf{x} \mathbf{W}_{t}^{\left|\mathcal{N}_{v}\right|}\right)\tag{16}

    其中,WtNv\mathbf{W}_{\mathbf{t}}^{\left|\mathcal{N}_{\mathbf{v}}\right|}是在第tt層的度爲Nv\left|\mathcal{N}_{v}\right|的節點的權重矩陣,這種方法的缺點在於不能應用到節點度比較大的graph上。

    論文的應用場景是分子指紋(Molecular Fingerprints)領域,通過圖神經網絡的方式來學習分子表示,從而提供下游任務比如相似度評估任務或分類任務需要的向量表示。

    算法的實現步驟如下

在這裏插入圖片描述

模型缺點:

  • 計算量較大:和傳統的Circular fingerprints方法相比,有相近的atoms複雜度和網絡深度複雜度,但是會有額外的矩陣乘法複雜度。對於網絡深度爲RR,fingerprint長度爲LL,以及NN個原子的分子,卷積網絡的特徵維度爲FF,計算複雜度爲O(RNFL+RNF2)\mathcal{O}(RNFL+RNF^2)

  • 每一層有計算量限制

  • 信息傳播效率限制:在圖上進行信息傳播的效果會受到圖深度的影響。

  • 無法區分立體異構:分子還會存在同分子式不同空間結構的情況,但是論文網絡架構無法區分後者。

  • DCNN:論文提出了擴散卷積神經網絡,轉化矩陣用來定義節點的鄰居,對於節點分類任務,有
    H=f(WcPX)(17) \mathbf{H}=f\left(\mathbf{W}^{c} \odot \mathbf{P}^{*} \mathbf{X}\right)\tag{17}
    其中,X\mathbf{X}是一個N×FN\times{F}的輸入特徵張量(NN是節點的數量,FF是特徵的維度),P\mathbf{P}^*是一個N×K×NN\times{K}\times{N}的張量,包含矩陣P\mathbf{P}的power series{P,P2,...,PK}\{\mathbf{P},\mathbf{P}^2,...,\mathbf{P}^K\}P\mathbf{P}是來自於圖鄰接矩陣A\mathbf{A}的度標準(degree-normalized)的轉化矩陣。

  • DGCN:論文提出了對偶圖卷積網絡,同時考慮到圖上的局部一致性和全局一致性,它使用兩組卷積網絡來獲取局部/全局的一致性,並採用一個無監督的loss來組合它們,第一個卷積網絡和方程KaTeX parse error: Undefined control sequence: \eqref at position 1: \̲e̲q̲r̲e̲f̲{eq:14}相同,第二個卷積網絡將鄰接矩陣替換爲PPMI(positive pointwise mutual information)矩陣
    H=ρ(DP12XPDP12HΘ)(18) \mathbf{H}^{\prime}=\rho\left(\mathbf{D}_{P}^{-\frac{1}{2}} \mathbf{X}_{P} \mathbf{D}_{P}^{-\frac{1}{2}} \mathbf{H} \Theta\right)\tag{18}
    其中,XP\mathbf{X}_{P}爲PPMI矩陣,DP\mathbf{D}_{P}XP\mathbf{X}_{P}的對角度矩陣。

  • GraphSAGE:論文提出了一個一般的歸納框架,這個框架通過從一個節點的局部鄰居中採樣和聚合特徵,來產生節點的embedding
    hNvt= AGGREGATE t({hut1,uNv})(19) \mathbf{h}_{\mathcal{N}_{v}}^{t}=\text { AGGREGATE }_{t}\left(\left\{\mathbf{h}_{u}^{t-1}, \forall u \in \mathcal{N}_{v}\right\}\right)\tag{19}

    hvt=σ(Wt[hvt1hNvt])(20) \mathbf{h}_{v}^{t}=\sigma\left(\mathbf{W}^{t} \cdot\left[\mathbf{h}_{v}^{t-1} \| \mathbf{h}_{\mathcal{N}_{v}}^{t}\right]\right)\tag{20}

    但是,上述的方程並不會採用所有的鄰居節點進行計算,而是使用均勻採樣來得到固定大小的鄰居節點集合,該論文推薦使用三種聚合函數:

    • 平均值聚合(Mean aggregator):使用如下方式計算
      hvt=σ(WMEAN({hvt1}{hut1,uNv}) \mathbf{h}_{v}^{t}=\sigma\left(\mathbf{W} \cdot \operatorname{MEAN}\left(\left\{\mathbf{h}_{v}^{t-1}\right\} \cup\left\{\mathbf{h}_{u}^{t-1}, \forall u \in \mathcal{N}_{v}\right\}\right)\right. ​ 平均值聚合和其他的聚合方式不同,因爲它不用進行連接操作。

    • LSTM聚合(LSTM aggregator):基於LSTM的聚合器有更好的表達能力,然而,LSTM以序列的方式順序地處理輸入,因此,它並沒有排列不變性,論文采用重排列節點鄰居的方式,在無序集合中使用LSTM操作。

    • 池化聚合(Pooling aggregator):每一個鄰居的隱藏狀態輸入到一個全連接層,然後使用最大池化操作應用到鄰居節點集合。
      hNvt=max({σ(Wpoolhut1+b),uNv}) \mathbf{h}_{\mathcal{N}_{v}}^{t}=\max \left(\left\{\sigma\left(\mathbf{W}_{\mathrm{pool}} \mathbf{h}_{u}^{t-1}+\mathbf{b}\right), \forall u \in \mathcal{N}_{v}\right\}\right) 值得一提的是,任何對稱的函數都可以用來替換這裏的最大池化操作。

  • 門機制(Gate):目前在信息傳播步驟中使用的門機制類似於GRU和LSTM模型,這種機制可以減小原始GNN模型的約束,並提升在圖結構中的長期的信息傳播

    • 論文提出了門控圖神經網絡(GGNN),在信息傳播步驟中使用GRU,將遞歸循環展開固定數量的步數TT,並使用按照時間序的反向傳播來計算梯度。

      具體來說,傳播的基本遞歸循環是模型如下
      avt=AvT[h1t1hNt1]T+bzvt=σ(Wzavt+Uzhvt1)rvt=σ(Wravt+Urhvt1)h~vt=tanh(Wavt+U(rvthvt1))hvt=(1zvt)hvt1+zvthvt~ \begin{aligned} \mathbf{a}_{v}^{t} &=\mathbf{A}_{v}^{T}\left[\mathbf{h}_{1}^{t-1} \ldots \mathbf{h}_{N}^{t-1}\right]^{T}+\mathbf{b} \\ \mathbf{z}_{v}^{t} &=\sigma\left(\mathbf{W}^{z} \mathbf{a}_{v}^{t}+\mathbf{U}^{z} \mathbf{h}_{v}^{t-1}\right) \\ \mathbf{r}_{v}^{t} &=\sigma\left(\mathbf{W}^{r} \mathbf{a}_{v}^{t}+\mathbf{U}^{r} \mathbf{h}_{v}^{t-1}\right) \\ \widetilde{\mathbf{h}}_{v}^{t} &=\tanh \left(\mathbf{W} \mathbf{a}_{v}^{t}+\mathbf{U}\left(\mathbf{r}_{v}^{t} \odot \mathbf{h}_{v}^{t-1}\right)\right) \\ \mathbf{h}_{v}^{t} &=\left(1-\mathbf{z}_{v}^{t}\right) \odot \mathbf{h}_{v}^{t-1}+\mathbf{z}_{v}^{t} \odot \widetilde{\mathbf{h}_{v}^{t}} \end{aligned}
      按照第一個公式,節點vv首先從它的鄰居節點彙集信息,其中,Av\mathbf{A}_v爲圖鄰接矩陣A\mathbf{A}的子矩陣,表示節點vv和它的鄰居節點的連接關係。然後,類似於GRU的節點更新函數將該節點前一個時刻的信息與該節點相鄰的其它節點的信息結合起來,以此來更新每一個節點的隱藏狀態。a\mathbf{a}彙集了節點vv周圍節點的信息,z\mathbf{z}r\mathbf{r}分別是更新門(update gate)重置門(reset gate)。LSTM同樣使用類似的方法來進行信息傳播過程。

    • 論文提出了兩個LSTM的擴展結構,Child-Sum Tree-LSTMN-ary Tree-LSTM,類似於標準的LSTM單元,每一個Tree-LSTM單元(爲vv)包含輸入門(input gate)iv\mathbf{i}_v和輸出門(output gate)ov\mathbf{o}_v,記憶單元(memory cell)cv\mathbf{c}_v和隱藏狀態(hidden state)hv\mathbf{h}_v,但與LSTM(LSTM單元只包含一個遺忘門(forget gate))不同的是,Tree-LSTM單元對每一個孩子節點kk都有一個遺忘門fvk\mathbf{f}_{vk},這樣就可以從孩子節點中選擇性地彙集並組合信息。Child-Sum Tree-LSTM的轉換方程如下
      hvt1~=kNvhkt1ivt=σ(Wixvt+Uihvt1~+bi)fvkt=σ(Wfxvt+Ufhkt1+bf)ovt=σ(Woxvt+Uohvt1~+bo)uvt=tanh(Wuxvt+Uuhvt1~+bu)cvt=ivtuvt+kNvfvktckt1hvt=ovttanh(cvt) \begin{aligned} \widetilde{\mathbf{h}_{v}^{t-1}} &= \sum_{k \in \mathcal{N}_{v}} \mathbf{h}_{k}^{t-1} \\ \mathbf{i}_{v}^{t} &=\sigma\left(\mathbf{W}^{i} \mathbf{x}_{v}^{t}+\mathbf{U}^{i} \widetilde{\mathbf{h}_{v}^{t-1}}+\mathbf{b}^{i}\right) \\ \mathbf{f}_{v k}^{t} &=\sigma\left(\mathbf{W}^{f} \mathbf{x}_{v}^{t}+\mathbf{U}^{f} \mathbf{h}_{k}^{t-1}+\mathbf{b}^{f}\right) \\ \mathbf{o}_{v}^{t} &=\sigma\left(\mathbf{W}^{o} \mathbf{x}_{v}^{t}+\mathbf{U}^{o} \widetilde{\mathbf{h}_{v}^{t-1}}+\mathbf{b}^{o}\right) \\ \mathbf{u}_{v}^{t} &=\tanh \left(\mathbf{W}^{u} \mathbf{x}_{v}^{t}+\mathbf{U}^{u} \widetilde{\mathbf{h}_{v}^{t-1}}+\mathbf{b}^{u}\right) \\ \mathbf{c}_{v}^{t} &=\mathbf{i}_{v}^{t} \odot \mathbf{u}_{v}^{t}+\sum_{k \in \mathcal{N}_{v}} \mathbf{f}_{v k}^{t} \odot \mathbf{c}_{k}^{t-1} \\ \mathbf{h}_{v}^{t} &=\mathbf{o}_{v}^{t} \odot \tanh \left(\mathbf{c}_{v}^{t}\right) \end{aligned} xvt\mathbf{x}_v^t是標準LSTM中在時刻tt的輸入。

    如果一個樹每一個節點最多有KK個分支,並且節點所有的孩子節點都是有序的,比如,這些孩子節點可以被從11編號到KK,那麼可以使用N-ary Tree-LSTM,對於節點vvhvkt\mathbf{h}_{vk}^tcvkt\mathbf{c}_{vk}^t分別表示在tt時刻,它的第kk個孩子節點的隱藏狀態和記憶單元,轉化方程爲
    ivt=σ(Wixvt+l=1KUlihvlt1+bi)fvkt=σ(Wfxvt+l=1KUklfhvlt1+bf)ovt=σ(Woxvt+l=1KUlohvlt1+bo)uvt=tanh(Wuxvt+l=1KUvltcvlt1+bu)cvt=ivtuvt+l=1Kfvltcvlt1hvt=ovttanh(cvt) \begin{aligned} \mathbf{i}_{v}^{t} &=\sigma\left(\mathbf{W}^{i} \mathbf{x}_{v}^{t}+\sum_{l=1}^{K} \mathbf{U}_{l}^{i} \mathbf{h}_{v l}^{t-1}+\mathbf{b}^{i}\right) \\ \mathbf{f}_{v k}^{t} &=\sigma\left(\mathbf{W}^{f} \mathbf{x}_{v}^{t}+\sum_{l=1}^{K} \mathbf{U}_{k l}^{f} \mathbf{h}_{v l}^{t-1}+\mathbf{b}^{f}\right) \\ \mathbf{o}_{v}^{t} &=\sigma\left(\mathbf{W}^{o} \mathbf{x}_{v}^{t}+\sum_{l=1}^{K} \mathbf{U}_{l}^{o} \mathbf{h}_{v l}^{t-1}+\mathbf{b}^{o}\right) \\ \mathbf{u}_{v}^{t} &=\tanh \left(\mathbf{W}^{u} \mathbf{x}_{v}^{t}+\sum_{l=1}^{K} \mathbf{U}_{v l}^{t} \mathbf{\odot} \mathbf{c}_{v l}^{t-1}+\mathbf{b}^{u}\right) \\ \mathbf{c}_{v}^{t}&=\mathbf{i}_{v}^{t} \odot \mathbf{u}_{v}^{t}+\sum_{l=1}^{K} \mathbf{f}_{v l}^{t} \odot \mathbf{c}_{v l}^{t-1} \\ \mathbf{h}_{v}^{t}&=\mathbf{o}_{v}^{t} \odot \tanh \left(\mathbf{c}_{v}^{t}\right) \end{aligned} 對每個孩子節點kk都賦予一個單獨的參數矩陣,使得該模型相比於Child-Sum Tree-LSTM能夠學習得到更加細微的節點表示。這兩種類型的Tree-LSTM都能夠很容易地應用到圖

    • 論文提出了一個Graph LSTM的變體,用於關係抽取(relation extraction)的任務上。圖和樹的主要區別在於,圖結構的邊有它們自己的label,由此,論文采用不同的權重矩陣來表示不同的label
      ivt=σ(Wixvt+kNvUm(v,k)ihkt1+bi)fvkt=σ(Wfxvt+Um(v,k)fhkt1+bf)ovt=σ(Woxvt+kNvUm(v,k)ohkt1+bo)uvt=tanh(Wuxvt+kNvUm(v,k)t1hkt1+bu)cvt=ivtuvt+kNvfvktckt1hvt=ovttanh(cvt) \begin{array}{l}{\mathbf{i}_{v}^{t}=\sigma\left(\mathbf{W}^{i} \mathbf{x}_{v}^{t}+\sum_{k \in \mathcal{N}_{v}} \mathbf{U}_{m(v, k)}^{i} \mathbf{h}_{k}^{t-1}+\mathbf{b}^{i}\right)} \\ {\mathbf{f}_{v k}^{t}=\sigma\left(\mathbf{W}^{f} \mathbf{x}_{v}^{t}+\mathbf{U}_{m(v, k)}^{f} \mathbf{h}_{k}^{t-1}+\mathbf{b}^{f}\right)} \\ {\mathbf{o}_{v}^{t}=\sigma\left(\mathbf{W}^{o} \mathbf{x}_{v}^{t}+\sum_{k \in \mathcal{N}_{v}} \mathbf{U}_{m(v, k)}^{o} \mathbf{h}_{k}^{t-1}+\mathbf{b}^{o}\right)} \\ {\mathbf{u}_{v}^{t}=\tanh \left(\mathbf{W}^{u} \mathbf{x}_{v}^{t}+\sum_{k \in \mathcal{N}_{v}} \mathbf{U}_{m(v, k)}^{t-1} \mathbf{h}_{k}^{t-1}+\mathbf{b}^{u}\right)} \\ {\mathbf{c}_{v}^{t}=\mathbf{i}_{v}^{t} \odot \mathbf{u}_{v}^{t}+\sum_{k \in \mathcal{N}_{v}} \mathbf{f}_{v k}^{t} \odot \mathbf{c}_{k}^{t-1}} \\ {\mathbf{h}_{v}^{t}=\mathbf{o}_{v}^{t} \odot \tanh \left(\mathbf{c}_{v}^{t}\right)}\end{array} 其中,m(v,k)m(v,k)表示在節點vvkk之間邊的label。
  • 注意力機制(Attention):注意力機制在很多基於序列任務(sequence-based tasks)比如機器翻譯、機器閱讀理解等等上都產生了非常好的效果。

    • 論文提出了圖注意力網絡(graph attention network, GAT)將注意力機制引入到信息傳播步驟,這個模型通過對它的鄰居節點增加註意力來計算節點的隱藏狀態,和self-attention策略類似。

      該論文定義了一個graph attentional layer,並通過疊加這種層來構建任意的圖注意力網絡,這個層計算節點對(i,j)(i,j)的注意力係數(coefficients),計算方式如下:
      αij=exp( Leaky ReLU (aT[WhiWhj]))kNiexp( Leaky ReLU (aT[WhiWhk])) \alpha_{i j}=\frac{\exp \left(\text { Leaky ReLU }\left(\mathbf{a}^{T}\left[\mathbf{W} \mathbf{h}_{i} \| \mathbf{W} \mathbf{h}_{j}\right]\right)\right)}{\sum_{k \in \mathcal{N}_{i}} \exp \left(\text { Leaky ReLU }\left(\mathbf{a}^{T}\left[\mathbf{W} \mathbf{h}_{i} \| \mathbf{W} \mathbf{h}_{k}\right]\right)\right)} 其中,αij\alpha_{ij}是節點jjii的注意力係數,Ni\mathcal{N}_i表示圖中節點ii的鄰居節點集合,節點特徵的輸入集合是h={h1,h2,,hN},hiRF\mathbf{h}=\left\{\mathbf{h}_{1}, \mathbf{h}_{2}, \ldots, \mathbf{h}_{N}\right\},\mathbf{h}_{i} \in\mathbb{R}^{F},其中NN是節點的個數,FF是每個節點的特徵維度。這個層會產生一個新的節點特徵集(可能有不同的特徵維度FF')h={h1,h2,,hN},hiRF\mathbf{h}^{\prime}=\left\{\mathbf{h}_{1}^{\prime}, \mathbf{h}_{2}^{\prime}, \ldots, \mathbf{h}_{N}^{\prime}\right\},\mathbf{h}_{i}^{\prime} \in \mathbb{R}^{F^{\prime}},作爲該層的輸出,WRF×F\mathbf{W} \in \mathbb{R}^{F^{\prime} \times F}是共享的線性變換的權重矩陣,aR2F\mathbf{a} \in \mathbb{R}^{2 F^{\prime}}是單層的前向神經網絡的權重向量,通過softmax函數對它進行歸一化,然後使用LeakyReLU(α=0.2\alpha=0.2)非線性函數。

      最後每個節點的輸出特徵可以通過如下方程獲得
      hi=σ(jNiαijWhj) \mathbf{h}_{i}^{\prime}=\sigma\left(\sum_{j \in \mathcal{N}_{i}} \alpha_{i j} \mathbf{W h}_{j}\right) 另外,這個注意力層採用multi-head attention使得網絡學習過程更加穩定,它使用KK個獨立的注意力來計算隱藏狀態,然後將計算出的KK個特徵連接(或者求平均),得到最終的輸出表示
      hi=k=1Kσ(jNiαijkWkhj) \mathbf{h}_{i}^{\prime}=\|_{k=1}^{K} \sigma\left(\sum_{j \in \mathcal{N}_{i}} \alpha_{i j}^{k} \mathbf{W}^{k} \mathbf{h}_{j}\right)

      hi=σ(1Kk=1KjNiαijkWkhj) \mathbf{h}_{i}^{\prime}=\sigma\left(\frac{1}{K} \sum_{k=1}^{K} \sum_{j \in \mathcal{N}_{i}} \alpha_{i j}^{k} \mathbf{W}^{k} \mathbf{h}_{j}\right)

      其中,αijk\alpha_{i j}^{k}是歸一化的注意力係數,由第kk個注意力機制得到。

      這篇論文的注意力機制結構有如下幾個特點:(1)node-neighbor pair的計算可以是並行化的,因此操作的效率高;(2)通過給鄰居節點賦予任意的權重,可以用在有不同度的圖節點上;(3)可以容易地用於歸納學習問題上。

  • 跳過連接(Skip connection):許多應用都會將圖神經網絡層進行疊加,以此來實現更好的結果,因爲更多的層意味着每一個節點能夠從更多的鄰居節點中獲取信息,但是,許多實驗發現,更深的模型並不會表現更好,反而可能表現更壞,主要因爲隨着指數個數上升的相鄰節點數量,更多的層可能會彙集到更多的噪聲信息

    一個直接的想法是使用殘差網絡(residual network),但是即使使用殘差連接,有更多層的GCN在很多數據上並沒有2層的GCN表現的更好。

    • 論文提出了Highway GCN,類似於highway network,使用了“逐層門機制”(layer-wise gates),一個層的輸出公式如下:
      T(ht)=σ(Wtht+bt)ht+1=ht+1T(ht)+ht(1T(ht)) \begin{aligned} \mathbf{T}\left(\mathbf{h}^{t}\right) &=\sigma\left(\mathbf{W}^{t} \mathbf{h}^{t}+\mathbf{b}^{t}\right) \\ \mathbf{h}^{t+1} &=\mathbf{h}^{t+1} \odot \mathbf{T}\left(\mathbf{h}^{t}\right)+\mathbf{h}^{t} \odot\left(1-\mathbf{T}\left(\mathbf{h}^{t}\right)\right) \end{aligned} 通過增加highway gates,在該論文指定的特定問題上,模型在4層的表現最好。
  • 分層池化(Hierarchical Pooling):在計算機視覺中,一個卷積層後通常會接一個池化層,來得到更加一般的特徵。與這種池化層類似的是,在圖結構中,一種分層池化層也能夠起到類似的效果,複雜的和大規模的圖通常會包含豐富的分層結構,這種結構對於節點層次(node-level)和圖層次(graph-level)的分類任務非常重要。

訓練方法

原始的圖卷積神經網絡在訓練和優化方法上有一些缺點,比如,GCN需要計算整個圖拉普拉斯矩陣,這個操作對於大型的圖計算量非常大,另外,在第LL層的節點的embedding,是通過第L1L-1層其周圍所有鄰居節點的embedding遞歸循環得到的,因此,單個節點的感受野會隨着層數的增加而指數上升,由此,計算單個節點的梯度會非常耗時,另外,GCN是對固定的圖結構進行訓練,缺乏歸納學習的能力。有以下幾種改進的方法

  • 採樣(Sampling):GraphSAGE將full graph Laplacian替換爲可學習的聚合函數(aggregation function)。在學習到聚合函數和傳播函數後,GraphSAGE能夠對未見過的節點產生embedding。另外,GraphSAGE使用鄰居節點採樣(neighbor sampling)的方法來緩和感受野擴展的擴展速度。

  • 感受野控制(Receptive Field Control)

  • 數據增強(Data Augmentation)論文考慮到GCN需要許多額外的標籤數據集用於驗證,以及卷積核局部化問題,爲了解決這些問題,這篇論文提出Co-Training GCN和Self-Training GCN來擴充訓練數據集。

  • 無監督訓練(Unsupervised Training)

GNN一般框架

除了一些GNN的變體之外,一些一般性的框架也用於將不同的模型結合到一個單一框架中,比如MPNN(結合了各種GNN和GCN方法),NLNN(結合幾種self-attention的方法),GN(結合MPNN和NLNN以及其它一些GNN變體)。下面對這三種框架進行仔細介紹:

Message Passing Neural Networks

該模型提出一種general framework,用於在graph上進行監督學習。模型包含兩個過程,message passing phasereadout phase。信息傳遞階段就是前向傳播階段,該階段循環運行T個steps,並通過函數MtM_t獲取信息,通過函數UtU_t更新節點,該階段方程如下
mvt+1=wNvMt(hvt,hwt,evw)hvt+1=Ut(hvt,mvt+1) \begin{aligned} \mathbf{m}_{v}^{t+1} &=\sum_{w \in \mathcal{N}_{v}} M_{t}\left(\mathbf{h}_{v}^{t}, \mathbf{h}_{w}^{t}, \mathbf{e}_{v w}\right) \\ \mathbf{h}_{v}^{t+1} &=U_{t}\left(\mathbf{h}_{v}^{t}, \mathbf{m}_{v}^{t+1}\right) \end{aligned} 其中,evw\mathbf{e}_{vw}表示從節點vvww的邊的特徵向量。

readout階段計算一個特徵向量用於整個圖的representation,使用函數RR實現
y^=R({hvTvG}) \hat{\mathbf{y}}=R\left(\left\{\mathbf{h}_{v}^{T} | v \in G\right\}\right) 其中TT表示整個時間step數,其中的函數MtM_tUtU_tRR可以使用不同的模型設置。

例如,考慮GGNN模型的例子,有如下函數設置
Mt(hvt,hwt,evw)=AevwhwtUt=GRU(hvt,mvt+1)R=vVσ(i(hvT,hv0))(j(hvT)) \begin{aligned} M_{t}\left(\mathbf{h}_{v}^{t}, \mathbf{h}_{w}^{t}, \mathbf{e}_{v w}\right) &=\mathbf{A}_{\mathbf{e}_{vw}} \mathbf{h}_{w}^{t} \\ U_{t} &=G R U\left(\mathbf{h}_{v}^{t}, \mathbf{m}_{v}^{t+1}\right) \\ R &=\sum_{v \in V} \sigma\left(i\left(\mathbf{h}_{v}^{T}, \mathbf{h}_{v}^{0}\right)\right) \odot\left(j\left(\mathbf{h}_{v}^{T}\right)\right) \end{aligned} 其中,Aevw\mathbf{A}_{\mathbf{e}_{vw}}表示鄰接矩陣,iijj是函數RR的神經網絡。

Non-local Neural Networks

該NLNN模型用於使用神經網絡獲取長遠依賴信息,一個位置的non-local操作使用所有positions的特徵向量的加權和來作爲該位置的信息。以下爲通用的non-local operation定義
hi=1C(h)jf(hi,hj)g(hj) \mathbf{h}_{i}^{\prime}=\frac{1}{\mathcal{C}(\mathbf{h})} \sum_{\forall j} f\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right) g\left(\mathbf{h}_{j}\right) 其中,ii是輸出位置(節點)的索引,jj是所有可能位置(節點)索引,f(hi,hj)f\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)函數得到一個scalar,用於計算節點ii與節點jj之間的關聯度,g(hj)g\left(\mathbf{h}_{j}\right)表示輸入hj\mathbf{h}_{j}的轉換函數,因子1C(h)\frac{1}{\mathcal{C}(\mathbf{h})}用於對結果進行歸一化。對於這幾個函數有多種設置,各種函數配置說明如下

  • 線性轉換函數,即g(hj)=Wghjg\left(\mathbf{h}_{j}\right)=\mathbf{W}_{g} \mathbf{h}_{j},其中,WgW_g爲可學習的權重矩陣。

  • 高斯函數,對函數ff使用高斯配置
    f(hi,hj)=ehiThj f\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)=e^{\mathbf{h}_{i}^{T} \mathbf{h}_{j}} 其中,hiThj\mathbf{h}_{i}^{T} \mathbf{h}_{j}爲點積相似度,C(h)=jf(hi,hj)\mathcal{C}(\mathbf{h})=\sum_{\forall j} f\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)

  • Embedded Guassian,對Guassian函數的擴展,用於計算嵌入空間的相似度
    f(hi,hj)=eθ(hi)Tϕ(hj) f\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)=e^{\theta\left(\mathbf{h}_{i}\right)^{T}} \phi\left(\mathbf{h}_{j}\right) 其中,θ(hi)=Wθhi\theta\left(\mathbf{h}_{i}\right)=\mathbf{W}_{\theta} \mathbf{h}_{i}ϕ(hj)=Wϕhj\phi\left(\mathbf{h}_{j}\right)=W_{\phi} \mathbf{h}_{j}C(h)=jf(hi,hj)\mathcal{C}(\mathbf{h})=\sum_{\forall j} f\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)

  • Dot product,對函數ff使用點積相似度
    f(hi,hj)=θ(hi)Tϕ(hj) f\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)=\theta\left(\mathbf{h}_{i}\right)^{T} \phi\left(\mathbf{h}_{j}\right) 在這種情況下,C(h)=N\mathcal{C}(\mathbf{h})=N,其中NN爲位置(節點)的個數。

  • Concatenation,即
    f(hi,hj)=ReLU(wfT[θ(hi)ϕ(hj)]) f\left(\mathbf{h}_{i}, \mathbf{h}_{j}\right)=\operatorname{Re} \mathrm{L} \mathrm{U}\left(\mathbf{w}_{f}^{T}\left[\theta\left(\mathbf{h}_{i}\right) \| \phi\left(\mathbf{h}_{j}\right)\right]\right) 其中,wf\mathbf{w}_{f}是一個權重向量,用於將一個vector映射成一個scalar,C(h)=N\mathcal{C}(\mathbf{h})=N

Graph Networks

首先介紹網絡的的定義,一個Graph Networks定義爲三元組G=(u,H,E)G=(\mathbf{u}, H, E),這裏使用H={hi}i=1:NvH=\left\{\mathbf{h}_{i}\right\}_{i=1 : N^{v}}表示節點集合,hi\mathbf{h}_{i}爲節點的屬性向量,u\mathbf{u}是全局屬性,E={(ek,rk,sk)}k=1:NeE=\left\{\left(\mathbf{e}_{k}, r_{k}, s_{k}\right)\right\}_{k=1 : N^{e}}爲邊的集合,其中,ek\mathbf{e}_{k}爲邊的屬性向量,rkr_k爲receiver node索引,sks_k爲sender node索引。

然後是GN block的結構,一個GN block包含三個update functions(ϕ\phi)和三個aggregation functions(ρ\rho)
ek=ϕe(ek,hrk,hsk,u)ei=ρeh(Ei)hi=ϕh(ei,hi,u)e=ρeu(E)u=ϕu(e,h,u)h=ρhu(H) \begin{array}{ll}{\mathbf{e}_{k}^{\prime}=\phi^{e}\left(\mathbf{e}_{k}, \mathbf{h}_{r_{k}}, \mathbf{h}_{s_{k}}, \mathbf{u}\right)} & {\overline{\mathbf{e}}_{i}^{\prime}=\rho^{e \rightarrow h}\left(E_{i}^{\prime}\right)} \\ {\mathbf{h}_{i}^{\prime}=\phi^{h}\left(\overline{\mathbf{e}}_{i}^{\prime}, \mathbf{h}_{i}, \mathbf{u}\right)} & {\overline{\mathbf{e}}^{\prime}=\rho^{e \rightarrow u}\left(E^{\prime}\right)} \\ {\mathbf{u}^{\prime}=\phi^{u}\left(\overline{\mathbf{e}}^{\prime}, \overline{\mathbf{h}}^{\prime}, \mathbf{u}\right)} & {\overline{\mathbf{h}}^{\prime}=\rho^{h \rightarrow u}\left(H^{\prime}\right)}\end{array} 其中,Ei={(ek,rk,sk)}rk=i,k=1:NeE_{i}^{\prime}=\left\{\left(\mathbf{e}_{k}^{\prime}, r_{k}, s_{k}\right)\right\}_{r_{k}=i, k=1 : N^{e}}H={hi}i=1:NvH^{\prime}=\left\{\mathbf{h}_{i}^{\prime}\right\}_{i=1 : N^{v}}E=iEi={(ek,rk,sk)}k=1:NeE^{\prime}=\bigcup_{i} E_{i}^{\prime}=\left\{\left(\mathbf{e}_{k}^{\prime}, r_{k}, s_{k}\right)\right\}_{k=1 : N^{e}}。函數ρ\rho必須對於輸入的順序有不變性,而且需要能夠接受不同數量的參數

GN block的計算步驟如下:

  • 使用函數ϕe\phi^{e}對每條邊都使用一次,輸入的參數爲(ek,hrk,hsk,u)\left(\mathbf{e}_{k}, \mathbf{h}_{r_{k}}, \mathbf{h}_{s_{k}}, \mathbf{u}\right),並返回向量ek\mathbf{e}_{k}^{\prime},對與每個節點ii相連的輸出邊的集合爲Ei={(ek,rk,sk)}rk=i,k=1:NeE_{i}^{\prime}=\left\{\left(\mathbf{e}_{k}^{\prime}, r_{k}, s_{k}\right)\right\}_{r_{k}=i, k=1 : N^{e}},所有輸出邊的集合爲E=iEi={(ek,rk,sk)}k=1:NeE^{\prime}=\bigcup_{i} E_{i}^{\prime}=\left\{\left(\mathbf{e}_{k}^{\prime}, r_{k}, s_{k}\right)\right\}_{k=1 : N^{e}}

  • 對集合EiE_i'使用函數ρeh\rho^{e \rightarrow h},得到與節點ii相連邊的信息彙集向量ei\overline{\mathbf{e}}_{i},用於下一步的節點更新。

  • 對每一個節點ii使用函數ϕh\phi^{h},用於計算並更新節點的屬性向量hi\mathbf{h}_{i}^{\prime},所有節點的輸出集合爲H={hi}i=1:NvH^{\prime}=\left\{\mathbf{h}_{i}^{\prime}\right\}_{i=1 : N^{v}}

  • 對集合EE'使用函數ρeu\rho^{e \rightarrow u},得到所有邊的信息彙集向量e\overline{\mathbf{e}}^{\prime},用於下一步的全局更新。

  • 對集合HH'使用函數ρhu\rho^{h \rightarrow u},得到所有節點的信息彙集向量h\overline{\mathbf{h}}^{\prime},用於下一步的全局更新。

  • 對每個graph應用一次函數ϕu\phi^u,然後計算更新全局屬性向量,得到u\mathbf{u}^{\prime}
    圖神經網絡設計基於三個基本的原則:flexible representationsconfigurable within-block structurecomposable multi-block architectures

  • GN framework支持靈活的屬性表達以及不同的圖結構

  • GN block內函數可以有靈活的配置

  • GN block可以通過堆疊的方式以及權重共享的方式來得到更深的網絡

GNN應用

論文將GNN的應用分爲以下幾種:

  • 結構化數據場景,有明顯的關係結構,比如物理系統,分子結構和知識圖譜
  • 非結構化場景,沒有明顯的關係結構,比如文本
  • 其他應用場景,比如產生式模型和組合優化問題
  1. 物理系統應用

    GNN可以用於對現實世界中的物理系統建模,將物體表示爲節點,將物體之間的關係表示爲邊,由此可以使用GNN模型對目標、關係進行推理。有如下一些論文研究相關內容:

    • Interaction Networks”:該模型對各種物理系統進行預測和推理。模型輸入objects和relations,然後對它們的interaction進行推理,並預測出新的系統狀態。
    • Visual Interaction Networks:該模型實現像素級的預測。
  2. 化學和生物學應用

    GNN能夠用於計算分子指紋(molecular fingerprints),即使用特徵向量來表示分子,用於下游任務,比如computer-aided drug design。另外,GNN也可以用於protein interface prediction,有助於藥物研究。

  3. 知識圖譜應用

    有論文采用GNN來解決基於out-of-knowledge-base的實體問題。也有論文采用GCN來解決跨語言的知識圖譜對齊任務,論文模型將不同語言的實體嵌入到向量空間,然後使用相似度進行實體對齊。

  4. 圖像任務

    目前的圖像分類任務由於大數據和GPU的強大並行計算能力獲得很大的突破,但是zero-shot and few-hot learning在圖像領域仍然非常重要。有一些模型採用GNN結合圖像的結構化信息來進行圖像分類,比如,知識圖譜可以用於額外的信息來指導zero-shot recognition classification

    GNN也可以用於visual reasoning,計算機視覺系統通常需要結合空間信息和語義信息來實現推理,因此,很自然地想到使用Graph來實現推理任務。一個典型的任務是visual question answering,該任務需要分別構建圖像的場景圖(scene graph)以及問題句法圖(syntactic graph),然後使用GGNN來訓練以及預測最終的結果。visual reasoning的其他應用還有object detectioninteraction detectionregion classification

    GNN還可以用於semantic segmentation,語義分割的任務在於對圖像每一個像素預測出一個label,由於圖像的區域往往不是網格形狀的,並且需要全局信息,因此使用傳統的CNN會有一些侷限性,有一些論文采用圖結構數據來解決這種問題。

  5. 文本任務

    GNN能夠應用到多個基於文本的任務上,既可以用於sentence-level的任務,也可以用於word-level的任務。

    首先就是文本分類任務,GNN將一個document或者sentence表示爲一個以字(或詞)爲節點的圖結構,然後使用Text GCN來學習詞彙或者文本的embedding向量,用於下游任務。

    其次就是序列標註任務,對於圖中的每一個節點都有一個隱藏狀態,因此,可以使用這個隱藏狀態來對每一個節點進行標註。

    GNN還可以用於機器翻譯任務,原始的機器翻譯是sequence-to-sequence的任務,但是使用GNN可以將語法和語義信息編碼進翻譯模型中。

    GNN用在關係抽取任務中,就是在文本中抽取出不同實體的語義關係,有一些系統將這個任務看作是兩個單獨的任務:命名實體識別和關係抽取

    GNN用於事件抽取任務,就是從文本中提取出事件關鍵的信息,有論文通過dependency tree來實現event detection。

    GNN還被用於其他應用,比如文本生成任務,關係推理任務等等。

  6. 產生式模型

    產生式模型對於社會關係建模、新型化學結構發現以及構建知識圖譜也有重要作用,有如下相關的研究論文:

    • NetGAN:模型使用隨機漫步原理來產生圖,該模型將graph generation問題轉化爲walk generation問題,它使用來自於特定圖結構的random walks作爲輸入,並使用GAN的結構來訓練一個產生式模型。
    • MolGAN:該模型一次性預測離散的圖結構,並採用permutation-invariant discriminator來解決node variant問題。
  7. 組合優化

    GNN能夠應用於解決在graph上的NP-hard的優化問題,比如旅行商問題(TSP),最小生成樹問題(MSP)。

開放問題

GNN模型目前仍然存在一些問題

  • Shallow Structure:傳統的神經網絡可以疊加上百層來提高模型的表達能力,而實驗顯示,GCN疊加過多的層或導致over-smoothing問題,也就是說,最終所有的節點會收斂於相同的值。
  • Dynamic Graphs:靜態圖是穩定的,因此比較好靈活地進行建模,但是動態圖是動態的結構,建模較難。
  • Non-Structure Scenarios:對於如何從原始的非結構化數據來產生對應的圖結構並沒有最優的方法。
  • Scalability:應用尺度問題,使用embedding的方法來處理web-scale的任務比如social networks或者recommendation systems對於使用embedding的方法來說計算量非常大。首先,由於不是歐幾里得結構,所以不同的節點有不同的結構,無法使用batches;其次,計算圖Laplacian矩陣對於有上百萬的節點和邊的圖是不現實的。

跳轉到第二篇GNN論文詳述

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