【Graph Embedding】DeepWalk 算法

最近项目需要用到 Graph Embedding 模型,所以简单把这个系列学习一下做个记录。

一、Graph Embedding

Graph Embedding 的中心思想是找到一种映射函数,将图中的每个节点转换为低维稠密的嵌入表示,要求在图中相似的节点在低维空间距离相近

得到的表示向量可用于下游任务,如节点分类、链接预测、可视化等。

二、DeepWalk 算法

参考文献:
论文题目:DeepWalk: Online Learning of Social Representations
论文来源:KDD 2014
论文原文:https://arxiv.org/pdf/1403.6652.pdf

概述

本文首次将无监督特征学习引入图网络分析中。 DeepWalk 算法通过截断式随机游走(truncated random walk)来学习图网络节点的社区表示(Social Representations)。

问题定义

以节点分类问题为例。

给定图 G = ( V , E ) G=(V,E) G=(V,E),其中, V V V 是节点数, E E E 是边数, E ⊆ ( V × V ) E \subseteq (V \times V) E(V×V)

给定部分标记的图 G L = ( V , E , X , Y ) G_L=(V,E,X,Y) GL=(V,E,X,Y),其中, X X X 是节点的属性, Y Y Y 是节点的标签。

本文的目标是学习节点的表示 X E ∈ R ∣ V ∣ × d X_E \in \mathbb R^{|V| \times d} XERV×d,其中, d d d 是较小的嵌入维数。

与传统的关系分类问题不同,本文提出的方法可捕获与标签分布无关的图网络结构的特征,因此学得的表示具有通用性,可应用于多种下游任务。

可行性及性质分析

DeepWalk 算法学得的社区表示具有以下特征:

  • 适应性:随着图网络的不断发展,可只学习新的节点信息,不需重复学习过程;
  • 社区性:同社区的节点具有相似的表示,即相似的节点在低维嵌入空间距离相近;
  • 低维:低维模型可以更好地泛化,降低过拟合风险,并加快收敛和推理速度;
  • 连续:连续的嵌入向量使节点表示在社区之间具有平滑的决策边界,从而可以进行更加可靠的分类。

DeepWalk 算法的思路是使用 Random Walk 算法在图网络中进行节点采样,获得了足够的节点访问序列后,使用 Word2Vec 的 Skim-Gram 算法进行表示学习。

【Graph Embedding】DeepWalk 算法_第1张图片

如上图所示,图 (a) 来自无标度图网络上的一系列截断性随机游走,图 (b) 来自英语维基百科的100万条语料。其分布规律满足类似的幂律分布,因此可以将 NLP 的词向量模型(如 Skim-Gram 算法)应用在图网络的截断性随机游走中。

Deepwalk 算法

该算法包含两个主要的步骤:第一步利用 Random Walk 算法采样节点序列,第二步使用 skip-gram 算法学习表达向量。

Random Walk 算法

Random Walk 算法思路:

在图网络上,从某个特定的节点开始,从与该节点相连的边中随机选择一条移动直下个节点,重复该过程直到达到窗口大小。是一种可重复访问已访问节点的深度优先遍历算法。

Random Walk 算法具有两个主要特征:可扩展可并行。可扩展是指在后续添加新的信息时,可只学习新的节点信息,无需从头学习。可并行是指,可以同时从不同的节点处开始游走。

Skip-Gram 算法

内容比较多,单独记录在了另外一篇文章。

【Word2Vec】Skip-Gram 算法

效果展示

本文中,通过 DeepWalk 算法获取图网络表示后,使用 K-Means 算法进行聚类,得到如下图所示的实验结果。

【Graph Embedding】DeepWalk 算法_第2张图片

实验数据选取了成熟的空手道图网络,设置低维嵌入维度 d = 2 d=2 d=2,不同颜色代表节点的聚类。

可见,将嵌入表示维数压缩至 d = 2 d=2 d=2 的情况下,也取得了较好的聚类效果。

你可能感兴趣的:(知识图谱)