图神经网络(GNN)的简介「建议收藏」
近年來,圖神經網絡(GNN)在社交網絡、知識圖、推薦系統甚至生命科學等各個領域得到了越來越廣泛的應用。GNN在對圖節點之間依賴關系進行建模的強大功能,使得與圖分析相關的研究領域取得了突破。本文介紹了圖神經網絡的基本原理,以及兩種高級的算法,DeepWalk和GraphSage。
圖(Graph)
在討論GNN之前,我們先來了解一下什么是圖。在計算機科學中,圖是由頂點和邊兩部分組成的一種數據結構。圖G可以通過頂點集合V和它包含的邊E來進行描述。
根據頂點之間是否存在方向依賴關系,邊可以是有向的,也可以是無向的。
圖 1有向圖
頂點也稱為節點,在本文中,這兩個術語是可以互換。
圖神經網絡
圖神經網絡是一種直接作用于圖結構上的神經網絡。GNN的一個典型應用是節點分類,本質上,圖中的每個節點都與一個標簽相關聯,我們希望預測未標記節點的標簽。本文將介紹該論文中描述的算法,
在節點分類問題中,每個節點v都可以用其特征x_v表示并且與已標記的標簽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有三個主要局限:
1.如果放寬了“固定點”的假設,則可以利用多層感知器來學習更穩定的表示,并刪除迭代更新過程。 這是因為在原始方法中,不同的迭代使用轉移函數f的相同參數,而不同MLP層中的不同參數允許分層特征提取;
2.不能處理邊緣信息(例如知識圖譜中的不同邊可能表示節點之間的不同關系);
3. 固定點會限制節點分布的多樣化,因此可能不適合學習節點表示。
雖然現在已經提出了幾種GNN變體來解決上述問題。 但是他們不是論文的重點。
DeepWalk
DeepWalk是第一個以無監督學習的節點嵌入算法。它在訓練過程中類似于詞嵌入。它的目的是讓圖中的節點分布和語料庫中的單詞分布都遵循冪律,如下圖所示:
算法包括兩個步驟:
1. 在圖中的節點上執行隨機游走生成節點序列;
2. 運行skip-gram,根據步驟1中生成的節點序列學習每個節點的嵌入;
在隨機游走過程中,下一個節點是從前一節點的鄰居統一采樣。然后將每個序列截短為長度為2 | w |+1的子序列,其中w表示skip-gram中的窗口大小。如果您不熟悉skip-gram,我之前的博客文章已經向您介紹它的工作原理。
在論文中,分層softmax用于解決由于節點數量龐大而導致的softmax計算成本過高的問題。為了計算每個單獨輸出元素的softmax值,我們必須為所有元素k計算ek。
圖 2 softmax的定義
因此,原始softmax的計算時間是 O(|V|) ,其中其中V表示圖中的頂點集。
多層的softmax利用二叉樹來解決softmax計算成本問題。 在二叉樹中,所有葉子節點(上面所說的圖中的v1,v2,… v8)都是圖中的頂點。 在每個內部節點中(除了葉子節點以外的節點,也就是分枝結點),都通過一個二元分類器來決定路徑的選取。 為了計算某個頂點v_k的概率,可以簡單地計算沿著從根節點到葉子節點v_k的路徑中的每個子路徑的概率。 由于每個節點的孩子節點的概率和為1,因此在多層softmax中,所有頂點的概率之和等于1的特性仍然能夠保持。如果n是葉子的數量,二叉樹的最長路徑由O(log(n))限定,因此,元素的計算時間復雜度將減少到O(log | V |)。
圖 3多層softmax
在訓練DeepWalk GNN之后,模型已經學習到了每個節點的表示,如下圖所示。不同的顏色在輸入圖中(圖a)表示不同標簽。 我們可以看到,在輸出圖中,具有相同標簽的節點聚集在一起,而具有不同標簽的大多數節點被正確分開。
然而,DeepWalk的主要問題是它缺乏泛化能力。每當有新節點加入到圖中時,它必須重新訓練模型以正確表示該節點。因此,這種GNN不適用于圖中節點不斷變化的動態圖。
GraphSage
GraphSage提供了解決上述問題的方案,它以歸納方式學習每個節點的嵌入。具體來講,它將每個節點用其鄰域的聚合重新表示。因此,即使在訓練期間未出現的新節點,也仍然可以由其相鄰節點正確地表示。下圖展示了GraphSage的算法過程:
外層for循環表示更新迭代次數,而 h^k_v 表示節點v在迭代第 k次時的本征向量。在每次迭代時,將通過聚合函數,前一次迭代中v和v領域的本征向量以及權重矩陣W^k來更新h^k_v。這篇論文提出了三種聚合函數:
1.均值聚合器:
均值聚合器取一個節點及其鄰域的本征向量的平均值。
與原始方程相比,它刪除了上述偽代碼中第5行的連接操作。這種操作可以被視為”skip-connection” (“跳連接”),這篇論文后面將證明其可以在很大程度上提高模型的性能。
2. LSTM聚合器:
由于圖中的節點沒有任何順序,因此他們通過互換這些節點來隨機分配順序。
3.池聚合器:
此運算符在相鄰頂點集上執行逐元素池化函數。下面顯示了最大池的例子:
可以用平均池或任何其他對稱池函數替換這種最大池函數。盡管均值池和最大池聚合器性能相似,但是池聚合器(也就是說采用最大池函數)被實驗證明有最佳的性能。 論文使用max-pooling作為默認聚合函數。損失函數定義如下:
其中u 和v 共同出現在一定長度的隨機游走中,而 v_n 是不與u共同出現的負樣本。這種損失函數鼓動節點在投影空間中更靠近嵌入距離更近的節點,而與那些相距很遠的節點分離。通過這種方法,節點將獲得越來越多其鄰域的信息。
GraphSage通過聚合其附近的節點,可以為看不見的節點生成可表示的嵌入位置。它讓節點嵌入的方式可以被應用于涉及動態圖的研究領域,這類動態圖的圖的結構是可以不斷變化的。例如,Pinterest采用了GraphSage的擴展版本PinSage作為他們的內容探索系統的核心。
總結
以上是生活随笔為你收集整理的图神经网络(GNN)的简介「建议收藏」的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2011年2月--2011年7月数据库性
- 下一篇: tcp/ip网络通讯安全加密方法[通俗易