《node2vec Scalable Feature Learning for Networks》阅读笔记
《node2vec: Scalable Feature Learning for Networks》閱讀筆記
2022.08.25
本文記錄圖嵌入表示學習算法Node2vec原論文的閱讀筆記
論文主頁:
官方主頁:http://snap.stanford.edu/node2vec/
snap主頁:https://snap.stanford.edu/
摘要
以往的特征表示學習方法(如DeepWalk、LINE)不能夠捕獲連接的多樣性與豐富性,由此提出了Node2vec方法。Node2vec將節點編碼成連續、低維、稠密的向量。論文定義了有偏隨機游走方法來靈活地探索鄰居間的多樣性,相比于之前的方法,可以自己決定去探索節點中的哪一部分。實驗表明,Node2vec在多標簽分類和連接預測這兩個任務上都取得了很好的效果。總之,Node2vec可以從復雜網絡中學習到一個通用的學習表示。
1. INTRODUCTION
任何監督學習算法都具備內含豐富語義、有分類區分性、有相互獨立的特征這三個要素。以往有兩種方法來學習特征,第一是人工設計方法,但這種方法效率低,設計的特征效果也不好,且不具有通用性。第二種是基于矩陣分解的圖嵌入方法,但這種方法因為要做矩陣分解,時間復雜多太多,不能適用于大規模圖。而Node2vec是基于隨機游走來進行表示學習。該算法同時兼顧學習社群信息相似和功能結構相似兩部分,這才能讓算法有更好的泛化性。
兩個概念:
一階隨機游走(一階馬爾科夫性):下一節點僅與當前節點有關(DeepWalk、PageRank)
二階隨機游走(二階馬爾科夫性):下一節點不僅與當前節點有關,還與上一節點有關
總結貢獻:
- 論文提出了Node2vec,它是圖網絡中一種高效的可擴展的表示學習方法,還可以通過p,q這兩個參數來探索圖的不同特性
- Node2vec符合網絡科學的一系列準則,其提取的特征包含豐富的信息
- Node2vec從節點嵌入擴展到了連接嵌入
- 論文實驗表明,在各類數據集上,Node2vec都取得很好的效果
2. RELATED WORK
先敘述了兩種傳統特征學習方法的缺點:
一、基于人工設計的特征學習方法
效率低、效果差、不通用
二、基于矩陣分解的特征學習方法
難以擴展、不通用,不適用大規模圖
然后敘述基于隨機游走的圖嵌入,先是講述了語言模型中word2vec中skip-gram的成功,受該算法啟發,提出了DeepWalk算法。但是DeepWalk是剛性的算法,其在隨機游走時是完全隨機的,而論文提出的Node2vec是有偏的隨機游走,其可以通過參數p和q來決定學習哪部分的鄰域特征。
最后敘述了基于監督學習的圖嵌入,就是使用標簽來進行學習,使得其可以適用于下游的學習任務,但是在圖網絡節點分類任務中,其節點標簽是很稀疏的,所以也不具備通用性。
3. FEATURE LEARNING FRAMEWORK
具體每個符號含義這里就不列舉了,直接看公式:
把word2vec中的Skip-Gram模型用在圖網絡中,用中間詞預測周圍詞,Skip-Gram損失函數為:
作條件獨立假設(馬爾科夫性成立),即周圍節點間互不影響,上式可以改寫為:
然后再假設兩個節點之間的相互影響的程度一樣(對稱性),此時可以用softmax:
進行softmax:
損失函數可以轉換為:
網絡不像詞語那樣是線性的,因此需要先生成隨機游走序列,
3.1 CLASSIC SEARCH METHOD
DFS(深度優先):搜索的是 structural equivalence 節點功能角色(中樞、橋接、邊緣)
BFS(廣度優先):搜索的是 homophily 同質社群(社交網絡)
也就是所這兩種搜索策略下鄰域是不一樣的,但這種策略都是極端策略,而真正的搜索策略應該是這兩種搜索策略的結合,也就是以下的Node2vec
3.2 Node2vec
3.2.1 Random Walks
u:起始節點 t:上一節點 v:當前節點 X:下一節點
- Ns(t)表示上一節點的鄰居節點
- k表示當前節點v的鄰居節點個數
- l表示隨機游走序列的節點個數
3.2.2 Search bias α
若圖中的邊之間有權重,則直接用,沒有就權重賦值為1,連接權重表示游走概率,但這樣無法調節搜索策略,直接用BFS、DFS又太極端。所以論文定義了一種二階隨機游走的形式(含參數p和q)
Node2vec隨機游走步驟圖示:
時空復雜度:
空間復雜度:存儲每個節點的鄰居的空間復雜度是O(|E|)。對于二階隨機游走,因為要存儲鄰居的鄰居,所以其空間復雜度是
O(a2∣V∣)\begin{equation} O\left(a^{2}|V|\right) \end{equation} O(a2∣V∣)??
其中a表示每個節點的平均連接數(上一個節點有a個,當前節點也有a個,所以是a的平方)
時間復雜度:O(1k+1l?k)O(\begin{equation} \frac{1}{k}+\frac{1}{l-k}) \end{equation} O(k1?+l?k1?)??,其中k是鄰域節點的個數,整個隨機游走序列的長度是l,所以一個節點已經被采樣的概率是1/k,在后邊會被采樣的概率是1/(l-k)。
只有l可以控制,l越大,節點越被容易采樣。
3.2.3 Node2vec algorithm
這里解釋一下AailsSample:用于產生下一個隨機游走節點,采用空間換時間的方法,所以時間復雜度是O(1),他在大量反復抽樣的情況下,優勢更加突出(比如這里采樣大量隨機游走序列),還巧妙地實現了離散分布抽樣轉換為均勻分布抽樣
3.3 Learing Edge Features
也就是將 Node Embedding 擴展到了 Link Embedding,可用于判斷兩個節點間是否有連接
4. EXPERIMENTS
Node2vec是無監督的,是獨立于下游任務的,所以它是一個通用的表示學習方法
4.1 Case Study
《悲慘世界》人物關系圖(77個節點,254條邊),把每個節點都嵌入到16維的空間,對這77個16維的向量做聚類,然后對聚類結果進行可視化,如下圖所示:
4.2 Experimental setup
論文實驗充分體現了其公平性,就是對于每種算法,都是在盡可能相同的設置下進行,具體的設置見論文。另外,實驗還采用顯著性檢驗來驗證其科學性,以及采用網格搜索來尋找最優的參數p和q,總之,該實驗十分嚴謹。
兩個評估指標:
Macro-F1:將每一類的F1取平均
Micro-F1:用總體的TP、TN、FP、FN(混淆矩陣)計算F1
下表是不同算法在不同數據集上的Macro-F1值:
4.3 Multi-Lable classification
由已知節點的標簽去預測得到未知節點的標簽。
論文用了博主社交網絡、蛋白質交互網絡、維基百科詞條這三個數據集來進行多標簽分類任務,這三個數據集中都是homophilic和structural equivalence的結合
實驗結果:
由結果可以看出:
- Node2vec是表現效果最好的算法
- 標注數據越多(橫軸表示標注數據比例),效果越好
- 在PPI數據集上,DeepWalk可以視為Node2vec的性能下界
4.4 Parameter sensitivity
以下是調參對比實驗結果
r:參數是每個節點的采樣次數(每個節點的隨機游走序列),值越大效果越好
l:參數是隨機游走序列長度,值越大越好,但會達到一個瓶頸
k:上下文窗口,值越大越好,也會有瓶頸
最后一列:表示隨機剔除和增加連接,但性能并不會斷崖式下降,說明算法魯棒性很好
4.5 Perturbation Analysis
分為兩種擾動分析:缺失連接(比如論文引用中,尚未發表的論文)和噪聲連接(隨機增加的連接)
4.6 Scalability
用了一種ER隨機圖來進行實驗
橫軸和縱軸都是對數坐標系的話,一條直線表示時間復雜度就是線性的,是很高效的算法
4.7 Link Prediction
預測缺失的連接(兩個節點間是否有連接)
先構建正負樣本:
- 50%的連接作為正樣本(選取的原則是去除這些50%的連接后剩下的仍然是連通的)
- 再選取不連接的節點對作為負樣本
使用的數據集有:Facebook(社交好友)、Protein-Protein Interactions(PPI 蛋白質交互)、arXiv ASTRP-PH(科學家協作)
實驗結果(數值表示AUC):
5. DISCUSSION AND CONCLUSION
5.1 CONCLUSION
- 將特征表示學習轉化為優化問題
- Node2vec可以將BFS與DFS這兩種方法結合,BFS適合學習圖中的structural equivalences節點功能角色(中樞、橋接、邊緣),DFS可以學習homophily 同質社群(社交網絡)
- 相比于DeepWalk和LINE這種剛性的搜索策略(不能夠自己決定),Node2vec引入了參數p和q,其能夠更加靈活地生成隨機游走序列
- 論文還從節點預測擴展到了連接預測
5.2 DISCUSSION
- 未來可以研究關于參數p和q的可解釋學習
- 未來可以研究Node2vec在異質圖上的表現
equivalences節點功能角色(中樞、橋接、邊緣),DFS可以學習homophily 同質社群(社交網絡) - 相比于DeepWalk和LINE這種剛性的搜索策略(不能夠自己決定),Node2vec引入了參數p和q,其能夠更加靈活地生成隨機游走序列
- 論文還從節點預測擴展到了連接預測
5.2 DISCUSSION
- 未來可以研究關于參數p和q的可解釋學習
- 未來可以研究Node2vec在異質圖上的表現
- 將Node2vec這種表示學習方法應用在端到端的深度學習
總結
以上是生活随笔為你收集整理的《node2vec Scalable Feature Learning for Networks》阅读笔记的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 向日葵下载与安装(*)
- 下一篇: javaweb框架介绍