本文主要分为两部分,第一部分介绍什么是GCN,第二部分将进行详细的数学推导。
一、什么是GCN
1、GCN 概述
本文讲的GCN 来源于论文:SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS,这是在GCN领域最经典的论文之一。
我们可以根据这个GCN的图看到,一个拥有C个input channel的graph作为输入,经过中间的hidden layers,得到F个 output channel的输出。(注意本文讲的图都特指无向无权重的图。)
图卷积网络主要可以由两个级别的作用变换组成:
(1)graph level
例如说通过引入一些形式的pooling 操作 (see, e.g. Duvenaud et al., NIPS 2015),然后改变图的结构。但是本次讲过GCN并没有进行这个级别的操作。所以看到上图我们的网络结构的输出和输出的graph的结构是一样的。
(2)node level
通常说node level的作用是不改变graph的结构的,仅通过对graph的特征/(features/signals)X作为输入:一个的矩阵(
: 输入图的nodes的个数,
输入的特征维度) ,得到输出
:一个
的矩阵(
输出的特征维度)。
a) 一个特征描述(feature description) : 指的是每个节点
的特征表示
b) 每一个graph 的结构都可以通过邻接矩阵 表示(或者其他根据它推导的矩阵)
我们可以很容易的根据一个邻接矩阵重构出一个graph。 例如下图:,其中
代表节点,
代表边
我们通过构造的矩阵可以得到邻接矩阵
, 其中
如果节点
和节点
相连,否则
, 我们根据graph可以得到
, 同理通过
也可以得到graph 的结构。
所以网络中间的每一个隐藏层可以写成以下的非线性函数:
其中输入层, 输出层
,
是层数。 不同的GCN模型,采用不同
函数。
2、模型定义
论文中采用的函数如下:
刚开始看的时候,都会被吓到!这个函数未免也太抽象了。但是我们先了解