【图神经网络】基于GNN的不同变种及其应用
圖神經網絡
圖神經網絡(Graph Neural Network,GNN)最早由 Scarselli 等人提出。圖中的一個節點可以通過其特征和相關節點進行定義,GNN 的目標是學習一個狀態嵌入 用于表示每個節點的鄰居信息。狀態嵌入 可以生成輸出向量 用于作為預測節點標簽的分布等。
下面三張圖分別從圖的類型,訓練方法和傳播過程角度列舉了不同 GNN 的變種。
下面我們主要從模型的角度分別介紹不同種類的 GNN。
Graph Neural Networks
為了根據鄰居更新節點的狀態,定義一個用于所有節點的函數 ,稱之為 local transition function。定義一個函數 ,用于生成節點的輸出,稱之為 local output function。有:
其中, 表示輸入特征, 表示隱含狀態。 為連接到節點 的邊集, 為節點 的鄰居。
上圖中, 表示 的輸入特征, 包含了邊 和 , 包含了節點 和 。
令 和 分別表示狀態、輸出、特征和所有節點特征的向量,有:
其中, 為 global transition function, 為 global output function,分別為圖中所有節點的 local transition function 和 local output function 的堆疊版本。依據 Banach 的 Fixed Point Theorem,GNN 利用傳統的迭代方式計算狀態:
其中, 表示第 論循環 的值。
介紹完 GNN 的框架后,下一個問題就是如果學習得到 local transition function 和 local output function 。在包含目標信息( 對于特定節點)的監督學習情況下,損失為:
其中, 為用于監督學習的節點數量。利用基于梯度下降的學習方法優化模型后,我們可以得到針對特定任務的訓練模型和圖中節點的隱含狀態。
盡管實驗結果表明 GNN 是一個用于建模結構數據的強大模型,但對于一般的 GNN 模型仍存在如下缺陷:
對于固定點,隱含狀態的更新是低效地。
GNN 在每一輪計算中共享參數,而常見的神經網絡結構在不同層使用不同的參數。同時,隱含節點狀態的更新可以進一步應用 RNN 的思想。
邊上的一些信息特征并沒有被有效的建模,同時如何學習邊的隱含狀態也是一個重要問題。
如果我們更關注節點的表示而非圖的表示,當迭代輪數 很大時使用固定點是不合適的。這是因為固定點表示的分布在數值上會更加平滑,從而缺少用于區分不同節點的信息。
Graph Convolutional Networks
圖卷積神經網絡是將用于傳統數據(例如:圖像)的卷積操作應用到圖結構的數據中。核心思想在于學習一個函數 ,通過聚合節點 自身的特征 和鄰居的特征 獲得節點的表示,其中 為節點的鄰居。
下圖展示了一個用于節點表示學習的 GCN 過程:
GCN 在構建更復雜的圖神經網路中扮演了一個核心角色:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 包含 Pooling 模塊用于圖分類的 GCN
包含 GCN 的圖自編碼器
包含 GCN 的圖時空網絡
GCN 方法可以分為兩大類:基于頻譜(Spectral Methods)和基于空間(Spatial Methods)的方法。
基于頻譜的方法(Spectral Methods)
基于頻譜的方法將圖視為無向圖進行處理,圖的一種魯棒的數學表示為標準化的圖拉普拉斯矩陣:
其中, 為圖的鄰接矩陣, 為節點度的對角矩陣,。標準化的拉普拉斯矩陣具有實對稱半正定的性質,因此可以分解為:
其中, 是由 的特征向量構成的矩陣, 為特征值的對角矩陣,。在圖信號處理過程中,一個圖信號 是一個由圖的節點構成的特征向量,其中 表示第 個節點的值。對于信號 ,圖上的傅里葉變換可以定義為:
傅里葉反變換定義為:
其中, 為傅里葉變換后的結果。
轉變后信號 的元素為新空間圖信號的坐標,因此輸入信號可以表示為:
這正是傅里葉反變換的結果。那么對于輸入信號 的圖卷積可以定義為:
其中, 為濾波器, 表示逐元素乘。假設定義一個濾波器 ,則圖卷積可以簡寫為:
基于頻譜的圖卷積網絡都遵循這樣的定義,不同之處在于不同濾波器的選擇。
一些代表模型及其聚合和更新方式如下表所示:
基于空間的方法(Spatial Methods)
基于空間的方法通過節點的空間關系來定義圖卷積操作。為了將圖像和圖關聯起來,可以將圖像視為一個特殊形式的圖,每個像素點表示一個節點,如下圖所示:
每個像素同周圍的像素相連,以 為窗口,每個節點被 8 個鄰居節點所包圍。通過對中心節點和周圍鄰居節點的像素值進行加權平均來應用一個 大小的濾波器。由于鄰居節點的特定順序,可以在不同位置共享權重。同樣對于一般的圖,基于空間的圖卷積通過對中心和鄰居節點的聚合得到節點新的表示。
為了使節點可以感知更深和更廣的范圍,通常的做法是將多個圖卷積層堆疊在一起。根據堆疊方式的不同,基于空間的圖卷積可以進一步分為兩類:基于循環(Recurrent-based)和基于組合(Composition-based)的。基于循環的方法使用相同的圖卷積層來更新隱含表示,基于組合的方式使用不同的圖卷積層更新隱含表示,兩者差異如下圖所示:
一些代表模型及其聚合和更新方式如下表所示:
Graph Recurrent Networks
一些研究嘗試利用門控機制(例如:GRU 或 LSTM)用于減少之前 GNN 模型在傳播過程中的限制,同時改善在圖結構中信息的長距離傳播。GGNN 提出了一種使用 GRU 進行傳播的方法。它將 RNN 展開至一個固定 步,然后通過基于時間的傳導計算梯度。傳播模型的基礎循環方式如下:
節點 首先從鄰居匯總信息,其中 為圖鄰接矩陣 的子矩陣表示節點 及其鄰居的連接。類似 GRU 的更新函數,通過結合其他節點和上一時間的信息更新節點的隱狀態。 用于獲取節點 鄰居的信息, 和 分別為更新和重置門。
GGNN 模型設計用于解決序列生成問題,而之前的模型主要關注單個輸出,例如:節點級別或圖級別的分類問題。研究進一步提出了 Gated Graph Sequence Neural Networks(GGS-NNs),使用多個 GGNN 產生一個輸出序列 ,如下圖所示:
上圖中使用了兩個 GGNN, 用于從 預測 , 用于從 預測 。令 表示第 步輸出的第 步傳播, 在任意 步初始化為 , 在任意 步初始化為 , 和 可以為不同模型也可以共享權重。
一些代表模型及其聚合和更新方式如下表所示:
Graph Attention Networks
與 GCN 對于節點所有的鄰居平等對待相比,注意力機制可以為每個鄰居分配不同的注意力評分,從而識別更重要的鄰居。
GAT ?將注意力機制引入傳播過程,其遵循自注意力機制,通過對每個節點鄰居的不同關注更新隱含狀態。GAT 定義了一個圖注意力層(graph attentional layer),通過堆疊構建圖注意力網絡。對于節點對 ,基于注意力機制的系數計算方式如下:
其中, 表示節點 對 的注意力系數, 表示節點 的鄰居。令 表示輸入節點特征,其中 為節點的數量, 為特征維度,則節點的輸出特征(可能為不同維度 )為 。 為所有節點共享的線性變換的權重矩陣, 用于計算注意力系數。最后的輸出特征計算方式如下:
注意力層采用多頭注意力機制來穩定學習過程,之后應用 個獨立的注意力機制計算隱含狀態,最后通過拼接或平均得到輸出表示:
其中, 表示連接操作, 表示第 個注意力機制計算得到的標準化的注意力系數。整個模型如下圖所示:
GAT 中的注意力架構有如下幾個特點:
針對節點對的計算是并行的,因此計算過程是高效的。
可以處理不同度的節點并對鄰居分配對應的權重。
可以容易地應用到歸納學習問題中去。
應用
圖神經網絡已經被應用在監督、半監督、無監督和強化學習等多個領域。下圖列舉了 GNN 在不同領域內相關問題中的應用,具體模型論文請參考 Graph Neural Networks: A Review of Methods and Applications。
往期精彩回顧適合初學者入門人工智能的路線及資料下載機器學習及深度學習筆記等資料打印機器學習在線手冊深度學習筆記專輯《統計學習方法》的代碼復現專輯 AI基礎下載機器學習的數學基礎專輯溫州大學《機器學習課程》視頻 本站qq群851320808,加入微信群請掃碼:
總結
以上是生活随笔為你收集整理的【图神经网络】基于GNN的不同变种及其应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: outlook两个账号怎么分开存储邮件
- 下一篇: 如何设置允许PP视频访问相机