文章目录
- LINE
- struc2vec
- 计算结构距离
- 计算每个结点的有序度序列
- 遍历边表的顶点,每个都计算有序度序列
LINE
看到 ge.models.line.LINE#_gen_sampling_table
node_degree
表示出度
归一化后,得到顶点的分布norm_prob
,然后算alias_table
构建alias表得到
accept, alias
两个变量
_gen_sampling_table
这步其实主要构建顶点和边的采样表
ge.models.line.create_model
大概是看懂了。。
struc2vec
【Graph Embedding】node2vec:算法原理,实现和应用
Alias Method:时间复杂度O(1)的离散采样方法
【数学】时间复杂度O(1)的离散采样算法—— Alias method/别名采样方法
计算结构距离
ge.models.struc2vec.Struc2Vec#_compute_structural_distance
dist_func = cost_max
计算每个结点的有序度序列
ge.models.struc2vec.Struc2Vec#_compute_ordered_degreelist
遍历边表的顶点,每个都计算有序度序列
ge.models.struc2vec.Struc2Vec#_get_order_degreelist_node
这个函数类似BFS,迭代直到层数大于max_num_layers
采用压缩存储的方式存储有序度序列
计算完成后得到degreeList
此时的degreeList
:
_create_vectors
函数处理后的degrees
:
vertices
保留与其度数相近的结点
structural_dist