# Learning Convolutional Neural Networks for Graphs

本文的三位作者都来自德国Heidelberg的NEC Labs Europe,文章提出了一种从图数据中提取局部连接区域的通用方法(PATCHY-SAN),用来解决图神经网络中的经典问题:如何在大规模的图上应用卷积?如何将卷积操作泛化到任意结构的图?通过实验证明了算法的有效性,并且模型的计算是高效的。
同样,该模型也考虑了两类任务:

  1. **图分类。**给定一组图,学习一个函数,该函数可用于未知图的分类和回归问题。任何两个图的节点不一定是对应的。例如,收集的每个图可以模拟一个化合物,而输出可以是一个函数,将看不见的化合物映射到它们对癌细胞的活性水平。
  2. **结点或者边的分类。**给定一个大型图,学习可以用来推断不可见的图属性(如节点类型和丢失的边)的图表示形式。

与之前的模型相比,PATCHY-SAN有如下几个优点:
(1).高效。(2).可以可视化观察图的结构。(3).自动生成卷积核,无需特征工程。

接下来就说一说PATCHY-SAN是如何构建的。对于空域卷积操作,本质上就是将非欧式空间的数据经过采样变成欧式数据,本文通过输入的graph的邻域构造适用于固定模式的卷积的receptive fields。但是,**对于许多不同的图来说,结点的结构信息不一致且分布并不规律,在这样的情况下需要解决两个问题:创建某一结点的邻域的节点序列;计算邻域图的标准化,即从图表示到向量空间表示的唯一映射。**为了解决这个问题,本文首先通过算法确定一个恰好由k个节点组成的邻域并将其标准化,也就是说,它被唯一地映射到一个具有固定线性顺序的空间。归一化邻域作为考虑中的节点的接受域。最后,将卷积、稠密层等特征学习组件与归一化邻域图相结合作为CNN的接受域(Figure2)。

图神经网络 图聚合 图神经网络实例_图神经网络 图聚合

Model and Methods

最先进行的是结点邻域的选择,也就是根据某一些标准从图中选出代表性的结点用于缩小图的结构。而为了衡量这个代表性,论文中提出了一个

labeling方法

图神经网络 图聚合 图神经网络实例_卷积_02

,V表示结点的集合,S表示有序的标签(整数)的集合。依照个人的理解,举个例子来说,假如labeling函数代表根据结点的度进行排序,那么度最大的结点就会第一个被选取出来。算法1描述了这个采样的过程:

图神经网络 图聚合 图神经网络实例_结点_03


其中,根据给定的图标记对输入图的顶点进行排序。其次,使用给定的步长遍历得到的节点序列,对于每个访问过的节点,执行算法3构建一个接受域,直到恰好创建了w个接受域。步幅决定了两个相邻节点之间的距离,相对于选择的节点序列,为它们创建一个接受域。如果节点数小于w,该算法将创建所有为零的接受域,用于填充。补零的算法没什么好说的,直接看构建接受域的算法3(Algorithm 1,Line 6):

图神经网络 图聚合 图神经网络实例_图神经网络 图聚合_04


算法3中又调用了算法2和算法4

图神经网络 图聚合 图神经网络实例_邻域_05


对于算法2,它为结点v广度优先遍历,生成了大小为k的邻居结点集合。如果v的one-hop邻居数量不够k(Line5),那么在根据one-hop邻居被采样的顺序去添加two-hop邻居,比如,结点v被采样的邻居有(1,2,3)而k=4,那么要继续添加结点1的一个邻居结点。

图神经网络 图聚合 图神经网络实例_邻域_06


接下来对于算法4,根据labeling的采样以及邻居的采样,为graph生成一个Normalize的表示。这个算法是四个里面最难的,我们一步一步慢慢看。前两行分别对应输入:原始图G的顶点子集U(这个U也就是结点v在算法2中得到的邻居结点),结点v,图labeling方法l,接受域大小k。输出:v的接受域。

Line3:根据l计算U中结点的排名,U中结点w与结点v的距离d(w,v)越大,排名越靠后。Line4-Line8就是说,如果U中结点的个数大于k了,那么使用l计算得出的排名进行截断;要是小于k就使用dummy node补全。其中Line7有个错误,应该是|V|<k。之后就根据之前的labeling结果对子图G[N]进行构建和规范化。

而为了找出最合适的labeling函数,定义了如下公式:

图神经网络 图聚合 图神经网络实例_邻域_07


其中,G为有k个节点的未标记图的集合,l是labeling过程,dG是具有k个节点的图的距离度量,dA是k*k矩阵之间的距离度量。式子左边的达标算法映射采样到向量空间之后,两个不同的图之间的距离;右侧代表在原图之中,两个子图之间的距离度量。**最小化二者的差,也就是说两个结点在图中的结构相似时,他们的线性空间趋于一致。而最小化所有图的差的期望,就能找到适用于整个图的labeling方法。**下图是以上思路的一个例子:

图神经网络 图聚合 图神经网络实例_邻域_08


之前也说明,本模型可以应用于结点和边。对于结点,应用归一化方法得到

图神经网络 图聚合 图神经网络实例_结点_09

张量,对于边则得到

图神经网络 图聚合 图神经网络实例_图神经网络 图聚合_10

,因为边需要两个结点来决定,所以是k,k。

结果

图神经网络 图聚合 图神经网络实例_邻域_11


图神经网络 图聚合 图神经网络实例_邻域_12


图神经网络 图聚合 图神经网络实例_邻域_13

总结

以下是个人对这个算法的一些看法。
首先,与后续的空域卷积比起来,算法使用的采样方式以及优化方式都不好理解。
第二,在图归一化的时候,邻居结点的采样过于粗暴,固定的窗口大小k可能使得多跳的邻居结点的信息并没有被采样到,不像是频域卷积,能够很均匀地聚合邻居结点的信息。