zl程序教程

您现在的位置是:首页 >  IT要闻

当前栏目

Paddle图神经网络-学习笔记(一)

2023-03-14 22:56:13 时间

02图游走类模型


DeepWalk

目标:Node embeddings 学习到节点与邻居的关系。得到节点表示,用于下游任务


Word2Vec 应用到 图嵌入领域


image


节点——>单词


节点序列——>句子


游走方式:Random Walk

本质:可以回头的DFS


image


整体架构:


image


问题:图是一个复杂的结构,需要考虑更多因素。


Node2Vec

对DeepWalk的改进结合BFS与DFS模式。


image


改进:bias random walk


image


p:控制随机游走以多大的概率back

q:控制随机游走偏向DFS还是BFS

image


metapath2vec及其变种

异构图如何随机游走?


不考虑节点类型的异构随机游走,缺点:


1.偏向于出现频率高的节点类型;

2.偏向于相对集中的节点(即度数高的节点)

回顾异构图定义:


image


meta path(元路径):在图中选取的由节点类型构成的组合路径


基于meta path的随机游走


image


image


随机游走的时候考虑到节点类型


问题:负采样的时候,没有考虑节点类型


metapath++:负采样的时候,考虑节点类型


变种:multi-metapath2Vec++


利用多条元路径


image


side info + multi-metapath2vec++


image


03图神经网络算法(上)


图卷积网络(GCN)

卷积在规则数据上很好应用,如果是不规则的图呢?


image


从图像卷积类比到图结构卷积

图像卷积

将一个像素点周围的像素按照不同的权重叠加起来。


图结构卷积

将一个节点周围的邻居按照不同的权重叠加起来。


image


图卷积网络计算公式:

H ( l + 1 ) = σ ( D ~ − 1 2 A ~ D ~ − 1 2 H ( l ) W ( l ) )


image


这个公式可以一步步来看


image


1.边上的源节点,往目标节点发送特征


2.目标节点对收到的特征进行聚合


问题:是否所有的人对自己的评价都是有用的?


image


所以:如何衡量邻居的重要性?


度:给边加权


image


怎么用多层图网络完成节点分类任务

image


GCN算法全流程:


第一步:节点间进行特征传递


第二步:对每一个节点过一层DNN


重复L次,实现多层图卷积网络


获取的最终表示H ( L )作为最终节点表示,来分类


image


图注意力网络(GAT)

GCN中边的权重:


与节点的度相关

不可学习

GAT中的边权重


权重变成节点间的函数

权重与两个节点相关性有关

可学习

image


attention计算方法

image.png

特征聚合计算方法

image.png

Message Passing

GCN、GAT都是基于邻居聚合的模型


称为Spatial(空间)GNN


大部分的Spatial GNN都可以用Message Passing实现


消息的发送

消息的接收

image