DeepWalk 代码阅读

main.py

主函数,执行入口

main( ):

接受参数,执行process

process(args):

  • 加载数据,建图
  • 生成游走序列,调用graph.py中的graph.build_deepwalk_corpus()函数
  • Word2vec训练,调用gensim模块的Word2vec函数或其扩展skipgram.py

graph.py

构建图,defaultdict结构的扩展,字典的(key,value)(node,edge list of node)

build_deepwalk_corpus():

  • num_paths:每个结点的游走序列数,即每一轮对所有结点各得到一个游走序列
  • walks:所有游走序列的列表

random_walks():

  • start:初始结点
  • path_length:游走序列的长度
  • path:游走序列的结点列表,从初始结点开始,有一定的随机概率回到初始结点,如果长度达到最大长度或者当前结点没有边,则序列结束

才发现该代码的实现是基于gensim而不是tensorflow