GNNExplainer: Generating Explanations for Graph Neural Networks 個人總結

GNNExplainer: Generating Explanations for Graph Neural Networks 個人總結

寫在前面:爲方便閱讀,儘量使用中文總結,對於翻譯無把握或專有詞彙,在中文後附上原文字段。此外,水平有限,對文章理解有偏差部分懇請大家海涵, 指正。

0. 原作信息

@inproceedings{ying2019gnnexplainer,
  title={Gnnexplainer: Generating explanations for graph neural networks},
  author={Ying, Zhitao and Bourgeois, Dylan and You, Jiaxuan and Zitnik, Marinka and Leskovec, Jure},
  booktitle={Advances in Neural Information Processing Systems},
  pages={9240--9251},
  year={2019}
}

1. Contribution 本文貢獻

  • 提出第一款通用,模型無關的(model-agnostic)對於GNN模型的解釋器GNNEXPLAINER

  • 形式化描述GNNEXPLAINER爲最大化互信息的優化任務

  • 抽取重要的子圖結構及節點特徵子集,作爲模型解釋。

gnnexplainer

2. Background 背景信息

對於非圖結構的神經網絡,解釋方法主要有如下兩個方向:

  1. 爲整個網絡構建簡單的代替模型

常爲模型無關的(model-agnostic),在待解釋樣本點的局部建立可信的估計。

E.g., 線性模型如LIME,規則集合如ANN_DT

  1. 識別模型計算過程中的重要層面

E.g. 關注特徵梯度(feature gradients)等。

對於圖神經網絡設計解釋方法,除去節點特徵外,還需要結合考慮圖的結構特徵

3. Problem Formulation 問題定義

3.1 GNN回顧

抽象GNN基本操作如下:

給定GNN模型 Φ\Phi , 對於 ll 層節點vv的特徵表達求取,共經過如下3步。

  1. 與其鄰居節點進行信息傳遞:

    mijl=MSG(hil1,hjl1,rij)m_{i j}^{l}=\operatorname{MSG}\left(\mathbf{h}_{i}^{l-1}, \mathbf{h}_{j}^{l-1}, r_{i j}\right)

  2. 聚合鄰居節點信息:

    Mil=AGG({mijlvjNvi})M_{i}^{l}=\operatorname{AGG}\left(\left\{m_{i j}^{l} | v_{j} \in \mathcal{N}_{v_{i}}\right\}\right)

  3. 結合自身節點上層表達,生成本層節點表達

    hil=UPDATE(Mil,hil1)\mathbf{h}_{i}^{l}=\operatorname{UPDATE}\left(M_{i}^{l}, \mathbf{h}_{i}^{l-1}\right)

3.2 GNNEXPLAINER: Problem formulation

對於節點vv,其經過圖神經網絡後得到的embedding,由其對應的鄰居節點及特徵決定,分別計鄰居組成的子圖結構爲Gc(v)G_{c}(v),特徵集合爲Xc(v)X_{c}(v)

則節點的預測輸出爲

y^=Φ(Gc(v),Xc(v))\hat{y}=\Phi\left(G_{c}(v), X_{c}(v)\right)

解釋器GNNEXPLAINER目標,即是提取出具備解釋性的子圖、特徵子集(GS,XSF)\left(G_{S}, X_{S}^{F}\right)

具象化表示爲下圖:

gnnexplainer

4. GNNEXPLAINER

一系列公式推導,說明如何提取子圖、子特徵。

4.1 單一樣本的解釋 Single-instance explanations

設節點vv的子圖爲GSG_S,有GSGcG_{S} \subseteq G_{c},對應的有特徵子集XS={xjvjGS}X_S=\left\{x_{j} | v_{j} \in G_{S}\right\}

我們想選取解釋性的子圖,則通過最大化互信息實現:

  • maxGSMI(Y,(GS,XS))=H(Y)H(YG=GS,X=XS)\max _{G_{S}} M I\left(Y,\left(G_{S}, X_{S}\right)\right)=H(Y)-H\left(Y | G=G_{S}, X=X_{S}\right)

對於上式,由於GNN模型已經確定,故H(Y)H(Y)是常數。

展開第二項條件熵,H(YG=GS,X=XS)=EYGS,XS[logPΦ(YG=GS,X=XS)]H\left(Y | G=G_{S}, X=X_{S}\right)=-\mathbb{E}_{Y | G_{S}, X_{S}}\left[\log P_{\Phi}\left(Y | G=G_{S}, X=X_{S}\right)\right],爲了求解一個緊緻解,我們約束GSKM\left|G_{S}\right| \leq K_{M},可以理解爲降噪,濾去無效鄰居。

因而,我們得到:

  • minGEGSGH(YG=GS,X=XS)\min _{\mathcal{G}} \mathbb{E}_{G_{S} \sim \mathcal{G}} H\left(Y | G=G_{S}, X=X_{S}\right)

基於Jensen不等式,假設爲凸函數,我們能得到上界:

  • minGH(YG=EG[GS],X=XS)\min _{\mathcal{G}} H\left(Y | G=\mathbb{E}_{\mathcal{G}}\left[G_{S}\right], X=X_{S}\right)

有意思的地方來了,作者大意是:效果很好,原理就別糾結了直接用就是。

顯然,GNN是不滿足凸函數假設的,但工作中發現基於上述目標函數,結合正則項,對於所學的局部最優解已經有較好的解釋能力。

對於期望 EG[GS]\mathbb{E}_{\mathcal{G}}\left[G_{S}\right],通過一個掩碼來實現,Acσ(M),A_{c} \odot \sigma(M), where MRn×nM \in \mathbb{R}^{n \times n}。即,實際解釋器要學習的,即是掩碼M

進一步,一般我們希望瞭解“此樣本爲何被預測爲某一個類別”,而不是對全局模型的理解。故進一步修改目標函數爲:

  • minMc=1C1[y=c]logPΦ(Y=yG=Acσ(M),X=Xc)\min _{M}-\sum_{c=1}^{C} \mathbb{1}[y=c] \log P_{\Phi}\left(Y=y | G=A_{c} \odot \sigma(M), X=X_{c}\right)

4.2 節點特徵選擇 Node feature information

同理,也使用掩碼實現。

XSF={xjFvjGS},xjF=[xj,t1,,xj,tk]X_{S}^{F}=\left\{x_{j}^{F} | v_{j} \in G_{S}\right\}, \quad x_{j}^{F}=\left[x_{j, t_{1}}, \ldots, x_{j, t_{k}}\right] for Fti=1F_{t_{i}}=1

綜上,對於整個解釋器,要優化的目標函數即是:

maxGS,FMI(Y,(GS,F))=H(Y)H(YG=GS,X=XSF)\max _{G_{S}, F} M I\left(Y,\left(G_{S}, F\right)\right)=H(Y)-H\left(Y | G=G_{S}, X=X_{S}^{F}\right)

此外,paper中提到使用reparametrization的trick來學習參數掩碼。

除卻上述目標函數外,解釋器還加入若干正則項限制,如

  • element-wise entropy,鼓勵掩碼離散
  • 懲罰過多非零項的掩碼

4.3 樣本子集的解釋 Multi-instance explanations through graph prototypes

未完全看懂。

除了對於單個樣本的解釋,GNNEXPLAINER也能對樣本子集進行解釋,如給出某類樣本的解釋。

實現思路,個人理解爲“想辦法將問題轉化爲單樣本的解釋。故需要設計算法實現代表節點的創建及響應的鄰接矩陣生成”。

基本步驟有2:

  1. 選擇參考節點(可通過對節點子集embeddings求平均實現)
  2. 創建對應的鄰接矩陣

5. Experiments 實驗

實驗設計、呈現都很巧妙,值得分析學習。

5.1 數據集

  1. 人工合成數據集
    gnnexplainer

  2. 現實數據集

    1. MUTAG,化學分子數據集
    2. REDDIT-BINARY,論壇討論數據集。用戶爲節點,用戶間評論爲邊。

5.2 Baselines

做一個遷移當baselines。

  • GRAD,基於梯度。
  • ATT,使用GAT中的注意力權重。

5.3 Results 結果

  • 定量
    -gnnexplainer

  • 定性

    • gnnexplainer

    • gnnexplainer

    • gnnexplainer

-1. One More Thing

個人思考:

對於單樣本的輸出解釋,若是做一個模型無關的解釋器,如下兩個步驟的設計是關鍵:

  1. 採樣。

    對於GNN這樣基於消息傳遞的模型,每個節點的輸出肯定受其鄰居節點的影響。如何有效採樣,構建子圖,值得考量。

  2. 目標函數設計。

    如何設計一個目標函數?本篇工作使用最大化互信息,還可以設計別的嗎,如何優化?

擴展閱讀:

  • LIME
  • GraphLIME

參考資料:

略去了文章中關於平均場部分,相關數據知識補充在此:

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章