针对论文[1]的阅读撰写阅读笔记。DeepWalk的代码实现
这篇论文主要提出了在一个网络中,学习节点隐表达的方法——DeepWalk,这个方法在一个连续向量空间中对节点的社会关系进行编码,是语言模型和无监督学习从单词序列到图上的一个扩展。该方法将截断游走的序列当成句子进行学习。该方法具有可扩展,可并行化的特点,可以用来做网络分类和异常点检测。
论文贡献有三点:
1. 将深度学习应用到图分析中,构建鲁棒性的表示,其结果可应用于统计模型中
2. 将表示结果应用于一些社会网络的多标签分类任务中,与对比算法比较,大部分的 F1 值提高5-10%,有些情况下,在给定少于60%训练集的情况下,比其他对比方法要好
3. 论文通过构建互联网规模(例如YouTube)的并行化实现的表示,论证了方法的可扩展性,同时描述了构建流式版本的方法实现
给定一个图 G=(V,E) ,以及部分标注的社会网络 GL=(V,E,X,Y) ,其中, X∈R|V|×S 是节点属性, S 是每个属性向量的特征空间的大小, Y∈R|V|×|y| 是节点的标签。论文的工作就是独立于标签 Y 的值,学习出 XE∈R|V|×d 的表示, d 是一个极小的隐空间维度。学习出来的社会化表示具有以下特点:
论文选取的是随机游走序列,作为DeepWalk的输入。原因有:
针对一个自然语言处理问题,给定一个单词序列 Wn1=(w0,w1,...,wn) ,我们要用前 n−1 个单词来预测第n个单词,也就是最大化 Pr(wn|w0,w1,...,wn−1) 的问题。针对社会网络上的随机游走序列,我们自然会想到,要用前 n−1 个节点来预测第 n 个节点的出现 Pr(vn|v0,v1,...,vn−1) 。但是论文的目的是要学习一个隐表示,所以引入了一个映射函数 Φ:v∈V↦R|V|×d 。于是,问题变成估计 Pr(vn|Φ(v0),Φ(v1),...,Φ(vn−1)) 的问题。但是如果随机游走的长度变大,会降低该条件概率估计的效率。自然语言处理领域中,针对这个问题给出了几个解决方案:
于是问题变成了最优化如下式子
算法包含两个主要部分:一个随机游走生成器和一个更新过程。随机游走生成器随机均匀地选取网络节点,并生成固定长度的随机游走序列,每个节点生成长度为 t 的 γ 个随机游走序列,本文并没有使用重启的随机游走方法。为了加快算法的收敛,本文对图中所有的节点遍历一遍之后,再重新遍历所有节点,论文使用SkipGram算法来更新节点表示。SkipGram首先将每个节点 vi 与其表示一一映射,并有假设: Pr({vi−w,...,vi+w}∖vi|Φ(vi))=∏i+wj=i−w,j≠iPr(vj|Φ(vi)) ,通过最大化这个概率,来更新 Φ 的值。因为使用逻辑回归的方法,太耗时了,本文使用分层softmax的方法来训练。即将每个节点分配到二分类树的叶子节点上,本文使用哈夫曼编码对节点进行编码,将出现频繁的节点的路径设置较短。假设从根节点到一个节点 uk 的路径是一个树节点的序列 (b0,b1,...,b[log|V|]) , b0 是根节点, b[log|V|] 表示节点 uk ,于是有 Pr(uk|Φ(vj))=∏[log|V|]l=1Pr(bl|Φ(vj)) ,其中, Pr(bl|Φ(vj))=1/(1+e−Φ(vj)∗Ψ(bl)) , Ψ(bl) 是树上节点 bl 的父亲节点的隐表示。例如,在下图中,从根节点到 v3 节点的路径应为 b1,b2,b5,v3 将这些节点对应的概率累积算出来。
由于节的度服从长尾分布,因此针对 Φ 的更新的影响,会很稀疏。于是论文可以使用异步随机梯度下降的方法来更新 Φ 值。下图给出了DeepWalk的可扩展性的实验结果。
这里,从图中获得一些随机序列,就直接应用到图的训练中。做了一些调整,将学习率 α 值设置的很低。另外,如果网络中的节点个数 V 是已知的,或者能够大致估计出来,那么我们还可以使用哈夫曼树对节点进行编码,否则就不能使用。
如果网络图是由相互交互的代理间的元素序列构成,例如用户在一个网站上的页面访问。那么我们可以直接使用这个序列作为输入,而不用使用随机游走来生成。一般这种网络,不仅包含结构信息,而且包含语义信息。
实验部分就是各种说论文提出的算法有多么好了,对比的算法有,SpectralClustering,Modularity,EdgeCluster,wvRN,Majority。数据集有BlogCatalog,Flickr,YouTube。然后又做了参数敏感性分析,生成的隐表示的维度 d 的大小,不敏感。随机游走的个数越大越好,一般到了 25 以后算法提高的效果会比较低了,对学习率不是很敏感。
[1]: Perozzi B, Al-Rfou R, Skiena S. Deepwalk: Online learning of social representations[C]//Proceedings of the 20th ACM SIGKDD international conference on Knowledge discovery and data mining. ACM, 2014: 701-710.