三、Fast GCN

  1. 基于空域卷积可以通过有限大小的卷积核来实现空间局部性,但是由于在图上无法定义平移,因此它无法实现平移不变性。

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

    论文 《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》 提出了一种快速的、满足空间局部性的卷积核。这种卷积核有以下优点:

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

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

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

3.1 模型

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

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

    三、Fast GCN - 图13

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

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

3.1.1 卷积核

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

    三、Fast GCN - 图17

    其中 三、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

    则卷积结果为:

    三、Fast GCN - 图28

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

  2. 给定 Kronecker delta 函数 三、Fast GCN - 图31 ,其中:

    三、Fast GCN - 图32

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

    则有:

    三、Fast GCN - 图35

    输出的第 三、Fast GCN - 图36 个分量记作 三、Fast GCN - 图37 ,令 三、Fast GCN - 图38 的第 三、Fast GCN - 图39 行第 三、Fast GCN - 图40 列为 三、Fast GCN - 图41 ,则有:

    三、Fast GCN - 图42

    可以证明:当 三、Fast GCN - 图43 时,有 三、Fast GCN - 图44,其中 三、Fast GCN - 图45 为顶点 三、Fast GCN - 图46三、Fast GCN - 图47 之间的最短路径。

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

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

  3. 切比雪夫多项式:

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

      三、Fast GCN - 图55

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

      三、Fast GCN - 图56

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

      • 三、Fast GCN - 图57
      • 切比雪夫多项式 三、Fast GCN - 图58三、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 ,轮流取得最大值 1 和最小值 -1
      • 三、Fast GCN - 图68 为奇数时 三、Fast GCN - 图69 为奇函数;当 三、Fast GCN - 图70 为偶数时,三、Fast GCN - 图71 为偶函数
    • 切比雪夫逼近定理:在 三、Fast GCN - 图72 之间的所有首项系数为1 的一切 三、Fast GCN - 图73 次多项式中,三、Fast GCN - 图740 的偏差最小。即:

      三、Fast GCN - 图75

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

    • 定理:

      • 三、Fast GCN - 图78 为定义域在 三、Fast GCN - 图79 之间的连续函数的集合,三、Fast GCN - 图80 为所有的 三、Fast GCN - 图81 次多项式的集合。如果 三、Fast GCN - 图82 ,则 三、Fast GCN - 图83 中存在一个 三、Fast GCN - 图84 的最佳切比雪夫逼近多项式。
      • 如果 三、Fast GCN - 图85 ,则 三、Fast GCN - 图86三、Fast GCN - 图87 的最佳切比雪夫逼近的充要条件是:三、Fast GCN - 图88三、Fast GCN - 图89 之间有一个至少有 三、Fast GCN - 图90 个点的交错点组(即包含 三、Fast GCN - 图91 个点 三、Fast GCN - 图92)。
    • 推论:

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

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

    定义:

    三、Fast GCN - 图103

    为归一化的对角矩阵,其对角线元素都位于 三、Fast GCN - 图104 之间。

    三、Fast GCN - 图105 ,其中 三、Fast GCN - 图106三、Fast GCN - 图107 阶切比雪夫多项式,三、Fast GCN - 图108三、Fast GCN - 图109 阶切比雪夫多项式的系数。

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

    三、Fast GCN - 图110

    则卷积结果为:

    三、Fast GCN - 图111

    由于有 三、Fast GCN - 图112 以及 三、Fast GCN - 图113 为正交矩阵,因此有 三、Fast GCN - 图114 ,其中 三、Fast GCN - 图115 。 考虑到 三、Fast GCN - 图116三、Fast GCN - 图117 的多项式,则有:

    三、Fast GCN - 图118

    则有:

    三、Fast GCN - 图119

    定义 三、Fast GCN - 图120 ,则有:

    三、Fast GCN - 图121

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

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

    三、Fast GCN - 图131

    其中 三、Fast GCN - 图132 表示第 三、Fast GCN - 图133 个输入通道,三、Fast GCN - 图134 为第 三、Fast GCN - 图135 个顶点在输入通道 三、Fast GCN - 图136 上的、对应于三、Fast GCN - 图137 的取值,三、Fast GCN - 图138三、Fast GCN - 图139 的第 三、Fast GCN - 图140 列,三、Fast GCN - 图141三、Fast GCN - 图142 矩阵的第 三、Fast GCN - 图143 行。三、Fast GCN - 图144 为可训练的参数,参数数量为 三、Fast GCN - 图145

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

    三、Fast GCN - 图149

    以及:

    三、Fast GCN - 图150

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

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

    另外,三、Fast GCN - 图156 只需要被计算一次。

3.1.2 图粗化

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

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

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

    Graclus 层次聚类算法:

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

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

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

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

3.1.3 池化

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

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

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

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

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

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

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

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

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

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

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

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

      • 一级粗化 三、Fast GCN - 图166

        1. G0顶点 G1顶点 备注
        2. 0,1 0
        3. 4,5 2
        4. 8,9 4
        5. 6 3 未能配对
        6. 10 5 未能配对
      • 二级粗化 三、Fast GCN - 图167

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

      • 三、Fast GCN - 图1680 顶点只有一个子结点,因此在 三、Fast GCN - 图169 中添加一个“伪顶点”作为 三、Fast GCN - 图1700 顶点的另一个子结点。
      • 三、Fast GCN - 图1713,5 顶点只有一个子结点,因此在 三、Fast GCN - 图172 中添加两个“伪顶点”作为 三、Fast GCN - 图1733,5 顶点的另一个子结点。
      • 三、Fast GCN - 图1741 顶点是一个“伪顶点”,因此在 三、Fast GCN - 图175 中添加两个“伪顶点”作为 三、Fast GCN - 图1761 顶点的两个子结点。
    • 重新编号:

      • 三、Fast GCN - 图177 的三个顶点依次编号为 0,1,2
      • 根据 三、Fast GCN - 图178 的规则为 三、Fast GCN - 图179 的六个顶点依次编号为 0,1,2,3,4,5
      • 根据 三、Fast GCN - 图180 的规则为 三、Fast GCN - 图181 的十二个顶点依次编号为 0,1,...,11
    • 重排,重排结果见右图所示。

    • 按照重排后的一维顶点顺序,依次从低层向高层执行“卷积+池化”。

    三、Fast GCN - 图182

3.2 实验

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

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

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

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

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

    三、Fast GCN - 图190

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

    各模型的参数为:

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

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

    • 所有模型训练 20epoch

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

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

    三、Fast GCN - 图195

  3. 20NEWS 实验:

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

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

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

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

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

    三、Fast GCN - 图197

    其中 三、Fast GCN - 图198 为对应单词的 word2vec embedding 向量。

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

    三、Fast GCN - 图200

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

    三、Fast GCN - 图202

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

    三、Fast GCN - 图203

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

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

    三、Fast GCN - 图208

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

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

    三、Fast GCN - 图209

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

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

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

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

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

    三、Fast GCN - 图210

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

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

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

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

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

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

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

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

    • random 表示对 learned 得到的 embedding 向量采用随机生成边,而不是基于 kNN 生成边。

    三、Fast GCN - 图213