渣渣的deepwalk之旅——win10下deepwalk配置和运行

来源:互联网 发布:魔方小站淘宝店 编辑:程序博客网 时间:2024/05/14 19:54

渣渣的deepwalk之旅

刚开始学习网络表示学习,看完《Deepwalk Online learning of social representations》后,打算去github上下载源码并自己测试,实现deepwalk算法,结果就开始漫长的修正bug之路:

  • 对deepwalk论文的理解
  • 源码和数据集
  • 各种库函数安装失败(scipy和gensim)
  • 成功运行

对deepwalk论文的理解

《DeepWalk: Online Learning of Social Representations - Bryan Perozzi》 —— [ 论文下载 ]

首先,感觉这篇论文的亮点在于作者观察到文本语料中词语出现的频率和随机游走的网络上节点被访问到的次数都服从幂律分布(zipf),这成为deepwalk成立的前提。所以可以把节点作为单词,随机游走的路径作为句子,输入到word2vec中训练得到节点的向量表示。所以缺点应该是没有明确的优化目标函数,所以给后面人提供很大改进空间。

这 篇文章着重于实践部分,对论文的理解不详细解释,我看过这篇博客,觉得讲的不错:http://blog.csdn.net/wolfblood_zzx/article/details/73088111

具体算法

用random walk(随机游走)生成|V|个子网络,然后送到word2vec去训练,听起来就是这么简单。
主要步骤:Network/graph—random walk—得到节点序列(representation mapping)—放到skip-gram模型中(word2vec模型)—-output:representation

代码块

 walks = graph.build_deepwalk_corpus(G,num_paths=args.number_walks,                                     path_length=args.walk_length, alpha=0, rand=random.Random(args.seed))    print("Training...")    model = Word2Vec(walks, size=args.representation_size, window=args.window_size, min_count=0, workers=args.workers)

流程图

这里写图片描述

源码和数据集

github

这里写图片描述

数据集的定义:http://leitang.net/social_dimension.html

各种库函数安装失败(scipy和gensim)

第一次安装了pycharm编辑器,又从官网上下载了python3.6版本(简直后悔),导入进包后,发现这个编辑器不错,鼠标放在未导入的包处后,会显示自动导入,但是scipy没法自动下载成功,需要先安装好numpy后,再从http://www.lfd.uci.edu/~gohlke/pythonlibs/#scipy找到对应的.whl文件下载后,从命令行里面进入到下载后文件的位置,然后输入“pip install scipy‑0.19.1‑cp36‑cp36m‑win_amd64.whl”就可以安装了。后来只剩下gensim==0.10.2没安装成功,结果查找发现3.6版本不支持这个版本的gensim(内心小怪兽要出来了!!!)气得我直接删掉全部python,第二天重新开始安装。

这一次长经验了,直接安装的anaconda的python2.7,真心推荐,因为里面自带的库函数非常非常全,都是用于科学计算的,对于深度学习机器学习应该够了。(注意要把Python运行路径放置在path环境变量里面,例如:E:\anaconda\install\Scripts)
然后要自己下载pip(http://www.cnblogs.com/NanShan2016/p/5518235.html)参考这个博客,讲的很详细。

小插曲:因为我的用户目录是中文的,所以会出现编码错误的问题,也就是当调用pip安装时,会出现如下错误:
UnicodeDecodeError: ‘ascii’ codec can’t decode byte 0xbf in position 7: ordinal not in range(128)
解决办法是:
python目录 Python27\Lib\site-packages 建一个文件sitecustomize.py
内容写:
import sys
sys.setdefaultencoding(‘gb2312’)
python会自动运行这个文件。

然后安装requirements.txt中的文件,打开github里面的说明,
这里写图片描述
先进入deepwalk文件夹然后安装txt文件。

最后当安装gensim的时候,一定要先装Visual C++库2008 SP1 Redistributable Package,还有,安装VCForPython27.msi,之后再安装gensim 0.10.2 可以使用命令 pip install gensim==0.10.2,但是还是出错了!说是因为ascii码转换出错,就是路径中出现中文,参考这个博客
http://blog.csdn.net/all_over_servlet/article/details/45112221里面的第二个方法,一定一定注意空格和回车等问题,http://dikar.iteye.com/blog/308934

最后当gensim安装成功了,那就大功告成了。

成功运行

最后一步 ,一定要进入deepwalk的目录下,然后python setup.py install测试deepwalk,按照下面格式输入
这里写图片描述
打开karate.embedding文件
结果如图:
这里写图片描述

【2】:http://www.jianshu.com/p/41a9c25273b1 python第三方库的安装
【3】:https://zhuanlan.zhihu.com/p/25748378 deepwalk配置与安装(重要)
【4】http://www.cnblogs.com/NanShan2016/p/5518235.html Pip安装三步走

原创粉丝点击