1、导 读
图神经网络(Graph Neural Network,GNN)是指使用神经网络来学习图结构数据,提取和发掘图结构数据中的特征和模式,满足聚类、分类、预测、分割、生成等图学习任务需求的算法总称。
GNN的历史最早可以追溯到 2005 年,Gori 等人第一次提出 GNN 概念,用 RNN 来处理无向图、有向图、标签图和循环图等。Bruna等人提出将 CNN 应用到图上,通过对卷积算子巧妙的转换,提出了图卷积网络(GCN),并衍生了许多变体。
本文将首先对图神经网络的常见应用场景进行列举,然后针对图神经网络的原理进行详细阐述。
本文开始之前,请大家思考一个问题,
—为什么研究学者们要设计图卷积操作,传统的卷积不能直接用在图上吗?
更多内容 关注公众号【小Z的科研日常】获取。
2、GCN的应用场景
🌐 社交网络的建模 🌐
当前众多研究学者使用图神经网络模型应用在社交网络建模中,在社交网络中不同朋友之间的联系使用社交图(见图1)实现直观地表示。
图1 社交图
通过社交图将不同朋友之间的社交关系清晰地映射出来,为社交网络分析提供新的分析视角。
🗣️ 语音识别的图形模型应用 🗣️
在深入了解语音识别领域相关技术后,如何通过构建语音识别的图形模型来捕捉音素Yᵢ和声学模型xᵢ形成 HMM(语音识别图)是当前研究热点。
图2 语音识别图
🖼️ 传统卷积和图卷积的区别 🖼️
这也就回到了我们引言中所提问到的问题,我们在传统卷积中以CNN为例辅助大家理解。
在图像领域中使用CNN,我们依旧可以将图像输入建模为图的形式。例如图3(左)是5x5的像素点,对于3x3卷积核的情况下,每个节点都能够直接连接8个邻节点。
图3 传统卷积图示
但图表的情况并非如此。例如,下面的图虽然在空间上看起来不同,但它们是相同的。
图4 图卷积网络的数据结构
一般来说,神经网络 (NN) 采用输入x来预测z。而这也给神经网络中如何处理图结构化数据带来了新的挑战。
图5 传统神经网络架构
在 GCN(图卷积网络)中,神经网络的输入将是一个图。此外,它不是推断单个z ,而是推断图中每个节点 i 的值 zᵢ 。为了对 Zᵢ 进行预测,GCN在计算中同时利用了 Xᵢ 及其相邻节点。
图卷积网络(GCN)
GCN 的总体思想是在图上应用卷积。GCN 采用图作为输入,而不是二维数组作为输入。
图6 传统卷积和图卷积区别
(圈中部分为卷积核)
下面的第一张图(第一行)是传统的神经网络,第二张图是 GCN,其中包含四个节点作为输入。
图7 传统神经网络和图卷积网络对比图
在第一个神经网络中,它包含多个密集层(全连接层)。其中,x 是一层的输入,zᵢ 是第 i 层的输出。对于每一层,我们将z(或第一层的 x )与权重 W 相乘,并将输出传递给激活函数 Relu。
而 GCN 与上述结构较为相似,但 Relu 的输入是 HⁱWⁱ 而不是 Wᵢzᵢ 。即σ ( Wᵢzᵢ ) 与σ(ÂHⁱWⁱ),其中zᵢ和Hⁱ分别是神经网络和图卷积网络的最后一个隐藏层的输出向量。但注意,Wⁱ 和 Wᵢ 是不同的,并且具有不同的维度,对于GCN中的第一层,X包含的节点数组不是单个节点x。X是被编码为矩阵,每行包含一个节点的特征。
下面我们先来一窥图卷积神经网络的全貌。如图8所示,输入的是整张图,在Convolution Layer 1
里,对每个结点的邻居都进行一次卷积操作,并用卷积的结果更新该结点;然后经过激活函数如ReLU
,然后再过一层卷积层Convolution Layer 2
与一层激活函数。
反复上述过程,直到层数达到预期深度。与GNN类似,图卷积神经网络也有一个局部输出函数,用于将结点的状态(包括隐藏状态与结点特征)转换成任务相关的标签;也有一些任务是对整张图进行分类的,比如化合物分类。卷积操作关心每个结点的隐藏状态如何更新,而对于Graph-Level
的任务,会在卷积层后加入更多操作。
图8 图卷积框架
未完待续......