图表示学习主要将图上的节点转化为保留原始节点的大部分信息的低维向量,这种方法也被称为图嵌入(Graph Embedding)。转化的向量能作为机器学习模型的输入。主要的图嵌入方法包括基于随机游走的方法和基于深度学习的方法。
基于随机游走的方法主要有DeepWalk和Node2vec。DeepWalk使用随机游走获得节点序列,将得到的序列视为句子,用word2vec学习节点特征,使得节点在图中的局部结构信息能够被向量表示。当两个点在图中的共同邻居越多,则对应向量之间的距离就越近。Node2vec通过最大化随机游走得到的序列中节点出现的概率保持节点之间的高阶临近性,平衡了深度优先搜索和广度优先搜索。 本文主要介绍提出Node2vec算法的论文。
背景
任何有监督的机器学习算法都需要一组信息丰富的、有区别的和独立的特征。对于网络预测问题中,我们需要构建一个特征向量用于表示边和结点。一种典型的解决方案包括基于专家知识的hand-engineering的领域特定特征;另一种方法是通过求解最优化问题学习特征的表示。
主要思想
随机游走(Random Walk)
对起始点,模拟一个具有固定长度的随机游走,是第个点(),按照下面的分布生成:
是和之间没有标准化的transition probability,是标准化的常数。
搜索bias
最简单的方法就是随机游走的偏差基于边权获得,即
作者使用两个参数和定义了一个二阶随机游走:
并且定义了一个概率分布,表示一个结点到不同的邻居的转移概率,p表示的是返回概率,q表示的是出入概率。当p、q均为1的时候,游走的方式等同于DeepWalk中的随机游走。
伪代码
贡献
本文的主要贡献在于提出了一种用于网络特征学习的高效可伸缩算法Node2vec,它利用SGD有效地优化了一个新的网络感知的、邻域保持的目标。它在发现符合不同等价性的表示方面提供了灵活性。