論文名稱:Adversarial Network Embedding

這篇文章指出現有的一些網路表示學習方法具有這樣的缺點:沒有給學習的表示施加約束,導致學到的網路表示不具有魯棒性。因此本文提出用GAN來學習網路表示,提取網路的隱藏特徵,並且最主要的目標是學習到穩定(stable)、魯棒(robust)的表示。

本文提出的一種framework為Adversarial Network Embedding(ANE),主要由兩個方面構成:structure preserving component和adversarial learning component。前者用來提取網路的結構特徵,後者用來學習穩定魯棒的表示。

Introduction

現有的NE方法像DeepWalk、LINE、node2vec是利用網路中特有的結構特性,比如局部鄰居、一二階相似性、全局結構相似性或者其他高階相似性。將這些特性考慮進NE中,的確可以做出比傳統方法好的效果。

但是這些方法共同的問題就是沒有額外的約束,使得學出來的表示並不具備穩定和魯棒的特點,對雜訊敏感的表示當然不是好的表示。一種解決方案就是:denoising autoencoder(DAE);另一種解決方案則是現在比較火的GAN,GAN在結構化學習有很好的效果,同樣能夠處理雜訊問題。

於是本文提出了ANE,它由兩個部分組成:

  • structure preserving component反映網路的結構特徵。這部分本文還提出了一個DeepWalk的變種,用參數化的模型來取代DeepWalk所做的工作。
  • adversarial learning component學習穩定魯棒的表示。這部分由兩個網路構成,一個是Generator,一個是Discriminator,也是GAN的兩大組成成分。

Related Work

這部分提到了兩個相關:網路嵌入的方法和GAN

網路嵌入目前的工作可以分為三類:

  • 概率方法,代表有DeepWalk、LINE、node2vec等等,之前提過不做贅述。
  • 矩陣分解,代表有GraRep,之前也提過不做贅述。
  • 自編碼器,代表有SDNE。自編碼器將高維特徵映射到低維特徵,本質上就是一種降維的方法,與網路嵌入要做的事一樣。

GAN常常由兩個部分構成:

  • Generator(G):從某個初始分佈生成一堆數據,實際模擬的是某個分佈。
  • Discriminator(D):盡量將G生成的數據與真實數據分開。

兩者合起來要做的事情實際上是,讓G模擬的分佈與真實的分佈逐漸逼近。

ANE

首先明確整體的目標:學習出穩定魯棒的表示。

預處理一下,先算出一個矩陣X後面備用。

ANE框架的由兩部分構成:structure preserving component(SPC)和adversarial learning component(ALC)

第一部分是網路結構保持部分(SPC),它要做的就是生成包含網路結構特徵的網路表示。網路結構特徵包括節點的鄰居特徵、全局的結構相似性、一階二階乃至高階的相似性等等。事實上與DeepWalk等模型的工作是一樣的,但又不能直接用DeepWalk。因為既然要後面要用GAN,那麼就得有G和D,如果用DeepWalk的話,沒有辦法構造G。

因此本文提出了一個DeepWalk的變種,最主要的區別是它可以通過參數控制,想辦法構造出一個 G(cdot) ,它可以直接生成網路表示,在訓練時不更新網路表示,而是更新G中的參數。

這個DeepWalk的變種叫Inductive DeepWalk(IDW)。

它的優化函數長這樣:

第二部分就是對抗學習方法( ALC)了。文章受對抗自編碼器的影響,希望學習出來的網路表示能符合預期的一個先驗分佈。那麼D要乾的工作就是,將G生成的網路表示作為負例,從先驗分佈 p(z) 中生成的向量作為正例,來想辦法區分這兩類樣本。GAN做的事情實際上就是降低兩個分佈的某種距離度量,因此用這種對抗學習學習出來的G生成的網路表示在分佈上會越來越接近於預期的先驗分佈 p(z) 。這種學出來的網路表示就能使學出來的網路表示更具有穩定的特徵。

優化目標也分為兩塊,一部分是G和F分別生成的節點表示向量要符合skip-gram模型的優化目標,也就是至少G生成的是網路表示,能反應網路的特點;另一部分是G和D的聯合形成的GAN要滿足最大最小的優化目標,目標是讓G學習到的網路表示的分佈能儘可能接近先驗分佈 p(z)?

G和D的優化函數分別如下:

總體的結構框架如下:

Experiments

嘗試的數據集有:Cora、Citeseer、Wiki。

在可視化任務上的效果如下:

  • DeepWalk在中間有混合不清的情況。
  • LINE在紅黃藍交界的地方也有混合的情況,而且本來是3類的LINE聚成了6類。
  • node2vec和IDW聚類數量正確,但是node2vec藍綠的界限不清,IDW紅綠也有一些混合。
  • AIDW完勝所有其他baseline。聚類數量正確,界限清晰。

在節點分類任務上的效果如下:

  • 在Cora和Wiki上:IDW約等於DeepWalk;在Citeseer上:IDW<DeepWalk;但是在所有數據集,所有訓練比率上,AIDW都是大贏家。
  • 在Citeseer上:ADAE比DAE有略微提升;在Cora上:ADAE略好;在Wiki上:大致相同。因此將對抗訓練方法融合到DAE中提升效果不大,原因可能是DAE已經能學到穩定魯棒的表示了。
  • node2vec在平均水平上比DeepWalk、LINE、GraRep都要好,但是AIDW完勝所有baseline。

推薦閱讀:

相關文章