您的位置:首页 > 其它

Learning Convolutional Neural Networks for Graphs论文笔记

2020-03-31 07:20 531 查看

前言

本文是是基于空域卷积的经典论文
主要讨论如何将CNN的方法和思想泛化到Graph
过程中由于图结构类型数据的特点,不能直接像2D图像数据一样直接应用卷积提取局部特征。需要一个从Graph到向量映射的预处理过程
简而言之就是为可以在图上应用CNN,需要将图类型数据转化为有空间位置信息的向量形式进行卷积操作

1. Introduction

文中主要从两个问题出发:

  • 通过给定的一组图进行学习,可将学习结果用于未知图的回归和分类问题。这里举了一个例子:通过学习一组化合物对癌细胞的活性水平,将学习到的结果应用于预测未知化合物对癌细胞的活性水平
  • 学习和应用的过程在一张图上体现,通过学习来推断图中其余属性如结点的类型和边


如图所示一张4x4大小的图像,实际上可以表示为一个具有4个nodes的图,也就是图(a)中的红色结点。其中每个结点还包括一个和卷积核一样大小的邻域。由此得到这种4*4的图的卷积实际上就是对应4个nodes的邻域的卷积。其中图(b)就是其中一个nodes,由于4x4的原图经过3x3的卷积核作用后可形成2x2的feature map。同时这个感受野按照空间位置从左到右,从上到下的顺序映射为一个和卷积核一样大小的vector,然后再进行卷积就形成了feature map中的一个点。

基于此理论,需要解决两个问题

  • 确定图中适当的结点序列创建邻域图
  • 建立图表示到向量空间表示的唯一映射。保证具有相似结构特征的node可以被映射到vector当中相近的位置

算法步骤:

  • 确定node(Node Sequence Selection)
  • 找到node的领域(Neighborhood Assembly)
  • 图规范化过程(Graph Normalization)
  • 卷积神经网路(Convolutional Architecture)

    该算法优点:
  • 高效,天生可并行化,可适用于大图
  • 可视化
  • 减少手工设计特征

2. Learning CNNs for Arbitrary Graphs

2.1Node Sequence Selection

  1. 输入:结点排序方法lll,图GGG,间隔sss,选取结点数量www,最少邻居节点数量kkk
  2. 首先通过graph labeling procedure lll对图中结点进行排序,具体lll的选择存在多种,可以根据实际出发选择适合待解决问题的排序方法
  3. 从该序列中根据一定的间隔sss隔段选取www个节点构成最终的节点序列。对每个访问的点,生成一个receptive field, 直到生成www个receptive fields。若不足www个节点,则在输出中加全零的receptive field,相当于padding

2.2找到Node的领域(Neighborhood Assembly)

  1. 输入:选取结点集vvv,结点邻域也就是邻居结点的最小数量kkk
  2. 输出:和源节点一起构成的至少kkk个结点的邻域集合
  3. 对于上一步获得的节点序列中的每一个节点,利用广度优化搜索扩展邻居节点
    那么对于每一个Node很明显都会存在两种情况:邻域nodes不够k个,或者是邻域点多了。对于每一个node,首先找到其直接相邻的nodes(被称作是1-neighborhood),如果还不够再增加间接相邻的nodes。那么对于1-neighborhood就已经足够的情况,先全部放在候选的区域当中,在下一步当中通过规范化来做最终的选择

上述过程如图所示

2.3图规范化过程(Graph Normalization)

通过对在前一步骤中组装的邻域进行归一化来构造节点的接收字段。归一化对邻域图的节点施加顺序,以便从无序图空间映射到具有线性顺序的向量空间。基本思想是利用图形标记程序,当且仅当它们在图形中的结构角色相似时,将两个不同图形的节点分配给相应邻接矩阵中的相似相对位置。

为了形式化这种直觉,定义了最优图规范化问题,该问题旨在找到相对于给定图形集合最佳的标记。

假设上一步Neighborhood Assemble过程当中一个node得到一个领域nodes总共有N个。那么N的个数可能和k不相等的。因此,normalize的过程就是要对他们打上排序标签进行选择,并且按照该顺序映射到向量当中。
如图所示,表示对任意一个node求解它的receptive filed的过程。这里的卷积核的大小为4,因此最终要选出来4个node,包括这个node本身。因此,需要给这些nodes打上标签(labeling)。作者提出了一种打标签的方式用于从原接受域选取最终的接受域。作者认为:在某种标签下,随机从集合当中选择两个子图,计算他们在vector空间的图的距离和在graph空间图的距离的差异的期望,如果这个期望越小那么就表明这个标签越好。
方法如图所示
这个等式的解在于寻找一个一个labeling L, 使得从图的集合中任意选取两个图G1和G2,它们在vector space距离差距和它们在graph space的距离差距最小化。但是这个问题是NP-hard的问题,所以作者选择找一个近似解。即它比较了各种labeling方法,并从其中找出最优解。具体如下:
通过比较相应的估计器以无监督的方式比较不同的标记程序。在dG>dAd_{G}>d_{A}dG​>dA​的假设下,估计值θ\thetaθLLL越小,绝对差值越小。因此,我们可以简单的选择θ\thetaθLLL最小的标签。例如,对于图的编辑距离和邻接矩阵的Ham ming距离,该dGd_{G}dG​>dAd_{A}dA​假设成立。最后,请注意,所有上述结果都可以扩展到有向图。

在作者提出的框架中,图规范化问题和适当的图标记程序在局部图结构标准化中的应用是所提出方法的核心。在PATCHY-SAN框架内,我们规范化顶点v的邻域图。因此,对于任何两个顶点uuu,www,顶点的标记受到到vvv的图形距离的约束,如果uuu比www更接近v,则vvv总是排在高于www的位置。该定义确保vvv始终等级为1,并且顶点在GGG中越接近vvv,其在向量空间表示中的排序越高。
具体算法如图所示

2.4卷积神经网路(Convolutional Architecture)



首先最底层的灰色块为网络的输入,每一个块表示的是一个node的感知野(receptive field)区域,也是前面求解得到的4个nodes的其中之一。其中ana_nan​表示的是每一个node的数据中的一个维度(node如果是彩色图像那就是3维;如果是文字,可能是一个词向量这里表明数据的维度为n)。最底层的1-10意味着卷积核的大小为10,因此经过Graph Normalization所求出包括node本身共10个结点。卷积核的大小为10,宽度要和数据维度一样。因此,和每一个node卷积后得到一个值。卷积的步长(stride)为10,表明每一次卷积1个node,stride=10下一次刚好跨到下一个node。
下面来举例来说明PATCHY-SAN如何提取顶点特征和边特征。我们假设ava_vav​为顶点特征的个数,aea_eae​为边特征的个数。www为目标node的个数,kkk为感受野中node的个数。对于每个输入图结构,运用上面的一系列normalization算法,我们可以得到两个tensor(w,k,av)(w,k,a_v)(w,k,av​)和(w,k,k,ae)(w,k,k,a_e)(w,k,k,ae​),分别对应于顶点特征和边特征。这两个tensor可以被reshape成(wk,av)wk, a_v)wk,av​)和(wk2,ae)(wk^2, a_e)(wk2,ae​),其中ava_vav​和aea_eae​可以分别看成是CNN中channel的个数。现在我们可以对它们做一维度的卷积操作,其中第一个的感受野大小为kkk,第二个感受野大小为k2k^2k2。而之后的卷积层的构造和传统的CNN一样了

3总结

论文中算法的流程可以总结为以下过程:
输入:一张图片
输出:每一个channel输出w个receptive filed

  1. graph labeling(对图的节点做标记,比如可以用节点的度做标记,做图的划分,也可以叫做color refinement or vertex classification),论文中采用的是The Weisfeiler-Lehman algorithm做图的划分。由此可以得到每个节点的rank值(为了不同的图能够有一个规范化的组织方式)
  2. 对labeling好的节点排序,取前w个节点,作为处理的节点序列(这样就可以把不同size的graph变成同一个size),若不足w个节点,则在输出中加全零的receptive filed,相当于padding。 采用stride=s来遍历w个节点,文中s=1,为了输出有w个receptive field
  3. 对遍历到的每个节点v(称作root),采用bfs(广度优先搜索)的方式获得此节点的k(卷积核的大小,即receptive field size)个1-neighborhood,如果不足k个,再遍历1-neighborhood的1-neighborhood。直到满足k个,或者所有的邻居节点都遍历完。此节点和他的邻居节点就生成了neighborhood graph。
  4. 第三步就生成了w个(s=1)neighborhood graph。需要对着w个graph 进行labeling,按照作者得出最优的图形标记程序根据离root节点v的远近来计算每个节点的rank,根据算法4是离v越近,r越小。 如果每个neighborhood graph不足k个节点,用0节点补充。
  5. 规范化step5得到了已经label好的graph,因为需要把它变成injective,使每个节点 的标签唯一,采用nauty的算法。
  6. 经过6之后,就得到了graph转换后的vector,将vector扔到卷积之中,进行后续的操作。
  • 点赞
  • 收藏
  • 分享
  • 文章举报
饮冰l 发布了6 篇原创文章 · 获赞 0 · 访问量 112 私信 关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐