GNN

一、GNN[2009]

  1. 数据可以在许多应用领域中自然地用图结构graph structure 来表达,包括蛋白质组织学proteomics 、图像分析、场景描述、软件工程、自然语言处理。最简单的图结构包括单节点single node、序列sequence。但是在一些应用中,信息被组织成更复杂的图结构,如树、无环图、带环图。传统上,数据关系探索一直是归纳式逻辑编程inductive logic programming 的社区中许多研究的主题。最近,数据关系探索data relationships exploitation这个研究主题已经朝着不同的方向发展,这也是因为统计statistics和神经网络中的相关概念在这些领域中的应用。

    在机器学习中,结构化数据通常与(有监督的或者无监督的)learning 的目标相关联,例如一个函数 τ 将一个图 G 和该图的一个节点 n 映射为一个实数向量 τ(G,v)Rm ,其中 m 为向量的维度。在本文中,图领域的应用application 通常可以分为两大类,分别称作 graph-focused 应用、node-focused 应用 。

    • graph-focused 应用中,函数 τ 独立于节点 n ,并且在图结构的数据集上实现分类器或回归器。

      此时每个图具有一个 representation,并且每个图具有一个 target

      例如,可以用一个图 G 来建模一种化合物,图的节点代表原子(或者化学基团)、边代表将原子连接起来的化学键。如下图所示。这个函数 τ(G) 可用于估计化合物引起某种疾病的概率。

      在下图中,图片由区域邻接图region adjacency graph 来表达,其中节点表示均匀图片强度的区域,边代表这些区域的邻接关系。在这种情况下,可以根据图片的内容通过 τ(G) 将图片分为不同的类别,如城堡、汽车、人等等。

    • node-focused 应用中,函数 τ 取决于节点 n ,因此分类(或回归)取决于每个节点的属性。

      此时每个节点具有一个 representation,并且每个节点具有一个 target

      例如目标检测 application 包括检查图片中是否包含给定的对象,如果是,则定位给定对象的位置。这个问题可以通过一个函数 τ 来解决,该函数根据区域邻接图是否属于目标对象,从而对区域邻接图进行节点分类。例如,下图中的黑色节点,如果对应于城堡则 τ 输出为 1、否则 τ 输出为 0

      另一个例子来自于网页分类。web 可以通过一个图来表达,其中节点代表网页,边代表网页之间的超链接,如下图所示。可以利用 web connectivity 以及网页内容来实现多种目的purposes,,如页面的主题分类。

    传统的机器学习 application 通过使用预处理 preprocessing 阶段来处理图结构化数据graph structured data ,该阶段将图结构化信息映射到更简单的 representation,如实值向量。换句话讲,预处理步骤首先将图结构化数据 "挤压squash" 为实数向量,然后使用 list-based 数据处理技术来处理 preprocessed的数据。然而,在预处理阶段,一些重要的信息(如每个节点的拓扑依赖性 topological dependency)可能会丢失,并且最终结果可能以不可预知的方式unpredictable manner 取决于预处理算法的细节。

    最近,有各种方法试图在预处理阶段尽可能地保留数据的图结构特性,其思想是:使用图节点之间的拓扑关系对底层的图结构化数据进行编码,以便在数据正式处理步骤(即预处理步骤之后的模型处理阶段)中融合图结构化信息。这组技术包括 recursive neural network: RNN、马尔科夫链Markov chain: MC,并且通常可以同时应用于 graph-focused 问题和 node-focused 问题。论文 《The Graph Neural Network Model》提出的方法扩展了这两种方法(即 RNN 和马尔科夫链),因为该方法可以直接处理图结构化信息。

    • 现有的 RNN 是以有向无环图directed acyclic graph 作为输入的神经网络模型。该方法估计函数 φw 的参数 w,其中函数 φw 将图映射到实值向量。该方法也可以用于 node-focused application 中,此时,图必须经过预处理阶段。类似地,采用预处理阶段之后,我们可以处理某些类型的带环图。RNN 已被应用于多个问题,包括逻辑术语分类 logical term classification、化合物分类、logo 识别、网页评分、人脸定位 face localization

      RNN 也与支持向量机有关,其中支持向量机采用特殊的 kernel 对图结构化数据进行操作,其中:

      • diffusion kernel 是基于热扩散方程heat diffusion equation
      • 《Marginalized kernels between labeled graphs》《Extensions of marginalized graph kernels》 中提出的 kernel 利用了图随机游走生成的向量。
      • 《Convolution kernels for natural language》《Kernels for structured natural language data》《Convolution kernels with feature selection for natural language processing tasks》 中设计的 kernel 使用了一种计算两棵树的公共子结构数量的方法。

      事实上,类似于支持向量机方法,RNN 自动将输入的图编码为内部 representation。然而,在 RNN 中内部编码是模型自动学到的,而在支持向量机中内部编码是由用户手动设计的。

    • 另一方面,马尔科夫链模型可以建模事件之间的因果关系,其中因果关系由图来表达。最近,针对特定种类马尔科夫链模型的随机游走理论已成功应用于网页排名ranking 算法的实现。互联网搜索引擎使用排名算法来衡量网页的相对重要性。这类度量值通常与其它页面特征一起被搜索引擎所利用,从而对用户 query 返回的 URL 进行排序。人们已经进行了一些尝试来扩展这些具有学习能力的模型,以便可以从训练样本中学习模型参数。这些模型能够泛化结果从而对集合中的所有网页进行评分。更一般地,人们已经提出了几种其它统计方法,这些方法假设数据集由模式 pattern、以及模式之间的关系 relationship 组成。这些技术包括:随机场random field、贝叶斯网络、统计关系学习、transductive learning、用于图处理的半监督方法。

    在论文 《The Graph Neural Network Model》 中,作者提出了一种有监督的神经网络模型,该模型同时适用于 graph-focused applicationnode-focused application。该模型将这两个现有模型(即 RNN 和马尔科夫链)统一到一个通用框架中。论文将这种新颖的神经网络模型称作图神经网络 graph neural network: GNN 。论文将证明 GNNRNN 和随机游走模型的扩展,并且保留了它们的特性 characteristics

    • GNN 模型扩展了 RNN,因为 GNN 可以处理更通用的图,包括带环图、有向图、无向图,并且无需任何预处理步骤即可处理 node-focused application
    • GNN 方法通过引入 learning 算法、以及扩大可建模过程的种类从而扩展了随机游走理论。

    GNN 基于信息扩散机制 information diffusion mechanism。图由一组单元unit 来处理,每个单元对应于图上的一个节点,这些节点根据图的连通性进行链接。这些单元更新它们的状态并交换信息,直到它们到达稳定的平衡stable equilibrium 。然后,基于单元的状态unit state 计算每个节点的输出。扩散机制是受约束constrained 的,从而确保始终存在唯一的稳定平衡。

    这种实现机制已经在细胞神经网络、Hopfield 神经网络中使用。在那些神经网络模型中,连通性是根据预定义的图来指定的,网络连接本质上是循环 recurrent 的,神经元状态是通过松弛relaxation 到平衡点equilibrium point 来计算的。GNN 与那些神经网络不同之处在于:GNN 可以处理更加通用的图,并且采用更通用的扩散机制。

    在论文 《The Graph Neural Network Model》 中,作者将介绍一种学习算法,该算法在一组给定的训练样本上估计 GNN 模型的参数。此外,参数估计算法的计算代价需要被考虑。还值得一提的是,《Computation capabilities of graph neural networks》 已经证明了 GNN 展示出一种普遍的逼近特性,并且在不严厉的条件下,GNN 可以逼近图上大多数实际有用的函数 φ

1.1 模型

  1. 定义图 G=(N,E),其中 N 为节点集合、E 为边集合。边可以为有向边,也可以为无向边。对于节点 nN ,定义 ne[n] 为其邻接节点集合(即,邻域),定义 co[n] 为包含节点 n 的边的集合。

    节点和边可能含有额外的信息,这些信息统称为标签信息(它和监督学习中的标记label 不是一个概念),并以实值向量的形式来表示。

    • 定义节点 n 的标签为 lnRdN ,定义边 (n1,n2) 的标签为 ln1,n2RdE,其中 dN 为节点标签的维度、dE 为边标签的维度。
    • 定义 l 为图中所有标签向量(包括所有节点标签向量、所有边标签向量)拼接得到的all 标签向量。
    • 标签向量的符号遵循更一般的scheme:如果 y 是图 G 中的某种类型的标签向量(如节点标签向量或边标签向量),S 为图 G 中的某个集合(如节点集合或边集合),则 yS 为根据集合 S 获得的标签向量。例如 lne[n] 包含节点 n 的邻域节点的所有节点标签。

    注意,这里的符号定义与大多数论文的符号定义不同。

  2. 节点标签通常包含节点的特征,边标签通常包含节点之间关系的特征。如下图中:节点标签可能代表区块的属性,如:面积、周长、颜色的平均强度。边标签可能代表区块region 之间的相对位置,如:重心之间的距离、轴线之间的角度。我们未对边作出任何假设,有向边和无向边都是允许的。但是,当不同类型的边共同存在于同一个图 G 中时,就需要区分它们。这可以通过在每条边上添加适当的标签来轻松地实现,此时,不同类型的边具有不同的标签。

  3. G 可以是 positional 的、或者是 nonpositional 的。nonpositional graph 是前面所讲的那些图。positional graph 与之不同,节点 n 的每个邻居都被分配一个 unique 的整数标识符,从而指示每个邻居的逻辑位置logical position 。 形式上,对于positional graph 中的每个节点,存在一个映射函数 νn:ne[n]{1,2,,|N|},它为节点 n 的每个邻居节点 u 分配了一个位置 position νn(u) 。注意,邻居的位置可以用于隐式地存储有用的信息。例如,考虑区块邻接图region adjacency graph(如上图所示) :可以用 νn 来表示区块的相对空间位置,例如,νn 可能会按照顺时针的排序约定来枚举节点 n 的邻居。

    注意,位置信息可以通过对邻居节点分配位置编号来显式地给出,也可以通过对邻居节点进行排序从而隐式地给出。

  4. 本文考虑的领域是 (graph, node) pair 的集合 D=G×N ,其中 G={G1,}graph 的集合,N={N1,} 为这些 graph 的节点集合的集合,即:

    L={(Gi,ni,j,ti,j)Gi=(Ni,Ei)G,ni,jNi,ti,jRm,1ip,1jqi}

    其中:Gi 表示第 i 个图,ni,j 表示图 Gi 的第 j 个节点,ti,j 表示节点 ni,jdesired target (可能为向量也可能为标量),p|G|qi|Ni|

    有趣的是,D 中所有的图都可以组合成一个 unique 的、断开的大图,因此可以将 D 视为一个 pair L=(G,T) ,其中:G=(N,E) 为包含所有节点和所有边的大图,T={(ni,ti)niN,tiRm,1iq} 。值得一提的是,这个紧凑的定义不仅因为它简单易用,而且它还直接捕捉到了一些问题的本质,其中领域domain 仅由一个图组成,如大部分的 web 网络(如下图所示)。

1.1.1 思想

  1. 我们所提出方法的直观想法是:图中的节点代表对象或概念,而边代表它们之间的关系。每个概念自然地由它的特征和相关的概念来定义。因此,我们可以可以将一个状态向量state vector xnRs 关联到每个节点 n 上,其中 xn 基于节点 n 的邻域信息来构建(如下图所示),s 为状态向量的维度。状态向量 xn 包含由 n 表示的概念的 representation,并可用于产生输出 on (即,这个概念能决定什么)。

    fw() 为一个参数化parametric的函数,称之为局部转移函数 local transition function ,用于表示节点对其邻域的依赖性。令 gw() 为另一个参数化的函数,称之为局部输出函数 local output function,用于描述如何产生输出。那么 xnon 的定义如下:

    xn=fw(ln,lco[n],xne[n],lne[n])on=gw(xn,ln)

    其中:

    • ln 为节点 n 的标签信息向量。
    • lco[n] 为包含节点 n 的所有边的标签信息向量拼接的向量。
    • xne[n] 为节点 n 的所有邻居的状态向量拼接的向量。
    • lne[n] 为节点 n 的所有邻居的标签信息向量拼接的向量。

    注意:这里有递归定义,其中节点 n 的状态向量 xn 依赖于其邻居的状态向量集合 xne[n] 。而邻居的状态向量又依赖于邻居的邻居的状态向量集合。

    注意:这里的邻域依赖性使得计算状态向量所依赖的节点规模迅速膨胀。假设平均邻域大小为 10 个节点,如果最多依赖于 5 阶邻域,那么计算每个状态向量需要依赖于 5 阶邻域内的 10 万个邻域节点。

    备注:

    • 备注一:可以采用不同的邻域概念。例如,人们可能希望删除标签 lne[n],因为 lne[n] 的信息可能隐含在 xne[n] 中。此外,邻域可能包含距 n 2-hop 或者多个 hop 的节点。

    • 备注二:上式用于无向图。在处理有向图时,函数 fw() 也可以接受链接的方向作为输入。我们引入一个变量 de,eco[n]:如果边 e 的终点为 nde=1,如果边 e 的起点为 nde=0。则有:

      xn=fw(ln,lco[n],dco[n],xne[n],lne[n])

      本文中为了保持符号紧凑,我们使用无向图的形式。然而,除非特殊说明,否则本文中提出的所有结果也适用于有向图、以及混合有向与无向的图。

    • 备注三:通常而言,转移函数 fw() 和输出函数 gw() 以及它们的参数parameters 可能都依赖于节点 n 。但是在一些场景中,节点分为不同类型,并且不同类型的节点有不同的转移函数、输出函数、以及它们的参数。假设节点 n 的类别为 kn ,转移函数为 fwkn(),输出函数为 gwkn(),对应参数为 wkn,则有:

      xn=fwknkn(ln,lco[n],xne[n],lne[n])on=gwknkn(xn,ln)

      然而为了简单起见,我们对所有节点共享相同的转移函数和输出函数(包括它们的参数)。

      如果没有参数共享则模型的容量太大导致难以训练且很容易过拟合。

  2. x,o,l,lN 分别代表所有节点状态向量的拼接、所有节点输出向量的拼接、所有标签(包含节点标签以及边的标签)向量的拼接、所有节点标签向量的拼接(例如,x=[x1,,x|N|]),则有:

    x=Fw(x,l)o=Gw(x,lN)

    其中:

    • Fw() 称作全局转移函数 global transition fucntion,它由 |N|fw() 组成。
    • Gw() 称作全局输出函数 global output function ,它由 |N|gw() 组成。

    令图和节点的 pair 对的集合为 D=G×N,其中 G={G1,} 为所有图的集合,N={N1,} 为这些图中所有节点的集合。全局转移函数和全局输出函数定义了一个映射 φw:DRm ,它以一个图作为输入,然后对每个节点 n 返回一个输出 on

    Banach 不动点理论 fixed point theorem 为上述方程解的存在性和唯一性提供了理论依据。根据 Banach 不动点理论,当 Fw() 满足以下条件时,方程 x=Fw(x,l) 存在唯一解:Fw() 是一个收缩映射 contraction map 。即存在 μ,0μ<1,使得对任意 x,y 都有:

    Fw(x,l)Fw(y,l)μxy

    其中 |||| 表示向量范数。

    本文中我们假设 Fw() 是一个收缩映射。实际上在 GNN 模型中,这个条件是通过适当的选择转移函数来实现的。

  3. 上述公式能够同时处理位置图positional graph和非位置图nonpositional graph

    • 对于位置图,fw() 必须接收每个邻域节点的位置作为额外的输入。实际中我们可以根据邻居的位置进行排序,然后对 lco[n],xne[n],lne[n] 按照排序之后的顺序进行拼接。如果在某些位置处的邻居不存在,则需要填充 null 值。例如:

      xne[n]=[y1,,yM]

      其中:

      • M=maxn,uνn(u) 为所有节点的最大邻居数。

      • yi 为第 i 个位置邻居的状态向量:

        yi={xuif(i=νn(u))x0else

        即:如果 u 为节点 n 的第 i 个邻居节点,则 yi=xu;如果节点 n 没有第 i 个邻居节点,则 yinullx0

    • 对于位置无关的图,我们可以将 fw() 替换为:

      xn=une[n]hw(ln,l(n,u),xu,lu)

      其中 hw() 为待学习的函数,它和邻居节点的数量和位置无关。这种形式被称作 nonpositional form,而原始形式被称作 positional form

      注意,这里对邻居节点采用 sum 聚合。也可以采用 max 聚合或者 attention 聚合。

  4. 为实现 GNN 模型,我们必须解决以下问题:

    • 求解以下方程的算法:

      xn=fw(ln,lco[n],xne[n],lne[n])on=gw(xn,ln)
    • 从训练集中学习 fw()gw() 参数的学习算法。

    • fw()gw() 的实现方式,即:解空间。

1.1.2 方程求解算法

  1. Banach 不动点理论不仅保证了解的存在性和唯一性,还给出了求解的方式:采用经典的迭代式求解:

    x(t+1)=Fw(x(t),l)

    其中 x(t) 表示状态 x 的第 t 次迭代值。

    对于任意初始值 x(0) ,上式指数级收敛到方程 x=Fw(x,l)​ 的解。我们将 x(t) 视为状态向量,它由转移函数 Fw() 来更新。因此输出向量 on(t) 和状态向量 xn(t) 的更新方程为:

    xn(t+1)=fw(ln,lco[n],xne[n](t),lne[n])on(t)=gw(xn(t),ln),nN

    这可以解释为由很多处理单元unit 组成的神经网络,每个处理单元通过 fw() 计算其状态,并通过 gw() 计算其输出。这个神经网络被称作编码网络 encoding network,它类似于 RNN 的编码网络。在编码网络中,每个单元根据邻居单元的状态、当前节点的信息、邻居节点的信息、边的信息,通过 fw() 计算下一个时刻的状态 xn(t+1)

  2. fw()gw() 通过前馈神经网络实现时,编码网络就成为 RNN ,其中神经元之间的连接可以分为内部连接internal connection 和外部连接external connection :内部连接由实现处理单元的神经网络架构(如前馈神经网络)决定,外部连接由图的边来决定。

    如下图所示:上半图对应一个图Graph,中间图对应于编码网络,下半图对应于编码网络的展开图unfolding graph 。在展开图中,每一层layer 代表一个时间步,layer 之间的链接(外部连接)由图的连接性来决定,layer 内神经元的链接(内部连接)由神经网络架构决定。

    内部连接决定 fw() 如何更新状态 xn(t) ,外部连接决定节点之间的依赖关系。

1.1.3 参数学习算法

  1. 假设训练集为:

    L={(Gi,ni,j,ti,j)Gi=(Ni,Ei)G,ni,jNi,ti,jRm,1ip,1jqi}p|G|,qi|Ni|

    其中: Gi 表示第 i 个图,Ni 表示第 i 个图的节点集合,Ei 表示第 i 个图的边集合,ni,j 表示第 i 个图的第 j 个节点,ti,j 表示节点 ni,j 的监督信息target (可能为标量可能为向量),qi 为图 Gi 中的标记样本数量,p 为数据集中图的数量。

    • 对于 graph-focused 任务,可以引入一个和任务目标相关的、特殊的节点,只有该节点包含监督信息,即 qi=1
    • 对于node-focused 任务,每个节点都可以包含监督信息。

    假设采用平方误差,则训练集的损失函数为:

    ew=i=1pj=1qiti,jφw(Gi,ni,j)22

    其中 φw() 为近似函数 approximate function` 。

    也可以在损失函数中增加罚项从而对模型施加约束。

  2. 我们可以基于梯度下降算法来求解该最优化问题,求解方法由以下几步组成:

    • 通过下面的迭代公式求解求解 xn(t),直到时间 T

      xn(t+1)=fw(ln,lco[n],xne[n](t),lne[n])on(t)=gw(xn(t),ln),nN

      其解接近 x=Fw(x,l) 的不动点 x,即:x(T)x

      注意:这一步要求 Fw() 是一个压缩映射,从而保证方程能够收敛到一个不动点。

    • 求解梯度 wew

    • 通过梯度来更新参数w

  3. 梯度 wew 的计算可以利用 GNN 中发生的扩散过程diffusion process以非常高效的方式进行。这种扩散过程与 RNN 中发生的扩散过程非常相似,而后者是基于backpropagation-through-time: BPTT 算法计算梯度的。在这种情况下,编码网络从时刻 T 展开unfold 到初始时刻 t0 。展开图如上图所示,每一层对应于一个时刻,并且包含编码网络中所有单元unit fw() 的副本。连续两层之间按照图的连通性进行链接。对应于时刻 T 的最后一层也包括单元 gw() 并计算网络的输出。

    BPTT 是在展开图上执行传统的反向传播算法。 首先计算时间步 T 的损失函数,以及损失函数在每个时间步 t 相对于 fw()gw() 的梯度。最终 wew(T) 由所有时间步的梯度之和得到。然而,BPTT 要求存储每个单元在每个时间步 t 的状态 x(t),当 Tt0 非常大时内存需求太大。为解决该问题,我们基于 Almeida-Pineda 算法提出了一个非常高效的处理方式:由于我们假设状态向量 x(t) 最终收敛到不动点 x,因此我们假设对于任意 tt0 都有 x(t)=x 。因此 BPTT 算法仅需要存储 x 即可。

    下面两个定理表明这种简单直观方法的合理性:

    • 定理(可微性Differentiability):如果全局转移函数 Fw(x,l) 和全局输出函数 Gw(x,lN) 对于状态 x 和参数 w 都是连续可微的,则 φw 对于参数 w 也是连续可微的。

      其证明见原始论文。值得注意的是,对于一般动力学系统而言该结论不成立。对于这些动力学系统而言,参数的微小变化会迫使其从一个固定点转移到另一个固定点。而 GNN 中的 φw 可微的原因是由于 Fw() 是收缩映射。

    • 定理:如果全局转移函数 Fw(x,l) 和全局输出函数 Gw(x,lN) 对于状态 x 和参数 w 都是连续可微的,定义 z(t)Rs 为:

      z(t)=(Fw(x,l)x)z(t+1)+(Gw(x,lN)x)oew(t)

      则序列 z(T),z(T1), 以指数级收敛到一个向量 z=limtz(t),且收敛结果和初始状态 z(T) 无关。

      更进一步有:

      wew=(Gw(x,lN)w)oew+(Fw(x,l)w)z

      其中 xGNN 的不动点,z 为上述收敛的向量。

      证明见论文原文。

      第一项表示输出函数 Gw() 对于梯度的贡献,反向传播的梯度在通过 gw()layer 时计算这一项。第二项表示转移函数 Fw() 对于梯度的贡献,反向传播的梯度在通过 fw()layer 时计算这一项。

  4. GNN 参数学习算法包含三个部分:

    • FORWARD前向计算部分:前向计算部分用于计算状态向量 x,即寻找不动点。该部分迭代直到 x(t)x(t1) 小于给定的阈值。
    • BACKWARD 反向计算部分:反向计算部分用于计算梯度 wew 。该部分迭代直到 z(t1)z(t) 小于给定的阈值。
    • MAIN 部分:该部分用于求解参数。该部分更新权重 w 直到满足迭代的停止标准。
  5. FORWARD 部分:

    • 输入:图 G=(N,E),当前参数 w,迭代停止条件 ϵf

    • 输出:不动点 x

    • 算法步骤:

      • 随机初始化 x(0),令 t=0

      • 循环迭代,直到满足 x(t)x(t1)ϵf。迭代步骤为:

        • 计算 x(t+1)x(t+1)=Fw(x(t),l)
        • t=t+1
      • 返回 x(t)

  6. BACKWARD 部分:

    • 输入:图 G=(N,E),不动点 x,当前参数 w,迭代停止条件 ϵb

    • 输出:梯度 wew

    • 算法步骤:

      • 定义:

        o=Gw(x,lN)A=(Fw(x,l)x),b=(Gw(x,lN)x)oew
      • 随机初始化 z(T),令 t=T

      • 循环迭代,直到满足 z(t1)z(t)ϵb 从而得到收敛的 z。迭代步骤为:

        • 更新 z(t)z(t)=Az(t+1)+b
        • t=t1
      • 计算梯度:

        wew=(Gw(x,lN)w)oew+(Fw(x,l)w)z
      • 返回梯度 wew

  7. Main 部分:

    • 输入:图 G=(N,E) ,学习率 λ

    • 输出:模型参数 w

    • 算法步骤:

      • 随机初始化参数 w

      • 通过前向计算过程计算状态:x=Forward(w)

      • 循环迭代,直到满足停止条件。循环步骤为:

        • 通过反向计算过程计算梯度:wew=Backward(x,w)
        • 更新参数:w=wλwew
        • 通过新的参数计算状态:x=Forward(w)
      • 返回参数 w

  8. Main 部分采用预定义的学习率 λ,但是也可以使用基于梯度下降的一些通用策略,例如使用带动量的梯度更新 、或者自适应学习率的方案。另一方面,目前 GNN 只能通过梯度下降算法求解,非梯度下降算法目前还未解决,这是未来研究的方向。

  9. 实际上编码网络仅仅类似于静态的前馈神经网络,但是编码网络的layer 层数是动态确定的(类似于 RNN ),并且网络权重根据输入图的拓扑结构来共享。因此为静态网络设计的二阶学习算法、剪枝算法、以及逐层学习算法无法直接应用于 GNN

1.1.4 转移函数和输出函数

  1. 局部输出函数 gw() 的实现没有任何约束。通常在 GNN 中,gw() 采用一个多层前馈神经网络来实现。

    另一方面,局部转移函数 fw()GNN 中起着关键作用,它决定了不动点的存在性和唯一性。GNN 的基本假设是:全局转移函数 Fw() 是收缩映射。接下来,我们给出了两种满足该约束的 fw() 的实现,它们都是基于nonpositional formpositional form 也可以类似地实现。

  2. nonpositional linear GNN 线性 GNN

    hw(ln,l(n,u),xu,lu)=An,uxu+bn

    其中 bnRs 和矩阵 An,uRs×s 分别由两个前馈神经网络的输出来定义,这两个前馈神经网络的参数对应于 GNN 的参数。更准确的说:

    • 转移网络 transition network 是一个前馈神经网络,它用于生成 An,u

      设该神经网络为一个映射 ϕw:R2dN+dERs2,则定义:

      An,u=μs×|ne[u]|B

      其中:

      • BRs×s 是由 ϕw(ln,ln,u,lu)s2 个元素进行重新排列得到的矩阵。
      • μ(0,1) 为缩放系数,μs×|ne[u]| 用于对矩阵 B 进行缩放。

      因此 An,u 是对转移网络输出的重排方阵 B 进行缩放得到。

      这里的转移矩阵 An,u 是神经网络的输出,而不是待学习的权重参数。这是因为可以选择输出函数(如 tanh),使得神经网络的输出满足某些性质,从而使得 Fw() 为收缩映射。

    • 约束网络forcing network 是另一个前馈神经网络,它用于生成 bn

      设该神经网络为一个映射 ρw:RdNRs,则定义:

      bn=ρw(ln)

      因此,bn 为约束网络的输出构成的向量。

      这里 bn 仅依赖于节点 n 本身的标签信息。

    假设有:ϕw(ln,ln,u,lu)1s ,即 |B|1s。事实上如果转移网络的输出神经元采用有界的激活函数(如tanh 激活函数),则很容易满足该假设。根据 hw(ln,l(n,u),xu,lu)=An,uxu+bn 有:

    Fw(x,l)=Ax+b

    其中:

    • b 是由所有的 bn 拼接而来,x 是由所有的 xn 拼接而来:

      b=[b1,,b|N|]x=[x1,,x|N|]
    • A 是一个分块矩阵,每一块为 A¯n,u

      A=[A¯1,1A¯1,2A¯1,|N|A¯2,1A¯2,2A¯2,|N|A¯|N|,1A¯|N|,2A¯|N|,|N|]

      其中:

      • 如果 un 的邻居节点,则有 A¯n,u=An,u
      • 如果 u 不是 n 的邻居节点,则由 A¯n,u=0

    由于 bnAn,u 不依赖于状态 x(它们仅仅依赖于图的结构和节点标签信息、边标签信息),因此有:

    Fw(x,l)x=A

    则有:

    Fw(x,l)x1=||A||1maxuN(nne[u]||An,u||1)maxuN(μs×|ne[u]|×nne[u]||B||1)μ

    因此对于任意的参数 wFw() 都是收缩映射。

  3. nonpositional nonlinear GNN 非线性 GNNhw(ln,l(n,u),xu,lu) 通过一个多层前馈神经网络来实现。由于三层神经网络是通用的函数逼近器,可以逼近任何所需的函数。但是,并非所有的参数 w 都可以使用,因为必须保证对应的转移函数 Fw() 是收缩映射。这可以通过在损失函数中增加罚项来实现:

    ew=i=1pj=1qiti,jφw(Gi,ni,j)22+βL(A1)A=Fw(x,l)x

    注意,这里针对关于 x 的雅克比矩阵进行约束,而不是针对 w 的大小进行约束。

    其中:AFw() 关于 x 的雅克比矩阵;罚项 L() 定义为:

    L(y)={(yμ)2,ify>μ0,else

    超参数 μ(0,1) 定义了针对 Fw() 的约束。

    更一般地,罚项可以是关于 w 可微的任何表达式,只需要关于雅克比范数 A1 单调递增。例如,在我们的实验中,我们使用罚项 pw=L(A1)=i=1sL(Ai1),其中 AiA 的第 i 列。实际上这个罚项是 L(maxiAi1) 的一个近似。

1.2 模型分析

  1. GNNRNN:事实上,GNN 是其它已知模型的扩展,特别地,RNNGNN 的特例。当满足以下条件时,GNN 退化为 RNN

    • 输入图为有向无环图(例如最简单的有向的、线性的链式图)。
    • fw() 的输入为 ln,xch[n] ,其中 ch[n] 为节点 n 的子结点的集合。
    • 一个超级源点 sn,从该源点可以到达其它所有节点。该源点通常对应于 graph-focused 任务的输出 osn

    实现 fw(),gw() 的神经网络形式包括:多层前馈神经网络、cascade correlation、自组织映射 self-orgnizing map。在 RNN 中,编码网络采用多层前馈神经网络。这个简化了状态向量的计算。

  2. GNN 和随机游走:当选择 fw() 为线性函数时,GNN 模型还捕获了图上的随机游走过程。

    定义节点的状态 xn 为一个实数,其定义为:

    xn=ipa[n]an,i×xi

    其中: pa[n] 表示节点 n 的父节点集合;an,i 为归一化系数,满足:

    an,i0,ipa[n]an,i=1

    事实上 xn=ipa[n]an,i×xi 定义了一个随机游走生成器:

    • an,i 表示当前位于节点 n 时,随机转移到下一个节点 i 的概率。
    • xn 表示当系统稳定时,随机游走生成器位于节点 n 的概率。

    当所有的 xn 拼接成向量 x,则有:

    x=Axx=[x1x2x|N|]A=[a¯1,1a¯1,2a¯1,|N|a¯2,1a¯2,2a¯2,|N|a¯|N|,1a¯|N|,2a¯|N|,|N|]

    其中:

    a¯n,i={an,i,if(ipa[n])0,else

    可以很容易的验证 ||A||1=1

    马尔可夫理论认为:如果存在 t 使得矩阵 At 的所有元素都是非零的,则 xn=ipa[n]an,i×xi 就是一个收缩映射。

    因此假设存在 t 使得矩阵 At 的所有元素都是非零的,则图上的随机游走是 GNN 的一个特例,其中 Fw() 的参数 A 是一个常量随机矩阵constant stochastic matrix ,而不是由神经网络产生的矩阵。

    当输入图为无向图时,将 pa[n] 替换为邻域 ne[n],则结论仍然成立。

  3. 读者注:GNN 的核心是不动点理论,通过节点的消息传播使得整张图的每个节点的状态收敛,然后在收敛的状态基础上预测。

    这里存在一个局限:基于不动点的收敛会导致节点之间的状态存在较多的消息共享,从而导致节点状态之间过于光滑 over smooth ,这将使得节点之间缺少区分度。

    如下图所示,每个像素点和它的上下左右、以及斜上下左右八个像素点相邻。初始时刻蓝色没有信息量,绿色、黄色、红色各有一部分信息。

    • 开始时刻,不同像素点的区分非常明显。
    • 在不动点的收敛过程中,所有像素点都趋向于一致,最终整个系统的信息分布比较均匀。
    • 最终,虽然每个像素点都感知到了全局信息,但是我们已经无法根据每个像素点的最终状态来区分它们。

1.3 计算复杂度

  1. 我们关心三种类型的 GNN 模型:positional GNN (其中 fw()gw() 通过前馈神经网络来实现)、nonpositional linear GNNnonpositional nonlinear GNN

    训练过程中一些复杂运算的计算复杂度见下表。为方便表述,我们假设训练集仅包含一张图。这种简化不影响结论,因为训练集所有的图总是可以合并为一张大图。另外,复杂度通过浮点运算量来衡量。

    具体推导见论文。其中:

    • instruction 表示具体的运算指令,positional/non-linear/linear 分别给出了三类 GNN 模型在对应运算指令的计算复杂度,execs 给出了迭代的次数。

    • hi 表示隐层神经元的数量,即隐层维度。如 hif 表示函数 fw() 的实现网络的隐层神经元数量。

    • itl 表示迭代的 epoch 数量,itb 表示平均每个epoch 的反向迭代次数(BACKWARD 过程中的循环迭代次数),itf 表示平均每个epoch 的前向迭代次数(FORWARD 过程中的循环迭代次数)。

    • CfCf 分别表示前向计算 fw() 和反向计算 fw() 梯度的计算复杂度。

    • 令雅克比矩阵 A=Fw(x,l)x ,则罚项 pw 为:

      pw=j=1sL(Aj1)=uNj=1sL((n,u)Ei=1s|Ai,jn,u|μ)=uNj=1sαu,j

      其中:Ai,jn,u 表示矩阵 A 的分块 An,u 的第 i 行第 j 列,Aj 表示矩阵 A 的第 j 列,αu,j=L((n,u)Ei=1s|Ai,jn,u|μ)

    • 定义 Rn,u 为一个矩阵,其元素为 Ri,jn,u=αu,j×sgn(Ai,jn,u) ,则 tR 为:对所有的节点 n ,满足 Rn,u0 的节点 u 的数量的均值。通常它是一个很小的数值。

  2. GNN 模型训练完成之后,其推断速度也很快。

    • 对于positional GNN,其推断的计算复杂度为:O(|N|Cg+itf|N|Cf)
    • 对于 nonpositional nonliear GNN,其推断的计算复杂度为:O(|N|Cg+itf|E|Ch)
    • 对于 nonpositional linear GNN,其推断的计算复杂度为:O(|N|Cg+itf|E|s2+|N|Cρ+|E|Cϕ)

    推断阶段的主要时间消耗在计算状态 x 的重复计算中,每次迭代的计算代价和输入图的维度(如边的数量)成线性关系,和前馈神经网络的隐层维度成线性关系,和状态向量的维度成线性关系。线性 GNN 是一个例外。线性 GNN 的单次迭代成本是状态维度的二次关系。

    状态向量的收敛速度取决于具体的问题。但是 Banach 定理可以确保它是以指数级速度收敛。实验表明:通常515 次迭代足以逼近不动点。

  3. positional GNN 中转移函数需要执行 itf|N| 次,在 nonpositional nonliear GNN 中转移函数需要执行 itf|E| 次。虽然边的数量 |E| 通常远大于节点数量 |N| ,但是positional GNNnonpositional nonlinear GNN 的推断计算复杂度是相近的,这是因为 positional GNN 中的 fw() 网络通常要比 nonpositional nonliear GNN 中的 hw() 网络更复杂。

    • positional GNN 中,实现 fw() 的神经网络有 M×(s+dE) 个神经元,其中 M 为所有节点的最大邻居数量。
    • nonpositonal nonliear GNN 中,实现 hw() 的神经网络有 (s+dE) 个神经元。

    只有在节点的邻居数量高度可变的图中才能注意到明显的差异,因为 fw() 的输入必须确保能够容纳最多的邻居,并且在应用 fw() 时许多输入可能仍然未使用(很多输入填充为 null )。

  4. 另一方面,观察到在 linear GNN 中,每次迭代仅使用一次 FNN,因此每次迭代的复杂度为 O(s2|E|) 而不是 O(|E|Ch)

    注意到,当 hw() 由具有 hih 隐层神经元的三层 FNN 实现时,Ch=O((s+dE+2dN)×hih)=O(s×hih) 成立。在实际情况下,hih 通常大于 s ,因此线性模型比非线性模型更快。正如实验所证实的那样,这种优势通常被更差的效果所抵消。

  5. GNN 的训练阶段要比推断阶段消耗更多时间,主要在于需要在多个epoch 中重复执行 forwardbackward 过程。实验表明:forward 阶段和 backward 阶段的时间代价都差不多。

    • forward阶段的时间主要消耗在重复计算 x(t)
    • 类似于 forward 阶段,backward 阶段的时间主要消耗在重复计算 z(t) 。前述定理可以确保 z(t) 是指数级收敛的,并且实验表明 itb 通常很小。
  6. 训练过程中,每个 epoch 的计算代价可以由上表中所有指令的计算复杂度的加权和得到,权重为指令对应的迭代次数。

    • 所有指令的计算复杂度基本上都是输入图的维度(如:边的数量)的线性函数,也是前馈神经网络隐单元维度的线性函数,也是状态维度 s 的线性函数。

      有几个例外,如计算 z(t)=Az(t+1)+b,A=Fw(x,l)x,wpw 的计算复杂度都是 s 的平方关系。

    • 最耗时的指令是 nonpositional nonlinear GNN 中计算 wpw ,其计算复杂度为 tR×max(s2×hih,Ch)

      实验表明,通常 tR 是一个很小的数字。在大多数 epochtR=0 ,因为雅可比矩阵 A 并未违反施加的约束。另一些情况中,tR 通常在 1~5 之间。因此对于较小的状态维度 s ,计算 wpw 的复杂度较低。

      理论上,如果 s 非常大则可能导致 s2×hihCh 。如果同时还有 tR0,则这将导致计算 wpw 非常慢。但是值得一提的是,我们的实验中从未观察到这种情况。

1.4 实验

  1. 这里我们展示了在一组简单问题上获得的实验结果,这些问题是为了研究 GNN 模型的特性,并证明该方法可以应用于相关领域的相关应用。这些问题包括:子图匹配、诱变mutagenesis、网页排名,因为这些问题特别适合挖掘模型的属性并且与重要的现实应用相关。值得一提的是,GNN 模型已经成功应用于更大的应用,包括图像分类、图像中的物体定位、网页排名web page ranking 、关系学习relational learningXML 分类。

  2. 除非另有说明,以下事实适用于每个实验。

    • 根据 RNN 的已有经验,nonpositional 转移函数效果要优于 positional 转移函数,因此这里测试了 nonpositional linear GNNnonpositional nonlinear GNN
    • 所有GNN 中涉及到的函数,如 nonpositional linear GNN 中的 gw(),ϕw(),ρw() ,以及 nonpositional nonlinear GNN 中的 gw(),hw() 都采用三层的前馈神经网络来实现,并使用 sigmoid 激活函数。
    • 报告的结果是五次不同运行的均值。在每次运行中,数据集是由以下过程构建的随机图的集合:每对节点之间以一定的概率 δ 随机连接,直到构建的随机图满足指定条件。
  3. 数据集划分为训练集、验证集和测试集。

    • 如果原始数据仅包含一张大图 G ,则训练集、验证集、测试集分别包含 G 的不同节点。
    • 如果原始数据包含多个图 Gi ,则每张图整个被划分到训练集、验证集、测试集之一。

    在每次试验中,训练最多执行 5000epoch,每 20epoch 在验证集上评估 GNN 。在验证集上实现最低损失函数的 GNN 被认为是最佳模型,并应用于测试集。

    测试集性能评估指标为分类准确率或回归相对误差。

    • 对于分类问题, ti,j 为一个标量,取值范围为 {+1,1} 。模型的评估指标为预测准确率:如果 ti,j×φw(Gi,ni,j)>0 则分类正确;否则分类不正确。

    • 对于回归问题, ti,j 为一个标量,取值范围为 R 。模型的评估指标为相对误差:

      |ti,jφw(Gi,ni,j)ti,j|
  4. 算法在 Matlab 7 上实现,在配备了 2-GHz PowerPC 处理器的 Power Mac G5 上进行。

1.4.1 子图匹配问题

  1. 子图匹配subgraph matching 问题:在更大的图 G 中寻找给定的子图 S 。即,需要学习一个函数 τ:如果节点 ni,j 属于图 Gi 中的一个和 S 同构的子图,则 τ(Gi,ni,j)=1;否则 τ(Gi,ni,j)=1

    如下图所示,图 G1,G2 都包含子图 S 。节点内的数字表示节点的标签信息向量 ln(这里是一个标量)。最终学到的函数 τ 为:如果为黑色节点则 τ(Gi,ni,j)=1,否则 τ(Gi,ni,j)=1

    子图匹配问题有很多实际应用,如:物体定位、化合物检测。子图匹配问题是评估图算法的基准测试。实验表明 GNN 模型可以处理该任务。

    • 一方面 GNN 模型解决子图匹配问题的结果可能无法与该领域的专用方法相比,后者的速度更快、准确率更高。
    • 另一方面 GNN 模型是一种通用算法,可以在不经修改的情况下处理子图匹配问题的各种扩展。如:同时检测多个子图、子图的结构和标签信息向量带有噪音、待检测的目标图 Gi 是未知的且仅已知它的几个节点。
  2. 数据集:由 600 个随机图组成(边的连接概率为 δ=0.2 ),平均划分为训练集、验证集、测试集。在每轮实验中,随机生成一个子图 S ,将子图 S 插入到数据集的每个图中,因此每个图 Gi 至少包含了 S 的一份拷贝。

    每个节点包含整数标签,取值范围从 [0,10]。我们使用一个均值为0、标准差为 0.25 的高斯噪声添加到标签上,结果导致数据集中每个图对应的 S 的拷贝都不同。

    注意添加噪声之后,节点的标签仍然为整数,因此需要四舍五入。

    为了生成正确的监督目标 ti,j,我们使用一个暴力搜索算法从每个图 Gi 中搜索 S

  3. GNN 配置:

    • 所有实验中,状态向量的维度 s=5
    • 所有实验中,GNN 的所有神经网络的隐层为三层,隐层维度为 5 。我们已经测试过更多的网络架构,结果是类似的。

    为评估子图匹配任务中,标签信息和子图连通性的相对重要性,我们还应用了前馈神经网络FNN 作为 baselineFNN 有一个输出单元、20 个隐单元、一个输入单元。 FNN 仅使用标签信息 lni,j 来预测监督目标 ti,j ,它并没有利用图的结构。

  4. 实验结果如下图所示,其中 NL 表示 nonpositional nonlinear GNNL 表示 nonpositional linear GNNFNN 表示前馈神经网络。评估指标为测试集准确率。

    结论:

    • 正负节点的比例影响了所有方法的效果。

      • |S| 接近 |G| 时,几乎所有节点都是正样本,所有方法预测的准确率都较高。
      • |S| 只有 |G| 的一半时,正负节点比较均匀,此时所有方法预测的准确率都较低。

      事实上,在后一种情况下,数据集是完全平衡的,并且更难以猜测正确的目标。

    • 子图规模 |S| 影响了所有方法的结果。

      因为标签只能有 11 种不同取值,当 |S| 很小时,子图的大多数节点都可以仅仅凭借其标签来识别。因此 |S| 越小预测准确率越高,即使是在 |G|=2|S| 时。

    • GNN 总是优于 FNN,这表明 GNN 可以同时利用标签内容和图的拓扑结构。

    • 非线性 GNN 略优于线性 GNN,这可能是因为非线性 GNN 实现了更为通用的模型,它的模型容量更大。

    • 最后,可以观察到 FNN 的总体平均误差比 GNN 增加大约 50%GNNFNN 之间的相对错误率(衡量了拓扑结构的优势)随着 |S| 的增加而变小。

      实际上,GNN 使用信息扩散机制 information diffusion mechanism 来决定节点是否属于子图。当 S 较大时,必须扩散更多的信息,因此要学习的函数更复杂。

  5. 为评估GNN 的计算复杂度和准确性,我们评估了不同节点数、不同边数、不同隐层维度、不同状态向量维度的效果。在基准情况下:训练集包含10 个随机图,每个图包含20 个节点和 40 条边;GNN 隐层维度为5,状态向量维度为 2

    GNN 训练 1000epoch 并报告十次实验的平均结果。如预期的一样,梯度计算中需要的 CPU 时间随着节点数量、边的数量、隐层维度呈线性增长,随着状态向量维度呈二次增长。

    下图为节点数量增加时,梯度计算花费的CPU 时间。实线表示非线性GNN,虚线表示线性 GNN

    下图为状态向量维度增加时,梯度计算花费的 CPU 时间。实线表示非线性GNN,虚线表示线性 GNN

  6. 非线性 GNN 中,梯度和状态向量维度的二次关系取决于计算雅可比矩阵 A=Fw(x,l)x 以及梯度 wpw 的时间代价。下图给出了计算梯度过程中的总时间代价。

    线条 -o- 给出了计算 ewwew 的时间代价;线条 -*- 给出了计算雅可比矩阵 A 的时间代价;线条 -x- 给出了计算 wpw 的时间代价;点线 ...和给出了剩下的前向计算的时间代价;虚线 ---给出了剩下的反向计算的时间代价;实线表示剩下的计算梯度的时间代价。

    可以看到:wpw 的计算复杂度虽然是状态向量维度的二次关系,但是实际上影响较小。实际上该项的计算复杂度依赖于参数 tR(对所有的节点 n ,满足 Rn,u0 的节点 u 的数量的均值),通常它是一个很小的数值。

    下图给出每个epochRn,u0 的节点 u 的数量的直方图(黑色柱体)。可以看到 Rn,u 的节点 u 的数量通常为零,且从未超过4 。另外下图也给出计算稳定状态 x 和计算梯度(如计算 z)所需要的平均迭代次数的直方图,可以看到这些值通常也很小。

    下图给出的是迭代次数或 tR 取值(x 轴)的分布(y 轴表示出现次数)。

1.4.2 Mutagenesis问题

  1. Mutagenesis 数据集:一个小型数据集,经常作为关系学习relational learninginductive logic programming 中的基准。它包含 230 种硝基芳香族化合物的数据,这些化合物是很多工业化学反应中的常见中间副产品。

    任务目标是学习识别 mutagenic 诱变化合物。我们将对数诱变系数 log mutagenicity 的阈值设为0,因此这个任务是一个二类分类问题。

    数据集中的每个分子都被转换为一张图:

    • 节点表示原子、边表示原子键 atom-bond:AB 。平均的节点数量大约为 26

    • 边和节点的标签信息包括原子键 AB、原子类型、原子能量状态,以及其它全局特征。全局特征包括:chemical measurement化学度量 C (包括 lowest unoccupied molecule orbital, the water/octanol partition coefficient )、precoded structural 预编码结构属性 P\mathbf S

      另外原子键可以用于定义官能团 functional groups: FG

    • 在每个图中存在一个监督节点:分子描述中的第一个原子。如果分子为诱变的则该节点的期望输出为1,否则该节点的期望输出为 -1

    在这 230 个分子中,有 188 个适合线性回归分析,这些分子被称作回归友好 regression friendly。剩下的 42 个分子称作回归不友好 regression unfriendly

  2. GNN 在诱变化合物问题上的结果如下表所示。我们采用十折交叉验证进行评估:将数据集随机拆分为十份,重复实验十次,每次使用不同的部分作为测试集,剩余部分作为训练集。我们运行5 次十折交叉,并取其均值。

    在回归友好分子上的效果:

    在回归不友好分子上的效果:

    在所有分子上的效果:

    结论:

    • GNN 在回归不友好分子和所有分子上的效果都达到最佳,在回归友好分子上的效果接近 state of the art 水平。
    • 大多数方法在应用于整个数据集时,在回归友好分子上(相比较于回归不友好分子)显示出更高的准确率。但是GNN 与此相反。这表明 GNN 可以捕获有利于解决问题但是在回归友好分子、回归不友好分子这两部分中分布不均的模式特征。

1.4.3 Web PageRank

  1. 受到谷歌的 PageRank 启发,这里我们的目标是学习一个网页排名。网页 n 的排名得分 pn 定义为:

    pn=d×upa[n]puon+(1d)

    其中:on 为节点 n 的出度 out-degreed[0,1] 为阻尼因子 damping factorpa[n] 为节点 n 的父节点集合。

    Gδ=0.2 随机生成,包含 5000 个节点。训练集、验证集、测试集由图的不同节点组成,其中 50 个节点作为训练集、50 个节点作为验证集、剩下节点作为测试集。

    每个节点 n 对应于一个二维标签 ln=[an,bn],其中 an{0,1},bn{0,1} 表示节点 n 是否属于两个给定的主题:

    • [an,bn]=[1,1] 表示节点 n 同时属于这两个主题。
    • [an,bn]=[1,0] 表示节点 n 仅仅属于第一个主题。
    • [an,bn]=[0,1] 表示节点 n 仅仅属于第二个主题。
    • [an,bn]=[0,0] 表示节点 n 不属于任何主题。

    需要拟合的目标target 为:

    tn={2pnjN|pj|,if(anXORbn)=1pnjN|pj|,otherwise
  2. 这里我们使用线性 GNN 模型,因为线性 GNN 模型很自然的类似于 PageRank 线性模型。转移网络和约束网络 forcing network 都使用三层前馈神经网络,隐层维度为5。状态向量维度为 s=1 (即,一个标量 xn )。

    输出函数为:gw(xn,ln)=xn×πw(xn,ln) 。其中:xnxn 的偏导数; πw 为三层前馈神经网络,隐层维度为 5

    下图给出了 GNN 模型的结果。其中图 (a) 给出了仅属于一个主题的网页的结果,图 (b) 给出了其它网页的结果。

    红色实线表示目标 tn ,蓝色点线表示 GNN 模型的输出。横轴表示测试集的节点数量,纵轴表示目标得分 tn 。节点按照 tn 得分进行升序排列。该结果清晰地表明 GNN 在这个问题上表现得非常好。

    下图给出学习过程中的误差。红色实线为训练集的误差,蓝色虚线是验证集的误差。注意:两条曲线总是非常接近,并且验证集的误差在 2400epoch 之后仍在减少。这表明尽管训练集由 5000 个节点中的 50 个组成,GNN 仍然未经历过拟合。

二、Spectral Networks & Deep Locally Connected Networks [2013]

  1. 卷积神经网络 Convolutional Neural Networks: CNNs 在机器学习问题中非常成功,其中底层数据representation 的坐标具有网格结构grid structure (一维、二维、或三维的网格),并且在这些坐标中,这些待研究的数据相对于该网格具有平移相等translational equivariance 性或平移不变性 translational invariance。语音、图像、视频就是属于这一类问题的著名的例子。

    在常规网格上,CNN 能够利用多种结构来很好地协同工作,从而大大减少系统中的参数数量:

    • 平移结构 translation structure:它允许使用 filter 而不是通用的线性映射,从而实现权重共享weight sharing
    • 空间局部性:filter 的尺寸通常都远远小于输入信号的尺寸。
    • 多尺度:通过步长大于一的卷积或者池化操作来减少参数,并获得更大的感受野 receptive field

    然而在许多情况下,数据并不是网格结构,如社交网络数据,因此无法在其上应用标准的卷积网络。图 graph 提供了一个自然框架来泛化网格结构,并扩展了卷积的概念。在论文《Spectral Networks and Deep Locally Connected Networks on Graphs》中,作者将讨论在除了常规网格之外的图上构建深度神经网络。论文提出了两种不同的结构:

    • 基于空域的卷积构建Spatial Construction :通过将空间局部性和多尺度扩展到通用的图结构,并使用它们来定义局部连接和池化层,从而直接在原始图结构上执行卷积。
    • 基于谱域的卷积构建Spectral Construction :对图结构进行傅里叶变换之后,在谱域进行卷积。

    论文主要贡献如下:

    • 论文表明,从给定的图结构输入,可以获得参数为 O(n) 的有效架构(n 为输入节点总数),并且论文在低维的图数据集上进行了验证。
    • 论文介绍了一种使用 O(1) 参数的结构,通过实验验证了该结构并讨论了它与图上的谐波分析问题harmonic analysis problem 的联系。

2.1 基础概念(读者补充)

2.1.1 拉普拉斯算子

  1. 散度定义:给定向量场 F(x),设 Σ 为围绕某一点 x 的一个封闭曲面,dS 为曲面上的微元,n 为该微元的法向量,则该曲面的通量为:

    ΦF(Σ)=ΣFndS

    Σ 趋近于零时,即可得到 x 点的散度:

    divF(x)=F=F=i=1nFixi

    其中 x=(x1,,xn),F=(F1,,Fn)

    散度的物理意义为:在向量场中从周围汇聚到该点或者从该点流出的流量。

  2. 旋度定义:给定向量场 F(x),设 Γ 为围绕某一点 x 的一个封闭曲线,dl 为曲线上的微元,τ 为该微元的切向量,则该曲线的环量为:

    ΘF(Γ)=ΓFτdl

    Γ 趋近于零时,即可得到 x 点的旋度:

    curlF(x)=×F

    在三维空间中,上式等于:

    ×F=|ijkxyzFxFyFz|=(FzyFyz)i+(FxzFzx)j+(FyxFxy)k

    旋度的物理意义为:向量场对于某点附近的微元造成的旋转程度,其中:

    • 旋转的方向表示旋转轴,它与旋转方向满足右手定则。
    • 旋转的大小是环量与环面积之比。
  3. 拉普拉斯算子定义:给定函数 f(x) ,其中 x=(x1,,xn) ,则梯度定义为:

    f=(fx1,fxn)

    梯度的物理意义为:函数值增长最快的方向。

    梯度的散度为拉普拉斯算子,记作:

    2f=f=i=1n2fxi2
    • 由于所有的梯度都朝着 f 极大值点汇聚、从 f 极小值点流出,因此拉普拉斯算子衡量了空间中每一点,该函数的梯度是倾向于流出还是流入。
    • 拉普拉斯算子也能够衡量函数的平滑度smoothness:函数值没有变化或者线性变化时,二阶导数为零;当函数值突变时,二阶导数非零。
  4. 图拉普拉斯矩阵:假设 f(x) 为离散的一维函数,则一阶导数为一阶差分:

    f(x)=f(x)xf(x+1)f(x)

    二阶导数为二阶差分:

    2f=f(x)=2f(x)x2=f(x)f(x1)=[f(x+1)f(x)][f(x)f(x1)]=f(x+1)+f(x1)2f(x)

    一维函数其自由度可以理解为2,分别是 +1-1 两个方向。因此二阶导数等于函数在所有自由度上微扰之后获得的增益。

    推广到图结构 G=(V,E),其中节点数量为 |V| 。假设邻接矩阵为 W ,并且任意两个节点之间存在边(即使不存在边则我们也可以假设存在一个 wi,j=0 的”虚拟“边 )。对于其中任意节点 i ,对其施加微扰之后该节点可以到达其它任意节点,因此图的自由度为 |V|

    fi 为函数 f() 在节点 i 的值,定义 f=(f1,f2,,f|V|)R|V| ,它表示函数 f 在图 G=(V,E) 上的取值。对于节点 i ,其扰动到节点 j 的增益时 (fjfi) ,不过这里通常写成负的形式,即 (fifj) 。考虑到边的权重,则增益为:wi,j(fifj)

    函数 f() 也可以视为定义在图上的信号 signal

    对于节点 i ,总的增益为拉普拉斯算子在节点 i 的值。即:

    (2f)i=j2fij2jwi,j(fifj)=(jwi,j)fijwi,jfj=(Df)i(Wf)i=((DW)f)i

    其中: D 为图的度矩阵degree matrix()i 表示该向量的第 i 个元素。

    考虑所有的节点,则有:

    2f=(DW)f

    定义拉普拉斯矩阵 L=DW ,因此在图的拉普拉斯算子就是拉普拉斯矩阵。

    上述结果都是基于 fi 为标量推导,实际上当 fi 为向量时也成立。

  5. 假设图的节点数量为 m,图的拉普拉斯矩阵 LRm×m 是一个半正定对称矩阵,它具有以下性质:

    • 对称矩阵一定有 m 个线性无关的特征向量。
    • 半正定矩阵的特征值一定是非负的。
    • 对称矩阵的特征向量相互正交,即:所有特征向量构成的矩阵为正交矩阵。

    因此有拉普拉斯矩阵的谱分解:

    Luk=λkuk

    其中 uk 为第 k 个特征向量,λk 为第 k 个特征值。

    解得:L=UΛU ,其中 :

    U=[u1,u2,,um]Rm×mΛ=[λ1000λ2000λm]

    U 每一列为特征向量构成的正交矩阵,Λ 为对应特征值构成的对角矩阵。

  6. 根据 L=(DW) 的定义有:

    L[111]=0

    根据特征方程:Lu=λu ,因此 λ=0L 的一个特征值。由于半正定矩阵的特征值一定是非负的,因此 λ=0L 的最小特征值。

    L 对应的 m 维谱空间中,特征值 λk 越小则表明拉普拉斯矩阵 Lλk 对应的基 uk 上的分量的信息越少,这意味着该分量是可以忽略的低频部分。其实图像压缩就是这个原理,把像素矩阵分解后,把小的特征值(低频部分)全部变成零。PCA 降维也是同样原理,把协方差矩阵特征分解后,取 top K 个特征值对应的特征向量作为新的特征空间。 如下图所示为包含 25 个节点的图,其 L 对应的 25 维空间中,最大特征值、第12 大特征值、次小特征值(因为最小特征值为零,因此第24 大特征值就是次小的)对应特征向量 uk 的可视化。可以看到:特征值越大则对应特征向量的变化越剧烈,特征值越小则对应特征向量的变化越平缓。注意:最小特征值为零,并且对应的特征向量为全1 的向量(或者乘以常数倍),这意味着该特征向量在所有节点上取值相等(所以变化为零),即频率为零的分量。

2.1.2 卷积

  1. 给定函数 f(x), 其傅里叶变换为:

    f(x)=F(k)eikxdk

    其中 F(k)=12πf(x)eikxdx 为傅里叶系数,即频率为 k 的振幅, eiwx 为傅里叶基 fouries basis

    可以证明:eikx 为拉普拉斯算子的特征函数。证明:

    2eikx=2eikxx2=k2eikx
  2. 如果将傅里叶变换推广到图上,则有类比:

    • 拉普拉斯算子对应于拉普拉斯矩阵 L

    • 频率 k 对应于拉普拉斯矩阵的特征值 λk

    • 傅里叶基 eikx 对应于特征向量 uk

    • 傅里叶系数 F(k) 对应于 F(λk) ,其中:

      F(λk)=f^k=fuk

      写成矩阵形式为:

      f^=Uf

      其中:

      • fRm 为图上定义的一个 m 维的信号(空域信号),它由每个节点的特征 fi 组成。

      • f^ 为图的傅里叶变换(谱域信号),它是在谱域上对应于不同特征值的振幅构成的向量。

        f^ 其实就是 f 在由 m 个基向量 {u1,,um} 所张成的谱空间中的坐标,f^i 就是 f 在基向量 ui 上的投影。

    • 传统的傅里叶逆变换 F1(F(k))=f(x)=F(k)eikxdk 对应于图结构:

      fi=k=1mf^kuk,i

      其中 uk,i 对应于特征向量 uk 的第 i 个分量。写成矩阵的形式为:

      f=Uf^
  3. 卷积定理:两个函数在时域的卷积等价于在频域的相乘。

    f(x)h(x)=F1(F(k)×H(k))=F(k)×H(k)eikxdkF(k)=12πf(x)eikxdxH(k)=12πh(x)eikxdx

    对应于图上有:

    fh=F1(f^h^)=U(K(Uf))=UKUf

    其中: 为逐元素乘积,U 为拉普拉斯矩阵 L 特征向量组成的矩阵(每一列为一个特征向量),K 为对角矩阵:

    K=[hu1000hu2000hum]

    这里将逐元素乘积转换为矩阵乘法。

  4. 图卷积神经网络的核心就是设计卷积核,从上式可知卷积核就是 K 。我们可以直接令 huk=θk ,然后学习卷积核:

    K=[θ1000θ2000θm]

    我们并不关心 h,仅仅关心傅里叶变换之后的 h^

2.2 空域构建 Spatial Construction

2.2.1 基本概念

  1. 在通用的图结构上针对 CNN 最直接的推广是考虑多尺度的、局部的感受野。为此,我们使用一个加权图 G=(Ω,W) 来代替网格结构,其中 Ω 为大小为 m 的节点集合,WRm×m 为对称、非负的权重矩阵(这里采用无向图)。

    这里的权重指的是图中边的权重,而不是神经网络的权重。

  2. 基于 W 的局部性 locality:可以很容易地在图结构中推广局部性的概念。实际上,图中的权重决定了局部性的概念。例如,在 W 上定义邻域的一种直接方法是设置阈值 δ>0,并设置邻域为:

    Nδ(j)={iiΩ,Wi,j>δ}

    其中 Nδ(j) 为节点 j 的邻域节点集合。

    在执行卷积时,我们可以仅仅考虑将感受野限制在这些邻域上的 sparse filter ,从而获得局部连接的网络 locally connected network ,从而将卷积层的参数数量减少到 O(S×m) (而不是 O(m2)),其中 S 为平均邻域大小。

    每个节点需要 S 个参数,一共 m 个节点,所以参数数量是 O(S×m)

  3. 图的多分辨率multiresolution分析:CNN 通过池化pooling 层和降采样subsampling层来减少feature map 的尺寸,在图结构上我们同样可以使用多尺度聚类multiscale clustering的方式来获得多尺度结构。在图结构上如何进行多尺度聚类仍然是个开发的研究领域,我们这里根据节点的邻域进行简单的聚类。

    图的邻域结构天然地代表了某种意义上的聚类。比如,社交网络的一阶邻域代表用户的直接好友圈子,以一阶邻域来聚类则代表了一个个的”小团体“。基于这些 ”小团体“ 进行聚类得到的高阶聚类可能包含了国家的信息,比如”中国人“被聚合在一个高阶聚类中,”美国人“被聚合在另一个高阶聚类中。

    下图给出了多尺度层次聚类的示意图(两层聚类)。原始的12个节点为灰色。第一层有6 个聚类,聚类中心为彩色节点,聚类以彩色块给出。第二层有3 个聚类,聚类以彩色椭圆给出。

2.2.2 深度局部连接网络 Deep Locally Connected Networks

  1. 空域构建spatial construction从图的多尺度聚类开始,并且我们考虑 K 个尺度scale 。定义第 0 个尺度表示原始图,即 Ω0=Ω 。对于之后每个尺度的feature mapΩk 是通过聚类算法将feature map Ωk1 划分到 dk 个聚类而得到,其中 d0 为原始图的节点数量 mk=1,2,,K

    Ωk 包含 dk 个节点,这些节点是 dk 个聚类的聚类中心。

    Ωk1 包含 dk1 个节点,第 i 个节点的邻域记做 Nk,i。定义 Ωk1 中全部邻域集合的集合为:

    Nk={Nk,1,,Nk,dk1}

    有了这些之后我们现在可以定义神经网络的第 k 层。不失一般性,我们假设输入信号是定义在 Ω0 上的实值信号 real signal(即标量值) ,我们设第 k 层创建的 filter 数量为 fk(即输出通道数)。则第 k 层神经网络将 fk1dk1 维的信号转换为 fkdk 维的信号。

  2. 正式地,假设第 k 层神经网络的输入为:

    X(k)=[x1,1(k)x1,2(k)x1,fk1(k)x2,1(k)x2,2(k)x2,fk1(k)xdk1,1(k)xdk1,2(k)xdk1,fk1(k)]Rdk1×fk1

    其中:

    • X(k) 为第 k 层神经网络的输入 feature map
    • X(k) 的第 i 行定义为 xi,:(k)=(xi,1(k),,xi,fk1(k))Rfk1Ωk1 的第 j 个节点的 feature
    • X(k) 的第 j 列定义为 x:,j(k)=(x1,j(k),,xdk1,j(k))Rdk1 为第 j 个信号(一共 fk1 个)。

    则第 k 层神经网络的第 j 个输出信号定义为:

    x:,j(k+1)=L(k)h(j=1fk1Fj,j(k)x:,j(k)),j=1,2,,fk

    其中:

    • 信号的每一维度表示一个通道,因此fk1 为输入通道数,fk 为输出通道数。

    • Fj,j(k)x:,j(k) 对第 j 个输入通道进行线性变换,变换矩阵为 Fj,j(k)

      j=1fk1Fj,j(k)x:,j(k) 的物理意义为:第 j 个输出通道由所有输入通道的线性变换进行 sum 聚合而来。

    • Fj,j(k)Rdk1×dk1 为一个稀疏矩阵(作为 filter),它表示应用于第 j 个输入通道、第 j 个输出通道的参数矩阵。

      Fj,j(k) 的非零项由 Nk 来定义,即:

      Fj,j(k)(u,v)={θj,j(k)(u,v),vNk,u0,else

      即:当节点 v 不在节点 u 的邻域中时 Fj,j(k)(u,v) 为零,由于对称性此时 Fj,j(k)(v,u) 也为零。{θj,j(k)(u,v)}filter 的待学习的参数。

      这意味着在线性投影时,节点 u 的输出仅依赖于其邻域节点 Nk,u ,即局部性。

    • h() 为非线性激活函数。

    • L(k) 为第 k 层的池化矩阵,矩阵的行表示聚类 cluster id,列表示节点id ,矩阵中的元素表示每个节点对应于聚类中心的权重:如果是均值池化则就是 1 除以聚类中的节点数,如果是最大池化则是每个聚类的最大值所在的节点。

      L(k) 用于将 fkdk1 维的输出通道的信号池化为 fkdk 维的信号。

      L(k)=node1node2node3nodedk11nodedk1cluster110000cluster201/2001clusterdk01/2010Rdk×dk1
  3. ΩkNk 的构建过程:

    • 初始化:W0=W

    • 根据对 Wkϵ-covering 得到 Ωk 。理论上也可以采取其它聚类算法。

    • 对于 Ωk ,其簇中心 i,j 之间的连接权重为两个簇之间的所有连接的权重之和:

      Ak(i,j)=sΩk(i)tΩk(j)Wk1(s,t)

      然后按行进行归一化:

      Wk=row-normalize(Ak)
    • 根据 Wk 以及邻域阈值 δ 得到 Nk

    如下图所示 K=2

    • Ω0 表示第零层,它有 12 个节点(灰色),信号为一个通道(标量)。
    • Ω1 表示第一层,其输入为 Ω0,输出 6 个节点,输出信号四个通道(四个filter )。
    • Ω2 表示第二层,其输入为 Ω1 ,输出 3 个节点,输出信号六个通道(六个filter)。

    每一层卷积都降低了空间分辨率spatial resolution,但是增加了空间通道数。

  4. 假设 SkNk 中平均邻居数量,则第 k 层卷积的平均参数数量为:

    O(Sk×dk×fk×fk1)

    实际应用中我们可以使得 Sk×dkαdk1α 为一个升采样系数,通常为 α(1,4)

    为什么这么做?论文并未说明原因。

  5. 空域构建的实现非常朴素,其优点是不需要对图结构有很高的规整性假设 regularity assumption。缺点是无法在节点之间实现权重共享。

2.3 谱域构建 Spectral Construction

  1. 可以通过图拉普拉斯算子来探索图的全局结构,从而推广卷积算子。

  2. 假设构建一个 K 层的卷积神经网络,在第 k 层将输入的 feature map X(k)Rdk1×fk1 映射到 X(k+1)Rdk1×fk ,则第 k 层网络的第 j 个输出通道为:

    x:,j(k+1)=h(j=1fk1UKj,j(k)Ux:,j(k))

    其中:

    • x:,j(k) 表示第 j 个输入信号,即 X(k) 的第 j 列。

    • U 为拉普拉斯矩阵特征向量组成的矩阵(每一列表示一个特征向量)。

      实际应用中,通常仅仅使用拉普拉斯矩阵的最大 D 个特征向量,截断阈值 D 取决于图的固有规整性 regularity 以及图的节点数量。此时上式中的 U 替换为 UDRdk1×D 。这可以减少参数和计算量,同时去除高频噪声。

    • Kj,j(k)Rdk1×dk1 为第 k 层的、针对第 j 个输入通道、第 j 个输出通道的谱域 filter 。一般而言我们选择 filter Kj,j(k) 为对角矩阵,因此第 k 层卷积层的参数数量为 fk1×fk×dk1

      我们将在后文看到如何将图的全局规整性和局部规整性结合起来,从而产生具有 O(1) 参数的层,即模型参数的数量不依赖于输入节点数 dk1

    • h() 为非线性激活函数。

  3. 谱域构建可能受到以下事实的影响:大多数图仅在频谱的 top (即高频部分)才具有有意义的特征向量。即使单个高频特征向量没有意义,一组高频特征向量也可能包含有意义的信息。

    然而,我们的构建方法可能无法访问这些有意义的信息,因为我们使用对角线形式的卷积核,在最高频率处它是对角线形式因此仅包含单个高频特征向量(而不是一组高频特征向量)。

  4. 傅里叶变换是线性变换,如何引入非线性目前还没有很好的办法。

    具体而言,当在空域执行非线性变换时,如何对应地在谱域执行前向传播和反向传播,目前还没有很好的办法,因此我们必须进行昂贵的 UU 矩阵乘法。

  5. 为了降低参数规模,一个简单朴素的方法是选择一个一维的排列 arrangement(这个排列的顺序是根据拉普拉斯特征值的排序得到)。此时第 k 层网络的每个 filter Kj,j(k) 的对角线可以参数化为:

    diag(Kj,j(k))=K(k)αj,j(k)

    其中: K(k)Rdk1×qk 为三次样条核函数,αj,j(k)Rqkqk 个样条参数。

    假设采样步长正比于节点数量,即步长 αdk1 ,则 qkdk1×1α=O(1) , 则谱域卷积的参数数量降低为:fk1×fk

2.4 实验

  1. 我们对 MNIST 数据集进行实验,其中MNIST 有两个变种。所有实验均使用 ReLU 激活函数以及最大池化。模型的损失函数为交叉熵,固定学习率为0.1 ,动量为 0.9

2.4.1 降采样 MNIST

  1. 我们将MNIST 原始的 28x28 的网格数据降采样到 400 个像素,这些像素仍然保留二维结构。由于采样的位置是随机的,因此采样后的图片无法使用标准的卷积操作。

    采样后的图片的示例,空洞表示随机移除的像素点。

    空域层次聚类的可视化,不同的颜色表示不同的簇,颜色种类表示簇的数量。图 a 表示 k=1 ,图 b 表示 k=3 。可以看到:层次越高,簇的数量越少。

    谱域拉普拉斯特征向量的可视化(谱域特征向量每个元素就是对应于每个节点的取值)。图a 表示 v2(对应于较小的特征值),图b 表示 v20 (对应于较大的特征值)。可以看到:特征值越小的特征向量对应于低频部分(变化越缓慢,左图),特征值越大的部分对应于高频部分(变化越剧烈,右图)。

  2. 不同模型在 MNIST 上分类的结果如下。基准模型为最近邻模型 kNNFCN 表示带有 N 个输出的全连接层,LRFN 表示带有 N 个输出的空域卷积层,MPN 表示带有 N 个输出的最大池化层,SPN 是带有 N 个输出的谱域卷积层。

    • 基准模型 kNN (第一行)的分类性能比完整的(没有采样的)MNIST 数据集的 2.8% 分类误差率稍差。
    • 两层全连接神经网络(第二行)可以将测试误差降低到 1.8%
    • 两层空域图卷积神经网络(第三行的下面部分)效果最好,这表明空域卷积层核池化层可以有效的将信息汇聚到最终分类器中。
    • 谱域卷积神经网络表现稍差(第四行),但是它的参数数量最少。
    • 采用谱域平滑约束(选择top200 个频率)的谱域卷积神经网络的效果优于常规的谱域卷积神经网络。

  3. 由于 MNIST 中的数字由笔画组成,因此具有局部性。空域卷积通过filter Fj,j(k)的定义从而很明确的满足这一约束,而谱域卷积则没有强制空间局部性。在谱域 filter 上添加平滑约束可以改善分类结果,因为 filter 被强制具有更好的空间局部性。

    • (a),(b) 表示同一块感受野在空域卷积的不同层次聚类中的结果。
    • (c),(d) 表示谱域卷积的两个拉普拉斯特征向量,可以看到结果并没有空间局部性。
    • (e),(f) 表示采用平滑约束的谱域卷积的两个拉普拉斯特征向量,可以看到结果有一定的空间局部性。

2.4.2 球面 MNIST

  1. 我们将MNIST 图片映射到一个球面上,构建方式为:

    • 首先从单位球面上随机采样 4096 个点 S={s1,,s4096}
    • 然后考虑三维空间的一组正交基 E=(e1,e2,e3) ,其中 ||e1||=1,||e2||=2,||e3||=3 ,以及一个随机方差算子 Σ=(E+W)(E+W) ,其中W 是一个方差为 σ2<1 的独立同部分的高斯分布的分布矩阵。
    • 对原始 MNIST 数据集的每张图片,我们采样一个随机方差 Σi 并考虑其主成分分析PCA 的一组基 {u1,u2,u3} 。这组基定义了一个平面内的旋转。我们将图片按照这组基进行旋转并使用双三次插值将图片投影到 S 上。

    由于数字 69 对于旋转是等价的,所以我们从数据集中移除了所有的 9

    下面给出了两个球面 MNIST 示例:

    下面给出了谱域构建的图拉普拉斯矩阵的两个特征向量的可视化。图a 表示 v20,图b 表示 v100 。可以看到:特征值越小的特征向量对应于低频部分(左侧),特征值越大的部分对应于高频部分(右侧)。

  2. 首先考虑“温和”的旋转:σ2=0.2 ,结果如下表所示。

    • 基准的 kNN 模型的准确率比上一个实验(随机采样 MNIST )差得多。
    • 所有神经网络模型都比基准 KNN 有着显著改进。
    • 空域构建的卷积神经网络、谱域构建的卷积神经网络在比全连接神经网络的参数少得多的情况下,取得了相差无几的性能。

  3. 不同卷积神经网络学到的卷积核(即 filter )如下图所示。

    • (a),(b) 表示同一块感受野在空域卷积的不同层次聚类中的结果。
    • (c),(d) 表示谱域卷积的两个拉普拉斯特征向量,可以看到结果并没有空间局部性。
    • (e),(f) 表示采用平滑约束的谱域卷积的两个拉普拉斯特征向量,可以看到结果有一定的空间局部性。

  4. 最后我们考虑均匀旋转,此时 {u1,u2,u3} 代表 R3 中的随机的一组基,此时所有的模型的效果都较差。这时需要模型有一个完全的旋转不变性,而不仅仅是平移不变性。

三、Fast Localized Spectral Filtering On Graph[2016]

  1. 卷积神经网络提供了一种有效的架构,可以在大规模的、高维的数据集中抽取非常有意义的统计模式statistical patternCNN 学习局部静态结构 local stationary structure 并将它们组合成多尺度的 multi-scale、分层hierarchical的模式,并导致了图像识别、视频识别、声音识别等任务的突破。准确地说,CNN 通过揭示跨数据域data domain 共享的局部特征来抽取输入数据(或输入信号)的局部平稳性local stationarity 。这些相似的特征通过从数据中学到的局部卷积滤波器localized convolutional filter (或局部卷积核 localized convolutional kernel)来识别。卷积滤波器是平移不变translation-invariant的,这意味着它们能够独立于空间位置来识别相同的特征identical feature。局部核localized kernel (或紧凑支持的滤波器compactly supported filter)指的是独立于输入数据大小并抽取局部特征的滤波器,它的支持度 support 大小可以远小于输入大小。

    社交网络上的用户数据、电信网络上的日志数据、或 word embedding 上的文本文档,它们都是不规则数据的重要例子,这些数据可以用图 graph 来构造。图是异质 pairwise 关系的通用表达universal representation。图可以编码复杂的几何结构,并且可以使用强大的数学工具进行研究,如谱图理论spectral graph theory

    CNN 推广到图并不简单,因为卷积算子和池化算子仅针对规则网格regular grid才有定义。这使得 CNN 的扩展在理论上和实现上都具有挑战性。将 CNN 推广到图的主要瓶颈(也是论文 《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》的主要目标之一),是定义可以有效评估和学习的局部图滤波器localized graph filter 。准确地说,论文 《Convolutional Neural Networks on Graphs with Fast Localized Spectral Filtering》的主要贡献如下:

    • 谱公式 spectral formulation:基于图信号处理 graph signal processing: GSP 中已有的工具,论文建立了图上 CNN 的谱图spectral graph 理论公式。

    • 严格局部的滤波器:可以证明,论文提出的谱滤波器 spectral filter 严格限定在半径为 K 的球中,即从中心顶点的 K hops 。这是对 《Spectral Networks and Deep Locally Connected Networks on Graphs》 的增强。

    • 低的计算复杂度:论文提出的滤波器的 evaluation 复杂度与滤波器尺寸 K 、图的边数 |E| 成正比。重要的是,由于大多数现实世界的图都是高度稀疏的,因此有 |E|n2 以及 |E|=kn ,其中 n 为图的顶点数,k 为图中顶点的平均 degree。这使得计算复杂度与输入数据大小 n 成线性关系。

      此外,论文的方法完全避免了傅里叶基 Fourier basis,因此避免了计算傅里叶基所需要的特征分解 eigenvalue decomposition 所需的计算量,也避免了存储傅里叶基的内存需求(一个 n×n 的矩阵)。这在 GPU 内存有限时尤其重要。除了输入数据之外,论文的方法只需要存储拉普拉斯算子,它是一个包含 |E| 个非零值的稀疏矩阵。

    • 高效的池化:论文提出了一种有效的、图上的池化策略,该策略在将顶点重排为二叉树结构之后,采用类似于一维信号的池化。

    • 实验结果:论文进行了多个实验,最终表明所提出的公式是:一个有效的模型、计算效率高、在准确性和复杂性上都优于 《Spectral Networks and Deep Locally Connected Networks on Graphs》 中介绍的 spectral graph CNN

      论文还表明,所提出的图公式在 MNIST 上的表现与经典 CNN 相似,并研究了各种图构造graph construction 对于性能的影响。

  2. 相关工作:

    • 图信号处理 graph signal processing: GSPGSP 的新兴领域旨在弥合信号处理和谱图理论之间的 gap ,是图论graph theory 和谐波分析harmonic analysis之间的融合。一个目标是将信号的基本分析操作从规则网格推广到不规则的图结构。诸如卷积、平移、滤波 filtering、膨胀 dilatation、调制 modulation、降采样downsampling 等等网格上的标准操作不会直接扩展到图,因此需要新的数学定义,同时保持原有的直观概念。在这种情况下,已有工作重新审视了图上小波算子wavelet operator的构建,并提出了在图上执行 mutli-scale pyramid transform 。也有一些工作重新定义了图上的不确定性原理,并表明虽然可能会丢失直观的概念,但是可以导出增强的局部性准则 localization principle

    • 非欧几里得Non-Euclidean 域的 CNN:图神经网络框架《The Graph Neural Network Model》(在 《Gated Graph Sequence Neural Networks》 中被简化)旨在通过 RNN 将每个节点嵌入到一个欧氏空间,并将这些 embedding 用作节点/图的分类/回归的特征。

      一些工作引入了构建局部感受野local receptive field 的概念从而减少学习参数的数量。这个想法是基于相似性度量将特征组合在一起,例如在两个连续层之间选择有限数量的连接。虽然该模型利用局部性假设locality assumption减少了参数的数量,但是它并没有尝试利用任何平稳性,即没有权重共享策略。《Spectral Networks and Deep Locally Connected Networks on Graphs》 的作者在他们的 graph CNNspatial formulation 中使用了这个想法。他们使用加权图来定义局部邻域,并为池化操作计算图的多尺度聚类multiscale clustering。然而,在空域构造spatial construction 中引入权重共享具有挑战性,因为当缺少 problem-specific ordering (如空间顺序、时间顺序等等)时,它需要选择select 并对邻域内的节点进行排序。

      《Geodesic convolutional neural networks on riemannian manifolds》 中提出了 CNN3D-mesh 的空间推广,其中 3D-mesh 是一类平滑的、低维的非欧氏空间。作者使用测地线极坐标geodesic polar coordinate 来定义 mesh patch 上的卷积,并定制了一个深度学习架构从而允许在不同的流形manifold 之间进行比较。他们对 3D 形状识别获得了 state-of-the-art 结果。

      第一个谱公式由 《Spectral Networks and Deep Locally Connected Networks on Graphs》 提出,它将滤波器定义为:gθ(Λ)=Bθ,其中 BRn×K 为三次 B 样条基,参数 θRK 为控制点control point向量。他们后来提出了一种从数据中学习图结构的策略,并将该模型应用于图像识别、文本分类、生物信息学(《Deep Convolutional Networks on Graph-Structured Data》)。然而,由于需要乘以图傅里叶基 URn×n ,因此这种方法没办法 scale 。此外,由于它们依赖于傅里叶域中的平滑性smoothness(即,通过样条参数化得到)来实现空间域的局部性,因此他们的模型无法提供精确的控制从而使得 kernel 支持局部性,而这对于学习局部的滤波器至关重要。我们的技术利用了这项工作,并展示了如何克服这些限制以及其它限制。

3.1 模型

  1. 将卷积推广到图上需要考虑三个问题:如何在图上设计满足空域局部性的卷积核、如何执行图的粗化graph coarsening(即,将相似顶点聚合在一起)、如何执行图池化操作。

3.1.1 快速的局部性的谱滤波器

  1. 定义卷积滤波器有两种策略,可以从空间方法spatial approach 来定义,也可以从谱方法spectral approach来定义。

    • 通过构造 construction,空间方法可以通过有限大小的 kernel 提供 filter localization 。然而,从空间角度来看,图上的平移没有唯一的数学定义。

    • 另一方面,谱方法通过在谱域spectral domain实现的 Kronecker delta 卷积在图上提供了一个定义明确的局部性算子 localization operator 。然而,在谱域定义的滤波器不是天然局部化的,并且由于和图傅里叶基乘法的计算复杂度为 O(n2),因此傅里叶变换的成本很高。

      然而,通过对滤波器参数化filter parametrization 的特殊选择,我们可以克服这两个限制(即,滤波器的天然局部化,以及计算复杂度)。

  2. 图傅里叶变换Graph Fourier Transform:给定无向图 G=(V,E,W),其中 V 为顶点集合,n=|V| 为顶点数量,E 为边集合, WRn×n 为一个加权的邻接矩阵,Wi,j 编码了两个顶点 ij 之间的连接权重。

    xRn 是定义在图中节点上的信号,其中 xiR 为第 i 个节点上的取值。谱图分析spectral graph analysis 中最基础的算子是图拉普拉斯算子,combinatorial Laplacian 定义为 L=DWRn×nnormalized Laplacian 定义为 L=InD1/2WD1/2,其中 Ddegree 矩阵(一个对角矩阵)并且 Di,i=jWi,jInRn×n 为一个单位矩阵。

    论文并没有提到是用哪个拉普拉斯矩阵,读者猜测用的是任意一个都可以,因为后续公式推导对两种类型的拉普拉斯矩阵都成立。

    由于 L 是一个实对称半正定矩阵,因此它有一组完全的正交特征向量 {ul}l=0n1Rn (称作图傅里叶模式graph Fourier mode ),以及与这些特征向量相关的有序实数非负特征值 {λl}l=0n1R (称作图的频率graph frequency)。图拉普拉斯矩阵 L 被傅里叶基Fourier basis U=[u0,,un1]Rn×n 所对角化,使得 L=UΛU,其中 Λ=diag([λ0,,λn1])Rn×nU 的第 l 列为特征向量 ul

    傅里叶变换将信号 xRn 转换为 x^=UxRn ,傅里叶逆变换为 x=Ux^ 。与欧氏空间一样,傅里叶变换能够定制化基本操作,如滤波 filtering

  3. 图信号的谱域滤波spectral filtering:由于我们无法在顶点域vertex domain 中表达有意义的平移算子translation operator,因此图上的卷积算子 G 定义在傅里叶域Fourier domain,即:

    x1Gx2=U((Ux1)(Ux2))

    其中: 是逐元素的 Hadamard 乘法,x1,x2Rn 都是图上定义的两个信号。

    因此,图上的信号 xgθ 滤波为:

    y=gθ(L)x=gθ(UΛU)x=Ugθ(Λ)Ux

    non-parametric filter (即参数都是自由的滤波器)定义为:

    gθ(Λ)=diag(θ)=[θ1000θ2000θn]

    其中参数 θ=(θ1,,θn)Rn 为待学习的傅里叶系数Fourier coefficient 组成的向量。

  4. 用于局部滤波器localized filter的多项式参数化:然而,non-parametric filter 有两个限制:它们在空间域不是局部化localized的、它们学习的复杂度是 O(n)(即数据的维度)。这些问题可以通过使用多项式滤波器polynomial filter来解决:

    gθ(Λ)=k=0K1θkΛk

    其中:参数 θ=(θ1,,θK)RK 为多项式系数组成的向量。

    以顶点 i 为中心的滤波器 gθ 在顶点 j 上的取值为:

    (gθ(L)δi)j=(gθ(L))i,j=k=0K1θk(Lk)i,j

    它的物理意义是:一个 delta 脉冲信号 δiRn (它在节点 i 上取值为一、在其它节点取值为零)经过滤波器之后,在节点 j 上的取值。

    根据 《Wavelets on Graphs via Spectral Graph Theory》 的引理5.2dG(i,j)>K 意味着 (LK)i,j=0 ,其中 dG(,) 表示两个顶点之间的最短路径(即,连接图上两个顶点的最少的边数)。因此,由拉普拉斯算子的 K 阶多项式表示的谱滤波器 spectral filter 恰好是 K-localized 的。此外,它的学习复杂度为 O(K),即滤波器的尺寸,因此与经典 CNN 的复杂度相同。

  5. 快速滤波fast filtering的递归公式:虽然我们已经展示了如何学习具有 K 个参数的localized filter ,但是由于还需要与傅里叶基 U 相乘,因此对信号 x 的滤波 y=Ugθ(Λ)Ux 仍然是 O(n2) 的、高昂的操作。解决这个问题的方法是将 gθ(L) 参数化为可以从 L 递归计算的多项式函数,因为 K 次地乘以一个稀疏的 L 矩阵的复杂度为 O(K×|E|)O(n2)

    一种这样的多项式是 Chebyshev 展开(传统上,它在 GSP 中被用于近似 kernel,如小波 wagelet )。另一种选择是 Lanczos 算法,它构造了 Krylov 子空间的正交基 KK(L,x)=span{x,Lx,,LK1x}Lanczos 算法看起来似乎有吸引力,但是它更加复杂,因此我们留待未来的工作。

    回想一下,k 阶切比雪夫多项式 Tk(x) 可以通过递归关系来计算:

    T0(x)=1,T1(x)=xTk(x)=2xTk1(x)Tk2(x)

    这些多项式构成 L2([1,1],dy/1y2) 空间的一组正交基,这是关于测度 dy/1y2 的平方可积函数的希尔伯特空间。因此,滤波器可以被参数化为:

    gθ(Λ)=k=0K1θkTk(Λ~)

    其中:

    • 参数 θRK 为切比雪夫多项式系数组成的向量。
    • Λ~=2Λ/λmaxIn 为经过缩放的特征值对角矩阵,这使得它的对角线元素取值位于 [-1,+1] 之间。
    • Tk(Λ~)Rn×n 为在 Λ~ 处计算的 k 阶切比雪夫多项式。

    滤波操作可以协作:

    y=gθ(L)x=k=0K1θkTk(L~)x

    其中:

    • L~=2L/λmaxIn 为经过缩放的拉普拉斯矩阵。
    • Tk(L~)Rn×n 为在 L~ 处计算的 k 阶切比雪夫多项式。

    定义 x¯k=Tk(L~)xRn ,则我们可以使用递归关系来计算:

    x¯0=x,x¯1=L~xx¯k=2L~x¯k1x¯k2

    整个滤波操作 y=gθ(L)x 需要 O(K×|E|) 次操作。

  6. 学习 filter:假设第 s 个样本的输入包含 Fin 个通道,第 i 个输入通道为信号 xs,iRn (也称作第 i 个输入 feature map ) 。 第 s 个样本的第 j 个输出 feature map 为:

    ys,j=i=1Fingθi,j(L)xs,iRn,1jFout

    其中:θi,jRKlayer 的待训练参数。总的参数规模为 Fin×Fout×K

    假设 mini-batch 样本的损失函数为 L ,则为了进行反向传播我们需要计算如下的梯度:

    Lθi,j=s=1S[x¯s,i,0,,x¯s,i,K1]Lys,j,Lxs,i=j=1Foutgθi,j(L)Lys,j

    其中:Smini-batch size

    上述三种计算中的每一种都归结为 K 次稀疏矩阵与向量的乘法、以及一次稠密矩阵和向量的乘法,因此计算成本为 O(K×|E|×Fin×Fout×S) 。这些运算可以通过张量操作在并行架构上有效地计算。

    最后,[x¯s,i,0,,x¯s,i,K1] 仅需要计算一次。

3.1.2 图粗化 Graph Coarsening

  1. 池化操作需要在图上有意义的邻域上进行,从而将相似的顶点聚类在一起。对多个 layer 执行池化等价于保留局部几何结构的图多尺度聚类multi-scale clustering。然而,众所周知,图聚类 graph clusteringNP-hard 的并且必须使用近似算法。虽然存在许多聚类算法(例如流行的谱聚类 spectral clustering),但是我们最感兴趣的还是 multi-level 聚类算法。在 multi-level 聚类算法中,每个 level 都会生成一个更粗coarser的图,其中这个图对应于不同分辨率看到的数据域 data domain 。此外,在每个 level 将图的大小减少两倍的聚类技术提供了对粗化coarsening 和池化大小的精确控制。

  2. 在这项工作中,我们利用了 Graclus multi-level 聚类算法的粗化阶段。Graclus multi-level 聚类算法已被证明在对各种图进行聚类时非常有效。图上的代数多重网格algebraic multigrid 技术、以及 Kron reduction 是未来工作中值得探索的两种方法。

    建立在 Metis 上的 Graclus 使用贪心算法来计算给定图的连续更粗successive coarser的版本,并且能够最小化几个流行的谱聚类目标spectral clustering objective。在这些谱聚类目标中,我们选择归一化割 the normalized cutGraclus 的贪心规则为:

    • 在每个coarsening level ,选择一个未标记unmarked的顶点 i ,并选择它的一个未标记的邻居顶点 j ,使得最大化local normalized cut Wi,j(1/di+1/dj)

    • 然后标记mark并粗化coarsen这对匹配的顶点 i,j ,并且所有其它顶点与这个粗化顶点的权重等于所有其它顶点和 i,j 权重之和。

    • 持续配对,直到所有顶点都被探索(这样就完成了一轮粗化)。

      这其中可能存在部分独立顶点,它不和任何其它顶点配对。

    这种粗化算法非常块,并且每轮粗化都将顶点数除以2 从而从一个 level 到下一个更粗的 level

3.1.3 图信号的快速池化

  1. 池化操作将被执行很多次,因此该操作必须高效。粗化之后,输入图的顶点及其粗化版本没有以任何有意义的方式排列arrange 。因此,直接应用池化操作将需要一个 table 来存储上一个 level 的顶点与到下一个 level 的顶点(更粗化的版本)之间的对应关系。这将导致内存效率低下、读取速度慢、并且难以并行化。

    然而,我们可以排列顶点,使得图池化graph pooling 操作变得与一维池化一样高效。我们分为两步进行:创建一棵平衡的二叉树、重排顶点。

  2. 粗化之后,每个节点要么有两个子节点(如果它是在更精细的 level 被匹配到的);要么没有(如果它在更精细的 level 未被匹配到),此时该节点是一个 singleton,它只有一个子节点。从最粗的 level 到最细的 level,我们为每个singleton 节点添加一个 fake 节点作为子节点,这样每个节点就都有两个子节点。fake 节点都是断开 disconnected 的。

    这种结构是一棵平衡二叉树:一个节点要么包含两个常规子节点(如下图中的 level 1 节点 0 ),要么包含一个 singletons 子节点和一个 fake 子节点(如下图中的 level 2 节点 0) 。fake 节点总是包含两个 fake 子节点,如下图中的 level 1 节点 1。注意,下图中从上到下依次是 level 0, level 1, level 2

    输入信号在 fake 节点处使用 neutral value 初始化,如当使用 ReLU 激活函数时为 0 。因为这些 fake 节点是断开的,因此滤波不会影响到初始的 neutral value 。虽然这些 fake 节点确实人为地增加了维度从而增加了计算成本,但是我们发现在实践中,Graclus 留下的 singleton 节点数量非常少。

    我们在最粗coarsestlevel 上任意排列节点,然后将这个次序传播到最精细finestlevel ,即节点 k 具有节点 2k2k+1 作为子节点,从而在最精细的 level 产生规则的次序regular ordering 。规则的意思是相邻节点在较粗的 level 上层次地合并。池化如此一个重排的图信号,类似于池化一个常规的一维信号(以步长为 2 )。

    下图显示了整个池化过程的示例。这种规则排列 regular arrangement 使得池化操作非常高效,并且满足并行架构(如 GPU),因为内存访问是局部的,即不需要 fetch 被匹配的节点。

    池化的本质是:对每个节点多大范围内的邻域进行池化。

  3. 一个池化的例子如下图。带颜色的链接表示配对,红色圆圈表示未能配对顶点,蓝色圆圈表示 fake 顶点。

    考虑图 G0 上定义的信号 xR8 的最大池化,池化大小为 4G0 为原始输入,即最精细的 level ,它拥有 n0=|V0|=8 个顶点,以任意顺序。对于大小为 4 的池化,我们需要执行 2 次粗化操作(因为每次粗化都将顶点数除以2 ):

    • Graclus第一次粗化产生图 G1 ,顶点数量 n1=|V1|=5
    • Graclus第二次粗化产生图 G2 ,顶点数量 n2=|V2|=3 ,即最粗的level

    因此我们设置 n2=3,n1=6,n0=12 ,并将 fake 节点(蓝色)添加到 V1(添加 1fake 节点)、V0(添加 4fake 节点),从而与 singelton 节点(橙色)配对,这样每个节点正好有两个子节点。然后 V2 中的节点被任意排序,V1V0 中的节点因此而被排序。此时,V0 中节点的排列允许在 xR12 上执行一个常规的一维池化,使得:

    z=[max(x0,x1),max(x4,x5,x6),max(x8,x9,x10)]R3

    其中信号分量 x2,x3,x7,x11 被设置为 neutral value

3.2 实验

  1. 我们将 non-parametricnon-localizedfilter 称作 Non-Param(即 gθ(Λ)=diag(θ)) ,将《Spectral Networks and Deep Locally Connected Networks on Graphs》中提出的 filter 称作 Spline(即 gθ(Λ)=Bθ),将我们提出的 filter 称作Chebyshev(即 gθ(Λ)=k=0K1θkTk(Λ~)) 。

    我们总是采用 Graclus 粗化算法,而不是 《Spectral Networks and Deep Locally Connected Networks on Graphs》 中提出的简单聚集算法agglomerative method。我们的动机是比较学到的 filter,而不是比较粗化算法。

    我们在描述网络架构时使用以下符号:FCk 表示一个带 k 个神经元的全连接层,Pk 表示一个尺寸和步长为 k 的池化层(经典池化层或者图池化层),GCK 表示一个输出 kfeature map 的图卷积层graph convolutional layerCk 表示一个输出 kfeature map 的经典卷积层。

    所有的FCk,GCk,Ck 都使用ReLU 激活函数。最后一层始终是 softmax 回归。损失函数 L 是交叉熵损失,以及对所有 FCk 层权重的 l2 正则化。mini-batch size S=100

  2. MNIST 实验:我们考虑将我们的方法应用于基准的 MNIST 分类数据集,它是欧氏空间的 caseMNIST 分类数据集包含 70000 张数字图片,每张图片是 28 x 282D 网格。对于我们的图模型,我们构建了一个 2D 网格对应的8 层图神经网络,它产生了 n=|V|=976 个节点(其中 282=784 个像素,以及额外的 192fake 节点),以及 |E|=3198 条边。遵从标准的做法,k-NN similarity graph 的权重(即人工构建的input graph 中,每条边的权重)计算为:

    Wi,j=exp(||zizj||22σ2)

    其中 zi 表示像素点 i2D 坐标。

    模型配置为(来自于 TensorFlow MNIST tutorial ):LeNet-5-like 的网络架构,并且超参数为:dropout rate = 0.5,正则化系数为 5×104 ,初始学习率为0.03,学习率衰减系数 0.95,动量 0.9 。标准卷积核的尺度为 5x5,图卷积核的 K=25 ,二者尺寸相同。所有模型训练 20epoch

    本实验是我们模型的一项重要的健全性检查 sanity check,它必须能够在任何图上抽取特征,包括常规的 2D grid 。下表显示了我们的模型与具有相同架构的经典 CNN 模型的性能非常接近。

    性能的差距可以用谱域滤波器的各向同性的特性isotropic nature来解释,即常规 graph 中的边不具有方向性,但是 MNIST 图片作为2D grid 具有方向性(如像素点的上下左右)。这是优势还是劣势取决于具体的问题。

    性能差距的其它解释是:我们的模型缺乏架构设计经验,以及需要研究更合适的优化策略或初始化策略。

  3. 20NEWS 数据集的文本分类:为了验证我们的模型可应用于非结构化数据,我们将我们的技术应用于 20NEWS 数据集上的文本分类问题。20NEWS 数据集包含 18846 篇文档,分为20 个类别。我们将其中的 11314 篇文档用于训练、7532 篇文档用于测试。我们从所有文档的 93953 个单词中保留最高频的一万个单词。每篇文档使用词袋模型bag-of-word model 提取特征,并根据文档内单词的词频进行归一化。

    为了测试我们的模型,我们构建了16 层图神经网络,图的构建方式为:

    Wi,j=exp(||zizj||22σ2)

    其中 zi 为单词 iword2vec embedding 。每篇文档对应一张图,它包含 n=|V|=10000 个顶点、|E|=132834 条边。

    word2vec embedding 是在当前数据集上训练的?还是在更大的、额外的数据集上训练的?论文未说明。

    所有模型都由 Adam 优化器训练 20epoch,初始学习率为 0.001 。该架构是 K=5GC32 。结果如下图所示,在这个小数据集上,虽然我们的模型未能超越Multinomial Naive Bayes 模型,但是它超越了所有全连接神经网络模型,而这些全连接神经网络模型具有更多的参数。

  4. 效果比较:我们在MNIST 数据集上比较了不同的图卷积神经网络架构的效果,其中 K=25 。可以看到我们的方法优于 Spline 以及需要 O(n) 个参数的Non-Param

    为了给出不同 filter 的收敛性,下图给出训练过程中这几种架构的验证集准确率、训练集损失,横轴表示迭代次数。

  5. 效率比较:我们在 20NEWS 数据集上比较了不同网络架构的计算效率,其中 K=25 。我们模型的计算复杂度为 O(n),而 《Spectral Networks and Deep Locally Connected Networks on Graphs》 的计算复杂度为 O(n2) 。测量的运行时间是总训练时间除以梯度更新的 step 数(即每个mini-batch 的处理时间,其中batch-size = 100 )。

    我们在 MNIST 数据集上验证了不同网络架构的并行性。下表显式了从 CPU 迁移到 GPU 时,我们的方法与经典 CNN 类似的加速比。这体现了我们的模型提供的并行化机会。我们的模型仅依赖于矩阵乘法,而矩阵乘法可以通过NVIDAcuBLAS 库高效的支持。

  6. 图质量的影响:要使任何 graph CNN 成功,数据集必须满足一定条件:图数据必须满足局部性locality、平稳性stationarity、组合性compositionality 的统计假设。因此,学到的滤波器的质量及其分类性能关键取决于图的质量。从MNIST 实验我们可以看到:从欧式空间的网格数据中基于 kNN 构建的图,这些图数据质量很高。我们基于这些图数据采用graph CNN 几乎获得标准CNN 的性能。并且我们发现,kNNk 的值对于图数据的质量影响不大。

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

    但是为什么丢失了结构信息之后,准确率还是那么高?读者猜测是有一些非结构性的因素在生效,例如某些像素点级别的特性。

    图像可以通过网格图来构成,但是必须人工地为 bag-of-word 表示的文档来构建 feature graph 。我们在这里研究三种表示单词 z 的方法:将每个单词表示为一个 one-hot 向量、通过 word2vec 从数据集中学习每个单词的 embedding 向量、使用预训练的单词word2vec embedding 向量。对于较大的数据集,可能需要 approximate nearest neighbor: ANN 算法(因为当图的顶点数量较大时找出每个顶点的kNN 顶点的计算复杂度太大),这就是我们在学到的 word2vec embedding 上尝试 LSHForest 的原因。下表报告了分类结果,这突出了结构良好的图的重要性。其中:bag-of-words 表示 one-hot 方法,pre-learned 表示预训练的 embedding 向量,learned 表示从数据集训练 embedding 向量,approximate 表示对 learned 得到的 embedding 向量进行最近邻搜索时使用LSHForest 近似算法,random 表示对 learned 得到的 embedding 向量采用随机生成边而不是基于 kNN 生成边。

四、GCN[2016]

  1. 考虑在 graph(如,引文网络 citation network )中对节点(如,文档)进行分类的问题,其中仅一小部分节点有 label 信息。这个问题可以被定义为基于图的半监督学习graph-based semi-supervised learning,其中 label 信息通过某种形式的 explicit graph-based regularization 在图上被平滑 smoothed ,例如在损失函数中使用图拉普拉斯正则化graph Laplacian regularization 项:

    L=L0+λ×LregLreg=i,jAi,jf(xi)f(xj)2=f(X)Δf(X)

    其中:

    • 无向图 G=(V,E)V 为节点集合,E 为边集合。节点数量为 N

    • ARN×N 为图的邻接矩阵,D 为度矩阵其中 Di,i=jAi,jΔ=DA 为未归一化的拉普拉斯算子 。

    • L0 表示图中有标签部分的监督损失:

      L0=iYLf(xi)yi2

      其中:

      • xiRC 为节点 i 的输入特征(维度为 C ),XRN×C 为节点的特征向量拼接的矩阵。
      • yi 为节点 i 的标签。YL 为带标签节点的集合。
      • f()R 是一个类似神经网络的可微函数,它将输入 xi 映射到类别空间,即 y^f(X)RN
    • Lreg 为正则化项,λ 为正则化项系数。

      正则化项的物理意义为:

      • 如果两个节点距离较近(即 Ai,j 较大),则它们的预估 label 应该比较相似(即 f(xi)f(xj) 距离相近)。
      • 如果两个节点距离较远(即 Ai,j 较小),则它们的预估 label 可以相似也可以不相似。

    因此上述损失函数 L 假设:graph 中相连的节点很可能共享相同的label 。然而,这种假设会限制模型的表达能力,因为图中的边不一定编码节点相似性,边也可能包含其它信息。

    在论文 《SEMI-SUPERVISED CLASSIFICATION WITH GRAPH CONVOLUTIONAL NETWORKS》中,作者直接使用神经网络模型 f(X,A) 对图结构进行编码,并对所有带标签的节点在监督目标 L0 上进行训练,从而避免在损失函数中进行显式的、基于图的正则化。 f() 依赖于图的邻接矩阵 A ,这允许模型从监督损失 L0 中分配distribute梯度信息,并使得模型能够学习带标签节点的representation 和不带标签节点的 representation

    论文有两个贡献:

    • 首先,论文为直接在图上运行的神经网络模型引入了一个简单且表现良好的 layer-wise 传播规则propagation rule,并展示了它是如何从谱图卷积spectral graph convolution的一阶近似中启发而来。
    • 其次,论文展示了这种形式的基于图的神经网络模型如何用于对图中节点进行快速且可扩展的半监督分类。对多个数据集的实验表明,论文的模型在分类准确性和效率(以 wall-clock time 衡量)方面与 state-of-the-art 的半监督学习方法相比具有优势。
  2. 相关工作:相关工作:我们的模型主要受到 graph-based 半监督学习领域、最近在图上的神经网络等工作的启发。接下来我们简要概述了这两个领域的相关工作。

    • graph-based 半监督学习:近年来人们已经提出了大量使用 graph representation 的半监督学习方法,其中大多数分为两类:使用某种形式的显式的图拉普拉斯正则化方法,以及基于 graph embedding 的方法。

      • 图拉普拉斯正则化的突出例子包括标签传播 label propagation、流形正则化 manifold regularization、以及深度半监督 embedding

      • 最近,人们的注意力已经转移到graph embedding 模型,其中 graph embedding 模型受 skip-gram 模型所启发。

        DeepWalk 通过预测节点的局部邻域local neighborhood来学习 embedding,其中局部邻域是通过图上的随机游走采样而来。LINEnode2vec 使用更复杂的随机游走方案来扩展了 DeepWalk

        然而,对于所有这些方法,都需要一个包含随机游走生成和半监督训练的 multistep pipeline ,其中每个 step 都必须单独优化。Planetoid 通过在学习 embedding 的过程中注入label 信息来缓解这个问题。

    • 图上的神经网络:

      • 《A new model for learning in graph domains》 曾经介绍在图上运行的神经网络。《The graph neural network model》 将图神经网络作为循环神经网络的一种形式。他们的框架需要重复应用收缩映射 contraction map 作为传播函数 propagation function,直到 node representation 达到稳定的不动点 fixed point 。后来,《Gated graph sequence neural networks》 通过将循环神经网络的现代实践引入到原始图神经网络框架中,从而缓解了这种限制。
      • 《Convolutional networks on graphs for learning molecular fingerprints》 在图上引入了一种类似卷积的传播规则和方法,从而用于 graph-level 分类。他们的方法需要学习 node degree-specific 的权重矩阵,这些权重矩阵无法扩展到具有宽泛widenode degree 分布的大型图。相反,我们的模型每层使用单个权重矩阵,并通过对邻接矩阵进行适当的归一化从而处理变化的 node degree
      • 《Diffusion-convolutional neural networks》 最近引入了 graph-based 神经网络来进行节点分类。他们报告了 O(N2) 的复杂度,这限制了模型的应用范围。《Learning convolutional neural networks for graphs》 引入了一个不同但是相关related的模型,他们将图局部locally地转换为序列,然后馈入传统的一维卷积神经网络,而这需要在预处理步骤中定义节点排序node ordering
      • 我们的方法基于谱图卷积神经网络 spectral graph convolutional neural network,该模型在 《Spectral networks and locally connected networks on graphs》 被引入,并由 《Convolutional neural networks on graphs with fast localized spectral filtering》 通过快速局部卷积fast localized convolution进行了扩展。

      与这些工作相比,我们在此考虑在大型网络中进行 transductive 的节点分类任务。我们表明,在这种情况下,可以将《Spectral networks and locally connected networks on graphs》《Convolutional neural networks on graphs with fast localized spectral filtering》 的原始框架进行一些简化,从而提高大型网络的可扩展性和分类性能。

4.1 模型

4.1.1 图上卷积的快速近似

  1. 这里我们提供本文模型的理论动机。我们考虑具有以下 layer-wise 传播规则的一个多层 Graph Convolutional Network: GCN

    H(l+1)=σ(D~1/2A~D~1/2H(l)Θ(l))

    其中:

    • A~=A+IN 是带自环的无向图的邻接矩阵,IN 为单位矩阵,N 为节点数量。D~ 为带自环的度矩阵,其中 D~i,i=jA~i,j
    • H(l)RN×d 为第 l 层的激活矩阵,H0=Xd 为特征向量维度。Θ(l)Rd×d 为第 l 层的权重矩阵。 σ() 为激活函数。

    接下来我们将展示这种传播规则可以通过图上局部谱滤波器localized spectral filters的一阶近似所启发而来。

    上式物理意义:第 l+1 层中每个节点的representation 可以这样得到:

    • 首先,将邻域内节点(包含它自身)在第 l 层的representation 进行加权和,加权的权重为边的归一化权重(即 A~i,j/D~i,i )。
    • 然后,将这个加权和通过一个单层前馈神经网络,网络权重为 Θ(l) 、激活函数为 σ()
a. 谱图卷积
  1. 我们考虑图上的普卷积spectral convolution,它定义为信号 xRN (该信号由每个节点上的一个标量组成)在傅里叶域与 θRN 参数化的滤波器 gθ=diag(θ) 的乘积,即:

    gθx=UgθUx

    其中:

    • U=[u0,,uN1]RN×N 为归一化的图拉普拉斯矩阵 L=IND1/2AD1/2 的特征向量 ui 组成(按列组成)。L=UΛUΛ=diag([λ0,,λN1]) 为特征值 λi组成的对角矩阵。

    • 对于信号 xx^=Ux 表示信号的图傅里叶变换 graph Fourier transformx=Ux^ 表示图傅里叶逆变换。

      注意,这里的信号 xRN 是定义在整个图的所有节点上,而前面定义的节点特征 xiRC 是定义在单个节点 i 上。我们有:

      X=[x1,,xN]=[x1,1x1,2x1,Cx2,1x2,2x2,CxN,1xN,2xN,dN]

      X 有两种解读方式:

      • 按行解读:第 i 行代表节点 iC 为特征,1iN
      • 按列解读:第 j 列代表定义在图上的第 j 个信号,1jC
    • 我们可以将 gθ 理解为 L 特征值的函数,即 gθ(Λ)

  2. 计算 gθx 的计算量很大,因为与矩阵 U 的乘法是 O(N2) 。此外,对于大型图,首先计算 L 的特征分解可能会非常昂贵。为了解决这个问题,《Aavelets on graphs via spectral graph theory》 等人提出,gθ(Λ) 可以通过切比雪夫多项式 Tk(x) 的截断展开 truncated expansionK 阶)来很好地近似:

    gθ(Λ)k=0KθkTk(Λ~)

    其中:

    • Λ~=2λmaxΛIN 为缩放的特征值矩阵(使得缩放之后的取值在 [-1,+1] 之间),λmaxL 最大的特征值。

    • θ=(θ0,θ1,θ2,,θK)RK+1 为切比雪夫多项式系数。

    • Tk(x)k 阶切比雪夫多项式,它递归地定义为:

      T0(x)=1,T1(x)=xTk(x)=2xTk1(x)Tk2(x)

    回到我们对信号 x 关于滤波器 gθ 的卷积的定义,则我们有:

    gθxk=0KθkTk(L~)x

    其中:L~=2λmaxLIN 为缩放后的拉普拉斯矩阵。

    上式成立是因为我们很容易证明:(UΛU)k=UΛkU

    注意,这个表达式现在是 K 阶局部化 K-localized 的,因为它是拉普拉斯矩阵的 K 阶多项式,即它的结果仅依赖于距离中心节点最大 K step 的节点(即,K 阶邻域)。

    gθx的复杂度是 O(|E|) 的,即与边的数量呈线性关系。《Convolutional neural networks on graphs with fast localized spectral filtering》 使用这种 K-localized 卷积来定义图上的卷积神经网络。

4.1.2 Layer-wise 线性模型

  1. 可以通过堆叠多个 gθx 形式的卷积层从而构建基于图卷积的神经网络模型,每个 layer 后跟随一个 point-wise non-linearity 。现在,假设我们将 layer-wise 卷积操作限制为 K=1 ,即一个关于 L 的线性函数。

    通过这种方式,我们仍然可以通过堆叠多个这种 layer 来恢复 recover 丰富类型的卷积滤波器函数,但是我们不限于由诸如切比雪夫多项式给出的显式参数化。对于具有非常宽泛 widenode degree 分布的图(如社交网络、引文网络、知识图谱、以及许多现实世界其它的图数据集),我们直观地期望这样的模型可以缓解图的局部邻域结构local neighborhood structure的过拟合问题。此外,对于固定的计算预算computational budget,这种 layer-wise 线性公式允许我们构建更深的模型。众所周知,更深的模型在很多领域可以提高模型容量。

  2. GCN 的这个线性公式中,我们进一步近似 λmax=2 ,因为我们可以预期神经网络参数将在训练期间适应这种 scale 的变化。

    为什么选择 λmax 近似为 2 ?因为原始公式中有系数 2λmax

    在这些近似下,gθx 简化为:

    gθxθ0x+θ1(LIN)x=θ0xθ1D1/2AD1/2x

    它包含两个自由参数 free parameter θ0,θ1 。滤波器参数 θ0,θ1 可以在整个图上共享。这种形式的滤波器的连续应用 successive application 可以有效地对节点的 k 阶邻域进行卷积,其中 k 为神经网络模型中卷积层的数量。

    在实践中,进一步限制参数的数量从而解决过拟合问题、并最小化每层的操作数量(如矩阵乘法)可能是有益的。因此我们进一步简化,令 θ=θ0=θ1 ,现在只有一个参数:

    gθxθ(IN+D1/2AD1/2)x

    为什么要凑成这个形式?假设 θ=1βθ0=θ1 ,其中 β0 为超参数。则有:

    gθxθ(βIN+D1/2AD1/2)x

    则根据renormalization 技巧,我们有:A~=A+βIN 。则参数 β 平衡了邻域链接(由 A 刻画)和自链接(由 IN 刻画)之间的重要性。β 既可以作为模型参数来从数据中学习,也可以作为超参数由验证集调优得到。

    注意,IN+D1/2AD1/2 的特征值的取值范围是 [0, 2] 。因此,当在深度神经网络模型中重复应用该算子时,会导致数值不稳定和梯度爆炸/消失。为了缓解这个问题,我们引入以下 renormalization 技巧:

    IN+D1/2AD1/2D~1/2A~D~1/2A~=A+IN,D~i,i=jA~i,j

    我们可以将这个定义推广到具有 C 个输入通道的信号 XRN×C(即每个节点的 C 维特征向量)和 F 个滤波器(或 feature map):

    Z=D~1/2A~D~1/2XΘ

    其中:

    • ΘRC×F 为滤波器参数组成的矩阵。
    • ZRN×F 为卷积后的 signal matrix

    该卷积操作的计算复杂度为 O(|E|FC),因为 A~X 可以有效地实现为稀疏矩阵与稠密矩阵的乘积。

4.2 半监督节点分类

  1. 引入了一个简单而灵活的模型 f(X,A) 从而在图上进行有效的信息传播之后,我们可以回到半监督节点分类问题。如引言部分所介绍,我们可以通过在数据 X 和底层图结构的邻接矩阵 A 上调整我们的模型 f(X,A) 来放松某些假设,这些假设常用于 graph-based 半监督学习。我们希望该 setting 在邻接矩阵 A 包含数据 X 中不存在的信息的情况下特别强大,例如引文网络中文档之间的引用链接citation link、或者知识图谱中的关系relation 。整个模型是一个用于半监督学习的多层 GCN,如下图所示。

  2. 接下来我们考虑在具有对称的邻接矩阵 A 的图上用于半监督节点分类的两层 GCN 。我们首先在预处理步骤中计算 :

    A^=D~1/2A~D~1/2

    然后我们的前向计算采用简单的形式:

    Z=f(X,A)=softmax(A^relu(A^XΘ(0))Θ(1))

    其中: