今天分享的这篇文章,出自ibm,之前对ibm的印象是做硬件的,没想到在人工智能的浪潮中,他依旧是一个强劲的弄潮儿。这篇论文提出的FastGCN,是建立在原始GCN基础之上的一种基于概率测度下embedding函数的积分变换视角,通过重要性采样实现的高效算法。
本文将从模型原理和实验两方面对这篇论文进行介绍。一般认为,基于图的卷积神经网络模型来自于两个方面,一方面是谱图理论,一方面是表征学习,如node2vec和LINE算法,通过为每个节点学习一个全图特征表示,对图空间进行降维得到低维特征表示。与最近的GraphSAGE相比,GraphSAGE存在对邻居规模的限制,而FastGCN是对节点进行采样,而非邻居。
1. 模型理解
直观上看,计算公式和之前GCN相比,一个是全连接公式,一个是积分公式,但是FastGCN的积分公式,考虑到,V'是采样的独立同分布的样本节点集合,F是事件空间?(并不理解是干什么用)P是采样分布,概率评估矩阵。
左图每一层代表一批抽样节点,相邻层之间的连线代表在图中两点具有相连关系,not全连接;右图是在满足P分布的基础上进行抽样,后一层的embedding函数是前一层函数的积分变换。文中是一堆堆公式,看着很复杂,其实感觉就是用一个概率矩阵对节点进行抽样,即题目所说的重要性采样,但是对于P是怎么来的没有讲解。然后再转化为积分进行层间传播,虽然还是没弄明白积分变换有啥好处。感觉相比传统GCN,fastgcn之所以快是因为它在每层之间的传播过程做了抽样,而不是用全图去表示。
2.实验
这篇文章原理看的云里雾里,想通过实验部分进行理解,所以实验部分看的比较详细。实验设置,同样的数据集,分别与传统GCN算法、GraphSage算法进行比较。与GCN实验不同的是,这篇论文将数据即的所有样本都是用了,原始GCN论文的实验仅仅是选择了划分结果最好的小部分数据(我也是看了之后才知道原来实验可以这么做,哈哈哈),作者将全部数据加进来,我认为是更加合理的。同样的,本文的网络结构也不深,只有两层。选用的三个数据集也是常用的学术领域数据集,除了Reddit之外,都只是连通小网络。
论文在指标选择上使用的是F1值,对于多分类问题,包括之前看的GCN原始论文,用的都是准确率(accuracy),不知为何这样选择。
从实验结果对比来看,FastGCN也都不是最好的,在它所说的适用于大图稠密图上的embedding,比较看来,也仅比原始GCN好了0.007.
时间性能上,相比其他两个模型,fastGCN在小图上表现良好,但是大图上具有一个数量级的优势。论文开始也提到了在转导推理方面的适用性,但是并未突出该应用,所以转导方面也不具有借鉴意义。由于笔者对原理部分理解还不够深入,对于fastgcn并没有眼前一亮的感觉。后续可能会通过看证明和代码,再梳理完善一下。暂时就说这么多~
==未完待续~
作者原创,欢迎交流,如需转载请先联系作者。