網絡表示學習總結


我的GitHub博客:咖啡成癮患者


最近看了paperweekly的兩次關於網絡表示學習的直播,塗存超博士與楊成博士講解了網絡表示學習的相關知識。本文將網絡表示學習中的一些基本知識,結合自己的一些粗淺的理解,整理記錄下來。

網絡的鄰接矩陣表示

用鄰接矩陣是最直觀的對網絡數據的表示方法。在一個N個節點網絡中,一個節點可以用N維向量來表示。

對一個N個節點的網絡,用N*N的矩陣來表示一個網絡,兩個節點之間有邊,則在對應的位置標記1(或者邊的權值)。

下圖所示爲一個簡單無向圖的鄰接矩陣表示,其中矩陣是沿對角對稱的。

若圖爲一個無向圖,鄰接矩陣不一定沿對角對稱。

鄰接矩陣表示一個圖,可以將矩陣的每一行,看做一個節點對應的向量,這種表示方法與文本表示中詞的One-Hot表示方法。這種表示方法能夠完整地表示圖數據,準確地表示網絡中的鏈接關係,但是弊端也很明顯,對於一個N個節點的網絡,表達這個網絡需要N*N的矩陣,並且矩陣過於稀疏,不利於存儲大規模網絡。

網絡的分佈式表示

分佈式表示(Distributed Representation)最早是由Hinton在1986年提出的一種詞向量的表示方法,其核心思想是將詞向量映射到一個K維的向量空間中,這樣每個詞可以用K維向量來表示。大名鼎鼎的Word2vec就是一種對詞的分佈式表示方案。

同理,將這個概念應用於網絡數據中,即網絡的分佈式表示,網絡中的每個節點對應文本中的每個單詞,其表示過程就是將每個節點映射到一個K維的向量空間(通常情況下,K遠小於網絡中節點個數),用K維向量來表示每個節點。事實上,我們可以將這個過程理解爲對網絡結點的向量表示進行降維的過程,對於一個N個節點的網絡,鄰接矩陣表示法用N維向量來表示一個節點。但通過這樣的降維過程,僅使用K維向量就可以表示一個節點,並且節點向量還能包含一定的“語義”信息,例如連接緊密的結點向量的距離也很相近。這樣就將一個高緯向量表示爲低維稠密的實值向量。

通常情況下,我們通過對每個節點的向量進行一定的限定,從而給定一個優化方向進行優化,得到一個最優化的結果,即爲節點的表示向量。優化目標的設計,往往希望能夠儘可能多的將網絡信息通過向量表示出來,並使得到的向量具有一定的計算能力。在這個目標的前提下,在優化的過程中,往往會將網絡的結構、節點的信息、邊的信息等“嵌入”到節點向量中,因此,我們也常常將網絡的表示學習過程叫做網絡嵌入(Network Embedding)。通過設計特定的優化目標,我們可以將節點的不同信息嵌入到向量中,將節點映射到不同的低維向量空間。

下圖所示的是Deepwalk1論文中所展示的節點向量,左圖爲原始網絡,右圖爲將其映射到二維向量空間後的散點圖,我們可以從圖中看到,原始圖中聯繫緊密的結點在映射到二維向量空間後距離較近,相同顏色的結點在原始圖中聯繫緊密,在二維向量空間中分佈較爲密集。

網絡表示學習的經典工作

Deepwalk

Deepwalk2是2014年發表在KDD上的一篇論文,這篇文章受到了word2vec3的啓發,文章的思路就是對網絡應用了word2vec的SkipGram模型。SkipGram模型原本是針對文本的,或者說是針對有序序列的,所以文章先應用隨機遊走得到一系列的網絡中有序的節點序列,這些節點序列類似於文本中的句子,將這些“句子”跑SkipGram模型,從而得到“句子”每個“單詞”的向量表示。過程如下圖所示:

Deepwalk的隨機遊走過程事實上是對網絡進行採樣的過程,將網絡中的節點通過隨機遊走的方式表示出來,兩個節點聯繫越緊密,在一個隨機遊走過程中共現的可能性越大,反之若兩個節點根本不連通,則一個隨機遊走過程是不可能將兩個節點共現。因此deepwalk能很好的將網絡的連接情況進行表達,且實驗證明在網絡規模較大時具有很高的效率。

LINE

LINE4是2015年提出的一中網絡表示學習方法,該方法提出了一階相似度與二階鄰近度的概念,基於這兩個鄰近度,提出了優化函數,得到的最優化結果即爲每個節點的向量表示。

該方法的優化過程可以理解爲基於兩個假設:

  1. 直接相連的節點表示儘可能相近(一階鄰近度),如圖中6,7。文中兩個節點的聯合概率表示其一階鄰近度:

    p1(vi,vj)=11+exp(u⃗ Tiu⃗ j)

  2. 兩個節點公共的鄰居節點越多,兩個節點的表示越相近(二階鄰近度),如圖中5,6。文中用兩個節點的條件概率表示其二階鄰近度:

    p1(vj|vi)=exp(u⃗ Tju⃗ i)|V|k=1exp(u⃗ Tku⃗ i)

node2vec

node2vec5是2016年提出的一種方法,該方法在deepwalk的基礎上進行了優化。deepwalk中的隨機遊走過程,實際是就是一種簡單的深搜過程,每次隨機隨出一個與當前節點直接相連的節點作爲後繼節點,這種方法雖然能夠保證採樣到網絡中的全局信息,但是對於該節點爲中心的局部信息往往不能很好的進行採樣。node2vec改進了這個隨機遊走的過程,它將廣度優先搜索與深度優先搜索相結合。

node2vec的隨機遊走是一個參數控制的隨機遊走,不同於deepwalk的隨機遊走,當前節點到後繼節點的概率並不是完全相等的。例如下圖所示的情況,v爲隨機遊走的當前節點,它的前驅節點爲t,那麼下一步需要判斷v相連的下一個節點,以便進行進一步的遊走,這時與其相連的節點的類型有三種:一種是t,v的前驅節點;第二種是x1 ,不僅與v相連,還與其前驅節點相連;第三種是x2x3 ,不是v的前驅同時也不與其前驅相連。

如果節點向第一種節點遊走,則返回前驅節點;向第二種節點遊走,則爲廣搜的過程;向第三種節點遊走則爲深搜的過程。爲了控制廣搜與深搜,因此設計了參數pq ,通過這兩個參數計算出偏移a ,則真正的遊走概率爲原始概率的基礎上乘上a 得到。通過調整這兩個參數,可以控制廣搜和深搜的程度。所以deepwalk中的隨機遊走過程,就是一個p=1q=1 的node2vec。

網絡表示學習的相關論文

塗存超博士在github上整理了一些相關論文,我就直接拿來主義了,鏈到塗存超博士的github上。

Must-read papers on network representation learning (NRL)/network embedding (NE)


  1. Perozzi B, Al-Rfou R, Skiena S. Deepwalk: Online learning of social representations[C]//Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014: 701-710.
  2. Perozzi B, Al-Rfou R, Skiena S. Deepwalk: Online learning of social representations[C]//Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014: 701-710.
  3. Mikolov T, Sutskever I, Chen K, et al. Distributed representations of words and phrases and their compositionality[C]//Advances in neural information processing systems. 2013: 3111-3119.
  4. Tang J, Qu M, Wang M, et al. Line: Large-scale information network embedding[C]//Proceedings of the 24th International Conference on World Wide Web. International World Wide Web Conferences Steering Committee, 2015: 1067-1077.
  5. Grover A, Leskovec J. node2vec: Scalable feature learning for networks[C]//Proceedings of the 22nd ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2016: 855-864.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章