论文阅读
图嵌入(graph embedding)算法的目标是将图中每个顶点映射到一个高维的连续空间中,使得原来图中近邻的顶点或者相同结构的顶点投影到高维空间后,保持近邻关系不变。比较经典的论文有:deepwalk 和 node2vec。
模型解析
deepwalk基于随机游走算法产生节点序列,然后调用word2vec算法学习每个节点的embedding,而node2vec在采样节点序列时同时考虑节点的近邻关系和节点的结构相似关系,利用广度优先和深度优先算法产生节点序列,然后调用word2vec算法学习每个节点的embedding。相关的参考资料有:DeepWalk:算法原理,实现和应用 和 node2vec:算法原理,实现和应用。
模型实战
deepwalk和node2vec算法都包括两部分,一部分是随机游走采样节点序列算法,另一部分是调用word2vec学习节点embedding算法。deepwalk和node2vec的demo案例可以参考:graphEmbeddingDemo 。
源码阅读
deepwalk和node2vec的源码可以直接参考官方版本的源码:deepwalk源码 和 node2vec源码。
参考文献:
- https://arxiv.org/pdf/1403.6652v2.pdf
- https://arxiv.org/pdf/1607.00653.pdf
- https://zhuanlan.zhihu.com/p/56380812
- https://zhuanlan.zhihu.com/p/56542707
- https://github.com/shenweichen/GraphEmbeddin
- https://github.com/phanein/deepwalk
- https://github.com/aditya-grover/node2vec