这篇论文是在属于空间域上的图卷积
一篇入门的博客介绍文章:
https://www.leiphone.com/news/201706/ppA1Hr0M0fLqm7OP.html
Learning Convolutional Neural Networks for Graphs
abstract
通过提取局部联通域,提出了一种学习任意图的卷积神经网络的框架。
introduction
- 方法可用于给一组图进行分类和回归,也就是区分两个图。
- 给定一个大图,方法可以可用于推断不可见图属性(如节点类型和缺失的边)的图表示。
- 将图建立成cnn可以处理的形状。
- 由于cnn中像素是排列好的,nlp中语句和单词的顺序是排列好的,所以用cnn核卷积方便,但graph的排列不同,所以要完成的任务有:
(1)确定邻域图被创建的节点序列
(2)邻域图的规范化计算,从图形表示到向量空间表示的唯一映射。 - 论文方法 PATCHY-SAN的过程:
(1)找出用来确定邻域的顶点,要排序
(2)找出这些顶点的邻域,要排序
(3)cnn
过程如图:
Related Work
一些使用核的机器学习算法
Background
- Convolutional Neural Networks
- Graphs
- Labeling and Node Partitions
labeling function f:v->s 也就是顶点集合v映射成一个顺序集s
ranking function r:V → {1, …, |V |};r(u) < r(v) if and only if l(u) > l(v) - Isomorphism and Canonicalization
Learning CNNs for Arbitrary Graphs
方法可以分成四个步骤
- 从图中选出固定长度序列的点 Node Sequence Selection
- 给这些点选出固定大小的邻居 Neighborhood Assembly
- 对选出的邻居图进行规范化 Graph Normalization
- 使用cnn对上述创造的图进行学习 Convolutional Architecture
Node Sequence Selection
这个算法1使用了下面的算法2
Neighborhood Assembly
其实就是bfs找k个邻居
Graph Normalization
对邻居图进行规范化,也就是对邻居节点进行排序
红色为当前点,绿色为当前点的距离1的邻居,米黄色是距离2的邻居,对邻居进行排序。
排序方法:
如何建立L和R函数?
对于两个图,我们为了找出一个label的方法,目的就是为了让label出的两个图的邻接矩阵的距离和这两个图的距离最相似。也就是dA(两个图的label后的邻接矩阵距离)-dG(两个图的距离)最小。
能够创造A的前提是有一个L函数,也就是label函数。建立label函数是一个NPhard问题,作者使用了一个理论建立这个L函数:
也就是找出能够使 对一些列图的任意两个图使用L函数求距离后 的平均数最小的L。
Convolutional Architecture
就是对上述建立的结构进行卷积
Complexity and Implementation
PATCHY-SAN has a worst-case complexity of O(N w(f (n, m) + n log(n) + exp(k))) for computing the receptive fields for N graphs.
不在证明
Experiments
可用来做图分类
总结
我认为本篇论问的核心就是如何选择顶点的邻域,对其排序,对其求出邻居点的rank值。也就是核心是labeling和ranking的方法。