圖神經網路的介紹(基礎,DeepWalk和GraphSage)
作者:Steeve Huang
編譯:ronghuaiyang
導讀
給大家介紹目前非常熱門的圖神經網路,包括基礎和兩個常用演算法,DeepWalk和GraphSage。
近年來,圖神經網路(GNN)在社交網路、知識圖譜、推薦系統甚至生命科學等各個領域得到了越來越廣泛的應用。GNN具有對圖中節點間依賴關係建模的強大功能,使得圖分析相關研究領域取得了突破。本文會介紹圖神經網路的基本原理,以及兩種更高階的演算法,DeepWalk和GraphSage。
圖
在討論GNN之前,讓我們先了解什麼是 Graph。在電腦科學中,圖是由頂點和邊兩部分組成的資料結構。一個圖 G可以由它所包含的頂點 V和邊 E的集合很好地描述。
根據頂點之間是否存在方向依賴關係,邊可以是有向的,也可以是無向的。
這些頂點通常稱為節點。在本文中,這兩個術語是可以互換的。
圖神經網路
圖神經網路是一種直接作用於圖結構上的神經網路。GNN的一個典型應用是節點分類。本質上,圖中的每個節點都與一個標籤相關聯,我們希望在沒有ground-truth的情況下預測節點的標籤。本節將說明本文中描述的演算法。第一個提出的GNN常常被稱為原始GNN。
在節點分類問題設定中,每個節點 v的特徵是 x_v,並與一個ground-truth標籤 t_v關聯。給定一個部分標記的圖 G,目標是利用這些標記的節點來預測未標記的標籤。它學習用一個 d維向量(狀態) h_v表示每個節點,其中包含其鄰域的資訊。具體地說,
其中 x_co[v]表示與 v相連的邊的特徵, h_ne[v]表示與 v相鄰節點的嵌入, x_ne[v]表示與 v相鄰節點的特徵。函式 f是將這些輸入投射到d維空間的轉換函式。因為我們正在為h_v尋找一個惟一的解,所以我們可以應用Banach定點定理並將上面的等式重寫為迭代更新過程。這種操作通常稱為 訊息傳遞或 鄰居聚合。
H和X分別表示所有H和X的級聯。
透過將狀態 h_v和特徵 x_v傳遞給輸出函式g來計算GNN的輸出。
這裡的f和g都可以解釋為前饋全連線神經網路。L1損失可以直接表述為:
可以透過梯度下降來最佳化。
然而,有文章指出,GNN的這一原始方法存在三個主要限制:
- 如果放鬆“不動點”的假設,就有可能利用多層感知器來學習更穩定的表示,並消除迭代更新過程。這是因為,在原方案中,不同的迭代使用相同的轉換函式f的引數,而MLP不同層中不同的引數允許分層特徵提取。
- 它不能處理邊緣資訊(例如,知識圖中不同的邊緣可能表示節點之間不同的關係)
- 不動點會阻礙節點分佈的多樣化,因此可能不適合學習表示節點。
已經提出了幾個GNN的變體來解決上述問題。然而,它們沒有被涵蓋,因為它們不是本文的重點。
DeepWalk
DeepWalk是第一個提出以無監督方式學習節點嵌入的演算法。就訓練過程而言,它非常類似於單詞嵌入。其動機是圖中節點和語料庫中單詞的分佈遵循冪律,如下圖所示:
演算法包括兩個步驟:
- 在圖中的節點上執行隨機漫步以生成節點序列
- 根據步驟1生成的節點序列,執行skip-gram,學習每個節點的嵌入
在隨機遊走的每個時間步長上,下一個節點均勻地從前一個節點的鄰居中取樣。然後將每個序列截斷為長度 2|w| + 1的子序列,其中w表示skip-gram的視窗大小。
本文采用層次softmax 演算法,解決了節點數量大、計算量大的softmax問題。要計算每個單獨輸出元素的softmax值,我們必須計算所有元素k的所有e^xk。
因此,原始softmax的計算時間為 O(|V|),其中 V表示圖中頂點的集合。
層次softmax利用二叉樹來處理該問題。在這個二叉樹中,所有的葉子(上圖中的v1 v2…v8)都是圖中的頂點。在每個內部節點中,都有一個二進位制分類器來決定選擇哪條路徑。要計算給定頂點 v_k的機率,只需計算從根節點到左節點的路徑上的每個子路徑的機率 v_k。由於每個節點的子節點的機率之和為1,所以所有頂點的機率之和等於1的性質在層次softmax中仍然成立。現在一個元素的計算時間減少到 O(log|V|),因為二叉樹的最長路徑以 O(log(n))為界,其中 n是葉子的數量。
經過DeepWalk GNN的訓練,模型學習到每個節點的良好表示,如下圖所示。不同的顏色表示輸入圖中不同的標籤。我們可以看到,在輸出圖中(2維嵌入),具有相同標籤的節點聚集在一起,而具有不同標籤的大多數節點被正確地分離。
然而,DeepWalk的主要問題是它缺乏泛化的能力。每當一個新節點出現時,它都必須對模型進行重新訓練,才可以表示這個節點。因此,這種GNN不適用於圖中節點不斷變化的動態圖。
GraphSage
GraphSage提供了一個解決上述問題的解決方案,以 歸納的方式學習每個節點的嵌入。具體地說,每個節點由其鄰域的聚合表示。因此,即使在圖中出現了訓練過程中沒有出現過的新的節點,也可以用相鄰的節點來表示。下面是GraphSage的演算法。
外迴圈表示更新迭代次數, h^k_v表示更新迭代時節點 v的隱向量 k。在每次更新迭代中,根據一個聚集函式、前一次迭代中 v和 v鄰域的隱向量以及權矩陣 W^k對 h^k_v進行更新。本文提出了三個聚合函式:
1. Mean aggregator:
mean aggregator取一個節點及其所有鄰域的隱向量的平均值。
與原始方程相比,它刪除了上面虛擬碼第5行中的連線操作。這種操作可以看作是一種“跳躍連線”,本文稍後的部分證明了這種連線在很大程度上提高了模型的效能。
2. LSTM aggregator:
由於圖中的節點沒有任何順序,它們透過遍歷這些節點來隨機分配順序。
3. Pooling aggregator:
這個運算子在相鄰的集合上執行一個元素池化函式。下面是最大池化的例子:
可以用均值池化或任何其他對稱池化函式替換。池化聚合器效能最好,而均值池化聚合器和最大池化聚合器效能相近。本文使用max-pooling作為預設的聚合函式。
損失函式定義如下:
其中 u和 v共出現在固定長度的隨機遊動中, v_n是與 u不共出現的負樣本。這種損失函式鼓勵距離較近的節點進行類似的嵌入,而距離較遠的節點則在投影空間中進行分離。透過這種方法,節點將獲得越來越多的關於其鄰域的資訊。
GraphSage透過聚合其附近的節點,為不可見的節點生成可表示的嵌入。它允許將節點嵌入應用於涉及動態圖的領域,其中圖的結構是不斷變化的。例如,Pinterest採用GraphSage的擴充套件版本PinSage作為內容發現系統的核心。
總結
你學習了圖形神經網路、DeepWalk和GraphSage的基礎知識。GNN在複雜圖形結構建模方面的能力確實令人吃驚。鑑於其有效性,我相信在不久的將來,GNN將在人工智慧的發展中發揮重要的作用。
英文原文:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29829936/viewspace-2662485/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 神經網路圖的簡介(基本概念,DeepWalk以及GraphSage演算法)神經網路演算法
- 簡單的圖神經網路介紹神經網路
- 迴圈神經網路介紹神經網路
- 直白介紹卷積神經網路(CNN)卷積神經網路CNN
- 介紹一種有趣的競爭神經網路!神經網路
- MATLAB神經網路工具箱使用介紹Matlab神經網路
- 卷積神經網路(CNN)介紹與實踐卷積神經網路CNN
- RNN-迴圈神經網路和LSTM_01基礎RNN神經網路
- BSN-DDC基礎網路介紹&答疑
- MATLAB神經網路工具箱(簡單操作介紹)Matlab神經網路
- BSN-DDC基礎網路詳解(一):基礎介紹
- 卷積神經網路—基礎知識(1)卷積神經網路
- 【機器學習基礎】卷積神經網路(CNN)基礎機器學習卷積神經網路CNN
- 【機器學習基礎】神經網路/深度學習基礎機器學習神經網路深度學習
- 基於卷積神經網路的軸承故障診斷研究--資料集介紹卷積神經網路
- 圖神經網路GNN 庫,液體神經網路LNN/LFM神經網路GNN
- 圖神經網路入門神經網路
- 圖神經網路知識神經網路
- BP神經網路流程圖神經網路流程圖
- 網路表述學習經典論文——DeepWalk
- 深入解析圖神經網路:Graph Transformer的演算法基礎與工程實踐神經網路ORM演算法
- 基於圖神經網路的動態物化檢視管理神經網路
- 使用圖神經網路做基於會話的推薦神經網路會話
- 【深度學習基礎-07】神經網路演算法(Neural Network)上--BP神經網路基礎理論深度學習神經網路演算法
- Graph Neural Network——圖神經網路神經網路
- 基於神經網路的OCR識別神經網路
- CSDN周賽第44期:贏《圖神經網路:基礎、前沿與應用》和定製周邊神經網路
- DeepMind開源圖網路庫,一種結合圖和神經網路的新方法神經網路
- 深度學習基礎-基於Numpy的卷積神經網路(CNN)實現深度學習卷積神經網路CNN
- Python介紹和基礎運用Python
- TPAMI 2024 | 計算機視覺中基於圖神經網路和圖Transformers的方法和最新進展計算機視覺神經網路ORM
- 【深度學習基礎-08】神經網路演算法(Neural Network)上--BP神經網路例子計算說明深度學習神經網路演算法
- 【人工神經網路基礎】為什麼神經網路選擇了“深度”?神經網路
- 神經網路:numpy實現神經網路框架神經網路框架
- ActiveMq的基礎介紹MQ
- JDBC的基礎介紹JDBC
- Python繪製神經網路模型圖Python神經網路模型
- 深度學習與圖神經網路深度學習神經網路