什么是GE
Network Embedding/Graph Embedding目的是希望能够将网络中的节点用比较低维的向量去表达,同时在这个向量空间中,网络结构的一些性质仍能够保持。
如图所示可以将网络中的节点用低维的向量表达,然后来执行实际的任务(异常检测,分类,链接预测等等)
DeepWalk
论文中作者提出自己的三点主要贡献:
- 作者使用深度学习作为工具去分析图,建立了一个适合复杂模型的Robust Representations。DeepWalk根据short random walks来学习结构化表示
- 作者在考虑稀疏问题上,在多标签分类任务上有很大进步,在 M i c r o F 1 MicroF_1 MicroF1上有着5%-10%的提升。在一些例子上,即使提取40%的训练数据依然能获得很好的效果
- 作者通过采用并行的方法构建web-scale graphs(例如youtube)的representations表明了算法的可扩展性。
文章中的Definition
DeepWalk的目的是要学习
X
E
∈
R
∣
V
∣
∗
d
X_E\in R^{|V|*d}
XE∈R∣V∣∗d
学习Social Representations
在学习Representations中遵循下列四种特性
-
Adaptability 即网络是不断的变化的,已经学好的模型应该可以适应这种变化,不需要重复学习。
-
Community aware 即网络中相关性越大的节点在低维空间中的距离应该越近。
-
Low dimensional 即低维的数据更容易去拟合与推理
-
Continuous 即平滑性可以为分类提供更好地决策边界
在网络中的节点依然符合幂律规则
DeepWalk采用随机游走的思想在节点中随机游走生成节点序列,然后引用Word2Vec思想,将节点序列看做为语句。模型示意图如下
W v 4 W_{v4} Wv4即为随机游走生成的节点序列
采用Hierarchical Softmax来计算条件概率
算法
算法包括两个步骤
- 在图中的节点上随机游走生成随机序列
- 根据随机序列,运行skip-gram,来学习每个节点的embedding
多层的softmax利用二叉树来解决softmax计算成本问题。 在二叉树中,所有叶子节点(上面所说的图中的v1,v2,… v8)都是图中的顶点。 在每个内部节点中(除了叶子节点以外的节点,也就是分枝结点),都通过一个二元分类器来决定路径的选取。 为了计算某个顶点v_k的概率,可以简单地计算沿着从根节点到叶子节点v_k的路径中的每个子路径的概率。 由于每个节点的孩子节点的概率和为1,因此在多层softmax中,所有顶点的概率之和等于1的特性仍然能够保持。如果n是叶子的数量,二叉树的最长路径由O(log(n))限定,因此,元素的计算时间复杂度将减少到O(log | V |)。
优化方法
文章采用随机梯度下降(SGD) 对参数进行优化