怎样将图中的每一个Node表示成一个Vector呢?
假设有一图 G G G:
- V V V是顶点集合
- A A A是图的邻接矩阵
- 节点上的其余信息我们都没使用到
主要有三步:
- 定义一个可以将Graph变为Vector的编码器encoder
- 定义一种node similarity function(用于测量Graph中两个Node之间的相似度)
- 调参,使得我们encoder最优,我们的目的是使原始空间Graph中两个Node的相似度等于embedding space中两个向量的相似度:
s i m i l a r i t y ( u , v ) ≈ z v T z u similarity(u, v) \approx z_v^T z_u similarity(u,v)≈zvTzu
怎样定义Node Similarity呢?
当两个节点满足以下特征的时候,我们是不是可以认为这两个节点就更相似呢?
- 两个节点之间有边
- 有共同的邻居
- 有相似的结构
- …
我们可以按照以下方式,选择怎样定义节点相似度:
- Adjacency-based similarity
- Multi-hop similarity
- Random walk approaches
1. Adjacency-based similarity
2 Multi-hop similarity