Graph 探索之DeepWalk,Line,Node2Vec

Graph 探索之DeepWalk,Line,Node2Vec

  网络表示学习**(Network Representation Learning,NRL),也称为图嵌入法(Graph Embedding Method,GEM):用低维、稠密、实值的向量表示网络中的节点(含有语义关系,利于计算存储,不用再手动提特征(自适应性),且可以将异质信息投影到同一个低维空间中方便进行下游计算)。也就是说这三种方法都是拿来给图结构提取embedding的。
  Network Embedding算法主要有经历了以下三代的发展:

第一代:基于矩阵特征向量(谱聚类)
第二代:基于Random Walk(Deep Walk & Node2Vec)
第二代:基于Deep Learning(SDNE, GCN, GraphSAGE)

一、DeepWalk

总体步骤就是Network/graph ---------random walk ---------得到节点序列-------- skip-gram

Graph 探索之DeepWalk,Line,Node2Vec_第1张图片

其中主要想说的是random walk这里主要是依据边权重进行随机游走的。这一点可以和后续的Node2vec做对比。这样游走出来的序列就可以和word2vec中处理文档结合起来,节点就相当于词,序列就相当于句子,然后输入skip-gram进行编码。

二、Line

这个地方主要是根据分布相似性去学习embedding。首先明确下本方法中的一阶邻近关系和二阶邻近关系。
Graph 探索之DeepWalk,Line,Node2Vec_第2张图片

一阶邻近关系

Graph 探索之DeepWalk,Line,Node2Vec_第3张图片
可以看出,只考虑一阶相似度的情况下,改变同一条边的方向对于最终结果没有什么影响。因此一阶相似度只能用于无向图,不能用于有向图 (在无向图中,可以将每条边看成是两条方向相反且有相同权重的有向边)

二阶邻近关系

对于每个节点,会提取两个向量,一个是对应的节点自身的表示向量,一个则是被作为上下文是对应的表达向量
Graph 探索之DeepWalk,Line,Node2Vec_第4张图片
最后的embedding向量是将一阶邻近和二阶邻近的融合在一起。

一阶的不适用于有向图,二阶的适用于无向图?

三、Node2vec

1.有偏随机游走

Graph 探索之DeepWalk,Line,Node2Vec_第5张图片

2.优化目标

Graph 探索之DeepWalk,Line,Node2Vec_第6张图片
其中对于不属于 N s ( U ) N_s(U) Ns(U)的顶点都是负样本,这样一来负样本有些多,计算量比较大,所以可以采用Word2Vec中的负采样策略。

你可能感兴趣的:(机器学习)