题目:AM-GCN: Adaptive Multi-channel Graph Convolutional Networks
会议:ACMSIGKDD 2020
论文链接:http://shichuan.org/doc/86.pdf
代码与数据:https://github.com/zhumeiqiBUPT/AM-GCN
这篇文章是石川老师众多GCN顶会中的一篇,我觉得很有意思。就分享给大家。这篇文章算不上突破,但很多做法比较经典,可以移用。应该可以算做石川老师的代表作之一吧。
总起的话,文章就干了一件事:怎么样将图的拓扑结构特征和节点特征糅合起来打一个组合拳来提升节点分类的精度。
一、motivation
对节点做分类,1)如果节点之间连线多(属于图的拓扑结构),那么他们是比较相近的,可以是一个类别。2)如果节点的特征向量相似度高,那么他们也是一个类别,这个是节点特征分类。
下面测试GCN的糅合节点信息和拓扑结构信息的能力。这个测试方法是比较经典的科学研究方法,不光这篇文章用到了。谷歌的MMOE也用了,构建数据集来验证MMOE对不相关多任务的分类能力。
测试一:构建一个900个节点的图网络,然后给900个节点随机分配3类标签,然后相同标签节点使用同一个高斯分布来生成特征,这样,节点标签和节点特征直接线性相关了,但与拓扑结构无关,然后用GCN和MLP(最简单的多层感知器)来训练分类模型,结果GCN学傻了,精度只有75.2%,而MLP100%。
说明GCN的糅合能力不能出淤泥而不染,拓扑结构会影响节点特征的表达力。
测试二:就是反着来的。节点标签跟拓扑结构高相关,跟节点特征不相关。最后结果发现GCN也学傻了。
这篇文章就是解决这个问题。如何让GCN能不学傻。
二、网络结构

结构就在上面。两个原始输入的图,左上角是原始图的拓扑结构图网络,左下角另一个呢,是基于节点特征构建K近邻图生成的特征结构图。然后每个图都有一个图卷积核跟他做图卷积运算,中间的方框表示的是拓扑图和特征图一起,共享一个图卷积核模块做图卷积运算,生成3个logit,这三个logit接一个注意力机制,来自适应学习标签对应的响应特征区,例如在测试一中,注意力机制模块学到的表示,特征图输出的logit响应估计是1,而其他两个logit的注意力机制响应估计就是0。
这里回答一下文章标题的多通道图卷积:从模型结构来看,就是三个通道嘛,类似于三个图卷积核。一个特征图通道,一个拓扑图通道,一个混合通道。
亮点:有意思的是图中的四个参数:Zt、Zf和Zct和Zcf。这个很有意思,Zt和Zf是差异性约束因子,使用Hilbert-Schmidt独立性准则(HSIC)来增强这两个logit(特征图通道和拓扑图通道输出的logit)的差异,这样能提取到不一样的特征信号;而Zct和Zcf是一致性约束因子,用的是L2正则化来保证学习到的logit具有一致性。
三 总结:
这篇文章有两个方法是科学研究值得借鉴的。一个是构建训练集的方法,一个是一致性约束和差异性约束因子,从集成学习的角度来看,差异性约束因子他保证了子分类器的多样性,一致性因子保证能提取到混合特征,是一个可以好好在多个场合发挥的好方法。
还有一点就是整个模型结构,用集成学习的角度来解构,底层就是一个分类器,注意力机制就是集成器。这个又是一个经典结构。现在经常出现在各类paper中。
求合作一起发论文系列:请点击下面链接
原文作者:Agent的潜意识;如有侵权,请联系管理员删除。