論文筆記:KDD 2019 Heterogeneous Graph Neural Network
1. 前言
論文連結:https://dl.acm.org/doi/10.1145/3292500.3330961
github:https://github.com/chuxuzhang/KDD2019_HetGNN
該文提出了一種基於深層模型的異質網路表示學習的方法HetGNN。
異構圖的表示學習旨在為每個節點尋求一個有意義的向量表示,以便於連結預測、個性化推薦、節點分類等下游應用。然而,這個任務是挑戰不僅因為需求將異構結構(圖)組成的多種型別的節點和邊的資訊,但也需要考慮異構屬性或內容(文字或影象)與每個節點關聯。儘管在同構(或異構)圖嵌入方面已經做了大量的工作,
但是在屬性圖嵌入和圖神經網路中,很少有網路能夠有效地聯合考慮異構結構(圖)資訊以及各節點的異構內容資訊。本文提出一種異構圖神經網路模型HetGNN來解決這一問題。具體來說,
- 首先引入了帶重啟策略的隨機遊走,為每個節點抽取固定大小的強相關異構鄰居,並根據節點型別對它們進行分組。在此基礎上,設計了一個具有兩個模組的神經網路結構來聚合取樣的相鄰節點的特徵資訊。
- 第一個模組對異構內容的“deep”特徵互動進行編碼,併為每個節點生成嵌入內容。
- 第二個模組聚合不同相鄰組(型別)的內容(屬性)嵌入,並考慮不同組的影響對其進行組合,得到最終的節點嵌入。
- 最後利用圖上下文丟失和一個小批量梯度下降過程,以端到端方式訓練模型。
2. 異質圖神經網路
異質圖定義為包含多類節點或多類邊,要保證邊的類別數和節點類別數之和要大於2.
對於圖(a)(左)來說表達了三種類型的關係分別為:
- 作者和論文之間的協作關係
- 論文和論文之間的引用關係
- 論文和機構的發表關係。
此外在(a)(左)圖中的節點帶有各自特有的屬性,例如代表作者節點的作者 id 作為其屬性、代表論文節點的摘要文字作為其屬性。圖(a)(右)表明了使用者物品的互動關係。
對於圖(b)主要揭示了異質圖嵌入的幾個難點:
- 挑戰1是:如圖1(b)中的C1所示,如何對HetG中每個節點的嵌入生成具有強相關性的異構鄰居進行取樣?
- 挑戰2是:如圖1(b)中的C2所示,如何設計節點內容編碼器來解決HetG中不同節點的內容異構性?
- 挑戰3是:如何在考慮不同節點型別影響的情況下聚合異構鄰居的特徵資訊,如圖1(b)中的C3所示。
現有的同質圖卷積方法在處理異質圖資料的侷限性:
-
HetG中的許多節點可能無法連線到所有型別的鄰居。此外,相鄰節點的數量因節點而異。例如,在圖1(a)中,任何作者節點都沒有直接連線到機構節點。同時,在圖1(b)中,節點a有5個直接鄰居,而節點c只有2個。現有的 GNN 大多隻聚合直接(一階)鄰居節點的特徵資訊,特徵傳播過程可能會削弱遠鄰節點的影響。此外,“hub”節點的嵌入生成受到弱相關鄰居(“噪聲”鄰居)的影響,而“cold-start”節點的嵌入由於鄰居資訊有限而沒有得到充分表示。因此,挑戰1是:如圖1(b)中的C1所示,如何對HetG中每個節點的嵌入生成具有強相關性的異構鄰居進行取樣?
-
一個節點在HetG可以攜帶非結構化異構內容,例如屬性、文字或影象。此外,與不同型別的節點關聯的內容可能不同。例如,在圖1 (b), 1型節點(例如b或c)包含屬性和文字內容,2型節點(例如f或g)攜帶屬性和圖片資訊,k型節點(例如d或e)與文字和影象相關聯。當前 GNN 的直接連線操作或線性轉換無法建模節點異構內容之間的“深層”互動。此外,不能對所有節點型別使用相同的特性轉換函式,因為它們的內容各不相同。因此,挑戰2是:如圖1(b)中的C2所示,如何設計節點內容編碼器來解決HetG中不同節點的內容異構性?
-
不同型別的鄰居對HetG中的節點嵌入的貢獻是不同的。例如,在圖1(a)的學術圖中,作者和論文鄰居對作者節點的嵌入應該有更大的影響,因為機構節點包含的型別比較多,因此嵌入的範圍比較廣。目前大多數 GNN 主要關注同構圖,不考慮節點型別的影響。因此挑戰3是:如何在考慮不同節點型別影響的情況下聚合異構鄰居的特徵資訊,如圖1(b)中的C3所示。
為了解決這些挑戰,本文提出HetGNN,一個異構圖神經網路模型,用於HetG的表示學習。
-
首先設計了一種基於重新啟動的隨機遊走策略,對HetG中每個節點固定大小的強相關異構鄰居進行取樣,並根據節點型別進行分組。
-
接下來設計了一個包含兩個模組的異構圖神經網路體系結構來聚合前一步取樣鄰居的特徵資訊。
2.1 第一個模組採用遞迴神經網路對異構內容的“深度”特徵互動進行編碼,得到每個節點的嵌入內容。
2.2 第二個模組利用另一個遞迴神經網路來聚合不同鄰近組的內容嵌入,再通過一個注意機制將其組合,以測量異構節點型別的不同影響,從而獲得最終的節點嵌入。 -
最後利用圖上下文丟失和一個小批量梯度下降過程來訓練模型。
綜上所述,作者將問題描述為,給出一個異質圖 C-HetG G = ( V , E , O V , R E ) G=(V,E,O_V,R_E) G=(V,E,OV,RE) 其中節點資訊集合為 C C C,具體任務為設計一個模型 F Θ \mathcal{F}_{\Theta} FΘ 其中 Θ \Theta Θ 表示模型引數來學習 d d d-維的嵌入 E ∈ R ∣ V ∣ × d \mathcal{E} \in \mathbb{R}^{|V|\times d} E∈R∣V∣×d。該模型可以在它們之間編碼異構結構的緊密性和異構非結構化內容。最後生成的節點嵌入可以用於各種圖挖掘任務,如鏈路預測、推薦、多標籤分類、節點聚類等。
3.HetGNN
3.1 Sampling Heterogeneous Neighbors (C1)
為了解決傳統同質圖卷積操作僅聚合一節鄰居節點的問題,本文提出一種帶有重啟機制的隨機遊走方法(RWR),具體分為兩步:
- Step-1: Sampling fixed length RWR。首先從圖中的一個節點( v ∈ V v \in V v∈V)開始隨機遊走,每一次隨機遊走走到當前節點的鄰居節點或返回開始節點的概率為 p p p,RWR不斷執行直到收集到規定個數的節點集,表示為 R W R ( V ) RWR(V) RWR(V) ,其中每一種節點在節點集中的數量被限制是為了保證所有種類的節點都被收集到
- Step-2: Grouping different types of neighbors。對於每個結點的型別 t t t ,基於根據頻率我們從 R W R ( v ) RWR(v) RWR(v) 中選擇前 k t k_t kt 個節點,取其為節點 v v v 的 t t t 型相關鄰居的集合。
該策略能夠避免上述問題,原因是:
- (1)RWR收集每個節點的所有型別的鄰居;
- (2)固定每個節點的抽樣鄰居大小,選擇訪問次數最多的鄰居;
- (3)對相同型別(具有相同內容特性)的鄰居進行分組,這樣就可以部署基於型別的聚合。
3.2 Encoding Heterogeneous Contents (C2)
與GraphSAGE和GAT 直接連線不同種類的特徵資訊或將它們線性轉換為統一的向量表示不同,本文設計了一個基於雙向LSTM (Bi-LSTM) 的新架構,以捕獲“深層”特性互動,並獲得更大的表達能力。形式上,
v
v
v 的嵌入內容計算如下:
其中
f
1
(
v
)
∈
R
d
×
1
f_1(v) \in \mathbb{R}^{d \times1}
f1(v)∈Rd×1 (
d
d
d 代表特徵嵌入維度),
F
C
θ
x
\mathcal{F}C_\theta{_x}
FCθx 代表特徵轉換方法,可以為恆等對映、全連線神經網路等,其中引數為
θ
x
\theta_x
θx。操作
⊕
\oplus
⊕ 代表級聯操作。LSTM具體公式為:
其中
h
i
∈
R
(
d
/
2
)
×
1
h_i \in \mathbb{R}^{(d/2)\times1}
hi∈R(d/2)×1 代表屬性集中第
i
i
i 個屬性的隱藏狀態輸出,
∘
\circ
∘ 代表哈達瑪內積也就是兩矩陣元素對應相乘,這裡要保證兩矩陣的維度相同。
U
j
∈
R
(
d
/
2
)
×
d
f
\mathcal{U}_j \in \mathbb{R}^{(d/2)\times d_f}
Uj∈R(d/2)×df,
W
j
∈
R
(
d
/
2
)
×
(
d
/
2
)
W_j \in \mathbb{R}^{(d/2)\times(d/2)}
Wj∈R(d/2)×(d/2),
b
j
∈
R
(
d
/
2
)
×
1
(
j
∈
{
z
,
f
,
o
,
c
}
)
b_j \in \mathbb{R}^{(d/2)\times1} (j \in\{z,f,o,c\})
bj∈R(d/2)×1(j∈{z,f,o,c}) 代表可學習的引數。
z
i
z_i
zi,
f
i
f_i
fi,
o
i
o_i
oi 分別為屬性集中第
i
i
i 個屬性的遺忘門向量、輸入們向量和輸出門向量。
對整個過程進行概括:
-
第一步,一個節點具有的不同屬性集合 C v C_v Cv ,那就對每個屬性分別進行encoding。如對於text就用預訓練的word embedding進行encode,對於image可以用CNN進行encode,其實就是 F C θ x \mathcal{F}C_\theta{_x} FCθx特徵轉換方法。總之最後得到每個attribute的embedding表示 x i x_i xi 。
-
第二步,將embedding後的feature按照某個順序輸入到BiLSTM中進行deep encode,至於順序其實不在乎,類似於graphsage一樣不在乎順序。再接一個mean pooling得到該節點的表示。
上述過程中對應圖2(b)
這種編碼架構有三個主要優點:
- (1)結構簡潔,複雜度相對較低(引數較少),模型實現和調優相對容易;
- (2)能夠融合異構內容資訊,表達能力強;
- (3)靈活新增額外的內容特性,方便模型擴充套件。
3.3 Aggregating Heterogeneous Neighbors (C3)
為了對每個節點聚合異構鄰居的內容嵌入(經過LSTM編碼模組得到了不同型別屬性的嵌入輸出,下一步應該結合屬性的差異進行鄰居特徵的聚合),本文設計了另一個基於型別的神經網路模組。它包括兩個連續的步驟:
- (1)同類型鄰居的聚合;
- (2)不同型別的組合。
3.3.1 Same Type Neighbors Aggregation
在3.1中使用基於重啟的隨機遊走方法(RWR)得到了固定大小的鄰居集合,其中包含了不同種類的多個節點,基於此我們可以表示第
t
t
t 類的取樣鄰居集合為
N
t
(
v
)
N_t(v)
Nt(v),之後採用一個神經網路
f
2
t
f_2^t
f2t 來聚合同一種類中不同節點的特徵資訊,具體公式為:
其中
f
2
t
(
v
)
∈
R
d
×
1
f_2^t(v) \in \mathbb{R}^{d \times 1}
f2t(v)∈Rd×1
d
d
d 表示特徵嵌入維度,
f
1
(
v
′
)
f_1(v^{'})
f1(v′) 是經過3.2中模型的道德嵌入結果。
A
G
t
\mathcal{AG}^t
AGt 代表第
t
t
t 種鄰居聚合方法,可以為全連線神經網路或者卷積神經網路或者時序神經網路,本文中作者採用Bi-LSTM,因為它在訓練中會產生更好的效果。因此我們結果可以表達為:
本文使用Bi-LSTM來聚合所有t型鄰居的內容嵌入,並使用所有隱藏狀態的平均值來表示一般的聚合嵌入,如圖2(c)所示。我們使用不同的Bi-LSTMs來區分鄰居聚合的不同節點型別。注意,Bi-LSTM操作針對的是一個無序的鄰居集,受GraphSAGE啟發的。
3.3.2 Types Combination
對於考慮不同種類節點資訊的聚合,作者引入了注意力機制。動機是不同型別的鄰居對
v
v
v 的最終表示會做出不同的貢獻,因此可以將輸出嵌入表示為:
其中
E
b
∈
R
d
×
1
\mathcal{E}_b \in \mathbb{R}^{d \times 1}
Eb∈Rd×1
d
d
d 表示輸入的嵌入維度。
α
v
,
∗
\alpha^{v,*}
αv,∗ 表明不同嵌入的重要性。
f
1
(
v
)
f_1(v)
f1(v) 是經過3.2中生成的基於
v
v
v 節點的特徵嵌入
f
2
t
(
v
)
f_2^t(v)
f2t(v) 是基於節點屬性種類
t
t
t 在3.3中生成的聚合嵌入結果。因此定義嵌入集合為
F
=
{
f
1
(
v
)
∪
(
f
2
t
(
v
)
,
t
∈
O
V
)
}
\mathcal{F}=\{f_1(v) \cup (f_2^t(v),t \in O_V)\}
F={f1(v)∪(f2t(v),t∈OV)}基於此輸出
v
v
v 的嵌入表達為:
其中
u
∈
R
2
d
×
1
u \in \mathbb{R}^{2d \times1}
u∈R2d×1 代表注意力引數。對應於圖2(d)
在該框架中,為了使嵌入維度一致,便於模型調優,對3.2節的內容嵌入使用相同的維度 d d d,對3.3節的內容嵌入使用聚合的維度 d d d,對3.3節的輸出節點嵌入使用輸出節點 d d d。
3.4 Objective and Model Training
優化目標還是以無監督的形式,即節點間對。對於給定節點 v v v ,與其一階和二階鄰居都可以認為有邊,而其他點則認為是無邊。注意的是,節點對是按照型別區分,負樣本也是與正樣本屬於同類型的節點。
引數
Θ
\Theta
Θ:
其中
C
N
v
t
CN_v^t
CNvt 是
v
v
v 的
t
t
t 型上下文節點的集合,圖中的一/二階鄰居或短隨機遊動中的區域性鄰居。條件概率
p
(
v
c
∣
v
;
Θ
)
p(v_c|v;\Theta)
p(vc∣v;Θ) 被定義為異質 softmax函式:
採用負取樣形式,可以改寫為:
其中
M
M
M 是負取樣集合的大小
P
t
(
v
c
′
)
P_t(v_{c^{'}})
Pt(vc′) 是預先定義的是否是
t
t
t 型節點的噪聲分佈,在模型中將
M
M
M 具體設定為1.基於此(9)可以更新為:
相當於每次訓練有當前節點
v
v
v ,正樣本
v
c
v_c
vc ,按照取樣分佈
P
t
P_t
Pt 取樣得到的負樣本
v
c
′
v_{c^{'}}
vc′ ,那麼損失函式可以進一步寫為:
4. 實驗
在本節中,我們進行了廣泛的實驗,目的是回答以下研究問題:
•(RQ1) HetGNN與最先進的Baseline相比,對於各種圖挖掘任務,如鏈路預測(RQ1-1)、個性化推薦(RQ1-2)和節點分類與聚類(RQ1-3), HetGNN的表現如何?
•(RQ2) HetGNN與最先進的基線相比,如何執行歸納圖挖掘任務,如歸納節點分類和聚類?
•(RQ3)如何不同的元件節點異構內容編碼器或異構鄰居聚合器,影響模型效能?
•(RQ4)如何各種hyper-parameters,嵌入維數或採樣的異構鄰居集的大小,影響模型效能?