圖結構數據
注:本節大部分內容(包括圖片)來源於"Chapter 2 - Foundations of Graphs, Deep Learning on Graphs",我們做了翻譯與重新排版,並增加了一些細節內容。
一、圖的表示
定義一(圖):
- 一個圖被記為\(\mathcal{G}=\{\mathcal{V}, \mathcal{E}\}\),其中 \(\mathcal{V}=\left\{v_{1}, \ldots, v_{N}\right\}\)是數量為\(N=|\mathcal{V}|\) 的結點的集合, \(\mathcal{E}=\left\{e_{1}, \ldots, e_{M}\right\}\) 是數量為 \(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\)。
一個無向無權圖的例子:
其鄰接矩陣為:
\[\mathbf{A}=\left(\begin{array}{lllll} 0 & 1 & 0 & 1 & 1 \\ 1 & 0 & 1 & 0 & 0 \\ 0 & 1 & 0 & 0 & 1 \\ 1 & 0 & 0 & 0 & 1 \\ 1 & 0 & 1 & 1 & 0 \end{array}\right) \]
二、圖的屬性
定義三(結點的度,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\)的行走的個數。
定義七(路徑,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_{\mathrm{s} t}^{\mathrm{sp}}=\arg \min _{p \in \mathcal{P}_{\mathrm{st}}}|p| \]其中,\(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個節點,因此它們的節點信息相同;假設邊兩端節點的信息為邊的信息,那么這兩個圖有一樣的邊,即它們的邊信息相同。但這兩個圖是不一樣的圖,它們的拓撲結構不一樣。
六、結語
在此篇文章中,我們學習了簡單的圖論知識。對於學習此次組隊學習后續的內容,掌握這些圖論知識已經足夠。如果有小伙伴希望掌握更多的圖論知識可以參閱參考文獻“Chapter 2 - Foundations of Graphs, Deep Learning on Graphs”。