图表示学习
1、什么是图表示学习?
\qquad 把图上的结点映射到固定维度的向量空间。
\qquad 优势:可以将拓扑信息和结点本身特征结合。
\qquad 目的:在向量空间上对图数据进行学习和推断。
2、针对图表示学习的两个不同视角
- 图论、数据挖掘角度:如何在学习到向量的表示中尽可能多的图拓扑结构的信息。基于图结构的表示学习
- 从机器学习,特征工程角度:如何通过有效利用图拓扑结构信息结合现有的特征向量得到新的特征。基于图特征的表示学习,即图神经网络
3、基于图结构的表示学习
\qquad 类似于降维,传统降维不能保留图中结点之间的拓扑信息。保留拓扑信息,即在拓扑域中邻近 ⟺ \Longleftrightarrow ⟺ 在向量域邻近。
\qquad 定义邻近的方法:共同出现(邻居关系)、高阶邻近(n-hop邻居)、团体邻近(属于某一团体)。
\qquad 现有算法都是围绕定义“邻近”和求解“邻近”来展开的。代表性算法:
\qquad (1)Deepwalk
- 使用定长的随机游走去采样图中结点的邻近关系;
- 结点 → \rightarrow →词语,随机游走序列 → \rightarrow →句子;
- 使用自然语言处理相关模型对随机游走序列进行表示学习。
\qquad (2)Node2vec
-
动机:简单的随机游走采样不够好(不能体现BFS/DFS性质)
-
核心思想:等概率跳 → \rightarrow →人工设计概率来跳
\qquad (3)struc2vec
- 动机:保留局部结构一致性
- 核心思想:在原来的图上构建一个新图
\qquad (4)metapath2vec
-
动机:异构图上存在不同类型的结点,这些结点不能等同看待,其间关系可能存在一些固定模式。
-
核心思想:使用预定义的meta-path进行random walk。
4、基于图特征的表示学习
机器学习领域:更加关注如何利用图的拓扑结构生成新的结点特征。所有深度学习问题,都可以归纳为表示学习的问题。
(1)图神经网络的发展
(2)谱域上的图卷积
(3)谱域图卷积网络
注意局部化后,一个节点只影响它距离为K以内的邻居。
(4)ChebyNet
ChebyNet的贡献在于:基于切比雪夫多项式对原有的多项式卷积核进行处理,使其能够快速局部化。
(5)图卷积神经网络GCN
GCN来源于ChebyNet,只是对切比雪夫多项式进行了处理。
以上均是从谱域上来看图卷积,其核心思想就是:将在欧式空间的CNN拓展到谱域空间 → \rightarrow →图卷积
以下将从空域上讨论图神经网络
\qquad 注:空域就是时域,谱域讲的是频域。
\qquad 总结一下GCN:
- 输入:邻接矩阵(节点数×节点数),特征矩阵(节点数×输入特征数)
- 输出:新的特征矩阵(节点数×输出特征数)
- 多层网络可以叠加
- 空域上看:节点层面,节点自身特征和其邻域特征的聚合
- 谱域上看:在谱空间中的图滤波操作
(6)消息传递网络MPNN–空域图神经网络的一般形式
- 消息函数:整合邻接节点、目标节点以及它们之间的边,即 m v t + 1 m^{t+1}_v mvt+1
- 消息与节点原来的状态进行更新 → \rightarrow →节点新的表示
- 通过定义不同的消息函数和状态更新函数,即得到不同的图神经网络。
(7)GAT
(8)R-GCNs
(9) 图神经网络分类
5、GCN的缺点
(1)GCN的问题:过平滑
问题1:过平滑:GCN信息传递一定层之后,中心节点的信息不变。
- 模型上的改进:
- 训练方式上的改进:
(2) GCN问题:邻居爆炸
\qquad
解决方法:
1)GraphSAGE
2)FastGCN
FastGCN的缺点:层与层之间不相关;采样效率很低。
3)GraphSAINT
4)RS-GCN
6、池化
预处理方式:先对图进行聚类,Graclus
可学习方式:定义可学习的参数,AMG、DiffPool、Top-K Pooling
池化的动机:类似于CNN,对邻接节点或者相似节点进行一些聚合?