【論文解讀 AAAI 2020 | HetSANN】An Attention-based GNN for Heterogeneous Structural Learning

論文題目:An Attention-based Graph Neural Network for Heterogeneous Structural Learning

論文來源:AAAI 2020

論文鏈接:https://arxiv.org/abs/1912.10832

代碼鏈接:https://github.com/didi/hetsann

關鍵詞:HIN,表示學習,attention,不使用元路徑



1 摘要

本文解決的是HIN的表示學習問題。

現有的方法大多通過元路徑將異質圖轉化爲同質圖再進行處理。本文提出HetSANN模型(Heterogeneous Graph Structural Attention Neural Network),在不使用元路徑的前提下直接編碼HIN中的結構信息。

作者使用以下兩種方式表示異質信息

(1)將不同類型節點映射到多個低維的實體空間中

(2)然後使用GNN注意力機制聚合投影后鄰居節點間的各種關係信息。


作者還提出了HetSANN的三個擴展

(1)用於HIN中成對關係的voices-sharing product attention

(2)捕獲異質實體空間轉換關係的循環一致性損失(cycle-consistency loss);

(3)多任務學習,以充分利用信息。


2 引言

HIN和同質圖相比面臨的挑戰

(1)如何對不同類型的節點建模?

同質圖中所有節點都被嵌入到同一個實體空間中,HIN中節點類型多樣,不同類型的節點應該被映射到不同的空間中。而且一個節點可能和多種類型的節點相連,要設計一種方式使得在不同實體空間的節點能進行交互。

(2)如何保留不同關係的語義信息?

HIN中不同節點對或同一節點對間都有可能有多種關係。這些多樣的關係中包含着多樣的語義信息。


大多數HIN嵌入學習的方法都是使用元路徑,將HIN轉化爲同質圖然後再進行處理的,如圖1b所示。例如metapath2vec、HAN。

使用元路徑的方法的缺點

(1)元路徑需要人工定義,很難手動枚舉出所有的元路徑並選擇出有價值的

(2)使用元路徑將HIN轉換爲同質圖,在進行信息傳遞時會損失信息


作者提出

不使用元路徑,提出HetSANN模型,同時保留了HIN中的結構信息語義信息。並使用GNN處理HIN中的結構信息,使用任務導向的目標函數訓練模型(本文是節點分類損失)。

爲了解決上述問題,設計了類型感知的注意力層(Type-aware Attention Layer)替換傳統GNN中的卷積層。

(1)針對C1:對於每個類型感知的注意力層,爲異質節點間的交互定義了一個轉換操作,將節點從不同的實體空間映射到同一個低維的目標空間。

(2)針對C2:使用注意力機制,將包含不同語義信息的不同類型的邊用於鄰居節點的聚合過程中。還爲類型感知的注意力層設計了2種注意力打分函數:concat product、voices-sharing product。

voice包含active voice和passive voice。這裏將active voice看成有向邊(eg. cite, write),將passive voice看成反向邊(eg. cited, written)。

最後將本文模型用於了多任務學習,有利於生成有魯棒性的表示


貢獻

(1)提出HetSANN模型,不使用元路徑,直接利用異質圖中的結構信息,以生成富含信息的表示;

(2)提出HetSANN的3個擴展:

  • 通過多任務學習提高信息共享的能力
  • 考慮有向邊和反向邊之間的兩兩關係(voices-sharing product)
  • 對轉換操作引入限制以保持循環一致性(cycle consistent)

3 HetSANN

異質圖定義爲G=(V,E)\mathcal{G}=(\mathcal{V}, \mathcal{E}),節點類型集合爲A\mathcal{A},邊類型集合爲R\mathcal{R}。從節點ii到節點jj的邊用三元組e=(i,j,r)e=(i,j,r)表示,反向邊表示爲e~=(i,j,r~)\tilde{e}=(i,j,\tilde{r})。與節點jj相連的邊集合定義爲Ej={(i,j,r)EiV,rR}\mathcal{E}_j={\{(i,j,r)\in \mathcal{E}|i\in \mathcal{V}, r\in \mathcal{R}}\}

本文的目的是爲類型爲ϕ(i)\phi(i)的節點生成低維表示hiRnϕ(i)\mathbf{h}_i\in \mathbb{R}^{n_{\phi(i)}}

本文提出的任務導向的圖嵌入方法HetSANN可以處理節點之間有多種關係的情況。模型的整體結構如圖2所示,其中類型感知的注意力層(TAL)是模型的核心。


3.1 類型感知的注意力層(TAL)

在進行嵌入學習之前,先在每個節點上添加自環(self-loop relation)。並令hi(0)Rnϕ(i)0\mathbf{h}^{(0)}_i\in \mathbb{R}^{n^{0}_{\phi(i)}},這個冷啓動狀態可以是節點的屬性特徵,對於沒有屬性的節點可以使用假特徵(零向量或one-hot向量)。

TAL如圖3所示。每個TAL都採用了多頭注意力機制,可以穩定訓練過程,增加建模能力。

例如,節點jj在第ll層的表示hj(l)\mathbf{h}^{(l)}_j,attention head mm在第(l+1)(l+1)層TAL的輸出hj(l1,m)\mathbf{h}^{(l_1, m)}_j分兩步計算得到:(1)轉換操作;(2)聚合節點jj的入度鄰居。

(1)轉換操作(C1)

對節點jj的每個鄰居ii進行線性轉換:

其中,h^ϕ(j),i(l+1,m)Rnϕ(j)(l+1,m)\hat{\mathbf{h}}^{(l+1, m)}_{\phi(j), i}\in \mathbb{R}^{n^{(l+1, m)}_{\phi(j)}}是從上一層的ϕ(i)\phi(i)類型的空間 到 (l+1)(l+1)層的m-th head中的ϕ(j)\phi(j)類型的隱層空間的映射。

(2)鄰居的聚合(C2)

爲了保留節點間不同類型關係中的語義信息,對不同類型的關係使用對應的R|\mathcal{R}|個注意力打分函數:F(l+1,m)={fr(l+1,m)rR}\mathcal{F}^{(l+1, m)}={\{f^{(l+1, m)}_r | r\in \mathcal{R}}\}。對於節點jj,爲每個邊e=(i,j,r)Eje=(i,j,r)\in \mathcal{E}_j計算的注意力係數如下:

注意力係數oeo_e反映了邊ee對節點jj的重要性程度。爲所有類型的邊使用相同形式的注意力機制,但是參數不同。

常見的注意力打分函數是concat product的形式,GAT中採用的就是這種,定義如下:

其中,ar(l+1,m)R2nϕ(j)(l+1,m)\mathbf{a}^{(l+1, m)}_r \in \mathbb{R}^{2n^{(l+1, m)}_{\phi(j)}}是可訓練的注意力係數,這一參數在類型爲rr的邊中共享。

本文並沒有采用元路徑,而是直接對異質的邊使用注意力機制。注意力係數歸一化如下:


經過以上兩步操作,就有了和節點jj的表示在同一空間中的鄰居節點的隱層表示,以及和jj向量的邊的權重。可以進行jj的鄰居聚合了:

注意,同時使用了邊對應的節點對以及邊的類型來識別不同的邊。若ii連向jj的邊有多種類型,則jj的隱狀態h^ϕ(j),i(l+1,m)\hat{\mathbf{h}}^{(l+1, m)}_{\phi(j), i}就要和對應的權重αi,j,r(l+1,m)\alpha^{(l+1, m)}_{i,j,r}多次相乘。

對(5)式使用MM頭注意力,拼接起來作爲輸出hj(l+1)Rm=1Mnϕ(j)(l+1,m)\mathbf{h}^{(l+1)}_j\in \mathbb{R}^{\sum^M_{m=1}n^{(l+1, m)}_{\phi(j)}}

注意,HetSANN的聚合是基於所有連邊的,而不是基於元路徑生成的連邊的。也就是說,基於元路徑的話使用一層GNN就可以將ii聚合到jj,基於所有連邊的話(raw links)需要更多層纔可以。因此,HetSANN可以捕獲到高階的相似度信息。爲了更好地訓練,採用了殘差連接的機制,將(6)式重寫爲如下的形式:


3.2 模型的訓練以及3個擴展

TAL層輸出了低維的節點表示(hj=hj(L)\mathbf{h}_j=\mathbf{h}^{(L)}_j),爲了面向具體任務(本文是節點分類任務)優化表示,使用一層全連接層和softmax構成節點分類器,最小化交叉熵損失,對節點進行分類:

(1)E1:多任務學習

使用多個分類器,TAL層的參數共享於多個分類器。多任務學習可以整合所有的分類器,最大程度減小過擬合的風險,有助於學習到更有魯棒性的表示。

(2)E2:Voices-sharing Product

contact product打分函數將有向邊(write)和反向邊(written)看作兩種類型的關係,且這兩種類型的關係是相互獨立的。

爲了形式化有向邊和反向邊之間成對的關係,作者使rr(有向邊)和r~\tilde{r}(反向邊)的注意力參數共享。令ar~(l,m)=ar(l,m)Rnϕ(j)(l,m)\mathbf{a}^{(l, m)}_{\tilde{r}}=-\mathbf{a}^{(l, m)}_r\in \mathbb{R}^{n^{(l, m)}_{\phi(j)}}。將注意力打分函數fr(l,m)f^{(l, m)}_r調整爲voices-sharing product

(3)循環一致性損失(Cycle-consistency Loss)

參考了NLP中採用反向翻譯增強翻譯性能的思想。

式(1)中有從pip_i類型的節點向pjp_j類型節點的轉換,也有從pjp_j類型的節點向pip_i類型節點的轉換。對每種類型的節點進行自轉換:pipip_i\rightarrow p_i

pip_ipjp_j的轉換如圖4a所示,一個節點經過一個循環的轉換過程後,應該能回到初始的狀態。因此,針對轉換操作引入循環一致性的限制條件:

但是,上式中有矩陣求逆的操作,是非常耗時的。爲了減小計算複雜度,採用可訓練的矩陣W~pi,pi(l+1,m)\tilde{W}^{(l+1, m)}_{p_i, p_i}替換上式中的逆矩陣,對其進行如下的約束:

最後,將這兩個限制整合爲循環一致性損失,如圖4b所示,損失函數如下:

得到模型最終的目標函數


4 實驗

數據集

IMDB, DBLP, AMiner

實驗任務:節點分類任務

對比方法

(1)本文方法的變形:.M,.R,.V分別表示多任務學習優化參數,voices-sharing product,循環一致性損失。3層ALT,每層8個attention heads。

(2)Baseline models

  • DeepWalk
  • metapath2vec
  • HERec
  • HAN
  • GCN
  • R-GCN
  • GAT

實驗結果

使用循環一致性損失和不使用的效果差別不明顯,作者提出是因爲將損失函數中的逆矩陣替換成了可訓練的矩陣,有待進一步研究


5 總結

本文提出HetSANN模型,在不使用元路徑的前提現,實現了對異質圖中節點的表示學習。

模型的核心是類型感知的注意力層(TAL),捕獲了每個節點的異質鄰居信息和異質的連邊信息。

作者提出了HetSANN的3種擴展

(1)voices-sharing product

(2)循環一致性損失(cycle-consistency loss)

(3)多任務學習(multi-task learning)

在三個數據集上進行了實驗,在節點分類任務上表現很好。

展望未來:考慮節點的異質屬性信息。


文章的亮點在於不使用元路徑對HIN進行表示學習,同樣不使用元路徑的方法還有GTNsHGT

HetSANN模型的核心在於類型感知的注意力層(多頭注意力),它進行消息聚合的時候不是通過元路徑聚合信息,而是聚合來自所有連邊的信息。由於鄰居節點的異質性,每種類型的節點都有自己的特徵空間,在聚合之前要進行轉換操作,將鄰居節點轉換到目標節點的空間。

一層TAL只能聚合一跳的鄰居,爲了捕獲到更豐富的結構信息需要堆疊多層TAL,因此引入了殘差連接

實驗結果顯示,原始的HetSANN模型已經表現很好了,作者還在此基礎上提出了3個擴展。

但是使用循環一致性損失的HetSANN和不使用的模型相比差別很小,作者認爲是損失函數中用可訓練的矩陣替換了逆矩陣的原因,還需要進一步研究

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