GNN(Graph Neural Network 圖神經網絡)


圖神經網絡

先導概念

傳統機器學習與圖神經網絡的關系

  1. 傳統機器學習數據類型:矩陣、張量、序列、時間序列;但是現實生活中的數據更多是圖的結構;
  2. 現實的數據可以轉化為圖的形式(包括傳統機器學習數據),圖機器學習問題可概括為節點分類問題,邊預測問題
  3. 傳統機器學習技術假設樣本獨立同分布,因此傳統機器學習技術不適用於圖數據;
  4. 圖機器學習研究如何構建節點表征,節點表征需同時包含節點本身信息和節點鄰接的信息,從而可以在節點表征上應用傳統分類技術實現節點分類
  5. 圖機器學習的關鍵在於如何為節點構建表征
  6. 深度學習已經被證明在表征學習中具有強大的能力,因此將圖與神經網絡結合在一起,利用神經網絡來學習節點表征,將帶來前所未有的機會

神經網絡和圖神經網絡的關系

  1. Neural Network(神經網絡)

    如圖所示,神經網絡通過對輸入層進行矩陣變換,輸入到隱藏層,隱藏層之間、隱藏層和輸出層也通過矩陣變換層層傳遞輸出至輸出層

  2. CNN(Convolution Neural Network 卷積神經網絡)
    在像素問題上,考慮到了輸入值的(像素的)空間分布,不同值對於下一層的對應值的影響是不同的

  3. GNN(Graph Neural Network 圖神經網絡)
    在人際交往中,每個人就是一個節點,長相、工作……都是節點的屬性,而人際關系就是邊,邊的特點就是標簽,關系有好有壞,可以是單相思也可以是雙向,由節點和邊組成的網絡就是圖
    結合圖和神經網絡,通過臨近節點和邊對節點進行升級輸入下一層,層層推進至輸出層,這就是GNN的簡單表示

圖結構數據

一、圖的表示

  1. 定義一(圖):

    • 一個圖被記為\(\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)。
    • 在圖的計算任務中,我們認為,節點一定含有信息(至少含有節點的度的信息),邊可能含有信息。
  2. 定義二(圖的鄰接矩陣):

    • 給定一個圖 $$\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) \]

二、圖的屬性

  1. 定義三(節點的度,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)\)
  2. 定義四(鄰接節點,neighbors):

    • 節點\(v_i\)的鄰接節點為與節點\(v_i\)直接相連的節點,其被記為\(\mathcal{N(v_i)}\)
    • 節點\(v_i\)\(k\)跳遠的鄰接節點(neighbors with \(k\)-hop)指的是到節點\(v_i\)要走\(k\)步的節點(一個節點的\(2\)跳遠的鄰接節點包含了自身)。
  3. 定義五(行走,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)\),其中紅色數字標識了邊的訪問序號。
    • 在“行走”中,節點是允許重復的。
  4. 定理六:

    • 有一圖,其鄰接矩陣為 \(\mathbf{A}\), \(\mathbf{A}^{n}\)為鄰接矩陣的\(n\)次方,那么\(\mathbf{A}^{n}[i,j]\)等於從節點\(v_i\)到節點\(v_j\)的長度為\(n\)的行走的個數。(也就是,以節點\(v_i\)為起點,節點\(v_j\)為終點,長度為\(n\)的節點訪問方案的數量,節點訪問中可以兜圈子重復訪問一些節點)
  5. 定義七(路徑,path):

    • “路徑”是節點不可重復的“行走”。
  6. 定義八(子圖,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}\)的子圖。
  7. 定義九(連通分量,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}\)的連通分量。

    左右兩邊子圖都是整圖的連通分量。

  8. 定義十(連通圖,connected graph):

  • 當一個圖只包含一個連通分量,即其自身,那么該圖是一個連通圖。
  1. 定義十一(最短路徑,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\)的長度。

  1. 定義十二(直徑,diameter):
  • 給定一個連通圖\(\mathcal{G}={\mathcal{V}, \mathcal{E}}\),其直徑為其所有節點對之間的最短路徑的最大值,形式化定義為

\[\operatorname{diameter}(\mathcal{G})=\max _{v_{s}, v_{t} \in \mathcal{V}} \min _{p \in \mathcal{P}_{s t}}|p| \]

  1. 定義十三(拉普拉斯矩陣,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\),其規范化的拉普拉斯矩陣定義為

\[\mathbf{L=D^{-\frac{1}{2}}(D-A)D^{-\frac{1}{2}}=I-D^{-\frac{1}{2}}AD^{-\frac{1}{2}}} \]

三、圖的種類

  • 同質圖(Homogeneous Graph):只有一種類型的節點和一種類型的邊的圖。
  • 異質圖(Heterogeneous Graph):存在多種類型的節點和多種類型的邊的圖。
  • 二部圖(Bipartite Graphs):節點分為兩類,只有不同類的節點之間存在邊。

四、圖結構數據上的機器學習

  1. 節點預測:預測節點的類別或某類屬性的取值
    1. 例子:對是否是潛在客戶分類、對游戲玩家的消費能力做預測
  2. 邊預測:預測兩個節點間是否存在鏈接
    1. 例子:Knowledge graph completion、好友推薦、商品推薦
  3. 圖的預測:對不同的圖進行分類或預測圖的屬性
    1. 例子:分子屬性預測
  4. 節點聚類:檢測節點是否形成一個社區
    1. 例子:社交圈檢測
  5. 其他任務
    1. 圖生成:例如葯物發現
    2. 圖演變:例如物理模擬
    3. ……

五、應用神經網絡於圖面臨的挑戰

在學習了簡單的圖論知識,我們再來回顧應用神經網絡於圖面臨的挑戰。

過去的深度學習應用中,我們主要接觸的數據形式主要是這四種:矩陣、張量、序列(sequence)和時間序列(time series),它們都是規則的結構化的數據。然而圖數據是非規則的非結構化的,它具有以下的特點:

  1. 任意的大小和復雜的拓撲結構;
  2. 沒有固定的節點排序或參考點;
  3. 通常是動態的,並具有多模態的特征;
  4. 圖的信息並非只蘊含在節點信息和邊的信息中,圖的信息還包括了圖的拓撲結構。

以往的深度學習技術是為規則且結構化的數據設計的,無法直接用於圖數據。應用於圖數據的神經網絡,要求

  • 適用於不同度的節點;
  • 節點表征的計算與鄰接節點的排序無關;
  • 不但能夠根據節點信息、鄰接節點的信息和邊的信息計算節點表征,還能根據圖拓撲結構計算節點表征。下面的圖片展示了一個需要根據圖拓撲結構計算節點表征的例子。圖片中展示了兩個圖,它們同樣有倆黃、倆藍、倆綠,共6個節點,因此它們的節點信息相同;假設邊兩端節點的信息為邊的信息,那么這兩個圖有一樣的邊,即它們的邊信息相同。但這兩個圖是不一樣的圖,它們的拓撲結構不一樣。


免責聲明!

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



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