理解圖卷積神經網絡


​ 圖神經網絡 (GNN) 是一系列神經網絡,可以自然地對圖結構數據進行操作。與孤立地考慮單個實體的模型相比,通過從底層圖中提取和利用特征,GNN 可以對這些交互中的實體做出更明智的預測。 GNN 並不是唯一可用於對圖結構化數據進行建模的工具:圖內核和隨機游走方法層級是一些最流行的工具。然而,今天,GNN 在很大程度上取代了這些技術,因為GNN具有更好地對底層系統進行建模的固有靈活性。

圖的計算挑戰

缺乏一致的結構

節點個數,邊的連接方法的多樣性使得圖成為一個靈活的但是難以計算的數學模型。

用可以計算的格式來表示圖是非常重要的,最終選擇的表示方法通常取決於實際問題。

節點順序無關性

圖的算法不應該依賴於節點的順序。如果我們以某種方式置換節點,那么由我們的算法計算得到的節點表示也應該以相同的方式置換。
image

可擴展性

圖表可以非常大!如Facebook 和 Twitter 等社交網絡,它們擁有超過 10 億用戶。對這么大的數據進行操作並不容易。 幸運的是,大多數自然出現的圖都是“稀疏的”:它們的邊數往往與其頂點數成線性關系。另外的,通常如此龐大的網絡會有少數節點擁有大量的邊,如微博的大V,明星等。由於圖的稀疏特性,這允許使用聰明的方法來有效地計算圖中節點的表示。此外,與它們操作的圖的大小相比,我們在GNN看到的方法將具有顯着更少的參數。

圖網絡問題分類

1.節點分類

2.圖分類

3.節點聚類

4.鏈路預測

5.影響力最大化

一些表示定義:

$ h_i^{(k)} $ :節點v在第k輪迭代(一次迭代可以看作是一個卷積層)時的表示,是一個向量;

G,V,E分別代表圖,節點集合,邊集合

卷積在圖上的擴展

卷積神經網絡在從圖像中提取特征方面被認為非常強大。然而,圖像本身可以被視為具有非常規則的網格狀結構的圖形,其中單個像素是節點,每個像素的 RGB 通道(3 chnnels)值作為節點特征。 因此,一個自然的想法是考慮將卷積推廣到任意圖。然而,回想一下上一節中列出的挑戰:特別是,普通卷積不是節點順序不變的,因為它們取決於像素的絕對位置。最初不清楚如何將網格上的卷積推廣到一般圖上的卷積,其中鄰域結構因節點而異。好奇的讀者可能想知道是否可以執行某種填充和排序來確保節點間鄰域結構的一致性。這已經嘗試並取得了一些成功,但我們將在這里看到的技術更加通用和強大。

我們首先介紹在節點鄰域上構建多項式濾波器(其后的ChebyNet是在此基礎上進行改進)的想法,就像 CNN 如何在相鄰像素上計算局部濾波器一樣。然后,我們將看到最近的方法如何通過更強大的機制擴展這個想法。最后,我們將討論可以使用“全局”圖級信息來計算節點表示的替代方法。

圖上的多項式濾波器

圖的拉普拉斯矩陣

$ L = D - A $ ,其中D是圖的度矩陣,只有正對角線上有每個節點的度數,其余元素為0;A是鄰接矩陣。

image

對於拉普拉斯矩陣,他所能編碼的信息與鄰接矩陣完全一樣,因為知道了兩個矩陣中的任意一個總能推出另外一個。但是拉普拉斯算子具有很多有用的性質,一些經典的算法都是在拉普拉斯矩陣實現的,如隨機游走,譜聚類和擴散等。

拉普拉斯多項式

\[p_w(L) = w_0 I_n + w_1L + w_2L^2+...+w_dL^d = \sum_{i=0}^{d} w_iL^i \]

我們首先考慮以以上的多項式作為圖卷積核,即 $ x^{'} = p_w(L) x $ .我們可以將所有的系數總結為一個系數向量即$ w = [w_0, w_1, w_2, ... , w_d] $

接下來我們探討為什么會想到使用這樣的一個多項式來作為卷積核。

(1) 首先,當$ w_0 = 1 $,而其他的系數都是0時:

​ $$ x^{'} = p_w(L) x = I_nx = x $$,此時過濾后的結果就是原來的向量;

(2)接下來,考慮當$ w_1 = 1 ,而其他的系數都是0時:

\[\begin{aligned} x^{'} &= p_w(L) x\\ &= Lx \\ 那么對於其中一個具體的節點v \hfill \\ x^{'}_v &= (Lx)_v \\ &= L_vx\\ &= \sum_{u\in G} L_{vu}x_u \\&= \sum_{u\in G} (D_{vu}-A_{vu})x_u \\&= \sum_{u\in G} D_{vu}x_u-\sum_{u\in G}A_{vu}x_u \\&=D_vx_v - \sum_{u\in \mathcal{N}(v)}x_u \end{aligned} \]

我們看到每個節點 $ v $ 的特征與其直接鄰居包括自身的特征相結合。那么所選用的系數究竟與多項式的度\(d\) 有什么關系呢?我們可能會有一些合理的猜測,如果多項式k階度作為核,那么過濾的結果的結果就只會與該節點的k階鄰居有關。事實上,這個猜測是正確的,我們通過選取多項式度可以控制節點特征的聚合范圍,即能夠實現局部性,這也是選用多項式核的一個重要因素,這大大減少了計算的復雜度,因為它避免了對拉普拉斯矩陣進行特征值分解(這將是\(O(n^3)\) 的復雜度)。

為了證明上面的假設,有一個拉普拉斯算子的性質很關鍵:

\[dist G(v,u)>i⟹L_{vu}^i=0. \]

自然語言解釋為:在一個圖中,若兩節點的距離大於i,那么該圖的拉普拉斯矩陣的i次冪該位置元素就是0.

當我們用多項式度d來進行卷積時:

\[\begin{aligned} x^{'}_v & = (p_w(L)x)_v \\&= (p_w(L))_vx \\&= \sum_{i=0}^d w_iL_v^ix \\&= \sum_{i=0}^d w_i \sum_{u \in G} L_{vu}^ix_u \\&= \sum_{i=0}^d w_i \sum_{u \in G \atop distG(v,u)\le i} L_{vu}^ix_u \end{aligned} \]

顯然,以上的假設得以證明。

ChebNet

那么基於上一小節的拉普拉斯多項式卷積核,我們可以引申出ChebNet。

首先我們需要知道第一類切比雪夫多項式如下所示:

\[\begin{aligned} &T_0(x) = 1 \\ &T_1(x) = x \\ &T_{n+1}(x) = 2xT_n(x) - T{n-1}(x). \end{aligned} \]

通過切比雪夫多項式構造卷積核:

\[p_w(L) = \sum_{i=1}^dw_iT_i(\tilde{L}), \quad where\quad\tilde{L}=\frac{2L}{\lambda_{max}(L)}-I_n \]

那么為什么做出這樣的選擇:

(1)關於標准化拉普拉斯矩陣,即使用$ \tilde{L} $ 而不是$ L $:

L是一個半正定矩陣,這代表他的特征值$ \lambda \ge 0$ , 如果有大於1的特征值,那么在高階的多項式的項中,值會急劇增大。進行標准化后,就將特征值的范圍限定在$ [-1,1] $ 了,這樣就解決了這個問題。

(2)關於使用切比雪夫多項式:

屬於數學方面的問題,不多深究此處了。但是切比雪夫多項式有很多有趣的性質。

多項式濾波器實現了節點順序無關性

題目所述的事實很容易在多項式的度為1時被證明。即當只使用一階多項式時,過濾后的特征僅與鄰居節點特征的和相關,顯然sum操作與節點的順序無關。更高次的多項式節點順序無關性也可以類似的得到證明。

嵌入計算

我們現在來繼續了解如何通過stack ChebNet層(或其他的多項式核)來構建一個圖神經網絡。
image

整合即為:

\[h^{(k)} = \sigma(p_{w^{(k)}}(L) \times h^{(k-1)}) \]

每一層都有一個待學習的參數\(w^{(k)}\),它是該層的多項式卷積核的系數。過濾后再使用一個非線性的激活函數。

只需要疊加卷積層即可,但通常只需要2至3層即可達到最好的效果。

現代圖神經網絡

ChebNet 是在圖上學習局部化過濾器的一個突破,它促使許多人從不同的角度思考圖卷積。

我們可以把整個圖卷積的過程分為兩步:

(1)聚合節點周圍的信息(k階鄰居,k由多項式的次數決定);

(2)將(1)中得到的信息與自身節點信息相結合並更新。

只要確保第一步聚合操作是節點順序無關性的,那么整個卷積操作都是節點順序無關性的。這些卷積操作可以看作是相鄰節點的信息傳遞過程,在每一次迭代后,每一個節點都會從他的鄰居節點接收到一些信息。在重復的迭代K次后,一個節點最終的感受域基本上能涵蓋所有的節點即整個圖。
image

嵌入計算

消息傳遞機制構成了當今許多 GNN 架構的支柱。我們將在下面深入描述最受歡迎的幾種神經網絡:

Graph Convolutional Networks (GCN)

Graph Attention Networks (GAT)

Graph Sample and Aggregate (GraphSAGE)

Graph Isomorphism Network (GIN)

(未完待續)
聲明:本文大部分譯自Understanding Convolutions on Graphs,原文中有豐富的交互圖幫助理解,推薦閱讀。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM