論文題目: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
異質圖定義爲,節點類型集合爲,邊類型集合爲。從節點到節點的邊用三元組表示,反向邊表示爲。與節點相連的邊集合定義爲。
本文的目的是爲類型爲的節點生成低維表示。
本文提出的任務導向的圖嵌入方法HetSANN可以處理節點之間有多種關係的情況。模型的整體結構如圖2所示,其中類型感知的注意力層(TAL)是模型的核心。
3.1 類型感知的注意力層(TAL)
在進行嵌入學習之前,先在每個節點上添加自環(self-loop relation)。並令,這個冷啓動狀態可以是節點的屬性特徵,對於沒有屬性的節點可以使用假特徵(零向量或one-hot向量)。
TAL如圖3所示。每個TAL都採用了多頭注意力機制,可以穩定訓練過程,增加建模能力。
例如,節點在第層的表示,attention head 在第層TAL的輸出分兩步計算得到:(1)轉換操作;(2)聚合節點的入度鄰居。
(1)轉換操作(C1)
對節點的每個鄰居進行線性轉換:
其中,是從上一層的類型的空間 到 層的m-th head中的類型的隱層空間的映射。
(2)鄰居的聚合(C2)
爲了保留節點間不同類型關係中的語義信息,對不同類型的關係使用對應的個注意力打分函數:。對於節點,爲每個邊計算的注意力係數如下:
注意力係數反映了邊對節點的重要性程度。爲所有類型的邊使用相同形式的注意力機制,但是參數不同。
常見的注意力打分函數是concat product的形式,GAT中採用的就是這種,定義如下:
其中,是可訓練的注意力係數,這一參數在類型爲的邊中共享。
本文並沒有采用元路徑,而是直接對異質的邊使用注意力機制。注意力係數歸一化如下:
經過以上兩步操作,就有了和節點的表示在同一空間中的鄰居節點的隱層表示,以及和向量的邊的權重。可以進行的鄰居聚合了:
注意,同時使用了邊對應的節點對以及邊的類型來識別不同的邊。若連向的邊有多種類型,則的隱狀態就要和對應的權重多次相乘。
對(5)式使用頭注意力,拼接起來作爲輸出:
注意,HetSANN的聚合是基於所有連邊的,而不是基於元路徑生成的連邊的。也就是說,基於元路徑的話使用一層GNN就可以將聚合到,基於所有連邊的話(raw links)需要更多層纔可以。因此,HetSANN可以捕獲到高階的相似度信息。爲了更好地訓練,採用了殘差連接的機制,將(6)式重寫爲如下的形式:
3.2 模型的訓練以及3個擴展
TAL層輸出了低維的節點表示(),爲了面向具體任務(本文是節點分類任務)優化表示,使用一層全連接層和softmax構成節點分類器,最小化交叉熵損失,對節點進行分類:
(1)E1:多任務學習
使用多個分類器,TAL層的參數共享於多個分類器。多任務學習可以整合所有的分類器,最大程度減小過擬合的風險,有助於學習到更有魯棒性的表示。
(2)E2:Voices-sharing Product
contact product打分函數將有向邊(write)和反向邊(written)看作兩種類型的關係,且這兩種類型的關係是相互獨立的。
爲了形式化有向邊和反向邊之間成對的關係,作者使(有向邊)和(反向邊)的注意力參數共享。令。將注意力打分函數調整爲voices-sharing product:
(3)循環一致性損失(Cycle-consistency Loss)
參考了NLP中採用反向翻譯增強翻譯性能的思想。
式(1)中有從類型的節點向類型節點的轉換,也有從類型的節點向類型節點的轉換。對每種類型的節點進行自轉換:。
向的轉換如圖4a所示,一個節點經過一個循環的轉換過程後,應該能回到初始的狀態。因此,針對轉換操作引入循環一致性的限制條件:
但是,上式中有矩陣求逆的操作,是非常耗時的。爲了減小計算複雜度,採用可訓練的矩陣替換上式中的逆矩陣,對其進行如下的約束:
最後,將這兩個限制整合爲循環一致性損失,如圖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進行表示學習,同樣不使用元路徑的方法還有GTNs和HGT。
HetSANN模型的核心在於類型感知的注意力層(多頭注意力),它進行消息聚合的時候不是通過元路徑聚合信息,而是聚合來自所有連邊的信息。由於鄰居節點的異質性,每種類型的節點都有自己的特徵空間,在聚合之前要進行轉換操作,將鄰居節點轉換到目標節點的空間。
一層TAL只能聚合一跳的鄰居,爲了捕獲到更豐富的結構信息需要堆疊多層TAL,因此引入了殘差連接。
實驗結果顯示,原始的HetSANN模型已經表現很好了,作者還在此基礎上提出了3個擴展。
但是使用循環一致性損失的HetSANN和不使用的模型相比差別很小,作者認爲是損失函數中用可訓練的矩陣替換了逆矩陣的原因,還需要進一步研究。