目录
介绍
图的定义
数据的图的表示
1、图片的图表示(11:50)
2、文本的图表示
3、分子的图表示
4、社交网络的图表示
数据统计
三大类问题
1、图层面的任务
2、顶点层面的任务
3、边级层面的任务
将图用在机器学习上的挑战
1、挑战
2、解决办法
3、输入神经网络的方法
零基础多图详解图神经网络(GNN/GCN)【论文精读】_哔哩哔哩_bilibilihttps://www.bilibili.com/video/BV1iT4y1d7zP?spm_id_from=333.337.search-card.all.click&vd_source=556d1641ea6399350ae7b3b12715aaa9
介绍
distill网站文章
图的定义
其中 V表示节点的特征,E表示边的贡献,U表示图的全局。
V E U 均可以用向量表示。
图分为两种:朋友关系没有方向,有的比如粉丝关注是有方向的。
数据的图的表示
1、图片的图表示(11:50)
中间的是邻接矩阵,每个像素点周围的都是邻居,临接矩阵中每个蓝色的点表示一个边,是稀疏矩阵。
2、文本的图表示
每个词是一个节点,词与词之间有一个有向边,因为是有向图,所以邻接矩阵不对称。
3、分子的图表示
原子之间的连接。
4、社交网络的图表示
人物之间的交互关系。等等...
数据统计
三大类问题
1、图层面的任务
将图进行分类,比如哪个有一个环、哪个有两个环,这种简单的任务编程转一圈就可以实现。
2、顶点层面的任务
空手道例子,有两个老师,其余都是学生,两个老师打架了,那么学生都是站在老师A这边,还是老师B这边。
右图灰色的和老师A在一个阵营,红色的和老师B在一个阵营。
3、边级层面的任务
语意分割将图片分割,然后去学习边之间的属性,并预测边的属性。
将图用在机器学习上的挑战
1、挑战
1、节点比较多,邻接矩阵很大,而且是个稀疏矩阵,用在GPU上计算一个是一个难题。
2、节点交换顺序,邻接矩阵形状变化,但是要保证神经网络输出的结果保持一致。
邻接有多种选择:
2、解决办法
如果又想存储高效,又想不影响我的整个排序的话,可以采用下面的方式:
8个顶点7条边:
每个顶点的属性用标量表示,当然也可以换成向量
边也可以用一个标量表示,同样的道理也可以用向量,
邻接矩阵可以用邻接列表的方式表示,长度和边数是一样的,其中第i项表示第i条边连接哪两个节点。
这样处理的好处是可以同时打乱顺序,表示的东西不会变。
3、输入神经网络的方法
3种数据经过3个MLP,只对属性变换,图的结构没有变换
预测一个没有顶点的向量,pooling方法。
或者预测边或者预测全局,都可以通过汇聚操作
GNN图:
缺点:这样3个MLP并没有输入图的结构信息,没有给网络哪个顶点和哪个边之间连接。没啥用,不合理。
解决方法:信息传递
把每一个向量和其邻居的节点向量相加再传给MLP,再经过f。
这种操作和标准图片卷积核求和有点像
边和顶点之间的信息传递,用于预测位置的属性。
交替交换
U可以设想一个虚拟的点和所有顶点和边相连,汇聚也可以是拼接
调参