文献阅读(26)KDD2016-node2vec: Scalable Feature Learning for Networks
本文是对《node2vec: Scalable Feature Learning for Networks》一文的浅显翻译与理解,如有侵权即刻删除。
更多网络表示学习相关文章,请移步:文献阅读总结:网络表示学习
Title
《node2vec: Scalable Feature Learning for Networks》
——KDD2016
Author: Aditya Grover
总结
文章在DeepWalk的基础上进行了拓展,提出了node2vec算法,是NRL领域经典算法之一。文章首先明确了优化目标,明确了优化目标。而后,提出了同质性和结构等价性,并使用随机游走模拟广度和深度优先搜索,通过调节参数来不同侧重地保留这两种性质。此外,文章提出了对边特征的学习,列举了计算两节点间表征的几种计算方式。
1 优化目标
文章认为这一损失函数要满足两个标准:(1)条件独立性,即节点的邻居之间相互独立,计算交互或相似的可能性时,不会互相影响;(2)特征空间对称性,即两节点对彼此的影响是相同的。因而,针对每个邻居节点,可计算如下:
计算节点每个邻居的可能性比较复杂,文章引入了负采样进行简化,即在正样本中只保留源节点和一个需要计算交互可能性的邻居节点,而负样本随机采样一定数量的节点,这些节点与源节点没有建立过交互,所谓负例。
2 随机游走
文章认为,一个网络中应当同时存在两种特性:一是同质性,即性质相同或相似的节点应当更倾向于聚集;二是结构相似性,即在结构上比较相似的节点也应当聚集,这种结构相似的判断主要取决于节点交互的邻居结构。文章引入经典的广度和深度优先两种方法,认为广度优先能够很好地捕捉网络中的同质性节点,而深度优先则尽可能地检索结构相似的节点。
为实现这两种算法,文章使用随机游走来进行模拟。随机游走即基于某个节点,接下来要跳到的下一个节点的选取是随机的,一般情况下按照某种概率进行选取,基础的随机游走理念如下:
文章在这一过程中,添加了偏置量a,即对概率的计算除了节点本身的权重外,还要受到预设参数的影响:
我们这样理解这一公式:d_tx为节点t和x之间的最短路径,取值范围为{0 1 2},当d为0时,意味着保持在当前节点,当d为1时,意味着只需一跳即可到达x,当d为2及以上时,意味着路径长度越来越远。注意到,d=1时,a值也为1,即此时依然只遵照基础的随机游走概率执行。
文章预设了p,用来控制节点范围上一步节点的概率,通常p会大于1,且p越大,节点返回的概率就越小。此外,预设q来控制广度和深度优先的幅度。当q大于1时,随机游走通常会在节点周围的邻居节点进行展开,也就是广度优先,当q小于1时,随机游走会倾向于选择更远距离的节点,即深度优先。
通过这种控制广度和深度优先的搜索方法,可以应对不同性质的网络,node2vec的具体算法如下:
3 学习边缘特征
文章提出了一种半监督的方法来学习网络的额外特征,结合链路预测任务的思想,文章选取任意节点对,来计算边的特征,列举的计算方法如下: