《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
(
a
2
∣
V
∣
)
\begin{equation} O\left(a^{2}|V|\right) \end{equation}
O(a2∣V∣)
其中a表示每个节点的平均连接数(上一个节点有a个,当前节点也有a个,所以是a的平方)
时间复杂度: O ( 1 k + 1 l − 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这种表示学习方法应用在端到端的深度学习