02图游走类模型
DeepWalk
目标:Node embeddings 学习到节点与邻居的关系。得到节点表示,用于下游任务
Word2Vec 应用到 图嵌入领域
节点——>单词
节点序列——>句子
游走方式:Random Walk
本质:可以回头的DFS
整体架构:
问题:图是一个复杂的结构,需要考虑更多因素。
Node2Vec
对DeepWalk的改进结合BFS与DFS模式。
改进:bias random walk
p:控制随机游走以多大的概率back
q:控制随机游走偏向DFS还是BFS
metapath2vec及其变种
异构图如何随机游走?
不考虑节点类型的异构随机游走,缺点:
1.偏向于出现频率高的节点类型;
2.偏向于相对集中的节点(即度数高的节点)
回顾异构图定义:
meta path(元路径):在图中选取的由节点类型构成的组合路径
基于meta path的随机游走
随机游走的时候考虑到节点类型
问题:负采样的时候,没有考虑节点类型
metapath++:负采样的时候,考虑节点类型
变种:multi-metapath2Vec++
利用多条元路径
side info + multi-metapath2vec++
03图神经网络算法(上)
图卷积网络(GCN)
卷积在规则数据上很好应用,如果是不规则的图呢?
从图像卷积类比到图结构卷积
图像卷积
将一个像素点周围的像素按照不同的权重叠加起来。
图结构卷积
将一个节点周围的邻居按照不同的权重叠加起来。
图卷积网络计算公式:
H ( l + 1 ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) )
这个公式可以一步步来看
1.边上的源节点,往目标节点发送特征
2.目标节点对收到的特征进行聚合
问题:是否所有的人对自己的评价都是有用的?
所以:如何衡量邻居的重要性?
度:给边加权
怎么用多层图网络完成节点分类任务
GCN算法全流程:
第一步:节点间进行特征传递
第二步:对每一个节点过一层DNN
重复L次,实现多层图卷积网络
获取的最终表示H ( L )作为最终节点表示,来分类
图注意力网络(GAT)
GCN中边的权重:
与节点的度相关
不可学习
GAT中的边权重
权重变成节点间的函数
权重与两个节点相关性有关
可学习
attention计算方法
特征聚合计算方法
Message Passing
GCN、GAT都是基于邻居聚合的模型
称为Spatial(空间)GNN
大部分的Spatial GNN都可以用Message Passing实现
消息的发送
消息的接收