深入浅出图神经网络
第一章 图的概述
图的基本定义
图的类型
一些有关图的基本知识
图的存储(邻接矩阵)与遍历(广度、深度优先搜索算法)
图数据的应用场景
图深度学习的基本任务:节点层面、边层面和图层面
第二章 神经网络基础
第三章 卷积神经网络
第四章 表示学习
传统机器学习:通过人的先验知识在原始数据基础上手动获取特征(特征工程),然后带入下游学习任务,学习效果的好坏很大程度上取决于特征获取的好坏。
深度学习:将原始数据作为输入带入学习任务,直接输出目标。称为端到端的学习,即将表示学习(对应传统机器学习的特征工程)和任务学习结合在一起。
表示学习:通过某种编码器(函数),将原始数据映射到更低维(一般是更低维)的向量空间,实现某种嵌入(降维)。
基于重构损失的方法:自编码器、正则编码器、变分自编码器。
基于对比损失的方法:Word2vec
第五章 图信号处理与图卷积神经网络
图傅里叶变换和图卷积神经网络的解释和推导
第六章 GCN的性质
GCN与CNN的对比
CGN是一个低通滤波器,其存在过渡平滑的问题。
第七章 GNN的变体与框架
GraphSAGE:在GCN基础上通过每一层节点级别的采样,实现小批量式更新,可以实现工业级别的应用。
GAT:先(利用神经网络层)计算该节点与其邻域节点的注意力值,再用注意力值聚合其邻域(将自己也视为邻域节点)更新自己;一般还用到了多头,即计算多次注意力值(每次都会注意不同的特征)进行拼接或者平均。
R-GCN:GCN只能用于无向同构图,R-GCN扩展到了有向异构图。对每种边关系使用一个权重矩阵进行考虑,为了减少参数数量,避免过拟合,还使用了一种基数分解技术,将每个权重矩阵分解为一组基矩阵的加权和。
GNN通用框架:
消息传递神经网络(MPNN):与邻域消息聚合再更新。GCN、R-GCN等
非局部神经网络(NLNN):对注意力机制的一种概括,先计算邻域相关度,再聚合。GAT等
Graph Network(GN):最一般的框架。又点更新边,再由边聚合更新点,点聚合和边聚合更新图。
第八章 图分类
主要是将节点嵌入的集合进一步聚合,得到图嵌入。
基于全局池化的图分类:对全局节点进行一次性聚合
基于层次化池化的图分类:
- 图坍塌(Graph Coarsening):将图划分成不同的子图,将子图视为超级节点,从而形成一个坍塌的图。(DIFFPOOL、EigenPooling)
- TopK:对图中每个节点学习出一个分数,基于这个分数的排序丢弃一些低分数的节点,将更重要的信息筛选出来(CNN中最大池化操作)
- 边收缩(Edge Contraction):并行地将图中的边移除,并将被移除边的两个节点合并,同时保持其连接关系。
第九章 基于GNN的图表示学习
目标是将图数据转化成低维稠密的向量化表示,同时确保图数据的某些性质在向量空间也能得到对应。一种图数据的表示如果能够包含丰富的语义信息,那么下游任务就能得到相当优秀的输入特征。
好处:1. 将图数据表示成线性空间中的向量,为计算机处理数据提供方便。
- 为之后的学习任务做铺垫。一个好的图表示学习方法可以统一高效地辅助学习任务。
基于分解的方法(早期):对描述图数据结构信息的矩阵进行矩阵分解,将节点转化到低维向量空间去,同时保留结构上的相似性。
基于随机游走的方法:由Word2Vec启发得到的DeepWalk,Node2Vec等
基于GNN的方法(编码器):自编码器等