圖神經網絡
先導概念
傳統機器學習與圖神經網絡的關系
- 傳統機器學習數據類型:矩陣、張量、序列、時間序列;但是現實生活中的數據更多是圖的結構;
- 現實的數據可以轉化為圖的形式(包括傳統機器學習數據),圖機器學習問題可概括為節點分類問題,邊預測問題
- 傳統機器學習技術假設樣本獨立同分布,因此傳統機器學習技術不適用於圖數據;
- 圖機器學習研究如何構建節點表征,節點表征需同時包含節點本身信息和節點鄰接的信息,從而可以在節點表征上應用傳統分類技術實現節點分類
- 圖機器學習的關鍵在於如何為節點構建表征
- 深度學習已經被證明在表征學習中具有強大的能力,因此將圖與神經網絡結合在一起,利用神經網絡來學習節點表征,將帶來前所未有的機會
神經網絡和圖神經網絡的關系
-
Neural Network(神經網絡)
如圖所示,神經網絡通過對輸入層進行矩陣變換,輸入到隱藏層,隱藏層之間、隱藏層和輸出層也通過矩陣變換層層傳遞輸出至輸出層 -
CNN(Convolution Neural Network 卷積神經網絡)
在像素問題上,考慮到了輸入值的(像素的)空間分布,不同值對於下一層的對應值的影響是不同的
-
GNN(Graph Neural Network 圖神經網絡)
在人際交往中,每個人就是一個節點,長相、工作……都是節點的屬性,而人際關系就是邊,邊的特點就是標簽,關系有好有壞,可以是單相思也可以是雙向,由節點和邊組成的網絡就是圖
結合圖和神經網絡,通過臨近節點和邊對節點進行升級輸入下一層,層層推進至輸出層,這就是GNN的簡單表示
圖結構數據
一、圖的表示
-
定義一(圖):
- 一個圖被記為\(\mathcal{G}={\mathcal{V}, \mathcal{E}}\),其中\(\mathcal{V}=\{v_{1}, \ldots, v_{N} \}\)是數量為\(N=|\mathcal{V}|\) 的節點的集合, \(\mathcal{E}=\{e_{1}, \ldots, e_{M}\}\) 是數量為 \(M\) 的邊的集合。
- 圖用節點表示實體(entities ),用邊表示實體間的關系(relations)。
- 節點和邊的信息可以是類別型的(categorical),類別型數據的取值只能是哪一類別。一般稱類別型的信息為標簽(label)。
- 節點和邊的信息可以是數值型的(numeric),數值型數據的取值范圍為實數。一般稱數值型的信息為屬性(attribute)。
- 在圖的計算任務中,我們認為,節點一定含有信息(至少含有節點的度的信息),邊可能含有信息。
-
定義二(圖的鄰接矩陣):
-
給定一個圖 $$\mathcal{G}={\mathcal{V}, \mathcal{E}}$$
-
,其對應的鄰接矩陣被記為\(\mathbf{A} \in{0,1}^{N \times N}\)。\(\mathbf{A}_{i, j}=1\)表示存在從節點\(v_i\)到\(v_j\)的邊,反之表示不存在從節點\(v_i\)到\(v_j\)的邊。
-
在無向圖中,從節點\(v_i\)到\(v_j\)的邊存在,意味着從節點\(v_j\)到\(v_i\)的邊也存在。因而無向圖的鄰接矩陣是對稱的。
-
在無權圖中,各條邊的權重被認為是等價的,即認為各條邊的權重為\(1\)。
-
對於有權圖,其對應的鄰接矩陣通常被記為\(\mathbf{W} \in{0,1}^{N \times N}\),其中\(\mathbf{W}{i, j}=w{ij}\)表示從節點\(v_i\)到\(v_j\)的邊的權重。若邊不存在時,邊的權重為\(0\)。
一個無向無權圖的例子:
-
其鄰接矩陣為:
二、圖的屬性
-
定義三(節點的度,degree):
- 對於有向有權圖,節點\(v_i\)的出度(out degree)等於從\(v_i\)出發的邊的權重之和,節點\(v_i\)的入度(in degree)等於從連向\(v_i\)的邊的權重之和。
- 無向圖是有向圖的特殊情況,節點的出度與入度相等。
- 無權圖是有權圖的特殊情況,各邊的權重為\(1\),那么節點\(v_i\)的出度(out degree)等於從\(v_i\)出發的邊的數量,節點\(v_i\)的入度(in degree)等於從連向\(v_i\)的邊的數量。
- 節點\(v_i\)的度記為\(d(v_i)\),入度記為\(d{in}(v_i)\),出度記為\(d{out}(v_i)\)。
-
定義四(鄰接節點,neighbors):
- 節點\(v_i\)的鄰接節點為與節點\(v_i\)直接相連的節點,其被記為\(\mathcal{N(v_i)}\)。
- 節點\(v_i\)的\(k\)跳遠的鄰接節點(neighbors with \(k\)-hop)指的是到節點\(v_i\)要走\(k\)步的節點(一個節點的\(2\)跳遠的鄰接節點包含了自身)。
-
定義五(行走,walk):
- \(walk(v_1, v_2) = (v_1, e_6,e_5,e_4,e_1,v_2)\),這是一次“行走”,它是一次從節點\(v_1\)出發,依次經過邊\(e_6,e_5,e_4,e_1\),最終到達節點\(v_2\)的“行走”。
- 下圖所示為\(walk(v_1, v_2) = (v_1, e_6,e_5,e_4,e_1,v_2)\),其中紅色數字標識了邊的訪問序號。
- 在“行走”中,節點是允許重復的。
-
定理六:
- 有一圖,其鄰接矩陣為 \(\mathbf{A}\), \(\mathbf{A}^{n}\)為鄰接矩陣的\(n\)次方,那么\(\mathbf{A}^{n}[i,j]\)等於從節點\(v_i\)到節點\(v_j\)的長度為\(n\)的行走的個數。(也就是,以節點\(v_i\)為起點,節點\(v_j\)為終點,長度為\(n\)的節點訪問方案的數量,節點訪問中可以兜圈子重復訪問一些節點)
-
定義七(路徑,path):
- “路徑”是節點不可重復的“行走”。
-
定義八(子圖,subgraph):
- 有一圖\(\mathcal{G}={\mathcal{V}, \mathcal{E}}\),另有一圖\(\mathcal{G}^{\prime}={\mathcal{V}^{\prime}, \mathcal{E}^{\prime}}\),其中\(\mathcal{V}^{\prime} \in \mathcal{V}\),\(\mathcal{E}^{\prime} \in \mathcal{E}\)並且\(\mathcal{V}^{\prime}\)不包含\(\mathcal{E}^{\prime}\)中未出現過的節點,那么\(\mathcal{G}^{\prime}\)是\(\mathcal{G}\)的子圖。
-
定義九(連通分量,connected component):
- 給定圖\(\mathcal{G}^{\prime}={\mathcal{V}^{\prime}, \mathcal{E}^{\prime}}\)是圖\(\mathcal{G}={\mathcal{V}, \mathcal{E}}\)的子圖。記屬於圖\(\mathcal{G}\)但不屬於\(\mathcal{G}^{\prime}\)圖的節點集合記為\(\mathcal{V}/\mathcal{V}^{\prime}\) 。如果屬於\(\mathcal{V}^{\prime}\)的任意節點對之間存在至少一條路徑,但不存在一條邊連接屬於\(\mathcal{V}^{\prime}\)的節點與屬於\(\mathcal{V}/\mathcal{V}^{\prime}\)的節點,那么圖\(\mathcal{G}^{\prime}\)是圖\(\mathcal{G}\)的連通分量。
左右兩邊子圖都是整圖的連通分量。
-
定義十(連通圖,connected graph):
- 當一個圖只包含一個連通分量,即其自身,那么該圖是一個連通圖。
- 定義十一(最短路徑,shortest path):
- \(v{s}, v{t} \in \mathcal{V}\) 是圖\(\mathcal{G}={\mathcal{V}, \mathcal{E}}\)上的一對節點,節點對\(v{s}, v{t} \in \mathcal{V}\)之間所有路徑的集合記為\(\mathcal{P}{\mathrm{st}}\)。節點對\(v{s}, v{t}\)之間的最短路徑\(p{\mathrm{s} t}^{\mathrm{sp}}\)為\(\mathcal{P}_{\mathrm{st}}\)中長度最短的一條路徑,其形式化定義為
其中,\(p\)表示\(\mathcal{P}_{\mathrm{st}}\)中的一條路徑,\(|p|\)是路徑\(p\)的長度。
- 定義十二(直徑,diameter):
- 給定一個連通圖\(\mathcal{G}={\mathcal{V}, \mathcal{E}}\),其直徑為其所有節點對之間的最短路徑的最大值,形式化定義為
- 定義十三(拉普拉斯矩陣,Laplacian Matrix):
- 給定一個圖\(\mathcal{G}={\mathcal{V}, \mathcal{E}}\),其鄰接矩陣為\(A\),其拉普拉斯矩陣定義為\(\mathbf{L=D-A}\),其中\(\mathbf{D=diag(d(v_1), \cdots, d(v_N))}\)。
定義十四(對稱歸一化的拉普拉斯矩陣,Symmetric normalized Laplacian):
- 給定一個圖\(\mathcal{G}={\mathcal{V}, \mathcal{E}}\),其鄰接矩陣為\(A\),其規范化的拉普拉斯矩陣定義為
三、圖的種類
- 同質圖(Homogeneous Graph):只有一種類型的節點和一種類型的邊的圖。
- 異質圖(Heterogeneous Graph):存在多種類型的節點和多種類型的邊的圖。
- 二部圖(Bipartite Graphs):節點分為兩類,只有不同類的節點之間存在邊。
四、圖結構數據上的機器學習
- 節點預測:預測節點的類別或某類屬性的取值
- 例子:對是否是潛在客戶分類、對游戲玩家的消費能力做預測
- 邊預測:預測兩個節點間是否存在鏈接
- 例子:Knowledge graph completion、好友推薦、商品推薦
- 圖的預測:對不同的圖進行分類或預測圖的屬性
- 例子:分子屬性預測
- 節點聚類:檢測節點是否形成一個社區
- 例子:社交圈檢測
- 其他任務
- 圖生成:例如葯物發現
- 圖演變:例如物理模擬
- ……
五、應用神經網絡於圖面臨的挑戰
在學習了簡單的圖論知識,我們再來回顧應用神經網絡於圖面臨的挑戰。
過去的深度學習應用中,我們主要接觸的數據形式主要是這四種:矩陣、張量、序列(sequence)和時間序列(time series),它們都是規則的結構化的數據。然而圖數據是非規則的非結構化的,它具有以下的特點:
- 任意的大小和復雜的拓撲結構;
- 沒有固定的節點排序或參考點;
- 通常是動態的,並具有多模態的特征;
- 圖的信息並非只蘊含在節點信息和邊的信息中,圖的信息還包括了圖的拓撲結構。
以往的深度學習技術是為規則且結構化的數據設計的,無法直接用於圖數據。應用於圖數據的神經網絡,要求
- 適用於不同度的節點;
- 節點表征的計算與鄰接節點的排序無關;
- 不但能夠根據節點信息、鄰接節點的信息和邊的信息計算節點表征,還能根據圖拓撲結構計算節點表征。下面的圖片展示了一個需要根據圖拓撲結構計算節點表征的例子。圖片中展示了兩個圖,它們同樣有倆黃、倆藍、倆綠,共6個節點,因此它們的節點信息相同;假設邊兩端節點的信息為邊的信息,那么這兩個圖有一樣的邊,即它們的邊信息相同。但這兩個圖是不一樣的圖,它們的拓撲結構不一樣。