参考:最通俗易懂的图神经网络(GCN)原理详解
假设我们手头有一批图数据,其中有N个节点(node),每个节点都有自己的特征,我们设这些节点的特征组成一个N×D维的矩阵X,然后各个节点之间的关系也会形成一个N×N维的矩阵A,也称为邻接矩阵(adjacency matrix)。X和A便是我们模型的输入。
GCN也是一个神经网络层,它的层与层之间的传播方式是:
这个公式中:
- A波浪=A+I,I是单位矩阵,加单位矩阵是因为要融合自己节点的特征。
- D波浪是A波浪的度矩阵(degree matrix),是一个对角矩阵。
- H是每一层的特征,对于输入层的话,H就是X(特征)假设点的特征是m维,那么X就是n*m。当第一层的H没有特征向量时,就用单位矩阵代替,这样该节点的特征就是他的邻接矩阵。
- σ是非线性激活函数
多层的GCN:
上图中的GCN输入一个图,通过若干层GCN每个node的特征从X变成了Z,但是,无论中间有多少层,node之间的连接关系,即A,都是共享的。
假设我们构造一个两层的GCN,激活函数分别采用ReLU和Softmax,则整体的正向传播的公式为:
将矩阵的特征展开就可以得到每一个点的特征,将每个点的特征依次输入做分类,进行训练。