乾貨 | 論文解讀:GAN在網路特徵學習中的應用

PaperWeekly發表於2018-01-26

編者按:近年來,對網路特徵學習的研究逐漸興起,很多人也對其可能的應用產生了興趣。近期,上海交通大學-微軟亞洲研究院聯合培養博士生——王鴻偉應邀參加了PaperWeekly優質論文線上直播分享活動,帶大家回顧了網路特徵學習的研究進展,並以第一作者的身份解讀了上海交通大學、微軟亞洲研究院和香港理工大學在AAAI 2018上發表的論文GraphGAN: Graph Representation Learning with Generative Adversarial Nets,該工作引入生成對抗網路(GAN)的框架,利用生成器和判別器的對抗訓練進行網路特徵學習。最後,他還簡單介紹了網路特徵學習在情感預測和推薦系統領域的應用。一起來看看吧!文章轉載自公眾號“PaperWeekly”。

分享實錄回放

以下是視訊文字版整理內容:

Outline

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

上圖底部是三份比較有價值的資料,第一份是Graph Embedding的Survey,第二份是一個論文清單,其中包含近五年來較為經典的Network Representation Learning相關論文。第三份是我寫的關於推薦系統和網路表示學習的文獻綜述,歡迎大家參考。

關於GRL

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

首先簡單介紹一下Graph Representation Learning的定義,中文可以稱之為圖特徵學習或者網路特徵學習。其主要目的在於,將圖中每一個節點都對映到一個低維向量空間,並且在此空間內保持原有圖的結構資訊或距離資訊。

以上並非官方權威定義,Graph Representation Learning目前沒有任何官方定義或名字,它也可以被稱作Network Embedding、Graph Embedding或GRL。

我們來看上圖中的簡單例子,左圖有三個節點和三條邊,其中的數字表示各邊的權值weight,我們通過GRL將其對映到一個二維空間中。可以發現,如果兩個點之間的weight越大,那麼它們之間的距離就越近。這就是GRL的精髓所在,即在低維空間中保持原有圖的結構資訊。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

Graph Representation Learning的應用相當廣泛,它可以被用於鏈路預測、 節點分類、推薦系統、視覺、知識圖譜表示、聚類、Text Embedding以及社會網路分析。

GRL分類方法

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

我們將GRL的方法按照三種不同分類來進行簡單介紹。 

首先按輸入進行分類,既然是GRL,那麼其輸入肯定是一張圖,但圖的種類有很多:

第一種叫同構圖,即圖中的節點和邊都只有一種,比如引用網路,其中的節點表示每篇paper,邊表示引用關係。同構圖又可以根據是否有加權進行細分,即其邊是否權值、邊是否有向,以及邊是否有正負號。

第二種是異構圖,即網路中的節點和邊不止一種,一般分為兩種情況:

1. 多媒體網路。比如有的paper就考慮過一張圖具備影象和文字兩種節點,以及影象文字、影象影象和文字文字這三種邊。

2. 知識圖譜。圖中節點表示的是實體,邊表示的關係。每一個三元,HRT都表示頭節點H和尾節點T有關係R。由於關係R可以有很多種,因此KG也屬於一種異構圖。 

第三種是Graph with side information,side information即為輔助資訊。這種圖是指除了邊和點之外,節點和邊都會帶有輔助資訊,比如邊和點都有label,邊和點都有attribute,或者note有feature。 

它們的區別在於label是類別型的,attribute可以是離散的,也可以是連續的,而feature就可能是文字或影象等更復雜的一些特徵。 

第四種是Graph Transformed from non-relational data,即從非關係型資料中轉換成的圖,一般是指在高維空間中的一些資料。這通常是早期GRL方法會用到的資料,其中最為典型的例子是稍後還將提到的流形學習,我們可以將這種方法理解為一種降維方法。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

按輸出內容我們也可以對GRL方法進行分類。 

第一種方法會輸出node embedding,即為每個節點輸出embedding,這也是最常見的一種輸出。我們前面說到的那些方法基本上都是輸出node embedding。 

第二種方法是輸出edge embedding,即為每個邊輸出embedding。這種輸出有兩種情況,一種是在KG裡面,我們會為每一個relation,也就是每條邊都有輸出。在link prediction的應用中,我們也會為每一條邊來輸出一個特徵,並在後續工作中將其作為邊的特徵來進行一些分類任務。 

第三種方法會輸出sub-graph embedding,也就是子圖的embedding,包括子結構或團體的embedding。

第四種是全圖的embedding,即為一個整圖來輸出embedding。如果我們對蛋白質、分子這類數量較多的小圖進行embedding,就可以對比兩個分子的相似性。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

第三種分類方法是按照方法來進行分類。

第一種方法是基於矩陣分解。一般來說矩陣分解包含奇異值分解和譜分解,譜分解就是我們常說的特徵分解,這種方法是比較傳統的方法。 

第二種方法是基於隨機遊走。這種方法盛名在外,我們後面會提到的Deep Walk就是基於隨機遊走的方法。 

第三種方法是基於深度學習。其中包括基於自編碼器以及基於卷積神經網路

第四種方法是基於一些自定義的損失函式。這其中又包括三種情況,第一種是最大化邊重建概率,第二種是最小化基於距離的損失函式,第三種是最小化 margin-based ranking loss,這種方法常見於KG embedding。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

上圖是我整理的GRL方法代表作。按照時間順序可將它們分為三類,第一類是傳統方法,包含PCA、LDA、MDS 等降維方法。

2000 年左右出現了一批較為經典的方法,包括ISOMAP同態對映,LLE區域性線性鑲嵌,LE拉普拉斯特徵分解

最近五年被提出的方法也有很多,我將它們分作四類,每類都和上文提到的按方法分類逐一對應。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

LDA線性判別分析是一種傳統的有監督降維方法。我們可以看到,右圖裡面有兩類點,有正號表示的一類和有負號表示的一類。

我們需要將二維的點對映到一維上去,LDA的目標在於讓這些投影相同類的點在投影過後,同類的點之間距離儘可能變近,即讓它們的協方差儘可能小,而不同類的點之間的距離儘可能遠。只有這樣,它才能在低維空間中對這些點進行分類或聚類操作。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

Locally Linear Embedding是一種典型的流形學習方法,它是指將高維空間中的輸入對映到低維空間,並且在低維空間中保持鄰居之間的線性依賴關係。

左下圖就是一個很典型的流形學習,流形指的是在高維空間中存在某些低維結構,比如說圖A很像一個瑞士捲,它其實就是一個典型的在三維空間中的二維結構。通過LLE我們將其展成一個二維結構。 

這種方法的目的在於保持高維空間中的鄰居資訊。其具體做法如下:對於每一個點Xi,首先需要確定其鄰居集合,然後再來計算Wik Wij這些引數。這些引數的意思是,我想用這些鄰居來重新構建Xi,這個會有唯一的解析解。在拿到W引數之後,我們再在低維空間中用W進行約束,學習得到低維的一個embedding。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

Word2vec的本質其實是word embedding,不是network embedding。但由於它對後續的network embedding 方法影響深遠,所以我們來簡單介紹一下。 

Word2vec中有一個skip-gram模型,這個模型的本質在於為每個詞得到一個特徵,並用這個特徵來預測周圍的詞。因此,其具體方法就是將概率最大化。這個概率是指,給定一箇中心詞WT,在以它為中心、視窗為T的範圍中的每個詞的概率。

這個概率實際上是使用softmax進行計算的。由於softmax開銷很大,我們通常會用negative sampling來進行代替。negative sampling是指為每個詞從整個詞表中選擇一些negative samples,把他們作為負樣本。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

Word2vec在Nerwork Embedding中有兩篇很典型的工作,分別是DeepWalk和Node2vec。這兩篇工作分別發表於KDD 14和KDD 16。

DeepWalk相當於random walk + word2vec。從圖中的每個節點出發,隨機進行random walk,從當前節點均勻、隨機地選擇下一個節點,然後再從下個節點均勻、隨機地選擇下一個節點。

這樣重複N次之後會得到一個path,這個path 就可以被當做一個sentence。這樣一來,就將問題完全轉換到了Word2vec 的領域。

大家可能會問,這個方法豈不是很簡單?不就是把Word2vec用到了network embeddding 嗎?

對的,就是這麼簡單。有時候research並不會過分強調你的方法有多新穎、數學有多花哨,而在於你能不能提出一種motivation夠強、動作夠快的方法。

Node2vec在DeepWalk的基礎上又做了改進。它把原來的random walk改成了biased random walk。

在DeepWalk裡,我們是均勻地選擇下一個節點。但在Node2vec裡,則是不均勻地選擇下一個節點。我們可以選擇模仿DFS不斷往圖的深處走, 也可以模仿BFS繞著一個點打轉。因此,Node2vec相比DeepWalk也就是新增了一個簡單改進。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

LINE的全稱是Large-scale Network Information Embedding。這篇文章發表於WWW 15。這個工作屬於我們之前提到的自定義損失函式,因為它定義了兩種損失函式,一種是一階的臨近關係,另一種是二級臨近關係。 

所謂的一階臨近關係就是指兩個點之間是否只有相連。在右圖中我們可以看到,點六和點七之間有邊相連,那就可以認為它們擁有一階臨近關係。 

二階關係是指兩個點的鄰居的相似度。右圖中點五和點六雖然沒有直接相連,但它們的鄰居是完全重合的,因此可以認為點五和點六的二階臨近關係很強。基於這樣一種臨近關係,LINE定義了兩個損失函式O1和O2,然後基於這兩個損失函式來進行network embedding 的學習。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

TransX表示一系列方法,X可以指代任何字母,這些方法都是基於KG embedding。KG embedding是指將KG中的每個entity和relation都對映到一個低維連續空間中,並且保持原來的圖結構資訊。比較經典的方法有TransE、TransH和TransR,統稱為基於翻譯的方法。

TransE思路很簡單,就是強制讓Head Embedding + relatioon embedding = tail embedding。換而言之,也就是把head加relation給翻譯成tail。由於這篇文章發表於NIPS 13,因此它後續又引出了一大波TransX的方法。大家可以去看上圖底部的這篇survey,至少有10篇左右。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

最後一篇是SDNE,全名為Structured Deep Network Embedding。這篇文章發表於KDD 15,其本質就是基於auto encoder的一種network embedding。 

儘管右圖看著比較複雜,其實它的思路非常簡單。作者設計了一個auto encoder,其輸入是每個點的鄰接向量。

損失一共有三項,第一項是重建損失,第二項是proximity loss term,意思是如果兩個節點有邊連線,那它們的embedding必須儘量接近,具體接近程度取決於它們的權重。weight越大,那麼對這項損失的懲罰力度就越大。第三項是正則化項。

GraphGAN

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

前文將Network Embedding的方法歸為三類,而我們在GraphGAN裡將其分為兩類,第一類叫生成式模型,第二類叫判別式模型。

生成式模型是指,假定在圖中存在一個潛在的、真實的連續性分佈 Ptrue(V|Vc)。對於給定的Vc而言,我們可以看到Vc跟四個節點相連線,圖中除了Vc之外還有五個節點。Ptrue(V|Vc)就是指在除了Vc之外其他節點上的分佈。

假設圖中對於每個Vc都有這麼一個分佈,那麼圖中的每條邊都可以看作是從Ptrue裡取樣的一些樣本。這些方法都試圖將邊的似然概率最大化,來學習vertex embedding。我們之前提到的DeepWalk和Node2vec都屬於生成式模型。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

判別式模型是指,模型試圖直接去學習兩個節點之間有邊的概率。這種方法會將Vi和Vj聯合作為feature,然後輸出的是edge的概率P(edge|Vi, Vj)。這種方法的代表作是SDNE,以及DASFAA 上的一篇PPNE。

這樣分類之後,一個很自然的想法是,判別式模型和生成式模型能否進行聯合。這兩者其實可以看作是一個硬幣的兩面,他們是相互對立又相互聯絡的。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

之前提到的LINE其實已經對此進行了嘗試。文中提到的一階關係和二階關係,其實就是兩個模型的不同目標函式

生成對抗網路自2014年以來得到了很多關注,它定義了一個game-theoretical minimax game,將生成式和判別式結合起來,並且在影象生成、序列生成、對話生成、資訊檢索以及domain adaption等應用中都取得了很大的成功。

受以上工作啟發,我們提出了GraphGAN,它是一個在網路生成學習中將生成模型判別模型加以結合的框架。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

接下來為大家介紹Mnimax Game。其中V是節點集合,E是邊集合,我們將N (Vc) 這個記號定義為Vc在圖中的所有鄰居,將Ptrue (Vc)定義成Vc的真實的連續性分佈。 

GraphGAN試圖學習以下兩個模型:第一個是G(V|Vc),它試圖去接近Ptrue (Vc)。第二個是D(V|Vc),它的目標是判斷V和Vc是否有邊。

因此,我們會得到一個two-player minimax game。這個公式是本文的關鍵所在,只有充分理解這個公式,才能繼續之後的理解。

在這個公式中,我們做了一個minimax 操作。在給定θD的情況下,我們試圖對其進行最小化,這個公式其實是對圖中每一個節點的兩項期望求和。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

下面來看生成器的實現和優化。在GraphGAN中,我們選了一個非常簡單的生成器,生成器D(V, VC) 就是一個sigmoid函式,它先將兩者的embedding做內積,再用sigmoid函式進行處理。對於這樣的實現,它的梯度自然也較為簡單。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

通過上圖可以看出,我們在每一步的迭代中,從Ptrue中sample出來了一些跟Vc真實相鄰的綠點,然後從G中又生成了一些跟Vc相連的藍點。我們將綠點作為正樣本,將藍點作為負樣本來訓練D,在得到D之後,再用D中的訊號去反過來訓練G。

這就是之前所說的policy gradient過程。我們不斷重複這個過程,直到生成器G和Ptrue極為接近。

在剛開始的時候,G相對比較差,因此對於給定的Vc而言,G sample的點都是一些離Vc很遠的點。隨著訓練的不斷進行,G sample的點會逐漸向Vc接近,到最後G sample的點幾乎都變成了真正跟Vc相鄰的點,也就是G和Ptrue已經很難被區分了。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

接下來,我們來討論一下G的實現過程。一種最直觀的想法是用softmax來實現G,也就是將G(v|VC)定義成一個softmax函式。

這種定義有如下兩個問題:首先是計算複雜度過高,計算會涉及到圖中所有的節點,而且求導也需要更新圖中所有節點。這樣一來,大規模圖將難以適用。 另一個問題是沒有考慮圖的結構特徵,即這些點和Vc的距離未被納入考慮範圍內。 

第二種方法是使用層次softmax,具體來說就是組織了一棵二叉樹,然後將所有節點都放在葉節點的位置,再將當前的Vc從根開始計算。

由於從根到每個葉結點都存在唯一路徑,因此這個計算可以轉換成在樹的路徑上的計算,即它的計算複雜度為logN ,N代表樹的深度。這種做法雖然可以簡化計算,但它仍然沒有考慮到圖結構特徵。

第三種方法是Negative Sampling。這種方法其實是一個優化方法,它並沒有產生有效的概率分佈,並且同樣沒有考慮圖的結構特徵資訊。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

在GraphGAN 中,我們的目標是設計出一種softmax方法,讓其滿足如下三個要求。第一個要求是正則化,即概率和為 1,它必須是一個合法的概率分佈。第二個要求是能感知圖結構,並且能充分利用圖的結構特徵資訊。最後一個要求是計算效率高,也就是G概率只能涉及到圖中的少部分節點。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

對於每個給定的結點 Vc,我們都需要以 Vc 為根來進行一次 BFS 寬度優先搜尋,然後得到一顆以 Vc 為根的 BFS tree。對於這棵樹上的每一個節點,我們都定義了一個 relevance probability。實際上是一個在 Vc 的鄰居上的 softmax。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

我們可以證明如下三個性質:

1. graph softmax的概率和是1;

2. 在graph softmax中,兩個節點在原圖中的距離越遠,那麼它們的概率也隨之越低。這其實就是充分利用了圖的結構特徵,因為兩個節點在原圖中的最短距離越遠,它們之間有邊的概率也會相應越低;

3. 在graph softmax的計算中,計算只會依賴於O(d log V)。d是圖中每個節點的平均度數,V是圖G中的節點大小。這個數字會明顯小於softmax的複雜度。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

我們還相應設計了一種生成策略。這種這種生成策略並不需要將所有概率都算出來後再進行sample,而是可以邊計算邊sample。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

GraphGAN的演算法如上,輸入是一些超引數,我們想輸出生成式模型G和判別式模型D。第3-12行是演算法的每一次迭代過程。在每一次迭代過程中,我們都重複用生成器來生成s個點,並用這些點來更新θG的引數

隨後,再重複構造正負樣本來訓練D,這樣做是出於穩定性的考慮。因為我們知道GAN的訓練穩定性是一個重要問題。

實驗

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

我們的實驗資料集一共是如上五個。Baseline選用的是DeepWalk,LINE,Node2vec和Struc2vec。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

我們將GraphGAN用到了如下三個測場景中,第一個是link prediction,預測兩個點之間是否有邊的概率。圖 4展示的是GraphGAN的學習曲線,對於生成器而言,在訓練大概十輪之後就很快趨於穩定,並且後續一直保持效能。

對於D來說,它的效能是先上升,之後出現緩慢的下降。這和我們之前所描述的 GAN 框架也是相吻合的。表 1展示了GraphGAN在兩個資料集上都得到了最好的結果。

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

第二個測試場景是Node Classification,在這個場景中我們想對節點進行分類,我們用的資料集是BlogCatalog和Wikipedia。在這樣的資料中,我們的方法取得了最好的效果。 

第三個測試場景是推薦。所用的資料集是MovieLens,我們的方法也取得了最好的效果。

總結

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

本文提出的GraphGAN是一種結合了生成模型判別模型的框架。其中生成器擬合Ptrue,判別器嘗試去判別兩個點之間是否有邊。

G和D實際上是在進行一個minmax game,其中G試圖去產生一些假的點。這些假的點不能被D所判別,而D試圖去將真實值跟假的點分別開來,以避免被G所欺騙。

此外,我們還提出了一種Graph Softmax作為G的實現,克服了softmax和層次softmax的缺陷,具備三個良好性質。

GRL的其他應用

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

DKN是我們發表在WWW 2018上的論文,它提出了一個可用於新聞推薦的deep knowledge-aware network。在DKN中,我們將KG中的entity embedding和word embedding在一個CNN框架中加以結合,並且提出了一種attention based點選率預測模型。 

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

乾貨 | 論文解讀:GAN在網路特徵學習中的應用

第二個應用是SHINE,這篇論文發表於WSDM 2018。它的目的在於預測微博使用者對名人明星的情感。我們提出了一種基於自編碼器的框架,這個框架其實類似於SDNE,將它應用於三者並加以結合進行情感預測。

相關文章