1. 基于频域卷积可以通过平滑约束实现近似的空间局部性,但是频域定义的卷积不是原生的空间局部性,并且频域卷积涉及到计算复杂度为 的矩阵乘法,其中 三、Fast GCN - 图1 为图中顶点数量。

      论文 提出了一种快速的、满足空间局部性的卷积核。这种卷积核有以下优点:

      • 新卷积核与经典CNN 卷积核的计算复杂度相同,适用于所有的图结构。

        在评估阶段,其计算复杂度正比于卷积核的尺寸 核边的数量 三、Fast GCN - 图2 。由于真实世界的图几乎都是高度稀疏的,因此有 以及 三、Fast GCN - 图3 ,其中 为所有顶点的平均邻居数。

      • 新卷积核具有严格的空间局部性,对于每个顶点 三、Fast GCN - 图4 ,它仅考虑 附近半径为 三、Fast GCN - 图5 的球体,其中 表示距离当前顶点的最短路径,即 三、Fast GCN - 图6hop1 跳表示直接邻居。

    1. 模型的整体架构如下图所示。其中:

      • 1,2,3,4 为图卷积的四个步骤。
      • 特征抽取层获取粗化图的多通道特征。

    2. 将卷积推广到图上需要考虑三个问题:

      • 如何在图上涉及满足空间局部性的卷积核
      • 如何执行图的粗化graph coarsening,即:将相似顶点聚合在一起
      • 如何执行池化操作

    3.1.1 卷积核

    1. 给定输入 三、Fast GCN - 图7,其频域卷积为: ,其中 三、Fast GCN - 图8 为卷积核:

      其中 三、Fast GCN - 图9 为卷积核参数。

      这种卷积有两个不足:

      • 频域卷积在空域不满足空间局部性
      • 卷积核参数数量为

      我们可以通过多项式卷积核来克服这两个缺陷。令:

      三、Fast GCN - 图10

      其中 为拉普拉斯矩阵 三、Fast GCN - 图11 的第 个特征值。即用特征值的 三、Fast GCN - 图12 次多项式来拟合卷积核参数。

      则有:

      由于 三、Fast GCN - 图13,因此有 。

      则卷积结果为:

      三、Fast GCN - 图14

      现在的参数为 ,参数数量降低到 三、Fast GCN - 图15

    2. 给定 Kronecker delta 函数 ,其中:

      三、Fast GCN - 图16

      即 的第 三、Fast GCN - 图17 个分量为1,其余分量为0

      则有:

      输出的第 三、Fast GCN - 图18 个分量记作 ,令 三、Fast GCN - 图19 的第 行第 三、Fast GCN - 图20 列为 ,则有:

      三、Fast GCN - 图21

      可以证明:当 时,有 三、Fast GCN - 图22,其中 为顶点 三、Fast GCN - 图23 和 之间的最短路径。

      因此当 三、Fast GCN - 图24 时,有 ,则有 三、Fast GCN - 图25 。即顶点 经过卷积之后,只能影响距离为 三、Fast GCN - 图26 范围内的输出。

      因此 阶多项式实现的频域卷积满足 三、Fast GCN - 图27 阶局部性,其卷积核大小和经典 CNN 相同。

    3. 切比雪夫多项式:

      • 第一类切比雪夫多项式:

      • 第二类切比雪夫多项式:

        三、Fast GCN - 图28

      • 第一类切比雪夫多项式性质:

        • 切比雪夫多项式 三、Fast GCN - 图29 是 次代数多项式,其最高次幂 三、Fast GCN - 图30 的系数为
        • 三、Fast GCN - 图31 时,有
        • 三、Fast GCN - 图32 在 之间有 三、Fast GCN - 图33 个点 ,轮流取得最大值 1 和最小值 -1
        • 三、Fast GCN - 图34 为奇数时 为奇函数;当 三、Fast GCN - 图35 为偶数时, 为偶函数
      • 切比雪夫逼近定理:在 三、Fast GCN - 图36 之间的所有首项系数为1 的一切 次多项式中,三、Fast GCN - 图370 的偏差最小。即:

        其中 三、Fast GCN - 图38 为任意首项系数为 1 的 次多项式。

      • 定理:

        • 三、Fast GCN - 图39 为定义域在 之间的连续函数的集合,三、Fast GCN - 图40 为所有的 次多项式的集合。如果 三、Fast GCN - 图41 ,则 中存在一个 三、Fast GCN - 图42 的最佳切比雪夫逼近多项式。
      • 推论:

        • 如果 ,则 三、Fast GCN - 图43 中存在唯一的、函数 的最佳切比雪夫逼近。
        • 如果 三、Fast GCN - 图44,则其最佳一致逼近 次多项式就是 三、Fast GCN - 图45 在 上的某个 三、Fast GCN - 图46 次拉格朗日插值多项式。
    4. 注意到这里的卷积 计算复杂度仍然较高,因为这涉及到计算复杂度为 三、Fast GCN - 图47矩阵-向量 乘法运算。

      我们可以利用切比雪夫多项式来逼近卷积。

      定义:

      三、Fast GCN - 图48 ,其中 为 三、Fast GCN - 图49 阶切比雪夫多项式, 为 三、Fast GCN - 图50 阶切比雪夫多项式的系数。

      根据切比雪夫多项式的性质我们有:

      则卷积结果为:

      三、Fast GCN - 图51

      由于有 以及 三、Fast GCN - 图52 为正交矩阵,因此有 ,其中 三、Fast GCN - 图53 。 考虑到 为 三、Fast GCN - 图54 的多项式,则有:

      则有:

      三、Fast GCN - 图55

      定义 ,则有:

      三、Fast GCN - 图56

      最终有: 。其计算代价为 三、Fast GCN - 图57 。考虑到 为一个稀疏矩阵,则有 三、Fast GCN - 图58

    5. 给定输入 ,其中 三、Fast GCN - 图59 为输入通道数。设 为输出通道数,则第 三、Fast GCN - 图60 个顶点的第 个输出通道为:

      三、Fast GCN - 图61

      其中 表示第 三、Fast GCN - 图62 个输入通道, 为第 三、Fast GCN - 图63 个顶点在输入通道 上的、对应于三、Fast GCN - 图64 的取值, 为 三、Fast GCN - 图65 的第 列,三、Fast GCN - 图66 为 矩阵的第 三、Fast GCN - 图67 行。 为可训练的参数,参数数量为 三、Fast GCN - 图68

      定义 为第 三、Fast GCN - 图69 个输出通道对应于第 个输入通道的参数,则有:

      三、Fast GCN - 图70

      以及:

      其中 三、Fast GCN - 图71 为矩阵的第 行第 三、Fast GCN - 图72 列, 为训练集损失函数,通常选择交叉熵损失函数。

      上述三个计算的复杂度为 三、Fast GCN - 图73 ,但是可以通过并行架构来提高计算效率。

      另外, 只需要被计算一次。

    3.1.2 图粗化

    1. 池化操作需要在图上有意义的邻域上进行,从而将相似的顶点聚合在一起。因此,在多层网络中执行池化等价于保留图的局部结构的多尺度聚类。

      但是图聚类是 NP 难的,必须使用近似算法。这里我们仅考虑图的多层次聚类算法,在该算法中,每个层次都产生一个粗化的图,这个粗化图对应于图的不同分辨率。

    2. 论文选择使用 Graclus 层次聚类算法,该算法已被证明在图聚类上非常有效。每经过一层,我们将图的分辨率降低一倍。

      Graclus 层次聚类算法:

      • 选择一个未标记的顶点 三、Fast GCN - 图74 ,并从其邻域内选择一个未标记的顶点 ,使得最大化局部归一化的割 cut 三、Fast GCN - 图75

        然后标记顶点 为配对的粗化顶点,并且新的权重等于所有其它顶点和 三、Fast GCN - 图76 权重之和。

      • 持续配对,直到所有顶点都被探索。这其中可能存在部分独立顶点,它不和任何其它顶点配对。

      这种粗化算法非常块,并且高层粗化的顶点大约是低一层顶点的一半。

    3.1.3 池化

    1. 池化操作将被执行很多次,因此该操作必须高效。

      图被粗化之后,输入图的顶点及其粗化后的顶点的排列损失是随机的,取决于粗化时顶点的遍历顺序。因此池化操作需要一个表格来存储所有的配对顶点,这将导致内存消耗,并且运行缓慢、难以并行实现。

      可以将图的顶点及其粗化后的顶点按照固定的顺序排列,从而使得图的池化操作和经典的一维池化操作一样高效。这包含两步:

      • 创建一颗平衡二叉树
      • 重排列图的顶点或者粗化后的顶点
    2. 在图的粗化之后,每个粗化后的顶点要么有两个子结点(低层的两个配对顶点),要么只有一个子结点(低层该子结点未能配对)。

      对于多层粗化图,从最高层到最底层,我们添加一批 “伪顶点” 添加到单个子结点的顶点,使得每个顶点都有两个子结点。同时每个“伪顶点”都有两个低层级的“伪顶点” 作为子结点。

      • 这批“伪顶点”和其它任何顶点都没有连接,因此是“断开”的顶点。
      • 添加假顶点人工增加了图的大小,从而增加计算成本。但是我们发现 Graclus 算法得到的单子结点的顶点数量很少。
      • 当使用 ReLU 激活函数以及最大池化时,这批“伪顶点” 的输入为 0。由于这些“伪顶点”是断开的,因此卷积操作不会影响这些初始的0 值。

      最终得到一颗平衡二叉树。

    3. 对于多层粗化图,我们在最粗粒度的图上任意排列粗化顶点,然后将其顺序扩散到低层图。假设粗化顶点编号为 ,则其子结点的编号为 三、Fast GCN - 图77 和 。因此这将导致低层顶点有序。

      池化这样一个重排列的图类似于一维池化,这使得池化操作非常高效。

      由于内存访问是局部的,因此可以满足并行架构的需求。

    4. 一个池化的例子如下图。

      • 图粗化过程:三、Fast GCN - 图78 为原始图,包含8 个顶点。深色链接表示配对,红色圆圈表示未能配对顶点,蓝色圆圈表示“伪顶点”

        • 一级粗化 :

        • 二级粗化 三、Fast GCN - 图79

          1. G1顶点 G2顶点 备注
          2. 2,3 1
          3. 4,5 2
          4. 0 0 未能配对
      • 构建二叉树过程:

        • 0 顶点只有一个子结点,因此在 三、Fast GCN - 图80 中添加一个“伪顶点”作为 的 0 顶点的另一个子结点。
        • 三、Fast GCN - 图813,5 顶点只有一个子结点,因此在 中添加两个“伪顶点”作为 三、Fast GCN - 图823,5 顶点的另一个子结点。
        • 1 顶点是一个“伪顶点”,因此在 三、Fast GCN - 图83 中添加两个“伪顶点”作为 的 1 顶点的两个子结点。
      • 重新编号:

        • 三、Fast GCN - 图84 的三个顶点依次编号为 0,1,2
        • 根据 的规则为 三、Fast GCN - 图85 的十二个顶点依次编号为 0,1,...,11
      • 重排,重排结果见右图所示。

    3.2 实验

    1. 我们将常规的Graph CNN 的卷积核称作 Non-Param 、增加平滑约束的样条插值卷积核称作 SplineFast Graph CNN 的卷积核称作 Chebyshev

      在这些图卷积神经网络中:

      • FCk 表示一个带 三、Fast GCN - 图86 个神经元的全连接层;Pk 表示一个尺寸和步长为 的池化层(经典池化层或者图池化层);GCK 表示一个输出 三、Fast GCN - 图87feature map 的图卷积层; 表示一个输出 个 feature map 的经典卷积层。
      • 所有的FCk,Ck,GCk 都使用ReLU 激活函数。
      • 所有图卷积神经网络模型的粗化算法统一为Graclus 算法而不是Graph CNN 中的朴素聚合算法,因为我们的目标是比较卷积核而不是粗化算法。
      • 所有神经网络模型的最后一层统一为 softmax 输出层
      • 所有神经网络模型采用交叉熵作为损失函数,并对全连接层的参数使用 三、Fast GCN - 图88 正则化
      • 随机梯度下降的mini-batch 大小为 100
    2. MNIST 实验:

      论文构建了8 层图神经网络,每张MNIST 图片对应一个图Graph,图的顶点数量为978 ( ,再加上 192 个“伪顶点”);边的数量为 3198

      顶点 三、Fast GCN - 图89 之间的边的权重为:

      其中 三、Fast GCN - 图90 表示顶点 的二维坐标。

      各模型的参数为:

      • 标准卷积核的尺度为 5x5,图卷积核的 三、Fast GCN - 图91 ,二者尺寸相同

        标准 CNN 网络从 TensorFlow MNIST 教程而来,dropout = 0.5,正则化系数为 ,初始学习率为0.03,学习率衰减系数 0.95,动量 0.9

      • 所有模型训练 20epoch

      模型效果如下表所示,结果表明我们的Graph CNN 模型和经典CNN 模型的性能非常接近。

      • 性能上的差异可以用频域卷积的各向同性来解释:一般图形中的边不具有方向性,但是MNIST 图片作为二维网格具有方向性,如像素的上下左右。这是优势还是劣势取决于具体的问题。
      • 另外Graph CNN 模型也缺乏架构涉及经验,因此需要研究更适合的优化策略和初始化策略。

      三、Fast GCN - 图92

    3. 20NEWS 实验:

      为验证Graph CNN 可以应用于非结构化数据,论文对 20NEWS 数据集应用图卷积来解决文本分类问题。

      20NEWS 数据集包含 18846 篇文档,分为20 个类别。我们将其中的 11314 篇文档用于训练、7532 篇文档用于测试。

      我们首先抽取文档的特征:

      • 从所有文档的 93953 个单词中保留词频最高的一万个单词。
      • 每篇文档使用词袋模型提取特征,并根据文档内单词的词频进行归一化。

      论文构建了16 层图神经网络,每篇文档对应一个图Graph,图的顶点数量为一万、边的数量为 132834 。顶点 之间的权重为:

      三、Fast GCN - 图93

      其中 为对应单词的 word2vec embedding 向量。

      所有神经网络模型都使用Adam 优化器,初始学习率为 0.001GC32 模型的 三、Fast GCN - 图94 。结果如下图所示,虽然我们的模型未能超越Multinomial Naive Bayes 模型,但是它超越了所有全连接神经网络模型,而这些全连接神经网络模型具有更多的参数。

    4. 我们在MNIST 数据集上比较了不同的图卷积神经网络架构的效果,其中包括:常规图卷积的 架构、增加平滑约束的样条插值Spline 架构、Fast Graph CNNChebyshev 架构,其中 三、Fast GCN - 图95

      训练过程中,这几种架构的验证集准确率、训练集损失如下图所示,横轴表示迭代次数。

      三、Fast GCN - 图96

    5. 我们在 20NEWS 数据集上比较了不同的图卷积神经网络架构的计算效率,其中 。

      我们评估了每个mini-batch 的处理时间,其中batch-size = 10 。横轴为图的顶点数量 三、Fast GCN - 图97 。可以看到 Fast Graph CNN 的计算复杂度为 ,而传统图卷积(包括样条插值)的计算复杂度为 三、Fast GCN - 图98

    6. 我们在 MNIST 数据集上验证了 Fast Graph CNN 的并行性。下面比较了经典卷积神经网络和Fast Graph CNN 采用GPU 时的加速比,其中 batch-size = 100

      可以看到我们的 Fast Graph CNN 获得了与传统 CNN 相近的加速比,这证明我们提出的Fast Graph CNN 有良好的并行性。我们的模型仅依赖于矩阵乘法,而矩阵乘法可以通过NVIDAcuBLAS 库高效的支持。

      三、Fast GCN - 图99

    7. 要想图卷积取得良好的效果,数据集必须满足一定条件:图数据必须满足局部性locality、平稳性stationarity、组成性compositionality 的统计假设。

      因此训练得到的卷积核的质量以及图卷积模型的分类能力很大程度上取决于数据集的质量。

      MNIST 实验我们可以看到:从欧式空间的网格数据中采用 kNN 构建的图,这些图数据质量很高。我们基于这些图数据采用图卷积几乎获得标准CNN 的性能。并且我们发现,kNNk 的值对于图数据的质量影响不大。

      作为对比,我们从MNIST 中构建随机图,其中顶点之间的边是随机的。可以看到在随机图上,图卷积神经网络的准确率下降。在随机图中,数据结构发生丢失,因此卷积层提取的特征不再有意义。

      这表明图数据满足数据的统计假设的重要性。

    8. 20NEWS 数据集构建图数据时,对于顶点 三、Fast GCN - 图100 对应的单词,我们有三种表示单词的 的方法:

      • 将每个单词表示为一个 one-hot 向量
      • 通过 word2vec 从数据集中学习每个单词的 embedding 向量
      • 使用预训练的单词word2vec embedding 向量

      不同的方式采用 GC32 的分类准确率如下所示。其中:

      • bag-of-words 表示 one-hot 方法

      • pre-learned 表示预训练的 embedding 向量

      • learned 表示从数据集训练 embedding 向量

      • approximate 表示对 learned 得到的 embedding 向量进行最近邻搜索时,使用LSHForest 近似算法。

        这是因为当图的顶点数量较大时,找出每个顶点的kNN 顶点的计算复杂度太大,需要一个近似算法。

      三、Fast GCN - 图101