一、DeepWalk
它的主要思想是在由物品组成的图结构上进行随机游走,产生大量物品序列,然后将这些物品序列作为训练样本输入word2vec进行训练,得到物品的embedding。
与NLP中的词向量训练任务十分相似,把每一个词当成图中的节点,节点越近,边权重越大之间关系就越紧密。
采用随机游走的方式随机选择起始点,重新产生物品序列。
最终将这些物品序列输入word2vec模型,生成最终的物品Embedding向量。
总之,DeepWalk使用DFS随机游走在图中进行节点采样,使用word2vec在采样的序列学习图中节点的向量表示。
二、LINE
LINE也是一种基于邻域相似假设的方法,LINE可以看作是一种使用BFS构造邻域的算法。此外,LINE还可以应用在带权图中(DeepWalk仅能用于无权图)。
first-order proximity
1阶相似度用于描述图中成对顶点之间的局部相似度,形式化描述为若 u , v 之间存在直连边,则边权 即为两个顶点的相似度,若不存在直连边,则1阶相似度为0。 如上图,6和7之间存在直连边,且边权较大,则认为两者相似且1阶相似度较高,而5和6之间不存在直连边,则两者间1阶相似度为0。
second-order proximity
仅有1阶相似度就够了吗?显然不够,如上图,虽然5和6之间不存在直连边,但是他们有很多相同的邻居顶点(1,2,3,4),这其实也可以表明5和6是相似的,而2阶相似度就是用来描述这种关系的。 形式化定义为,令表示顶点 u 与所有其他顶点间的1阶相似度,则 u与 v 的2阶相似度可以通过 p_u 和 p_v 的相似度表示。若u与v之间不存在相同的邻居顶点,则2阶相似度为0。
三、Node2vec
在DeepWalk的基础上更进一步,通过调整随机游走权重的方法使graph embedding的结果在网络的同质性(homophily)和结构性(structural equivalence)中进行权衡。
网络的“同质性”指的是距离相近节点的embedding应该尽量近似,u与s1,s2,s3;s6与s7,s8,s9,s5
游走时用DFS
“结构性”指的是结构上相似的节点的embedding应该尽量接近,u与s4,s5,s6
游走时用BFS
四、Struc2vec
之前的node embedding的方式,都是基于近邻,但是有些节点没有近邻,但也有相似的结构
定义距离信息
构建多层带权重图
顶点采样序列
五、SDNE
相似度定义
SDNE中的相似度定义和LINE是一样的。简单来说,1阶相似度衡量的是相邻的两个顶点对之间相似性。2阶相似度衡量的是,两个顶点他们的邻居集合的相似程度。
总结Graph Embedding:
1.DeepWalk:采用随机游走,形成序列,采用skip-gram方式生成节点embedding
2.node2vec:不同的随机游走策略(BFS结构性,DFS同质性),形成序列,类似采用skip-gram方式生成节点embedding
3.LINE:捕获节点的一阶和二阶相似度,分别求解,再将一阶二阶拼接在一起,作为节点的embedding
4.struc2vec:堆土的2结构信息进行捕获,在其结构重要性大于邻居重要性时,有较好的效果
5.SDNE:采用了多个非线性层的方式捕获一阶二阶的相似性,最后形成embedding