deepwalk
模型:随机截断游走+skipgram+层级softmax
整个过程:
- 输入:图的边集和点集
- 使用随机游走来获得结点序列
- 使用skip-gram算法来获得结点表示
- 使用层级softmax来优化目标函数
- 获得输出:结点的潜在表示
具体算法:
总结:没有一个专门为网络嵌入设计的目标函数、使用二阶相似性(游走序列)来考虑两个结点的相似性。
疑问:两个结点的相似度是怎么样比较出来的?(文中只提到了根据节点计算上下文序列的概率然后生成向量表示,最后映射到如输出图所示的结果)
node2vec
在deepwalk的基础上改进了采样策略(基于BFS和DFS采样获取结点的邻居序列,而不是通过随机游走来获取的)。文中提到了两种相似性:homophily(同质性)和structual equivalence(结构同等性),如图所示,u与s1是同质性相似,而u与s6则是结构同等性相似。