KDD 2016 | node2vec:Scalable Feature Learning for Networks
目錄
- 前言
- Abstract
- 1.Introduction
- Present work
- 2.Related Work
- 3.Feature Learning Framework
- 3.1 Classic search strategies
- 3.2 node2vec
- 3.2.1 Random Walks
- 3.2.2 Search bias α\alphaα
- 3.2.3 The node2vec algorithm
- 3.3 Learning edge features
- 4.Experiments
- 4.1 Case Study: Les Misérables network
- 4.2 Experimental setup
- 4.3 Multi-label classification
- 4.4 Parameter sensitivity
- 4.5 Perturbation Analysis
- 4.6 Scalability
- 4.7 Link prediction
- 5.Discussion and Conclusion
前言
題目:node2vec:網絡的可拓展特征學習
會議:KDD2016
論文地址:node2vec: Scalable Feature Learning for Networks
本文將解讀斯坦福大學的Aditya Grover和Jure Leskovec在KDD2016上發表的論文《Scalable Feature Learning for Networks》。該論文提出了一種高效的網絡的可拓展特征學習方法–node2vec。本篇論文是北郵計算機學院大數據組2021年夏令營的考核論文,考核方式為:面試前一天告知論文名稱,一天準備時間,面試中考察基本理論和實驗。
本文實驗很多,所以全文略長。
Abstract
網絡中節點和邊的預測任務都需要一個好的特征工程工作。 目前的特征學習方法不足以表達網絡中觀察到的連接模式的多樣性。
因此,本文提出了node2vec方法:一種用于學習網絡中節點的連續特征表示的算法框架。在node2vec 中,可以學習到節點到低維特征空間的映射,以最大化保留節點網絡鄰域的可能性。
node2vec的核心在于定義了一個節點網絡鄰域的靈活概念,并設計了一個有偏差的隨機游走過程,這有效地探索了不同的鄰域。
1.Introduction
網絡分析中許多重要的任務都涉及到了對節點和邊的預測。
在一個節點分類任務中,我們可以預測該網絡中某個節點最有可能的標簽。比如在社交網絡中,我們可以預測某個用戶可能感興趣的對象;又或者在蛋白質-蛋白質網絡中,我們可以預測蛋白質的功能標簽。
如果是鏈接(邊)預測,我們可以預測網絡中兩個節點是否應該相連。比如社交網絡中預測兩個用戶是否是朋友關系。
顯然,任何有監督的機器學習算法都需要一組特征。在網絡預測問題中,這意味著我們需要為節點和邊構造一個特征向量表示。 典型的方法是基于專家知識來手動構造,但顯然這是沒法在不同的預測任務中推廣的。
另一種方法是通過解決一個優化問題來實現特征表示。然而,目前的技術無法很好地定義和優化一個合理的目標來實現網絡中可伸縮的無監督特征學習。
經典方法如線性和非線性降維技術,有很大局限性:
- 如主成分分析、多維擴展等都涉及到矩陣的特征分解,這在現實生活中的大數據來說,計算代價很大。
- 此外,采用傳統方法學到的特征在具體任務中的表現也比較差。
PCA的數學過程可以參考:降維基礎知識(樣本均值、樣本方差、中心矩陣)與PCA(最大投影方差,最小重構代價,SVD分解)
除了傳統的方法,我們還可以設計一個優化目標,以尋求保存節點的局部鄰域,該目標可以通過SGD來進行優化。但這種方式依賴于一個嚴格的網絡鄰域概念,這導致這些方法在很大程度上對網絡特有的連接模式不敏感。具體來說,網絡中的節點可以根據其所屬的社區進行組織(即同質性);在其他情況下,可以基于網絡中節點的結構角色進行組織。
比如在圖1中:節點uuu和s1s_1s1?屬于同一個緊密結合的節點社區,而節點uuu和s6s_6s6?在兩個不同的社區中都扮演著中樞節點的角色。
Present work
本文的主要貢獻是定義了一個靈活的節點網絡鄰域概念。通過一個有偏隨機游走來有效地探索給定節點的不同社區,然后返回一個游走序列。
算法是靈活的,可以通過可調參數控制搜索空間,而不是像之前的方法那樣死板。
搜索什么?我們需要學到一個節點的特征向量表示,在此之前,我們首先要找到該節點的鄰域節點,這些節點可以通過某種方法來生成,而這也是本文的重點。
有了節點的特征表示后,通過將兩個節點的特征表示進行某種組合,就能這對節點的特征表示,也就是邊的特征表示,進而就能進行邊的預測。
本文的實驗部分主要進行了在網絡中兩個比較常見的預測任務:
- 多標簽分類任務:預測某個節點的標簽
- 鏈接預測任務:預測兩個節點間是否存在邊。
總結本文貢獻:
2.Related Work
這一節簡單回顧了網絡特征學習的相關工作。
無監督特征學習方法通常利用圖的各種矩陣表示的性質,特別是拉普拉斯矩陣和鄰接矩陣來進行特征學習。這點有在前文中提到,計算代價很大,并且效果也不是很好。
nlp中表示學習的最新進展為詞匯等離散對象的特征學習開辟了新途徑。Skip-gram模型旨在通過優化鄰域保持似然目標來學習單詞的連續特征表示。
skip-gram可以參考:論文閱讀:Efficient Estimation of Word Representations in Vector Space
對于基于節點和基于邊的預測任務,最近也有很多新的工作,這些體系結構使用多層非線性轉換直接最小化下游預測任務的損失函數,從而獲得較高的精度,但由于訓練時間要求高,可擴展性不強。
于是必須提出一種新的方法!!
3.Feature Learning Framework
這部分介紹node2vec的細節。
將網絡中的特征學習定義為一個最大似然優化問題。G=(V,E)G=(V,E)G=(V,E)表示網絡。f:V→Rdf:V \to R^df:V→Rd表示節點到其特征表示的映射函數,ddd是特征表示的維度,fff是一個大小為∣V∣×d|V| \times d∣V∣×d的矩陣,∣V∣|V|∣V∣是節點個數,也就是說每個節點的特征表示都是一個ddd維的向量。
對每一個節點uuu,定義Ns(u)N_s(u)Ns?(u)是通過鄰域抽樣策略SSS生成的節點uuu的網絡鄰域,Ns(u)N_s(u)Ns?(u)是原始圖中結點集VVV的子集。
將nlp中的skim-gram架構擴展到網絡學習中:優化以下目標函數(使一個節點u根據其特征表示(fff)觀察到網絡鄰域Ns(u)N_s(u)Ns?(u)的對數概率最大化)
Pr(Ns(u)∣f(u))P_r(N_s(u)|f(u))Pr?(Ns?(u)∣f(u))表示根據一個節點的特征表示來觀察其鄰域的對數概率。最大化該概率的意義是什么?個人理解:經過fff的映射后可以很好地保持各個節點間的鄰居概念。
為了使上述優化問題易于處理,作者給出了兩點假設:
很好理解!
在上述兩個假設下,公式1中的優化問題可以簡化為:
其中ZuZ_uZu?的表達式如下所示:
Zu=∑v∈Vexp(f(u)?f(v))Z_u=\sum_{v \in V}exp(f(u)\cdot f(v))Zu?=v∈V∑?exp(f(u)?f(v))
對于大型網絡,每個節點的ZuZ_uZu?的計算代價很高,因此使用負采樣來近似它。
那怎么得到Ns(u)N_s(u)Ns?(u)呢?下面將一一介紹!
3.1 Classic search strategies
對節點的鄰域進行采樣的經典策略主要包括兩種:BFS和DFS,如下所示:
給定一個源節點uuu,我們的任務是找到它的鄰域節點集合Ns(u)N_s(u)Ns?(u),假設我們需要采樣kkk個節點。
- BFS:只能采樣與uuu相鄰的節點,例如上圖中要尋找節點uuu的大小為3的鄰域集合,則可以選擇s1,s2,s3s_1,s_2,s_3s1?,s2?,s3?三個節點。
- DFS:按照距離源節點距離依次增加的順序進行采樣,比如說對于節點uuu可以選擇s4,s5,s6s_4,s_5,s_6s4?,s5?,s6?三個節點。
根據同質性假設,屬于相似網絡集群的高度互聯節點應該嵌入到一起,比如上圖中的uuu和s1s_1s1?,它們就屬于同一網絡集群。
而根據結構等價假設,在網絡中具有相似結構角色的節點應該嵌入到一起,比如上圖中的uuu和s6s_6s6?,雖然屬于不同網絡集群,但是它們都是相應集群的中樞節點,角色類似。
結構等價不同于同質性,它不強調節點間必須互連,它們可能距離很遠,這一點很重要。
BFS僅限于與源節點相連的節點,傾向于在初始節點的周圍游走,可以反映出一個節點的鄰居的微觀特性。
而DFS(可以重復訪問)一般會跑得離源節點越來越遠,可以反映出一個節點鄰居的宏觀特性。
兩種方法的局限都很明顯:BFS只能探索圖的很小一部分,而DFS移動到更大的深度會導致復雜的依賴關系,因為采樣節點可能遠離源,并且可能不太具有代表性。
3.2 node2vec
DFS和BFS都有各自的優缺點,于是本文提出了node2vec。下面介紹node2vec的細節。
3.2.1 Random Walks
給定一個源節點uuu,我們需要獲得一個采樣序列,序列長度為lll。節點由以下分布生成:
其中cic_ici?表示第iii個采樣的節點。可以看出,第iii個采樣的節點與第i?1i-1i?1個采樣的節點有著密切關系。πvx\pi_{vx}πvx?表示兩個節點間的非歸一化轉移概率,ZZZ是歸一化常數。
簡單解釋下上述分布: 當第iii個節點是vvv時(初始為uuu),我們采樣下一個節點時,先找出所有與vvv相連的結點,然后算出vvv與這些結點間的非歸一化轉移概率,隨后再進行采樣。
3.2.2 Search bias α\alphaα
上圖中,對于一個隨機游走,如果已經采樣了(t,v)(t, v)(t,v) ,也就是說現在停留在節點vvv上,那么下一個要采樣的節點xxx是哪個?作者定義了一個概率分布,也就是一個節點到它的不同鄰居的轉移概率:
簡單解釋一下:
- 如果ttt與xxx相等,那么xxx被采樣的概率是1/p1/p1/p
- 如果ttt與xxx相鄰,那么xxx被采樣的概率是1
- 如果ttt與xxx距離為2,那么xxx被采樣的概率是1/q1/q1/q
要注意這里ttt已經被采樣了!!
本文提出了返回參數ppp和出入參數qqq:參數用于控制隨機游走產生的方式。需要說明的是,距離取值只能為0,1,20,1,20,1,2。
其中返回參數p>max(q,1)p>max(q,1)p>max(q,1)(第二種或者第三種情況),選取下一個點時會盡量不往回走;如果p<min(q,1)p<min(q, 1)p<min(q,1)(更傾向于第一種情況)會傾向于圍繞某節點打轉。
出入參數q>1會傾向于在初始節點周圍節點之間跑,反映出BFS特性,如果q比較小會往遠處跑,表現出DFS特性。
3.2.3 The node2vec algorithm
看一下算法的參數:圖GGG、節點特征向量的維度ddd、每個節點生成的游走個數rrr,游走長度lll,上下文的窗口長度kkk,以及之前提到的p、qp、qp、q參數。
首先根據p、qp、qp、q和之前的公式計算一個節點到它的鄰居的轉移概率,此時形成了新的圖G′G^{'}G′。
具體的node2vec算法:為某一個節點uuu生成一個游走序列。描述如下:
3.3 Learning edge features
node2vec算法可以得到網絡中節點的特征向量表示。為了進行鏈路預測,也就是判斷兩個節點之間是否相連,我們需要將節點對表示成一個特征向量。具體做法就是在兩個節點特征向量的基礎上構造一個二元算子,比如平均,相加或者相減:
其中f(u)f(u)f(u)和f(v)f(v)f(v)表示兩個節點的特征向量表示。經過上述運算后,就能得到節點對(u,v)(u, v)(u,v)的特征向量表示。注意uuu和vvv間可以不存在邊。
4.Experiments
4.1 Case Study: Les Misérables network
網絡來自于小說《Les Misérables network》中的人物關系。該網絡有77個節點和254條邊,令d=16d=16d=16,即我們需要給每個節點找到一個長度為16的特征向量表示。
圖3中頂部那副圖對應p=1,q=0.5p=1,q=0.5p=1,q=0.5的情況。即p=1,q=0.5p=1,q=0.5p=1,q=0.5時算出每個節點的特征表示,然后根據特征表示進行聚類。在這個設置下,node2vec發現了小說中經常互動的角色集群。
為了發現哪些節點具有相同的結構角色,使用相同的網絡,設置p=1,q=2p= 1,q= 2p=1,q=2,使用node2vec獲取節點特征,然后根據獲得的特征對節點進行聚類,結果如圖3底部所示。藍色節點代表了小說中不同次要情節之間的橋梁,他們具有相似的結構角色。
4.2 Experimental setup
通過與下面三個特征學習算法對比來評估node2vec的性能:
- 譜聚類:一種矩陣分解方法,我們將圖G的歸一化拉普拉斯矩陣的前d個特征向量作為節點的特征向量表示。
- Deepwalk:通過模擬均勻隨機游動來學習特征表示,即node2vec中p=1,q=1p=1,q=1p=1,q=1的情況
- Line:在兩個獨立的階段學習d維特征表示。第一階段:通過類似于bfs的方法學習d/2維度。在第二階段,通過嚴格地采樣距離源節點2跳的節點來學習下一個d/2維。
node2vec的參數設置與DeepWalk和Line的典型值一致:d=128,r=10,l=80,k=10d= 128, r= 10,l= 80,k= 10d=128,r=10,l=80,k=10。
4.3 Multi-label classification
在多標簽分類設置中,每個節點被分配一個或更多的標簽,任務是預測節點的標簽。
有以下三個數據集:
- BlogCatalog:BlogCatalog網站上列出的博客的社會關系網絡。標簽表示通過博主提供的元數據推斷出的博主興趣。該網絡有10312個節點、333983條邊和39個不同的標簽。
- Protein-Protein Interactions (PPI):蛋白質關系預測。該網絡有3890個節點、76584條邊和50個不同的標簽。
- Wikipedia:一個詞匯共現網絡,出現在Wikipedia轉儲的前一百萬字節中。這些標簽代表了使用Stanford POS- tagger推斷出來的詞性(POS)標簽。該網絡共有4777個節點、184812條邊和40種不同的標簽。
節點特征表示被輸入到一個L2正則化的一對一邏輯回歸分類器,進而完成分類任務。
實驗結果:
表2使用Macro-F1分數來衡量性能。可以看出,node2vec在三個網絡的多標簽分類中都取得了最好的結果。
上圖給出了三個網絡中各個模型在不同數據分割情況下的效果:橫軸表示標記數據的比例,即測試集的比例。
可以發現:
4.4 Parameter sensitivity
在圖5a上圖中,使用50%分割(測試集占一半)來檢查參數pq的不同選擇如何影響BlogCatalog數據集上的性能。可以發現:node2vec的性能隨著出入參數p和返回參數q的減少而提高。 性能的提高可以基于我們期望在BlogCatalog中看到的同質性和結構等效性。
圖5a下圖這幅圖顯示了其它參數對性能的影響,即上文提到的r,l,kr,l,kr,l,k等。可以發現:增加它們都能提升性能,但會有飽和!
4.5 Perturbation Analysis
對于許多真實的網絡,我們無法獲得關于網絡結構的準確信息。于是本文分析了node2vec對于兩種與BlogCatalog網絡中的邊緣結構相關的不完全信息場景的性能。結果如圖5b所示:
圖5b上圖顯示了隨著缺失邊數的增加node2vec的性能,可以看到隨著數據集中缺失邊越來越多,性能是越來越差的,但是總體來說下降斜率比較平緩。
圖5b下圖顯示了隨著噪聲邊的增加node2vec的性能,可以看出噪聲越多,性能越差,但其下降速率在不斷變慢。
4.6 Scalability
為了測試可擴展性,做了如下實驗:
將圖的節點從100個增加到1000000個,node2vec的時間復雜度在線性增加。
4.7 Link prediction
在鏈接預測中,網絡去掉了一定比例的邊,而我們需要預測這些缺失的邊。
之前學術界關于鏈接預測的方案主要可以分為三類:啟發式方法(Heuristic Methods),Network Embedding的方法和圖神經網絡方法。
數據集:
- Facebook:在Facebook網絡中,節點代表用戶,邊代表任意兩個用戶之間的朋友關系。該網絡有4039個節點和88234條邊。
- Protein-Protein Interactions (PPI):在智人的蛋白質相互作用網絡中,節點代表蛋白質,邊代表一對蛋白質之間的生物相互作用。該網絡有19706個節點和390633條邊。
- arXiv ASTRO-PH:一個合作網絡,其中的節點代表科學家,如果兩位科學家合作寫過一篇論文,那么他們之間就會有一條邊。該網絡有18722個節點和198110條邊。
實驗結果如下表所示:
分析:最上邊的一部分為啟發式方法的預測效果,作為基準。
5.Discussion and Conclusion
原文中本部分敘述較多,大致總結一下:
總結
以上是生活随笔為你收集整理的KDD 2016 | node2vec:Scalable Feature Learning for Networks的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux信号量以及互斥体
- 下一篇: linux c 获取终端输出到文件,LI