前言

本文是一篇稍有深度的教程,假設讀者具備圖神經網絡的基礎知識和一點計算化學的知識。如果你想爲本文做好準備,我在下面列出了一些有用的文章。

譯註:計算化學(computational chemistry),是理論化學的一個分支,主要目的是利用有效的數學近似以及電腦進程計算分子的性質,例如總能量、偶極矩、四極矩、振動頻率、反應活性等,並用以解釋一些具體的化學問題。計算化學這個名詞有時也用來表示計算機科學與化學的交叉學科。

本文最初發表於 TowardsDataScience 博客,經原作者 Kacper Kubara 授權,InfoQ 中文站翻譯並分享。

什麼是圖神經網絡

圖 1:圖像卷積與圖卷積。( 來源

卷積神經網絡(Convolutional Neural Network,CNN)和圖神經網絡(Graph Neural Network,GNN)的主要區別是什麼?

簡單來說,就是 輸入數據

你可能還記得,CNN 所需的輸入是一個固定大小的向量或矩陣。然而,某些類型的數據自然是用圖表示的,如分子、引用網絡或社交媒體連接網絡都可以用圖數據來表示。在過去 GNN 還沒有普及的時候,圖數據往往需要經過這樣的轉換,纔可以直接提供給 CNN 作爲輸入。例如,分子結構仍被轉換爲固定大小的指紋,每個位表示是否存在某種分子子結構 [1] 。這是一種將分子數據插入 CNN 的好方法,但它會不會導致信息損失呢?

圖 2:通過從 NH 原子對獲取不同的分子子結構,將分子映射到位指紋,所述分子子結構由不同的半徑範圍 (h=0,h=1,…) 定義。( 來源

GNN 利用圖數據,省去了數據預處理步驟,充分利用了數據中包含的信息。現在,有許多不同的 GNN 架構,其背後的理論也很快變得複雜起來。然而,GNN 可以分爲兩類:空間方法(Spatial approach)和譜方法(Spectral approach)。空間方法更爲直觀,因爲它將池化和卷積操作(如 CNN)重新定義到圖域。譜方法從一個稍有不同的角度來處理這個問題,因爲它側重於處理被定義爲使用傅里葉變換(Fourier transform)的圖網絡的信號。

如果你想了解更多信息,可以閱讀 Thomas Kipf 寫的 博文 ,這篇博文深入介紹了 GCN。另一篇值得閱讀的有趣論文是《 MoleculeNet:分子機器學習的基準 》[2] ,它很好地介紹了 GNN,並描述了流行的 GNN 架構。

當前 GNN 可解釋性問題

在撰寫本文時,對 GNN 解釋方法有貢獻的論文屈指可數。儘管如此,這仍然是一個非常重要的主題,最近變得越來越流行。

GNN 的流行要比標準神經網絡晚得多。雖然這一領域有很多有趣的研究,但還不是很成熟。GNN 的庫和工具目前仍然處於“實驗階段”,我們現在真正需要的是,讓更多的人使用它來發現 Bug 和錯誤,並轉向生產就緒的模型。

創建生產就緒的模型的一種方法是更好地理解它們所做的預測。可以使用不同的解釋方法來完成。我們已經看到了許多應用於 CNN 的有趣的可解釋性方法,例如梯度歸因(Gradient attribution)、顯著性映射(Saliency maps)或類激活映射(Class activation mapping)等。那麼,爲什麼不將它們重新用於 GNN 呢?

圖 3:神經網絡和其他機器學習模型常用的解釋方法及其特性。( 來源

事實上,這就是目前正在發生的事情。最初用於 CNN 的解釋性方法正在重新設計並應用於 GNN。雖然無需重新發明輪子,但我們仍然必須通過重新定義數學操作來調整這些方法,使它們適用於圖數據。這裏的主要問題是,關於這一主題的研究還相當新,第一篇論文發表於 2019 年。然而,隨着時間的推移,它將會變得越來越流行,目前幾乎還沒有什麼有趣的可解釋性方法可用於 GNN 模型。

在本文中,我們將研究新的圖解釋方法,並瞭解如何將它們應用於 GNN 模型。

第一次嘗試:可視化節點激活

圖 4: 左圖 :Duvenaud 等人提出的三層疊加神經網絡指紋模型的計算圖可視化。此處,節點表示原子,邊表示原子鍵。 右圖 :更詳細的圖,包括每個操作中使用的鍵信息。( 來源

2015 年,Duvenaud 等人 [3] 發表了關於 GNN 解釋技術的開創性論文。該論文主要貢獻是提出了一種新的 神經圖指紋模型 ,同時也爲這種結構創造了一種解釋方法。該模型背後的主要思想是直接從圖數據本身創建可區分的指紋。爲實現這一點,作者不得不重新定義圖的池化和平滑操作。這些操作然後被用來創建一個單層。

如圖 4 所示,這些層疊加 n 次以產生向量輸出。層深度也與相鄰節點的半徑相對應,從這些節點收集和彙集節點特徵(在本例中爲和函數)。這是因爲,對於每一層,池化操作都從鄰近節點收集信息,如圖 1 所示。對於更深的層,池化操作的傳播會延伸到更遠的鄰近節點。與正常的指紋相反,這種方法是可區分的,這使得反向傳播可以以類似 CNN 的方式更新其權值。

除了 GNN 模型之外,他們還創建了一個簡單的方法,可以顯示節點激活及其鄰近的節點。遺憾的是,這種方法在論文中沒有很好地解釋,因此有必要查看它們的 代碼實現 以理解其底層機制。然而,他們在分子數據上運行它來預測溶解度,它突出了部分對溶解度預測有交稿預測能力的分子。

圖 5:論文作者在溶解度數據集上測試了他們的模型,以突出部分影響溶解度的分子。通過他們的解釋方法,他們能夠確定使分子更容易溶解的分子子結構(如 R-OH 基團)和那些使其不易溶解的分子子結構(如非極性重複環結構)。( 來源

到底是怎麼工作的呢?爲計算節點激活量,我們需要進行以下計算。對於每個分子,讓我們通過每一層向前傳遞數據,類似於在一個典型 CNN 網絡中對圖像的處理。然後,我們用 softmax() 函數提取每個指紋位各層的貢獻。然後,我們就能夠將一個節點(原子)與它周圍對特定指紋位貢獻最大的鄰居(取決於層深)關聯起來。

這種方法相對簡單,但沒有留下很好的文檔記錄。但該論文所做的初步工作是相當有前途的,研究人員隨後進行了更爲詳細的嘗試,將 CNN 的解釋方法轉化爲圖域。

如果你想進一步瞭解它,可以參閱他們的 論文代碼倉庫 或我在這個 Github 問題 底部對方法的詳細解釋。

卷積神經網絡的重用方法

敏感度分析 (Sensitive Analysis)、 類激活映射激發反向傳播 (Excitation Backpropagation)都是已經成功應用於 CNN 的解釋技術的示例。目前針對可解釋 GNN 的研究試圖將這種方法轉換成圖域。這一領域的大部分工作都是在這些論文 [4][5] 中完成的。

本文不再着重於這些方法的數學解釋,我將爲你提供這些方法的直觀解釋,並簡要討論這些方法的結果。

歸納 CNN 的解釋方法

爲了重用 CNN 的解釋方法,讓我們將 CNN 輸入的數據(即圖像)視爲一個格子形狀的圖。圖 6 說明了這個想法。

圖 6:圖像可以概括爲格子形狀的圖。紅十字架只顯示了圖像的一小部分,可以表示爲一個圖。每個像素可以被認爲是節點 V ,節點 V 具有 3 個特徵(RGB 值),並且連接到具有邊 E 的相鄰像素。

如果我們牢記圖像的圖推廣,我們可以說 CNN 解釋方法不怎麼關注邊緣(像素之間的連接),而是關注節點(像素值)。這裏的問題是,圖數據中的邊緣包含了很多有用的信息 [4][5] ,而不是以網格狀的順序。

哪些方法已經轉換爲圖域?

到目前爲止,文獻已經討論過以下解釋方法:

  • 敏感度分析(Sensitivity Analysis)[4]
  • 引導反向傳播 (Guided Backpropagation)[4]
  • 層次相關傳播 (Layer-wise Relevance Propagation)[4]
  • 基於梯度的熱圖 (Gradient-based heatmaps)[5]
  • 類激活映射(Class Activation Maps)[5]
  • 梯度加權類激活映射(Gradient-weighted Class Activation Mapping (Grad-CAM))[5]
  • 激發反向傳播 (Excitation Backpropagation)[5]

請注意,其中兩篇論文 [4][5] 的作者並未提供這些方法的開源實現,因此目前尚無法使用它們。

模型無關方法:GNNExplainer

本文的代碼倉庫可以在 這裏 找到。

不用擔心,實際上有一個 GNN 解釋工具可以供你使用!

GNNExplainer 是一種模型無關的開源 GNN 解釋方法。它也是一個相當通用的,因爲它可以應用於節點分類、圖分類和邊預測。這是創建圖特定解釋方法的首次嘗試,由斯坦福大學的研究人員提出 [6] 。

它是如何工作的?

作者聲稱,重用之前應用於 CNN 的解釋方法是一種糟糕的方法,因爲它們未能納入關係信息,而關係信息是圖數據的本質。此外,基於梯度的方法對於離散輸入並不是特別有效,而 GNN 通常就是這種情況(例如, 鄰接矩陣 是二進制矩陣)。

爲了克服這些問題,他們創建了一種與模型無關的方法,該方法可以找到輸入數據的子圖,這些子圖以最重要的方式影響 GNN 的預測。說得更具體一些,子圖的選擇是爲了最大化與模型預測的互信息(Mutual information)。下圖顯示了 GNNExplainer 如何處理由體育活動組成的圖數據的一個示例。

圖 7:圖數據說明了不同的體育活動。目的是解釋下一個體育活動中心節點的預測。對於紅色圖形,Vi 被預測爲籃球。GNNExplainer 能夠選擇一個子圖,該子圖可以通過預測使互信息最大化。在這種情況下,它從圖中提取了一個有用的信息:當某人過去玩球類運動時,選擇籃球作爲下一項體育活動的可能性很高。( 來源

作者提出的一個非常重要的假設是 GNN 模型的公式。模型的架構或多或少是任意的,但它需要實現 3 個關鍵計算:

  • 相鄰節點間的神經信息計算。
  • 來自節點鄰域的消息聚合。
  • 聚合消息的非線性變換及節點表示。

這些所需的計算在某種程度上是有限制的,但大多數現代 GNN 架構無論如何,都是基於消息傳遞架構的。[6]

論文給出了 GNNExplainer 的數學定義和優化框架的描述。然而,我會省去一些細節,向你展示一些可以通過 GNNExplainer 獲得的有趣結果。

GNNExplainer 在實踐中的應用

爲比較結果,他們使用了 3 種不同的解釋方法: GNNExplainer基於梯度的方法 (Gradient-based method,GRAD)和 圖注意力模型 (Graph attention model,GAT)。在本文前面部分提到了 GRAD,但 GAT 模型需要一些解釋。這是另一個 GNN 架構,它學習邊的注意力權重,這將幫助我們確定圖網絡中哪些邊對節點分類實際上很重要。這可以作爲另一種解釋技術使用,但它只適用於這個特定的模型,而且它不解釋節點特性,這與 GNNExplainer 相反。

首先讓我們看一下應用於合成數據集的解釋方法的性能。圖 8 顯示了在兩個不同的數據集上運行的實驗。

BA-Shapes 數據集基於 Barabasi-Albert (BA) 圖,它是一種圖網絡,我們可以通過改變它的一些參數來自由調整大小。在這個基礎圖上,我們將附加一些小的房屋結構圖(motifs),這些圖在圖 8 中顯示爲真相(Ground Truth)。此房屋結構的節點有 3 個不同的標籤:頂部、中部和底部。這些節點標籤只是表示節點在房子中的位置。因此,對於一個類房屋的節點,我們有 1 個頂部節點、2 箇中部節點和 2 個底部節點。還有一個額外的標籤,表示該節點不屬於類房屋圖結構。總體而言,我們有 4 個標籤和一個 BA 圖,其中包含 300 個節點和 80 個類房屋結構,這些結構被添加到 BA 圖的隨機節點中。我們還通過添加 0.1N 個隨機邊來增加一些隨機性。

BA-Community是兩個 BA-Shapes 數據集的聯合,因此總共有 8 個不同的標籤(每個 BA-Shapes 數據集有 4 個標籤)和兩倍的節點。

讓我們來看一看結果。

圖 8:目的是爲紅色節點的預測提供解釋。解釋方法的設置是爲了找到一個 5 節點的子圖,該子圖可以最準確地解釋結果(標記爲綠色)。( 來源

結果似乎很有希望。GNNExplainer 似乎以最準確的方式解釋了結果,因爲所選擇的子圖與真相相同。Grad 和 Att 方法未能提供類似的解釋。

如圖 9 所示,該實驗也是在真實數據集上進行的。這一次的任務是對整個圖網絡進行分類,而不是對單個節點進行分類。

Mutag是一個由分子組成的數據集,這些分子是根據對某類細菌的誘變效應進行分類的。數據集有很多不同的標籤,它包含 4337 個分子圖。

Reddit-Binary是一個代表 Reddit 中在線討論主題的數據集。在這個圖網絡中,用戶用節點表示,邊表示對另一個用戶評論的響應。根據用戶交互的類型,有兩種可能的標籤,它可以是問答互動,也可以是在線討論互動。總的來說,它包含 2000 個圖。

圖 9:GNNExplainer 運行圖分類任務。對於 Mutag 數據集,顏色表示節點特徵(原子)。對於 Reddit-Binary,任務是對圖是否爲在線討論進行分類。( 來源

對於 Mutag 數據集,GNNExplainer 正確識別已知具有致突變性的化學基團(如 NO2、NH2)。GNNExplainer 還解釋了歸類爲 Reddit-Binary 數據集在線討論分類圖。這種類型的交互通常可以用樹狀的模式表示(查看真相)。

參考文獻

作者介紹:

Kacper Kubara,南安普頓大學(University of Southampton)即將畢業的學生,電子工程專業,同時也是 IT 創新中心的研究助理。在業餘時間喜歡擺弄數據或調試深度學習模型。喜歡徒步旅行。

原文鏈接:

https://towardsdatascience.com/towards-explainable-graph-neural-networks-45f5e3912dd0

相關文章