参考文章:A Gentle Introduction to Graph Neural Networks
仅作为自己学习的笔记
GNN应用领域:
芯片设计
场景分析与问题分析
推荐系统(类似抖音)
欺诈检测,风控相关
知识图谱
道路交通,动态流量预测
自动驾驶,无人机等场景
化学,医疗等场景
物理模型相关(分子,原子)
图的基本组成
由点 边 图 构成 ,在我们眼中,这些点 边 图 都应该是特征、向量,这样我们才能计算。
图的邻接矩阵
文本数据也可以用图来表示,只要我们能将我们的数据表示成图的形式就可以使用图神经网络
GNN常见任务
在CV或者NLP中,用到图相关模型的少之又少,因为图像和文本的数据格式都相对固定,在预处理阶段,我们所有图像都要resize成固定大小,然后再进行卷积操作得到特征。而在文本中,我们则固定长度和词向量的大小。已经不需要特殊的邻接矩阵。如果非要用图神经网络,若要固定图的结构,点的个数、边的数量等,则会损失一些特征,得不偿失。
但在一些论文创新点上,可以拿出GNN来作为一点创新来用,具体使用要看实际情况。
上述图片中,分子的形式,社会关系的映射,拳击比赛中的动作等,则用图神经网络则较为方便简洁一些。
Graph级别任务
Node与Edge级别任务
一般邻接矩阵表达方式
保存source,targe
消息传递计算方法
一个点通过边连接另外几个点,在做特征提取的时候,我们可以用该点所连的点,或者边进行重构特征,有我们自己决定。
上述我们举了几个例子,h作为我们的点,我们用我们连接点的加权平均,最大值,最小值等后进行一个激活函数后作为我们的特征提取。
GNN也可以有多层
GNN的本质就是更新各部分特征
其中输入是特征,输出也是特征,邻接矩阵也不会变的。
每层都是根据连接的点进行重构特征,看似多层没有意义,但是在重构特征时,我们连接的点在上层GNN中也进行了特征的重构,也就是说这个点也获得了这个点连接点的特征提取。
输出特征的结果要做什么有我们决定
比如,我们可以进行图分类
节点分类
边分类