Network Embedding—

输入: 图,一般为无向图,边可以有权重。

输出: 图中每个节点的embedding向量

一种方法是: 1. 以某种方式游走,生成一系列向量。2. 用word2vec 训练

DeepWalk、Node2Vec  相同点:在构建一系列向量时,都是对整个图的节点遍历n 边,每次遍历时,遍历每个节点,作为游走的起始节点,游走为长度为k的序列。再用word2vec 训练,一般是用SkipGram 的方式训练。

DeepWalk、Node2Vec  不同点: 游走方式不同,也就是在选择邻居节点时的方法不同。Node2Vec 中图的边有权值,影响游走时方向的选择。

DeepWalk 游走: 取某个随机值,这个随机值大于某个值alpha,则从邻居节点随机取。否则,取游走的(最初始)的节点

Node2Vec  游走:在当前节点(cur_node),要选择下一个节点时。邻居节点会出现3种情况,上一个节点(pre_node),cur_node和pre_node同时连接的节点,其他邻居节点。在转移时,分别以某种概率转移。

转移概率

如果是带权的边,在上述转移概率的基础上,会乘以边的权值。在转移时,会进行概率的归一化。那么抽样时,采用的是  Alias Method 算法。

应用: 微信的“lookalike” ,好友相似度。

参考:https://zhuanlan.zhihu.com/p/26222107

http://www.yeolar.com/media/note/2016/12/04/bj2016-archsummit/%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E5%AE%9E%E6%88%98/%E5%BD%93%E6%9C%BA%E5%99%A8%E5%AD%A6%E4%B9%A0%E9%81%87%E4%B8%8A%E5%A4%8D%E6%9D%82%E7%BD%91%E7%BB%9C%EF%BC%9A%E8%A7%A3%E6%9E%90%E5%BE%AE%E4%BF%A1%E6%9C%8B%E5%8F%8B%E5%9C%88%20lookalike%20%E7%AE%97%E6%B3%95.pdf

https://blog.csdn.net/sky_zhe/article/details/10051967

https://github.com/aditya-grover/node2vec

https://github.com/phanein/deepwalk

https://baike.baidu.com/item/Zipf%E5%AE%9A%E5%BE%8B/1577540

你可能感兴趣的:(Network Embedding—)