参考transformer encoder-decoder结构:
- encoder用于embedding representation。
- decoder用于预测、生成任务。
目录
Problem Definition
- Graph机器学习的核心问题:如何把Graph结构信息纳入机器学习模型中。常用的Graph结构信息包括:节点的全局位置(Global Position)和节点的局部近邻结构(The structure of the node's local graph neighborhood)
- Graph Embedding目标:学习node或entire (sub)graph的低维embedding,使得embedding space中的几何关系能够反应原始Graph的结构信息,如两个node节点在embedding space中的距离能够反应原始高维空间Graph中二者的相似性。(Learn embeddings that encode graph structure)
Method Categories
目前主流的Graph Embedding方向是Node Embedding,包含了3大类主流方法:Matrix Factorization、Random Walk、Graph Convolution Networks。
- Matrix Factorization:矩阵分解。将Graph结构信息使用矩阵来刻画,例如Graph邻接矩阵或节点的共线矩阵,衡量了所有节点之间的相似性,对该矩阵进行分解,学习节点的低维向量表示。例如:Graph Laplacian Eigenmaps、Graph Factorization。
- Random Walk:随机游走。构建Graph中node的随机游走序列,构建游走序列内部节点之间的上下文共现对,再使用Word2Vec方法进行学习。例如:DeepWalk、Node2Vec。
- Graph Convolutional Networks: Graph卷积网络。将卷积从Image/Sentence拓展到Graph。基于节点local neighborhoods的汇聚。例如: GCN、GraphSAGE。
Encoder-Decoder Framework
作者针对Node Embedding,提出了一个统一的Encoder-Decoder编程框架来设计和实现Graph Embedding算法,上述所述目前主流的Graph Embedding算法都可以用该框架来重新组织代码结构。
- Encoder:目标是将每个Node映射编码成低维的向量表示,或embedding。
- Decoder:目标是利用Encoder输出Embedding,来解码关于图的结构信息。
这一框架的核心思想在于,如果我们能够基于编码得到的低维embeddings,来学习高维graph结构信息的解码,这些信息包括节点的全局位置或节点的局部近邻结构等,那么,原则上,这些低维embedding包含了所有下游机器学习任务所需要的全部信息。
形式化地,Encoder是如下映射函数:
即,将节点i∈V映射成embedding zi∈Rd。
Decoder是这样一个函数,函数的输入是上述node embeddings集合,输出是要解码的、用户自定义的Graph结构信息。例如:Decoder目标可能是预测在给定节点embedding条件下,节点之间的连边是否存在;或给定embeddings下,预测节点所属的社区类别。Decoder的形式是多样化的,但最常用的是pairwise decoder。
即,Decoder的输入是Node Pair的embeddings,输出是一个实数,衡量了这两个Node在原始Graph中的相似性。
为了学习embedding,我们的目标是重构节点低维embeddings的相似性,以反映二者在原始Graph中的相似性。即给定Node Pair(vi, vj),
其中,是模型基于编码的embedding,解码得到的二者的相似性(Emtimated); 而
是用于定义的、原始图中,顶点之间的相似性(Gound Truth),例如可以使用邻接矩阵A来表示。那么,学习的目标就是所欲训练集Node Pairs上,上述重构误差最小化,
L是RxR -> R是用于定义的损失函数,衡量了两个输入之间的差异。例如可以使用平方损失或交叉熵损失等。其中,DEC(zi,zj)可以看做是估计的相似值,sG(vi,vj)可以看做是真实的相似值。
上述框架涉及到的4大组件:
- pairwise similarity function
- encoder function
- decoder function
- loss function