HetGNN-Heterogeneous Graph Neural Network 異構圖神經網絡 KDD2019

來源:KDD2019

論文鏈接:https://www3.nd.edu/~dial/publications/zhang_2019_heterogeneous.pdf

代碼鏈接: https://github.com/chuxuzhang/KDD2019_HetGNN

1、背景 

異質圖在實際生活中比同質圖要更爲常見一些,或者可以認爲同質圖中節點間存在多種類型的邊(關係),同時每一條邊所具有的不同屬性也會導致節點間的遠近親疏。廣泛列舉的citation network,在我看來其實還算是比較好處理一點的異質圖,雖然說文章間的共同作者、相互引用可以作爲不同類型的邊,但終究說,一個作者的研究領域是相關的,能夠相互引用的文章大多也是同類型的,能夠發表在同一個會議上的文章也很大概率是同領域的,在目前抽樣形成citation network中,我認爲是稍微偏向同質的,而真正的異質網絡應該像電商那樣的網絡,那時候什麼點擊、購買、收藏、瀏覽的關係應有盡有,會更難處理節點在不同邊支配下的恐懼(^-^)。

言歸正傳,作者認爲目前異質圖處理的難點在於,一方面要處理圖的結構信息,如不同類型的點和邊,另一方面要關注每個節點所具有的屬性(例如文本或圖像),儘管在同構或異構圖嵌入、屬性圖嵌入以及圖神經網絡等方面已經有了大量的研究,但很少有研究能同時考慮異構的節點、邊和異構的內容。因此,作者提出了HetGNN模型來解決此事。

如下圖所示,作者認爲當前工作對於異質圖還沒有解決好的三個問題:

  1. 異質圖中的大多數節點並不會連接所有類型的其他節點。如academic graph中user節點不會直接連到venue節點上。另外說節點能夠連接的鄰居數也不一樣。大部分GNN直接聚合鄰居節點信息,而遠處傳過來的節點信息會隨着距離而減弱。hub節點會被弱關聯的鄰居節點擾亂信息,冷啓動的節點會因爲鄰居不足而導致不能充分表示。那麼問題1就是:如何對異質圖上的每個節點採樣到強相關的鄰居節點呢?
  2. 每個節點都帶有非結構化的屬性特徵,如text、image,常用的從concatenate或者linear transformation不能建模節點屬性間的deep interaction。那麼問題2就是:如何設計異質圖上節點屬性的encoder來處理不同節點內容異質性問題。
  3. 不同類型的鄰居節點對生成節點embedding的貢獻也不一樣。例如在academic graph,author和paper節點對author的embedding的影響會強如venue,而大部分gnn集中在同質圖的處理上,也沒有考慮這種不同類型節點的影響。

2、問題定義 

3、HetGNN模型 

模型思路還是很清晰的,採樣鄰居節點——鄰居節點類型分類——每個節點feature encoding——同類型集合embedding aggregation——不同類型鄰居集合aggregation——分類。整個模型的流程圖如下: 

作者的研究思路可以歸納如下:

  1. 設計了一個基於重啓策略的隨機遊走方法,來爲圖中的每一個節點採樣固定數量的 強相關的異構鄰居,隨後依照節點的類型對採樣的鄰居節點進行分組。
  2. 先使用BiLSTM來編碼異構內容的“深度”特徵交互,得到每一個節點的內容的嵌入。
  3. 再使用另一個BiLSTM來聚集不同的鄰居組(類型)的內容嵌入,得到這個類型的特徵表示。隨後通過注意力機制來衡量不同異構節點類型的影響,將它們組合起來,獲得最終的節點嵌入。
  4. 最後,利用一個關於圖的上下文的損失函數和小批量梯度下降的方法來訓練模型。

3.1 採樣異構鄰居 

在對一個節點採樣其異構的鄰居節點時,會面臨如下的挑戰:

  • 異構網絡中的直接鄰居有可能只是部分類別的鄰居,學出來的特徵表示缺乏表示能力。
  • 每個節點的鄰居數量不一定相同。
  • 異構鄰居的不同的內容特徵需要使用不同的特徵變換來處理。 

爲了解決以上的挑戰,作者提出了基於重啓隨機遊走random walk with restart(RWR)的異構鄰居採樣策略,如下圖所示: 

具體來說,採樣的步驟如下:

Step-1:採樣固定長度的節點序列。

從任意節點v開始隨機遊走,遊走的過程會重複地經過v的鄰居或者以一個概率p返回初始節點。RWR在收集到固定數量的鄰居節點後會停止,記爲RWR(v)。同時確保不同類型的節點都要有一定的數量,這樣保證每個類型都有一定量的節點。

Step-2:分組不同類型的節點。

對於每一個節點類型t,我們都基於鄰居節點在RWR(v)中出現的頻率,選出top Kt個相關類型的鄰居節點,組成節點v的t類型鄰居集合。

這樣做的好處是:

  • RWR爲每一個節點收集了所有類型的鄰居。
  • 每個節點的鄰居節點數量是固定的,最常被visit的節點也會被選擇到。
  • 相同類型的鄰居(有相同的內容特徵)被分組,那樣就可以用type-based aggregation。我覺得意思是指同類型的節點影響肯定最大,但其他類型也會有影響。 

3.2 節點異構內容編碼

第一步,一個節點具有的不同屬性集合 Cv ,那就對每個屬性分別進行encoding。如對於text就用預訓練的word embedding進行encode,對於image可以用CNN進行encode,總之最後得到每個attribute的embedding表示 xi。

第二步,將embedding後的feature按照某個順序輸入到BiLSTM中進行deep encode,至於順序其實不在乎,類似於graphsage一樣不在乎順序。再接一個mean pooling得到該節點的表示。

其中,BiLSTM模塊的內部結構圖如下:

採用BiLSTM來處理無序的內容集合Cv,能捕捉“深度”特徵交互並積累表達能力。對於不同類型的鄰居節點也使用不同的BiLSTM來聚集它們的異構內容特徵。

這個內容編碼框架有如下的優點:

  • 它有相對低的複雜度(參數少),所以實現模型和對模型進行調參都相對容易。
  • 能夠融合異構內容信息,具有較強的表達能力。
  • 添加額外的內容很靈活,模型拓展方便。 

3.3 聚集異構鄰居 

這個過程包括兩個層次:

  • 同一類型鄰居節點聚合,same type neighbours aggregation
  • 不同類型鄰居集合聚合,types combination

3.3.1 同一類型鄰居節點聚合 

3.3.2 不同類型鄰居節點聚合 

考慮到不同類型節點集合當前節點有不同影響,因此自然想法使用attention。



3.4 優化目標  

優化目標還是以無監督的形式,即節點對。對於給定節點 v ,與其一階和二階鄰居都可以認爲有邊,而其他點則認爲是無邊。注意的是,節點對是按照類型區分,負樣本也是與正樣本屬於同類型的節點。 

採用負採樣的形式,可以改寫爲:

相當於每次訓練有當前節點 v,正樣本 vc,按照採樣分佈 Pt採樣得到的負樣本 V'c,那麼損失函數可以進一步寫爲 

4. 實驗分析 

實驗目的(回答4個問題) :

  1. 本文的模型(HetGNN)和當前的基準模型相比,在鏈接預測、個性化推薦、節點分類和聚類等圖挖掘任務上的表現如何?
  2. 本文的模型(HetGNN)和當前的基準模型相比,在歸納性的圖挖掘任務上的表現如何?
  3. 本文模型的不同的組成部分,例如節點異構內容編碼或異構鄰居聚集對模型的性能有什麼影響?
  4. 本文模型的各個超參數,例如嵌入的維度或異構鄰居的採樣數量對模型的性能有什麼影響?

Baseline介紹: 

  • Metapath2vec。這是異構圖嵌入模型,使用基於metapath的遊走和異構skip-gram模型來學習節點的嵌入表示。
  • ASNE。這是帶屬性的圖的嵌入模型,利用節點的潛在特徵和屬性特徵來學習節點的嵌入表示。
  • SHNE。這是對帶文本屬性的異構圖進行嵌入的模型,通過聯合優化圖的結構相近度和文本語義相關度,來學習節點的嵌入表示。
  • GraphSAGE。這是圖神經網絡模型,使用神經網絡來聚合節點鄰居的特徵信息。
  • GAT。這也是圖神經網絡模型,使用自注意力神經網絡來聚合節點鄰居的特徵信息。 

數據集概述: 

本文的實驗用到了4個數據集,其中包括2個學術圖和2個評論圖。具體信息如下:

鏈路預測實驗: 

測試方案有些不同:

之前:隨機抽樣一批links用於訓練,剩下的用於測試

現在:graph training data用於節點 embedding,相應的邊用於訓練分類器,測試時配比相同數量的非連接邊進行測試,只有訓練的節點間出現新的邊纔算是testing link,author-author and author-paper

 

個性化推薦實驗: 

節點分類和節點聚類實驗: 

歸納性的多標籤分類和節點聚類實驗: 

 

可視化實驗: 

模型各組成部分的影響: 

超參數的影響: 

5、總結 

  • 本文正式定義了同時考慮圖的結構異構和節點內容異構的異構圖表示學習問題。
  • 本文提出了一個創新的異構圖表示學習HetGNN模型。HetGNN能夠捕捉結構和內容的異構,對於直推式和歸納式任務都很有用。
  • 本文在多個公開數據集上做了大量的實驗,證明了HetGNN在許多的圖數據挖掘任務上的性能明顯優於基準模型。 

 

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