1. 程式人生 > >《GraphGAN:Graph Representation Learning with Generative Adversarial Nets》論文閱讀筆記

《GraphGAN:Graph Representation Learning with Generative Adversarial Nets》論文閱讀筆記

最近在準備碩士期間的畢業論文的開題工作,也是比較愁於沒有什麼好的畢業設計的想法。在學習完這篇論文後,我發現基於生成對抗網路的網路表示學習的方法挺有意思。通過寫這篇部落格也是想要加深自己對這篇論文的idea的理解,同時也想著是否我也可以提出一種改進或是適當借鑑一下這種思想。

 GraphGAN: Graph Representation Learning with Generative Adversarial Nets

ABSTRACT

網路表示學習的目的就是對於給定圖的任意節點學習到該節點的一個低維的向量表示embedding。作者將目前的網路表示學習的方法分成了兩類:基於生成式模型和基於判別式模型的網路表示學習的方法。其中,基於生成式模型的方法旨在網路中學習一個潛在的連通性分佈,而基於判別式模型的方法則是試圖學習一個判別器用來判別兩個節點之間存在邊關係的概率。論文提出了一種新的結合了生成式和判別式模型的思想的網路表示學習的框架,通過設計生成器G

對於給定節點v擬合它與圖中其他節點的潛在的真實的連通性分佈,同時基於設計的生成策略生成節點能夠欺騙過判別器D。同時與之對應的判別器D的目的就是判別選取的節點是從真實分佈中選取的還是由生成器G生成的節點。通過這種對抗的思想,經過反覆迭代同時提高兩個模型的效能。

INTRODUCTION

圖表示學習也叫網路表示學習或圖特徵學習,目的是學習圖中節點的表示向量。眾所周知,網路的鄰接矩陣表示方式是一種簡單、直接的表示方式。但是在處理大規模的網路的情況下,特別是網路的節點數量上升到百萬級別時,網路節點的表示向量也相應的上升到相當高的維度。這時網路的鄰接矩陣的表示方式就會很大程度的影響計算效率和極大的浪費空間成本。網路表示學習的目的就是針對於這種現象,對於圖中的每一個節點學習一個低維的向量表示embedding,同時也要能夠儲存原圖中節點的結構性息和距離資訊。目前是一個非常火的研究方向,可以應用在各類下游的具體任務中:

  • Link prediction(連結預測)
  • Node classification(節點分類)
  • Recommendation(推薦系統)
  • Visualization(視覺化)
  • Knowledge graph representation(知識圖譜表示)
  • Clustering(聚類)
  • Text embedding(文字嵌入)
  • Social network analysis(社交網路分析任務)

作者簡單介紹了下相關工作,並將現有的網路表示學習方法劃分為了兩類:

  • 生成式模型,這種方法假定對於圖中的任意節點v_c都存在一個潛在的、真實的連通性分佈p_{true} (v|v_c)
    ,表明節點v_c的聯通性偏好(或是相關性分佈)對於圖中的每個節點,典型的有Deepwalk和Node2vec方法
  • 判別式模型,這種方法旨在通過訓練學習一個判別器用來直接判斷節點對間存在邊的概率,i.e.,p(edge|(v_i,v_j))。典型的有SDNE和PPNE方法

同時作者也指出,生成式模型和判別式模型就像一個硬幣的正反兩面。實際上LINE就是一種對這兩種模型進行結合的網路表示學習方法,即唐建老師提出的一階相似度和二階相似度實質上是一種早期的嘗試。本文提出了一種結合生成式模型和判別式模型的基於生成對抗網路的網路表示學習的方法GraphGAN。

具體來講,GraphGAN試圖通過學習訓練得到兩個模型:生成器G(v|v_c)和判別器D(v,v_c)。通過進行一種two player minimax-game的遊戲策略:生成器通過判別器的訊號指示生成(在圖中挑選)那些最不容易被區分的節點,同時判別器試圖在那些偽造的節點和ground truth的節點中畫出一條明顯的分界線。

這篇文章的另一個創新之處就是作者提出了一種新型的圖的softmax方法作為生成器的實現。同時這種圖的softmax滿足如下三個要素:

  • 正規化
  • 圖結構敏感
  • 計算高效

Graph Generative Adversarial Nets

GraphGAN Framework

作者接下來介紹了論文的核心,一種minimax-game的對抗思想。作者將生成器和判別器看作是一組對手,具體來講是生成器對於給定的節點想要去生成(在圖中精確來說是選取sample)節點在判別器看來是真實存在邊的關係,與之對應的是判別式要能夠區分得到的節點是從真實的連通性分佈中選取的還是由生成器生成的節點。

正式的,作者利用生成對抗網路中的這個minimax-game式子刻畫了生成器和判別器的這種對抗關係。

 通過反覆的交替迭代,上式最終會趨於一個穩定的狀態。下圖展示了GraphGAN的訓練過程。

 Discriminator Optimization

作者指出,在GraphGAN中任何判別模型都可以用作具體的判別器的實現,例如SDNE中提出的判別式模型。這篇論文設計的判別器是一個簡單是sigmoid函式:

其中,d_vd_{v_c} 是通過訓練得到的節點vv_c的表示向量embedding。具體的引數優化按照如下的梯度上升策略進行:

Generator Optimization

生成器的優化要採用policy gradient策略進行,具體如下:

然後作者探討了生成器的具體實現,首先一個直接的想法是直接對圖上的所有節點設計一個softmax函式。

其中g_vg_{v_c}是節點vv_c的表示向量embedding。但是這種做法計算要涉及全圖所有節點,會造成巨大的計算開銷,因此作者提出了一種新的基於圖的softmax方法。

Graph Softmax for Generator

作者首先提出設計的生成器要滿足三個性質:

  • 正規化。生成器必須是一個有效的概率分佈函式
  • 圖結構敏感。生成器在去擬合圖的真實連通性分佈的時候要注意保留圖的結構特徵,例如,對於圖中的兩個節點,它們的連通性概率要隨著節點之間的最短路徑的長度的增長而減小。
  • 計算高效性。區別於對圖中所有節點的softmax,新的softmax函式的計算應該只涉及到圖中的少量節點。

然後作者定義了對於選定節點與其鄰居節點間的關聯性概率,

從而根據關聯性概率設計瞭如下的生成器:

具體的節點生成策略,作者設計了一個如下的生成器線上生成策略:

 

然後演算法的框架設計:

 Experiments

作者在五個資料集上進行了實驗,用作對比的baseline演算法分別選取了Deepwalk、Node2vec、LINE和Struct2vec。實驗表明,在Link prediction、Node classification和Recommendation任務中,GraphGAN的實驗結果明顯優於上述baseline演算法。

 

 Conclusions

這篇文章將最近非常火的生成對抗網路GAN的思想運用在了網路表示學習中,是一個很novel的idea。具有很好的啟發作用,同時也意識到文章的不足之處。

  1. 文章設計的生成器無法作用在有權圖上,要針對有權圖的圖表示學習需要重新設計生成器,不具有一般性。
  2. 可能是資料集選取的原因,GraphGAN的實驗效果作用於節點分類任務中相較於其他的baseline演算法雖然有提升,但是效果確實還是不夠好。