圖神經網路,這到底是個什麼?

華為雲開發者社群發表於2021-03-01
摘要:圖神經網路是一種基於圖結構的深度學習方法。

1、什麼是圖神經網路

圖神經網路(Graph Neu做ral Networks, GNNs)是一種基於圖結構的深度學習方法,從其定義中可以看出圖神經網路主要由兩部分組成,即“圖”和“神經網路”。這裡的“圖”是圖論中的圖資料結構,“神經網路”是我們熟悉的深度學習NN結構,如MLP,CNN,RNN等。要了解圖神經網路我們需要先回顧一下“圖”和“神經網路”的基本概念。

1.1圖的定義

圖神經網路,這到底是個什麼?圖神經網路,這到底是個什麼?圖神經網路,這到底是個什麼?

1.2典型神經網路

典型的神經網路結構有兩條主線,一條主線是卷積神經網路,簡稱CNN,主要用於影像類資料的處理。另一條主線是迴圈神經網路,簡稱RNN,主要用於時序類資料的處理。由於神經網路結構的介紹不是本篇的重點,因此在這裡不做重點介紹。只展示如下兩圖典型的CNN和RNN的結構:

圖神經網路,這到底是個什麼?

下圖展示了當前的主流神經網路結構以及適用的場景:

圖神經網路,這到底是個什麼?

1.3圖神經網路

根據上述對圖和神經網路的回顧,我們可以看出,圖神經網路就是藉助神經網路的“能力”如深度特徵抽取等來處理圖結構的資料,因此對於圖神經網路,其直觀的結構應該如下圖:

圖神經網路,這到底是個什麼?

 

其中圖結構的資料有許多,如社交網路圖、交通路線圖、人物關係圖、分子結構圖、計算結網路拓撲圖等等。這些資料都可以作為圖神經網路的輸入。之後經過特定的神經網路結構,如MLP,CNN,RNN等的基於圖結構的運算,可以完成對於圖表示的分類,圖的節點或邊的預測等功能。

2、為什麼需要圖神經網路

近年來,深度學習已經徹底改變了許多機器學習任務,從影像分類和視訊處理,到語音識別和自然語言理解,這些任務中的資料通常表示在歐幾里得空間中。然而,在越來越多的應用程式中,資料是從非歐幾里得域生成的,並表示為具有複雜關係和物件之間相互依賴的圖形。圖資料的複雜性給現有的機器學習演算法帶來了巨大的挑戰。下圖左為影像(歐幾里得空間),右為圖(非歐幾里得空間)。

圖神經網路,這到底是個什麼?

傳統的神經網路結構如CNN、RNN等都是接受歐幾里得空間的資料作為輸入,他們無法處理非歐幾里得空間的資料結構,比如圖和流行結構。因此對於此類資料,圖神經網路就更加適合處理。近年來圖神經網路的研究熱度也不斷提升,如下圖所示:

圖神經網路,這到底是個什麼?

3、圖神經網路典型的應用場景

本章節基於圖神經網路近年來的一些研究進展,展示一下圖神經網路當前典型的應用場景以及一些典型的任務。

將圖結構和節點內容資訊作為模型的輸入,GNNs的輸出可以通過以下機制之一專注於不同的圖分析任務:

  • Node-level輸出用於點回歸和分類任務。
  • Edge-level輸出與邊分類和鏈路預測任務相關。
  • Graph-level輸出和圖分類任務相關,比如圖表示。

下面以典型論文為例介紹幾個GNNs的典型任務:

3.1圖分類

我們知道很多有機物或者化合物的分子結構都是可以用圖結構來表示的,比如下圖的4-nitroindole,該GNN的作用是訓練一個圖神經網路,接收一個分子結構來判斷該分子結構會不會導致發生突變。在訓練的過程中如果有現存的已標註的可導致發生突變的分子結構,我們就可以訓練該圖神經網路,然後用他來預測一個新的未知的分子會不會導致突變。

圖神經網路,這到底是個什麼?

3.2圖生成

我們知道在影像和語言的領域裡分別有embedding和generation技術,比如常見的影像和語言生成技術,比如動態靜態的預訓練和詞嵌入技術。相應的在圖領域,我們也有圖的嵌入表示比如graph embedding representation和圖的generation技術。比如下圖的graphvae,變分圖自編碼器就是一個圖生成模型,其主要是為圖中節點找尋合適的 Embedding 向量,並通過 Embedding 向量實現圖重構。其中獲取到的節點 Embedding 可以用於支撐下游任務。比如在新的分子結構生成發現中可以使用該技術來加快分子發現速度。

圖神經網路,這到底是個什麼?

3.3社交網路分析

在社交網路分析中,實體之間的關係往往會是非常重要的特徵,圖結構就能很好的表示這種關係特徵。如下圖的社交網路圖中,每個實體的關係可以用邊來描述,這樣在進行實體分類或者關係分類時,利用圖資料結構,完成特定任務的標註,就可以訓練出一個圖神經網路來完成此類任務。

圖神經網路,這到底是個什麼?

3.4網路拓撲分析

網路的拓撲天然就是圖結構的表示,計算機網路中的路由技術就是以圖輪為基礎的算路技術。同時網路中每兩個節點之間也會有時延,丟包,抖動等網路KPI資訊。這些點對之間的KPI往往是動態變化的,這就影響到了實時路由決策和優化的問題。比如當前鏈路的時延或者丟包過大,路由演算法就需要選擇新的路徑進行資料包傳遞。圖神經網路在這個問題中就可以接收底層的網路拓撲、網路配置資訊和流量矩陣資訊來實時預測每一個點對,每一條流的實驗丟包抖動,這樣就可以更好的配合路由和優化演算法,使能網路的自動駕駛。

圖神經網路,這到底是個什麼?

4、圖神經網路典型訓練框架

4.1Semi-supervised learning for node-level classification:

給定一個網路,其中部分節點被標記,其他節點未標記,ConvGNNs可以學習一個魯棒模型,有效地識別未標記節點的類標籤。為此,可以通過疊加一對圖卷積層,然後是用於多類分類的softmax層來構建端到端框架。見圖(a)

圖神經網路,這到底是個什麼?

4.2Supervised learning for graph-level classification:

圖級分類的目的是預測整個圖的類標籤。該任務的端到端學習可以結合圖卷積層、圖池層和/或readout層來實現。圖卷積層負責精確的高階節點表示,圖池層則扮演下采樣的角色,每次都將每個圖粗化成一個子結構。readout層將每個圖的節點表示摺疊成一個圖表示。通過在圖表示中應用一個多層感知器和一個softmax層,我們可以建立一個端到端圖分類框架。見圖(b)

圖神經網路,這到底是個什麼?

4.3Unsupervised learning for graph embedding:

當圖中沒有可用的類標籤時,我們可以學習在端到端框架中以完全無監督的方式嵌入圖。這些演算法以兩種方式利用邊緣級資訊。一種簡單的方法是採用自編碼器框架,編碼器使用圖卷積層將圖嵌入到潛在表示中,在潛在表示上使用解碼器重構圖結構。另一種常用的方法是利用負取樣方法(negative sampling),即對圖中有連結的部分節點對進行負取樣,而對圖中有連結的節點對進行正取樣。然後應用邏輯迴歸層對的正負配對進行區分。見圖(c)

圖神經網路,這到底是個什麼?

參考文獻

[1]. https://mp.weixin.qq.com/s/PSrgm7frsXIobSrlcoCWxw

[2]. http://speech.ee.ntu.edu.tw/~tlkagk/courses/ML2020/GNN.pdf

[3]. https://persagen.com/files/misc/scarselli2009graph.pdf

[4]. https://arxiv.org/pdf/1802.03480.pdf

[5]. https://arxiv.org/abs/1901.00596

[6]. https://arxiv.org/abs/1910.01508

本文分享自華為雲社群《2021年必火的圖神經網路到底是什麼?》,原文作者:就挺突然。

 

點選關注,第一時間瞭解華為雲新鮮技術~

相關文章