百度飞桨图神经网络7日打卡营学习心得
Posted SSyangguang
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了百度飞桨图神经网络7日打卡营学习心得相关的知识,希望对你有一定的参考价值。
图卷积网络原理
首先可以利用节点特征进行关系预测、节点预测等任务。如果要将节点任务推广到图像领域,可以对图进行Graph Pooling操作,例如求和、均值、最大值等操作得到整张图的图特征,得到图特征之后就可以进行图相关的任务了,例如图匹配、图分类等。
图神经网络和游走模型的区别:
游走模型需要先训练得到embedding,再利用embedding做下游任务,如分类等。而图神经网络是端对端模型,边训练节点边做下游任务。
理解的图卷积网络三大问题:
- 如何从图像卷积类比到图结构卷积;
- 如何用消息传递方式实现图卷积网络;
- 如何用多层图网络实现节点分类任务。
从图像卷积类比到图结构卷积
图像卷积:将像素点周围的像素按照不同的权重叠加起来;
图卷积:将一个节点周围的邻居按照不同的权重叠加起来。
主要区别在于图结构周围的邻居并不想图像那样数量固定。
图卷积网络计算公式
其中,是激活函数,是一个学习的权重。
代表邻接矩阵,代表度矩阵,是每一层的节点表示,通过下面的例子来理解。
右图为左图的邻接矩阵表示形式,也就是的形式,将每一行的元素相加并置于对角线位置处,就可以得到度矩阵,即,然后就可以继续求得,下图是流程。
为了方便理解,将上式转化为下式:
的物理意义如下:
的第一行是A第一行与矩阵相乘:
因为A的前三列元素均为1, 后面其他元素为0,这样可以得到第一行表达式形式为:
上面的过程类似于消息传递,将0号、1号、2号的的信息传给0号。
使用消息传递的方式实现图卷积网络
- 边上的源节点,向目标节点发送特征;
- 目标节点收到的特征进行聚合。
度
利用GCN的度给边加权,也就是给节点的重要性加权,度越大,包含的信息量越小,这在分母中可以体现。
在百度飞桨图神经网络平台PGL中实现消息传递
实现程序如上图,send函数和recv函数分别对应消息发送和消息接收函数。
用多层图网络实现节点分类任务
步骤如下:
- 节点间进行特征传递;
- 对每一个节点都过一层GNN。
重复两个步骤L次,就可以得到一个多层图卷积神经网络。第0层的H其实就是原有节点特征。
将最后一层的表示通过分类器就可以对每个节点进行分类了。
以上是关于百度飞桨图神经网络7日打卡营学习心得的主要内容,如果未能解决你的问题,请参考以下文章
强化学习从PG到PPO(基于百度飞桨PaddlePaddle+PARL)