《DeepWalk: Online Learning of Social Representations》阅读笔记
本文记录图embedding的开山之作DeepWalk经典论文的阅读笔记
DeepWalk:用于图节点嵌入的在线机器学习算法(是图embedding的开山之作,是一种表示学习)
论文主页:
论文主页1:http://www.perozzi.net/projects/deepwalk/
论文主页2:https://sites.google.com/site/bryanperozzi/projects/deepwalk
论文主页3(作者视频介绍):https://dl.acm.org/doi/10.1145/2623330.2623732
PPT:https://docs.google.com/presentation/d/1TKRfbtZg_EJFnnzFsnYOsUiyFS0SbNi0X3Qg9OtfDSo/edit#slide=id.p16
发表在KDD上的最终版本:https://dl.acm.org/doi/abs/10.1145/2623330.2623732
原始论文:https://arxiv.org/abs/1403.6652
作者相关:
作者Bryan Perozzi个人主页:http://www.perozzi.net/
作者Rami Al-Rfou个人主页:https://sites.google.com/site/rmyeid/
概括: DeepWalk是基于随机游走的图节点嵌入算法。首次将深度学习和自然语言处理思想用于图机器学习,将随机游走序列与句子类比,节点与单词类比,构建Word2Vec的Skip-Gram无监督(自监督)语言模型。将图中每个节点编码为低维稠密连续向量。 向量隐式包含了节点在原图中的邻居、社群、连接、结构、关联信息,但不包含节点类别信息和资深特征属性信息。 在稀疏数据标注场景下,使用DeepWalk图嵌入向量来解决多类别节点分类问题,性能卓越,并行性、扩展性好。
摘要
- DeepWalk把原本用于语言模型的方法进行扩展,以及将句子序列中的无监督特征学习进行推广,将其用于图这种数据。
- DeepWalk从有最大长度限制的随机游走序列来学习隐含表示,这类似于语言模型中的句子。
- 在论文实验中,DeepWalk表现得很好,尤其在标签数据较少的情况下(稀疏标注)。
- DeepWalk也是可扩展的,是一种在线学习的机器学习算法(即来即训),同样也可以并行,这些特点使得DeepWalk适用于大规模图分类、异常检测。
1. INTRODUCTION
DeepWalk首次将深度学习和自然语言处理思想用于图机器学习,通过一连串的随机游走序列可以学习图节点的连接结构信息表示。这种表示捕获了节点间的相似性和关联性,形成的是一个连续的稠密的低维的空间。DeepWalk的输入是一个图,输出的是每个节点的隐含表示,如下图所示:
DeepWalk将原来Karate Graph中的节点编码为二维向量(无监督,Embedding),发现原来图中相近的节点,在嵌入后依然相近,甚至形成了线性可分的边界,这就可以直接用传统机器学习模型进行分类了。因此,DeepWalk是通用的,它可以与任何的分类算法结合。
为什么是无监督?因为未用到节点的标签信息,只是通过图节点的结构信息、关联信息
该篇论文的贡献:
- 论文引入深度学习作为分析图数据的方法,来构建适合于统计建模的鲁棒表示。DeepWalk还能学习包含图结构信息的随机游走序列
- 论文广泛评估了DeepWalk在多个社交网络数据集上的表现,特别是标注稀疏的数据上
- 论文表明了DeepWalk的可扩展性
2. PROBLEM DEFINITION
首先给出了关于图的一些定义。
在传统的机器学习分类任务中,要学习的是构建输入数据与标签之间的映射,但在论文中,要利用的是图中重要的结构信息。论文中提出的任务是一种关系分类或者叫集体分类,在传统方法中,运用的是马尔科夫链,并通过迭代预测的方法来解决。论文中提出将图结构(和连接)信息与标签信息分离,只使用结构和连接信息,将其编码,形成embedding。总的来说,就是使用反映结构和连接信息的embedding和节点本身的特征信息,来实现分类。
3. LEARNING SOCIAL REPRESENTATIONS
DeepWalk学到的embedding具备的特性:
- Adaptability——灵活可变,弹性扩容
- Community aware——反映社群聚类信息(原图中相近的节点,嵌入后仍相近)
- Low dimensional——低维(防止过拟合)
- Continuous——连续
3.1 Random Walks
随机游走就是指在一个图中随机找下一步的节点,它包含了局部的社群信息,不需要遍历全图,这种局部的信息就使得我们去学习一连串的随机游走序列。另外,还能够并行生成随机游走序列(多个线程),也能够在线增量学习(局部)
3.2 Connection: Power laws
幂律分布
Node degree 服从幂律分布,某一个Node在一个随机游走序列中出现次数也服从幂律分布,NLP中单词出现次数也满足幂律分布,如下图所示:
DeepWalk的一个贡献就是可以将自然语言的方法应用在图数据上,且都符合幂律分布
3.3 Language Modeling
语言模型能够反映一句话出现的概率。严格的说,语言模型就是用前n-1个词来预测第n个词,而论文中是用中心词预测周围词(skip-gram),算是语言模型的推广。论文中,将随机游走序列与句子类比,节点与单词类比,构建Word2Vec的Skip-Gram无监督(自监督)语言模型。用前i-1个节点预测第i个节点,表示为:
Pr
(
v
i
∣
(
v
1
,
v
2
,
⋯
,
v
i
−
1
)
)
\begin{equation} \operatorname{Pr}\left(v_{i} \mid\left(v_{1}, v_{2}, \cdots, v_{i-1}\right)\right) \end{equation}
Pr(vi∣(v1,v2,⋯,vi−1))
但是我们所需要的是用节点的embdding来预测,而不是节点本身,所以改写为:
Pr
(
v
i
∣
(
Φ
(
v
1
)
,
Φ
(
v
2
)
,
⋯
,
Φ
(
v
i
−
1
)
)
)
\begin{equation} \operatorname{Pr}\left(v_{i} \mid\left(\Phi\left(v_{1}\right), \Phi\left(v_{2}\right), \cdots, \Phi\left(v_{i-1}\right)\right)\right) \end{equation}
Pr(vi∣(Φ(v1),Φ(v2),⋯,Φ(vi−1)))
DeepWalk的skip-gram(自监督)就是输入第i个词的embedding来预测上下文的词(可以捕获邻近信息),损失函数表示为:
minimize
Φ
−
log
Pr
(
{
v
i
−
w
,
⋯
,
v
i
+
w
}
\
v
i
∣
Φ
(
v
i
)
)
\begin{equation} \underset{\Phi}{\operatorname{minimize}} \quad-\log \operatorname{Pr}\left(\left\{v_{i-w}, \cdots, v_{i+w}\right\} \backslash v_{i} \mid \Phi\left(v_{i}\right)\right) \end{equation}
Φminimize−logPr({vi−w,⋯,vi+w}\vi∣Φ(vi))
4. METHOD
4.1 view
4.2 DeepWalk
4.3 SkipGram
4.4 Hierarchical Softmax
分层Softmax是为了加速训练,减少训练时间,将时间复杂度从O(n)降到O(logn)
注意:V3和V5都是标签,两条路径各自计算损失函数,各自优化更新
4.5 optimization
DeepWalk有两套权重:1.N个节点d维的embedding 2.(N-1)个逻辑回归,每个有d个权重
4.6 Parallelizability
多线程异步并行。如下图所示,即使workers增加,但性能几乎不变:
5. EXPERIMENTS
Macro-F1:将每一类的F1取平均
Micro-F1:用总体的TP、TN、FP、FN(混淆矩阵)计算F1
5.1 RESULTS
在三个数据集上的结果总结一句话就是:DeepWalk表现得很好,特别是在稀疏标注的数据集上。另外,DeepWalk用少量的训练集就能够表现得很好。
5.2 Parameters Sensitivity
TR表示的是标签率,d是embedding维度,γ是每个节点作为起始节点生成随机序列的次数
整个图5a显示了不同的维度d对模型表现的影响
第1列:TR会影响最优的d
第2列:对于不同大小的graph,不同γ的相对影响是一致的
第3列:γ越大,效果越好,但边际效果逐渐降低
第1、4列:TR越大,效果越好
6. RELATED WORK
与其他工作不同的是:
- Embedding是通过学习得到的,而不是人工统计
- 无监督学习,不考虑标签信息,只考虑图结构和连接信息
- 在线学习,即来即学,仅使用graph的局部信息
7. Conclusion和Feture work
论文总结可以看最开始的概括。在该领域的未来工作将集中在进一步研究高效性和可扩展性,使用我们的结果来改进语言建模,并加强该方法的理论论证。
部分参考:同济子豪兄讲解DeepWalk论文