Network Embedding 論文小覽

來源:互聯網
上載者:User

標籤:ica   ati   sam   世界   分類   pap   說明   reference   區分   

Network Embedding 論文小覽

轉自:http://blog.csdn.net/Dark_Scope/article/details/74279582,感謝分享!

自從word2vec橫空出世,似乎一切東西都在被embedding,今天我們要關注的這個領域是Network Embedding,也就是基於一個Graph,將節點或者邊投影到低維向量空間中,再用於後續的機器學習或者資料採礦任務,對於複雜網路來說這是比較新的嘗試,而且取得了一些效果。 
本文大概梳理了最近幾年流行的一些方法和論文,paper主要是來自thunlp/NRLPapers 這個List,並摻雜了一些其他論文。大概看了一遍,簡單總結一下,希望對大家有所協助,如有不嚴謹的地方,還望指正。 
拋開一些傳統的流形學習方法不談,下面大概以這個outline組織(區分並不嚴格): 

DeepWalk(Online Learning of Social Representations.)

DeepWalk是KDD 2014的一篇文章,彼時word2vec在文本上的成功應用掀起來一波向量化的浪潮,word2vec是根據詞的共現關係,將詞映射到低維向量,並保留了語料中豐富的資訊。DeepWalk演算法思路其實很簡單,對圖從一個節點開始使用random walk來產生類似文本的序列資料,然後將節點id作為一個個「詞」使用skip gram訓練得到「詞向量」。 
思路雖然簡單,背後是有一定道理的,後面一些工作有證明這樣做其實等價於特殊矩陣分解(Matrix Factorization)。而DeepWalk本身也啟發了後續的一系列工作。

node2vec(Scalable Feature Learning for Networks)

node2vec在DW的基礎上,定義了一個bias random walk的策略產生序列,仍然用skip gram去訓練。 
論文分析了BFS和DFS兩種遊走方式,保留的網路結構資訊是不一樣的。 
DeepWalk中根據邊的權重進行隨機遊走,而node2vec加了一個權重調整參數α:t是上一個節點,v是最新節點,x是候選下一個節點。d(t,x)是t到候選節點的最小跳數。 
通過不同的p和q參數設定,來達到保留不同資訊的目的。當p和q都是1.0的時候,它等價於DeepWalk。 

MMDW(Max-Margin DeepWalk Discriminative Learning of Network Representation)

DW本身是無監督的,如果能夠引入label資料,產生的向量對於分類任務會有更好的作用。 
之前提到過有證明DW實際上是對於一個特殊矩陣M的分解, 
這篇文章將DeepWalk和Max-Margin(SVM)結合起來,從損失函數看是這兩部分組成: 
1.訓練的時候是分開最佳化,固定X,Y最佳化W和ξ,其實就是multi class 的 SVM。 
2.固定W和ξ最佳化X,Y的時候稍微特殊一點,算了一個biased Gradient,因為損失函數裡有x和w的組合。 
這樣在訓練中同時最佳化discrimination和representation兩部分,達到一個好的效果。 

TADW(Network Representation Learning with Rich Text Information.)

文章裡有DeepWark等同於M的矩陣分解的簡單證明,而在實際中,一些節點上WangWang會有文本資訊,所以在矩陣分解這個架構中,將文本直接以一個子矩陣的方式加入,會使學到的向量包含更豐富的資訊。 
文本矩陣是對TFIDF矩陣的SVD降維結果。 

GraRep(Learning Graph Representations with Global Structural Information.)

沿用矩陣分解的思路,分析了不同k-step(random walk中的步數)所刻畫的資訊是不一樣的: 

所以可以對每一個step的矩陣作分解,最後將每個步驟得到的向量表示拼接起來最為最後的結果。論文中有完整的推導過程,這裡就不贅述了。

LINE(Large scale information network embedding)

LINE分析了1st order proximity和2nd order proximity,其中一度相似性就是兩個點直接相連,且邊權重越大說明兩個點越相似,如中的6和7;而二度相似性則是兩個點之間共用了很多鄰居,則它們的相似性就很高,如的5和6。 
文章中非常簡單的方式構造了一個目標函數,能同時保留二者的資訊。以一度相似性為例,節點i和j相連的經驗機率就是和歸一化後的權重,即p^1(i,j)=wij/W,而通過向量計算這個機率值是p1(i,j)=11+exp(−uTiuj),目標函數就是讓這兩個分布距離最小,選擇KL散度作為距離衡量函數就得到了最後的損失函數O1。 
其中還有個最佳化的trick,edge-sampling algorithm:因為邊的weight差異很大,直接用SGD效果不好,所以有個edge的採樣,按照邊的weight採樣,然後每條邊當做binary的算。 

NEU(Fast Network Embedding Enhancement via High Order Proximity Approximation)

這一篇是最近發表在IJCAI上的文章,說實話是一個很取巧的方式,文章分析了一些可以視為矩陣分解的embedding方法: 

得到一個結論,如果矩陣分解f(A)=RC能更精確地包括高階資訊,效果是會更好的,但帶來的結果是演算法的計算複雜度更高。 
所以文章採用一種很巧妙的方式,在(低階low-order)矩陣分解的結果上更新,以獲得更高階(higher order)的分解結果,使最後的向量效果更好,這個方法是可以適用在多個演算法中的。 
論文中證明了一個bound來支援這樣的更新方式。 

Extra Info


前面我們看的絕大多數只考慮了網路結構,但真實世界中的節點和邊往往都會含有豐富的資訊。如,在Quora情境中,每個使用者自身會有一些label和文本,在一些情境裡甚至邊也會帶上一些label,這些資訊對於網路的構建其實是至關重要的,前面我們也看到了TADW將節點的文本資訊納入訓練,下面羅列一些這個方向相關的論文。

CANE(Context-Aware Network Embedding for Relation Modeling)

首先考慮了節點上的Context,主要是文本,學習對每個節點產出Vt(文本向量)和Vs(結構向量) 
Context-Free的話Vt是固定的,採用一個CNN的流程產出,如左邊部分:對於一個文本,每個詞的向量組成一個矩陣,然後以l為視窗在d個kernel上進行CNN的卷積操作,得到的結果按行取max來獲得最後的文本向量。 
Context-Aware的話引入了Attention機制,會考慮邊e=(u,v)的tu和tv,通過下右圖的流程產出Attention權重,再進行類似Pooling的操作(最後一步),這樣節點在和不同的點串連的時候其作用是不一樣的。 
A是引入的待訓練參數,物理意義可能為目標維的空間變換。 

CENE(A General Framework for Content-enhanced Network Representation Learning)

這篇文章將文本轉化為特殊的節點,這樣就有兩種連邊,(節點-文檔)以及(節點-節點),對兩種邊一起建模,損失函數包括Lnn和Lnc,其中文本拆分為更細的句子,而句子有三種方式去embedding,下面有列舉。 
和很多方法一樣,Loss的減數部分是負採樣出來的。 

Trans-Net(Translation-Based Network Representation Learning for Social Relation Extraction)

這篇paper也是最新2017在IJCAI上發表的,引入了機器翻譯的思想,將Translation機制應用到中間,通過一個Autoencode對邊上的labels(構成一個向量)進行編碼,然後將節點和edge映射到同一個空間作加減。認為在這個空間裡u+l=v’(每個節點有兩個向量表示,分別指示在邊的「起點」和「終點」時,用’進行區分) 
這樣預測的時候,簡單用v’-u 就可以得到l,再用AE的解碼器部分還原為element-binary的label set,就得到預測結果。 

Deep Learning

最近幾年深度學習如火如荼,嚴格來說,類似word2vec其實屬於淺層模型,但你也可以用一些複雜的深度模型去獲得embedding結果,這個思路是將網路序列化,借用NLP的方法去訓練。 

我們知道在映像上做CNN就是對臨接的像素進行卷積操作,那麼如果直接對圖作CNN呢?這就是GCN的思路,但這裡並不詳細介紹GCN,看應該能明白它是怎麼去做的。 
還有一些工作將深度學習應用到了Network Embedding上面,之前羅列的比如CANE和Trans-Net都有這樣的結構,特別是Trans-Net使用的Autoencoder就是一個神經網路。 
深度學習有很多工作都是基於一整個Graph去做的,比如判斷一個Graph的某些屬性,本文主要是列舉對節點進行embedding的方法。

SSC-GCN(Semi-Supervised Classification with Graph Convolutional Networks)

https://github.com/tkipf/gcn 
http://tkipf.github.io/graph-convolutional-networks/

和DW完全不同的思路,引入了一個spectral convolutions操作,不過目前看起來卷積是在整個圖上做的,還沒有支援mini-batch,最後目標是單個節點的分類和表示學習。 
在之前的一些工作中,NN for graph都是對圖層級做的,做分類等等,針對整個sub-graph,但這裡本質上還是對單個節點。 

這裡的操作是這個意思:比如說X中每一行是一個圖節點的input feature表示,那麼通過A和W可以一次次改變這個矩陣的列數,其實就是在做「全串連」操作,只是A可能是稀疏的(轉移矩陣),所以可以看成是某種卷積操作,每一步將與之相連的節點的權重資訊匯合到輸出的這一行中。 

最後定義了一個semi-supervised的東西,可以將部分節點的label也作為loss的一部分,所以整體的損失函數是: 

其中L0是有監督的部分,後面的Lreg實際上包含了邊的資訊,其中A是描述了所有邊資訊的adjacency matrix(or some function thereof). 
比較有意思的是,這個網路甚至隨機初始化,不訓練,得到的結果分布都比較清晰(不同community的點最後會映射得比較接近),論文解釋這個計算本身的邏輯有點像Weisfeiler-Lehman演算法。

SDNE(Structural Deep Network Embedding)


中間有一部分邏輯和TransNet有點類似,它是對節點的描述特徵向量(比如點的「鄰接向量」)使用autoencoder編碼,同時也對非0項加重懲罰了(沒有串連並不代表一定沒有,可能只是還沒發生,所以這裡對此進行了協調):取autoencoder中介層作為向量表示,以此來讓獲得2nd proximity(相似鄰居的點相似性較高,因為兩個節點的「鄰接向量」相似,說明它們共用了很多鄰居,最後映射成的向量y也會更接近)。 
對於1st proximity,通過評估有連邊的點的vector距離來納入考慮。 
這兩部分都納入最後的損失函數,這裡的Lreg是正則。 
不然過這個計算要傳入「鄰接向量」進去的話,對於節點特別多的情況是個負擔。

Heterogeneous

真實世界中的網路毫無疑問是異構的(Heterogenous),比如交易中,涉及到的節點有人、商品、店鋪等等;更一般的比如知識圖譜中有不同類型的節點和邊,而前面描述的絕大部分工作都是在同構網路(Homogenous)的基礎上進行的,所以瞭解異構網路的embedding對真正在實際中的應用會有協助。

PTE(Predictive Text Embedding through Large-scale Heterogeneous Text Networks.)


這篇文章的主要意圖是將predictive的資訊在最後的embedding提現出來,但不要像CNN/RNN模型那樣直接嵌套一個複雜的預測模型。所以他分別定義了三種network,word-word,word-document,word-label。都搞成類似二部圖的樣子,然後將各自的損失函數匯總到一起(形式都是類似的,定義經驗機率和目標機率求KL距離),就是這麼簡單粗暴。

HINES(Heterogeneous Information Network Embedding for Meta Path based Proximity)


這篇文章對多元異構網路(知識圖譜)進行了embedding,圖中有不同類型的點,不同類型的連邊。引入了meta path的概念,就是不同點之間的連邊是按照一定的元資訊連起來的,比如A1(Author)-P1(Paper)-A2(Author)這樣一個meta path表示的資訊可能就是A1和A2之間合作了一篇paper,這個概念可以很好地推廣到很多情境。 
一般在計算proximity的時候都是按照1st order這樣的思路來的,但引入了meta path概念的時候,如果A和B在一條meta path的兩端,那麼它們的proximity應該更大,當然這也取決於這條元路徑本身的資訊量。 
文章中選擇了所有長度小於l的元路徑,因為一般來說路徑越長其資訊量越少。 
最後的損失函數同樣是刻畫分布的距離。

總結

Network Embedding是最近幾年還是有蠻多工作的,這裡只列舉了一些。雖然NE從NLP裡借鑒了很多的思想,但二者還是有一些不同的,a.如果以節點id作為「詞」,那麼對於一些真實的網路來說,可能會非常稀疏,而且節點的數量會非常大,上億是很正常的,這對上面一些方法的應用有一些限制,你可以想象存這樣大的一張此表需要多大的記憶體。b.異構網路如何能夠更好地被訓練,是一個很有挑戰的事情;同時節點和邊上往往有著各種豐富的資訊,如何能夠將這些資訊都學到結果向量中,也是很有意思的。

本文並沒有非常詳細地去講每篇論文,只是記錄了主要思路,有興趣可以去讀原始論文。

Reference

【0】上面每一個子標題括弧中的內容就是對應的論文題目。 
【1】THUNLP_NRLpapers 
【2】《Representation Learning with Networks》by Jure Leskovec.slide_01

Network Embedding 論文小覽

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.