顶尖的网站建设,泰国浪琴手表网站,松江品划网站建设,wordpress 文章分页A gentle introduction on gnn
前言
发表在distill的文章
图神经网络在应用上才刚刚开始
搭建了一个GNN playground
什么是图
图是表示实体之间的关系
可以分别表示成点向量、边向量、图向量
图可以分为有向图和无向图
数据是怎么表示成图
图片表示成图#xff1a; …A gentle introduction on gnn
前言
发表在distill的文章
图神经网络在应用上才刚刚开始
搭建了一个GNN playground
什么是图
图是表示实体之间的关系
可以分别表示成点向量、边向量、图向量
图可以分为有向图和无向图
数据是怎么表示成图
图片表示成图
把图上的每一个像素都映射成图上的一个点
边是像素之间的关系
文本表示成图
上一个词和下一个词之间有一条有向边
化学表示图
每一个原子表示成一个点
社交网络表示成一个图
人物在场景里同时出现
数据集
Qm9 化学分子式
Cora 论文引用
wikipedia 知识图 引用图
在图上可以定义什么问题
图层面
比如给一张图对图进行分类
顶点层面
节点分类
边层面
边的属性预测
将机器学习用在图上会遇到什么挑战
图的四个属性点属性、边属性、图的全局属性、连接性
连接性可以通过邻接矩阵来表示
存储高效并且存储无关的
图神经网络
v1 最简单的GNN
对于点、边、图分别构造一个MLP
进去以后得到了更新后的三种向量
比如做节点二分类就在后面加一个输出维度为2的全连接层再加一层softmax就可以得到输出。
如果是n类就加一个输出维度为n的全连接层再加一层softmax。
pooling
对一个点的向量做预测
把全局向量、边的向量加起来不过维度要一致否则要做投影
所有边和顶点的向量加起来可以得到全局的向量
总结
GNN一个层里就是三个MLP对原图做transform
在图转换为向量以后加一个分类层就可以做预测了
但是这种方法有局限性没有考虑到连接信息没有把图的信息更新到结构里
v2 信息传递
aggregate 把邻居的向量加起来聚合后再更新
这里相当于卷积但是权重都是一样的
顶点和边之间的交换
可以交替交换
全局信息的交换
Master node
这个点是一个虚拟的点可以和所有的点和边相连
把所有的顶点和边的信息都拿过来汇聚
这样对三类属性都可以学到预测的向量
其实有点像attention mechanism
基于消息传递的图神经网络
GNN playground
把gnn的训练程序嵌入到javascript
在浏览器里运行的
可以选图神经网络有多少层
可以改变超参数重新进行训练
这个东西超参数比较难调
相关技术
不同类型的图
可能有很多别的图比如multigraph比如图可能是分层的
采样
如果图太大可能要做采样
随机采样一些点把这些点的邻居找出来只在子图上做计算减少内存
做随机游走规定最多随机走几步就可以得到子图
batch
inductive biases
gnn的假设是保持了图的对称性
不同的汇聚操作
求和、求平均
没有一个聚合的操作是比另一个更好的
所以在实际应用中可能要找一个适合的办法
GCN
GCN就是带了aggregation的神经网络
每一个点都是以自己为中心的往前走k步的子图的汇聚
GCN可以认为是有n个子图
dual
可以做对偶
在图上做卷积做random work都是在矩阵上做乘法
和pagerank的思想有点像
GAT
在图上做汇聚的时候每个点的权重是相同的
卷积的权重是对位置不敏感的
所以可以用注意力机制的的办法
做点乘以后做softmax
图的可解释性
图到底学到了什么东西
结论
写作非常流畅
gnn就是对属性做变换但是不改变图的结构
怎么做预测就是最后做输出层
如果有缺失可以用一个聚合的操作弥补缺失的属性
消息交换可以通过汇聚的方法把图上的信息进行汇聚
实验部分对于每个超参数对结果的影响是怎么样的
最后对gnn相关的技术进行了展开
交互图蕴藏了很多信息美观直观
图既是一个优点也是一个缺点图数据的可视化是比较难的
distill写作的门槛太高
尽量的使用图和文字来描述而不是公式和代码
在图上做优化是很难的因为它的架构很稀疏
图神经网络对超参数很敏感
所以图神经网络的门槛比较高
图神经网络在工业界的应用是比较少的