前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >521三大问:啥是GNN?GNN咋学?GNN何用?

521三大问:啥是GNN?GNN咋学?GNN何用?

作者头像
炼丹笔记
发布2021-06-15 15:40:31
4490
发布2021-06-15 15:40:31
举报
文章被收录于专栏:炼丹笔记炼丹笔记

时晴,本文大多摘自引文Rishabh Anand的文章

GNN的可视化解释!

简 介

近来发现非常多的建模问题中都使用了GNN方法,便去学习了一番,后来发现了一篇非常不错的GNN的可视化解释文章,便将其翻译整理和大家一起分享。

目前图模型的应用非常广泛,最典型的如社交网络,蛋白质结构等。最近越来越多的图算法也被应用于搜索推荐,时间序列等的问题,并且都取得了非常大的成功,本文我们直观的不带有任何数学等形式的了解一下图神经网络。

大家一定会非常好奇,图神经网络究竟哪里好,它能学到其它网络学不到的东西吗?下面我们就一起来看看GNN是如何工作的。

GNN

1.关于图

图一般由两个核心模块组成,分别是:节点和边。

如上图所示,黑色的箭头是边的指向,表示一种关系,注意此处我们表示的是有向图。

虽然图很简单,但如果我们赋予节点和边不同的含义的话,那么图就可以非常多的信息,例如每个节点是用户,边是打电话的话,那么就可以表示一个电话相关的社交;如果节点是商品,边表示用户的购买顺序的话,那么就是一个用户的购物网络。

2.一些概念

recurrent单元,嵌入向量表示和前向神经网络。

我们假设特征向量是当前节点索引的一个热编码,标签用颜色表示,如下图所示:

所有的节点被转化为一个recurrent单元, 所有的边组成一个前向神经网络。

3.信息传递

一旦节点和边的转换完成,图就会在节点之间执行消息传递。这个过程也被称为Neighbourhood Aggregation,因为它涉及到通过有向边从给定引用节点周围的周围节点推送消息。

对于GNNs,对于单个参考节点,相邻节点通过边神经网络将其信息(embeddings)传递到参考节点上的递归单元中。递归单元的新嵌入将通过将所说的递归函数应用于当前embeddings和相邻节点embeddings的边缘神经网络输出的总和来更新。

注意:边神经网络输出的和(图中的黑色封套)是输出顺序的不变量。

4.传递之后最终得到的向量表示是什么呢?

执行了几次邻域聚合/消息传递之后,我们的每个节点单元就变成了一组全新的embedding。

  • 当前每个节点对自己和相邻节点的信息(特征)会有更多的了解,从而得到整个图更精确的表示。

为了在pipeline的更高层进行进一步的处理,或者简单地表示图,我们可以将所有embeddings相加,得到表示整个图形的向量。

  • 使用H比使用邻接矩阵往往效果更好,这些矩阵不代表图形的特征或独特方面,尽管存在任何图形扭曲-只是节点之间的边连接。

小 结

从上面的分析我们可以发现,在使用图的时候我们可以简单的将其划分为下面几步:

  • 给定一个图,首先将节点转化为递归单元,将边转化为前馈神经网络;
  • 对所有节点执行n次邻域聚合(消息传递)。
  • 对所有节点的嵌入向量求和得到图表示H。
  • 将H传递到更高的层中,或者使用它来表示图形的独特属性!

何时使用?

从上面GNN的直观解释中,我们知道了图形神经网络是如何工作的,那什么时候使用它会更为方便或者什么时候可以直接使用它呢?

  • 社交媒体中,对用户进行聚类的时候可以使用,依据每个用户follow和被follow的信息构建图,然后学习每个用户的embeddings信息聚类;
  • 内容推荐,依据用户流量内容的关联关系,对用户进行内容推荐;

当然,我觉得只要是能构建成图的数据,都可以尝试使用gnn。

参考文献

1.An Illustrated Guide to Graph Neural Networks

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 炼丹笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 简 介
  • GNN
    • 3.信息传递
      • 4.传递之后最终得到的向量表示是什么呢?
      • 小 结
      • 何时使用?
      • 参考文献
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档