遥不可及|如何在图上进行卷积网络的深度学习(一)

作者:TobiasSkovgaardJepsen
【遥不可及|如何在图上进行卷积网络的深度学习(一)】编译:ronghuaiyang
导读这是第一部分 , 图卷积网络的高级介绍 。
图的机器学习是一项非常困难的任务 , 因为图的结构非常复杂 , 但同时也提供了丰富的信息 。 本文是关于如何利用图卷积网络(GCNs)对图进行深度学习的系列文章中的第一篇 。 GCNs是一种功能强大的神经网络 , 旨在直接处理图并利用图的结构信息 。
在本文中 , 我将介绍GCNs , 并使用图解的方式说明信息如何通过GCN的隐藏层进行传播 。 我们将看到GCNs是如何聚合来自前一层的信息 , 以及这种机制如何生成图中节点的有用特征表示 。
什么是图卷积网络?GCNs是一种非常强大的图机器学习神经网络结构 。 事实上 , 它们非常强大 , 甚至一个随机初始化的2层GCN都可以生成网络中节点的有用特征表示 。 下图展示了由这样一个GCN生成的网络中每个节点的二维表示 。 请注意 , 即使没有任何训练 , 网络中节点的相对接近性也保留在二维表示中 。
一个N×F?的输入特征矩阵X , 其中N是节点的数量 , F?是每个节点输入特征的数量图结构的N×N矩阵表示 , 如G.[1]的邻接矩阵AGCN中的一个隐藏层可以写成H^i^=f(H^i-1^ , A)) , 其中 , H?=X , f是前向传播 。 每一层的H^i^对应于一个N×F^i^的特征矩阵 , 其中每一是一个特性的表示一个节点的特征 。 在每一层 , 使用传播规则f聚合这些特征 , 形成下一层的特征 。 这样 , 每个连续层的特征都变得越来越抽象 。 在这个框架中 , GCN的变体只在传播规则f的选择上有所不同 。
一个简单的传播规则
最简单的传播规则之一是:
简化
我们用最简单的方法检查一下传播规则 。 令:
i=1的时候 , f是关于输入特征矩阵的函数σ是恒等变换函数选择这样的权值 , 使得 , AH?W?=AXW?=AX.换句话说 , f(X,A)=AX , 这个传播法则也许太简单了一点 , 不过我们后面会加点东西 。 另外注意 , AX现在相当于多层感知器的输入层 。
一个简单的图的例子
作为一个简单的例子 , 我们使用下面的图:
A=np.matrix([[0,1,0,0],[0,0,1,1],[0,1,0,0],[1,0,1,0]],dtype=float)下面 , 我们需要特征!我们为每个节点生成了2个整数特征 , 这样后面手动计算会很方便 。
In[3]:X=np.matrix([[i,-i]foriinrange(A.shape[0])],dtype=float)XOut[3]:matrix([[0.,0.],[1.,-1.],[2.,-2.],[3.,-3.]])应用传播法则
好了 , 我们现在有了一个图 , 邻接矩阵A还有一组特征X , 我们看看应用传播法则的时候发生了什么:
In[6]:A*XOut[6]:matrix([[1.,-1.],[5.,-5.],[1.,-1.],[2.,-2.]])发生了什么?每个节点(每一行)的表示现在是其邻居特征的总和!换句话说 , 图卷积层将每个节点表示为其邻域的集合 。 我鼓励你自己检查一下计算结果 。 注意 , 在本例中 , 如果存在一条从v到n的边 , 则节点n是节点v的邻居 。


推荐阅读