node2vec: Scalable Feature Learning for Networks
本文主要介绍一种可伸缩的网络特征学习方法,总的来说,这是一种基于DeepWalk的一种拓展,结合了BFS和DFS的路径探索思想。node2vec定义了节点网络邻域的一个灵活概念,并设计了一个有偏随机游走过程,有效地探索了不同的邻域,需要强调的是,该方法通过将节点映射到低维特征空间最大化地保留了节点的网络邻域。
为什么提出该算法?node2vec: Scalable Feature Learning for Networks
目前有监督的机器学习算法都需要一组信息、鉴别和独立的特征,但是特性工作非常繁琐并且通常没有普适性。先前的方法较为昂贵或者性能较差,因此需要在精度与训练时间复杂度间做一个较好的平衡。
该算法的思想:
利用构造节点在网络上的随机游走路径,通过增加一个权重调节参数α,使得该算法生成的随机序列为一种DFS和BFS的结合,利用Skip-gram模型进行概率化建模,利用skip-gram进行训练,最大化随机游走序列的似然概率,并使用最终随机梯度下降学习参数。并最终使得在较少数据训练的情况下达到的学习参数能够实现很好的性能。
目标函数或者说要优化的公式:
建立以下假设:
- Conditional independence :假设给定源顶点下,其近邻顶点出现的概率与近邻集合中其余顶点无关。
2.Symmetry in feature space :一个顶点作为源顶点和作为近邻顶点的时候共享同一套embedding向量
基于这两个假设,该目标函数可以写作:
在这里论文说明了由于归一化因子计算代价过高,故采用了负采样的技术进行优化。
采样过程:
通常的两种采样策略:BFS 和 DFS。通常BFS更倾向于在很近的邻域采样,而DFS则很可能沿一个方向走向较远进行采样。
论文中标注:
In particular, prediction tasks on nodes in networks often shuttle between two kinds of similarities: homophily and structural equivalence
通常学习的两种网络特征:同质和结构等价。通常:同质性假设高度互联且属于相似的网络集群或社区的节点应该紧密嵌入在一起。结构等价表示相似结构的角色节点应当在一起,并不强调连接性;节点可能在网络中相隔很远,但仍然具有相同的结构角色。
基本可以认为BFS更倾向于与结构等价性的嵌入,通过BFS取样通常只能研究给定节点附近的很小区域。 DFS更倾向于同质性,DFS通常可以探索更远的区域,但是更远的点的关系很难确定或者说代表性不足。
BFS和DFS的大致探索图示:
node2vec可以认为是对BFS和DFS的一种调和。采用随机游走的方式获取顶点的近邻序列,需要注意的是,这里是一种有偏向的随机游走过程。
给定一个起始节点
,我们模拟一个固定长度
的随机游走,
表示行走中的第
个节点,起始节点:
。节点
到节点
概率定义为:
是节点v和x之间的非归一化转换概率,
是归一化常数
游走过程的偏向系数 α:
假设已知游走路径已从
走到
,从节点
走到下一个节点
按照转移概率
选择对应的节点;
论文中设定 Dtx的值为{0,1,2}的一个 ,p和q是两个参数(之后将详细介绍)
该公式的图表示:
参数p和q控制了探索离开起始点邻域的速度,参数p和q相当于调节BFS和DFS的程度。具体来说:
- p为Return parameter.控制着再次访问节点的可能性。将p值设置较大则可以减小接下来回到原处的概率。如果将p设置较小的话,则游走会趋向于局部。
- q为In-out parameter .控制着离开该邻域的速度,q如果较大的话会趋向于游走靠近t的节点(极限为BFS),q如果较小的话会趋向于游走远离t的节点(极限为DFS)
- 当p=q=1时,也就是DeepWalk
- 为了获得最优的超参数 p 和 q 的取值 , node2vec 通过半监督形式 , 利用网格搜索最合适的参数学习节点表示 .
随机游走有着很高的计算效率,提升了性能。
具体算法流程:
算法分为三部分:计算过渡概率的预处理、随机游动模拟和使用SGD的优化。由于三部分可以并行异步执行,故有助于提升算法的整体可扩展性。
可知通过对p和q的调整基本可以实现对BFS和DFS的不同调和。
之后采用了常用的几种数据网络进行训练和测试:
每次用10%的样本数据进行训练,确定出最优的p和q,并采用该p和q进行预测。用几种常用的方法对数据网络进行训练和测试结果如下:
因此很容易看出node2vec有很好的性能,在DeepWalk基础上又增加了性能,明显优于LINE。
之后对参数敏感性进行测试:
每次对一个参数进行修改,过程中保持其他参数处于一个健康值:
并调整样本的缺失边比例或增加噪声边的比例来进行扰动分析:
可延展性测试:通过将节点数量从100增加到10^6,每次以10的倍数增加,查看算法效率:
当网络达到10^6级别数量的节点时,经过4小时即可完成,因此延展性较好
最后进行了边的预测正确性测试,发现node2vec性能非常优良,表现较好。
- DeepWalk提出使用均匀随机游动进行搜索,不能让我们控制已开发的社区
- LINE主要提出了一种宽度优先策略,只在1跳和2跳邻居上独立采样节点并优化可能性。在远处没有灵活性。
- node2vec中的搜索策略是通过参数p和q灵活可控地搜索网络邻域
node2vec是可伸缩的,并且对扰动具有健壮性
node2vec的未来扩展可能涉及具有特殊结构的网络,如异构信息网络、具有节点和边缘显式域特性的网络和签名边缘网络
感想:
较为有趣的是,该算法是word2vec的一种延伸,将线性的自然语言关系拓展到二维甚至更高维的节点关系,采样算法基于机器学习,通过部分样本确立最优的p与q,p与q两个参数调和了BFS和DFS,基本可以该算法介于二者的工作机理之间,确立最优的α,使得该算法最大化随机游走序列的似然概率,从而在较好的复杂度下有着极好的工作性能。印象最深刻的也就是创新性的邻节点选择方式。
改进:当节点标签较多时,可以在随机游走的基础上,如果可以将一些较为容易处理的信息作为指导,也就是令一些标签信息对游走的偏置进行影响,应该会有更为高效的游走,也就是不仅使学习得到的p和q去对偏置进行影响,再加上节点信息,这样处理多标签预测应该会有较好的性能提升。当然对于标签较多的情况下选取何种标签进行影响或者哪些标签对偏置影响较为明显且效果提升较好应该是一个较为复杂的问题。