論文題目:Heterogeneous Graph Attention Network
論文來源:WWW 2019
論文鏈接:https://arxiv.org/abs/1903.07293v1
代碼鏈接:https://github.com/Jhy1993/HAN
關鍵詞:社交網絡, 神經網絡, 圖分析, 注意力機制(Attention)
1 摘要
本文基於層級的注意力機制(hierarchical attention)提出異質的GNN模型HAN(Heterogeneous graph Attention Network)。
包括節點級別(node-level)的注意力和語義級別(semantic-level)的注意力。
節點級別的注意力是學習節點和其基於元路徑的鄰居之間的重要性,語義級別的注意力是學習不同元路徑的重要性。
在3個真實數據集上實驗效果超過state-of-the-art,並且注意力機制有很好的可解釋性。
2 引言
GAT是使用了注意力機制的GNN,但只能用於同質圖,不能用於異質圖。本文設計了使用注意力機制並且能用於異質圖的HAN模型,需要解決以下幾個需求:
(1)圖的異質性
不同類型的節點特性不同,它們的特徵要映射到不同的特徵空間。如何處理複雜的結構信息並且保留多樣的特徵信息是亟待解決的問題。
(2)語義級別的attention
異質圖中不同的元路徑顯示了不同的語義信息,如何選擇最有意義的元路徑並且混合這些不同的語義信息是個問題。語義級別的attention就是爲不同元路徑衡量重要程度,分配不同的注意力。
(3)節點級別的attention
給定一種元路徑,每個節點都有多個基於該元路徑的鄰居,如何區別這些鄰居的不同之處,選擇信息量最豐富的的鄰居是個問題。節點級別的attention就是衡量這些鄰居的重要程度,爲其分配不同的注意力。
作者提出
作者提出HAN模型解決上述問題,步驟如下:
(1)將節點特徵作爲輸入,使用特定類別的轉換矩陣將不同類別的節點特徵映射到同一空間中。
(2)使用節點級別的attention爲特定元路徑下的節點鄰居分配注意力。
(3)使用語義級別的attention爲不同元路徑分配注意力。
(4)學習到上述兩個注意力係數後,以分層的方式得到鄰居和多條元路徑信息的最優組合,使得學習到的節點嵌入能更好地捕捉異質圖中的結構信息和豐富的語義信息。最後整個模型使用反向傳播優化。
本文的貢獻
- 是第一個基於attentino機制研究異質GNN的工作
- 提出HAN模型,結合了節點級別的attention和語義級別的attention,實現了同時考慮接地那和元路徑的重要性。模型高效,複雜度是線性的,和基於元路徑的節點對的數量成正比,可擴展到大規模的異質圖。
- 實驗證明了模型有效性,超越state-of-the-art,並且模型有很好的可解釋性。
3 定義
異質圖、元路徑以及基於元路徑的鄰居的定義不再贅述。要注意的是,節點的基於元路徑的鄰居包括節點自身。圖1是IMDB數據集組成的異質圖例子。
一些符號的定義如下:
4 HAN模型
首先提出節點級別的attention以學習到基於元路徑的不同鄰居的權重,然後將它們聚合得到語義級別的節點嵌入。之後HAN通過語義級別的attentino區別出不同的元路徑,得到針對特定任務的特定語義下節點嵌入的最優加權組合。
HAN模型的整體架構如圖2所示。
4.1 節點級別的attention
(1)由於節點的異質性,不同類型的節點有不同的特徵空間。要將不同類型節點的特徵通過轉化矩陣,映射到同一特徵空間才能進行後續處理。其中,每種類型的節點對應的轉換矩陣也是不同的。轉換矩陣只基於節點類型不針對於邊類型。映射過程如下所示,分別是節點的原始特徵和轉換後的特徵。
(2)然後使用自注意力機制爲不同類型的節點學習權重。給定節點對和連接它們的元路徑,節點級別的注意力計算如下:
其中,是不對稱的,節點對於的重要程度和對於的重要性是不同的,這也保留了異質網中的不對稱性。
(3)接着使用softmax進行歸一化,得到注意力係數如下式所示。其中表示元路徑的節點級別的注意力向量。
(4)使用注意力係數加權聚合鄰居節點的特徵,得到基於元路徑的節點的嵌入:
圖3(a)展示了節點級別的聚合過程,針對特定元路徑的注意力權重捕獲到了特定的一種語義信息。
(5)由於異質圖有無標度(scale free)的屬性,圖數據的方差很大。所以將節點級別的attention擴展成multihead的attention,讓訓練過程更穩定。也就是將節點級別的attention重複次,將學習到的嵌入拼接起來:
符合冪律分佈的網絡通常叫做無標度網絡(Scale-Free networks)
無標度是指網絡缺乏一個特徵度值(或平均度值),也就是找不到一個平均度值,讓節點均勻地分佈在這個平均度值左右。
給定一組元路徑,將節點特徵輸入到節點級別的注意力中,就可以得到組有特定語義信息的節點嵌入:。
4.2 語義級別的attention
使用基於語義級別的anntetion,將上一步基於多個元路徑得到的多種語義信息聚合。
節點級別的attention學習到的組特定語義的節點嵌入作爲輸入,爲每個元路徑學習到權重:
接下來逐步看一看是怎麼做的:
(1)首先,使用非線性的函數(例如 單層MLP)轉換特定語義下的節點嵌入。每個元路徑的重要程度計算如下:
其中,是權重矩陣,值偏置的矩陣,是語義級別的注意力向量。這些參數對所有的元路徑和特定語義的嵌入都是共享的。
(2)得到每個元路徑的重要性後,使用softmax進行歸一化。在特定任務下的元路徑的權重計算如下:
(3)將這些特定語義的嵌入表示加權聚合,得到最終的嵌入表示:
圖3(b)展示了語義級別的聚合過程,所有特定語義的嵌入聚合後得到最終的嵌入。
接着就可以將最終的嵌入應用到具體任務中,並設計不同的損失函數。
對於半監督的節點分類任務,最小化已標註的節點標籤和預測結果之間的交叉熵函數:
其中,是分類器的參數,是有標籤的節點集合,分別是標註節點的標籤和嵌入表示。
HAN的整體算法流程如下所示:
模型也可用於inductive learning
5 實驗
數據集:DBLP、ACM、IMDB
實驗任務:節點分類,節點聚類
對比方法:
- DeepWalk:同質圖
- ESim:異質圖,元路徑權重使用的是HAN學習得到的
- metapath2vec
- HERec
- GCN:同質圖
- GAT:同質圖
- :HAN的 變形,去掉了節點級別的attention
- :HAN的變形,去掉了語義級別的attention
- HAN
實驗結果:
(1)節點分類實驗結果
(2)節點聚類實驗結果
(3)可視化結果,HAN的類間距離比其他方法的大。
6 總結
文章基於帶有層次的attention提出HAN模型,處理異質圖的節點嵌入學習問題,並在節點分類、聚類以及可視化任務中取得了很好的效果。
模型的思路簡單清晰:
HAN使用了兩層attention機制,一個是節點級別的,用於衡量在每種特定元路徑下的不同鄰居節點對目標節點的重要性;另一個是語義級別的,用於衡量不同元路徑對目標節點的重要性。兩者之間有層級關係,前者是後者的輸入。
進行節點級別的attention時,由於不同類型的節點有不同的特徵空間,所以要先將它們映射到同一特徵空間才能進行後續處理。考慮到異質圖的無標度屬性,使用的是multi-head的attention。
進行語義級別的attention時,將上一步的結果作爲輸入。使用注意力機制將不同語義下的嵌入表示加權聚合,得到最終的嵌入表示。
有點追隨GAT的腳步的意思,將attention擴展到了異質圖。擴展過來的特別之處就是考慮了兩個級別的attention,以適應圖的異質性,捕獲到更豐富的語義特徵。