Graph Embedding学习笔记

1. 简介

Graph Embedding指把graph转化为低维vector,使得Graph上的问题可以用vector上的方法处理。

这样做的意义在于:

  • 低维vector形式的算法相比原graph形式的算法所需算力更小
  • 低维vector形式的算法更多更强

我从一篇综述A Comprehensive Survey of Graph Embedding: Problems, Techniques and Applications入手,了解Graph Embedding的问题定义、技术方法。

综述从Problem Settings,也就是算法的输入输出,的角度对Graph Embedding问题做了分类;之后介绍了不同种类的Techniques。

我由于在相关方面的知识积累比较少,在看综述中的分析、方法时会感到对Graph Embedding问题仍然缺少一个清晰具体的概念,常常不知道所说的graph, node, edge含义到底是什么。所以我想先从一些更为具体的例子入手,先建立对Graph Embedding的一部分认识,再系统地把握Graph Embedding问题。

2. 例子:DeepWalk

DeepWalk的目标是得到node的latent representation,希望这个representation是低维的、连续的;与i.i.d.的sample不同,graph中的node之间有关联,比如在社交网络中,以每个用户为节点,用户之间的关联蕴含有价值的信息,因此,与graph embedding的通常要求相同,DeepWalk希望得到的representation可以体现node之间的关联。

按照graph embedding综述中的notation,node之间的关联有两种:

  • first-order proximity: 两个节点同时出现的概率(co-occurrence)、相关系数等说法。
  • second-order proximity: 给定一个节点出现另一个节点的条件概率、邻居相似度等等价说法。

DeepWalk选的关联是第二种,具体来说,目标函数定义为:给定一个节点,预测其若干邻居节点的条件概率分布函数。

真实的预测邻居的条件概率函数可以从数据集样本中估计,我们希望得到一个好的representation, 使得从这个representation出发经过回归、分类等模型可以很好地拟合出真实的预测邻居的条件概率函数。

从这个思路出发,我们首先碰到的问题是,如何度量真实的概率函数和representation+统计学习概率模型得到的概率函数之间的拟合程度。如果两个概率函数的是高度参数化的模型,或者数据规模比较小,KL-Divergence这类直接的比较可以派上用场;而DeepWalk面对的问题的数据规模往往很大(以语言任务为例,则问题规模至少是Vocabulary级别的),且不够参数化,所以采用采样方法,使用Random Walk来模拟有关联的节点之间形成串的概率。在representation+概率模型端,概率模型也需要考虑到计算复杂度,采取的方法包括SkipGram的只考虑两个node之间而不考虑整个window/sequence中多个node形成的语境、使用hierarchical softmax。

DeepWalk与language model有很深的联系。language model中考虑的sentence就可以当作DeepWalk中考虑的图的random walk,词为节点,两词相邻对应两节点相连。

看完文章之后,我对算法的细节仍有一些迷惑,比如用于representation space的后续模型,按hierarchical softmax的说法,是binary classifier,但这个组合成binary tree的binary classifiers到底是什么形式呢?

3. 阅读综述

3.1 problem settings的分类

通过对DeepWalk的了解,我对graph embedding有了更好的认识。

在分类一块,graph在input阶段有不同类,包括

  • homogeneous graph: 所有node和edge都是同一类型
  • heterogeneous graph: 与Homogeneous graph相对,存在不同类型的node或者edge
  • graph with auxiliary information: 这里的辅助信息包括label, attribute, node feature, information propagation,是图结构信息(node之间的edge)以外的信息。
  • graph constructed from non-relational data: 节点之间的图结构信息没有直接提供,通常提供了节点的feature,根据feature等其他信息,通过pairwise similarity, node co-occurrence等策略计算出图的结构信息(edges)。

按照Output的不同分为

  • node embedding
  • edge embedding
  • hybrid embedding
  • whole-graph embedding

按输出分类比较好理解,就是embedding得到的vector表示的是node, edge, substructure还是whole-graph。

3.2 techniques

3.2.1 Matrix Factorization

Matrix Factorization首先认为一个矩阵可以很好地表示图的信息,比如graph Laplacian, node proximity matrix。然后按矩阵的方法,实现降维,以矩阵信息保存程度为最重要的降维指标。

3.2.2 Deep Learning

综述中介绍的deep learning方法有两种:

  • 有random walk, 即deepwalk系列方法
  • 无random walk, 包括autoencoder, CNN等

3.2.3 Edge Reconstruction based Optimization

综述中分三类:

  • Maximizing Edge Reconstruction Probability
  • Minimizing Distance-based Loss
  • Minimizing Margin-based Ranking Loss

Edge Reconstruction based意味着看重edge信息,也就是Node之间的关联,这个关联按照之前介绍分为first-order proximity和second-order proximity两种。edge reconstruction比照的ground truth直接来自图。

3.2.4 Graph Kernel

graph kernel的insight比较容易理解,以子结构的组成来分析全图。

3.2.5 Generative Model

综述分了两类:

  • Embed Graph Into the Latent Semantic Space
  • Incorporate Latent Semantics for Graph Embedding

其中第一类更为寻常,以latent space做embedding space,以此生成我们见到的graph,例如从topics生成document。

你可能感兴趣的:(Machine,Learning,Graph,Embedding)