DGCNN An end-to-end deep learning architecture for graph classification

AAAI-18

圣路易斯华盛顿大学计算机科学与工程系

代码:https://github.com/muhanzhang/DGCNN

内容:常见的文本和图能够进行卷积,是因为隐含有顺序结构。比如说图上的CNN,如果将图上的像素点进行打乱的话,再好的CNN也无法处理了

那么怎么样才能处理无序的图结构数据呢?答案很简单,让它有序就行了。怎么有序?排序啊。

步骤:

  1. 先使用多层聚合函数进行节点信息的聚合,更新节点信息
  2. 将得到的节点特征排序
  3. 将排完序的节点特征继续拼接成一维,然后直接一维卷积走起

1 模型的实现

图卷积层

  • 跟GCN差不多,就是邻接矩阵归一化的方法不一样
  • 使用多层进行聚合
  • 最后将h次迭代得到的特征向量全部拼接到一起

排序层 SortPooling

  • 首先用𝑧h的最后一个维度的值进行排序,相同的话就比较倒数第二个,依次类推
    • 注意,这么操作的话,最后同构的图,排完序之后的表示就会是一样的了
    • 此时需要记住排完序之前各个特征的顺序,用于最后的梯度更新进行训练
  • 然后就需要保留𝑘个特征,如果节点数𝑛<𝑘,空余部分补0,大于否则就截断

卷积层

  • 这个时候将得到的矩阵重新拼接为一维的向量,直接使用一维卷积就可以了
  • 然后使用全连接层进行分类

2 两个相关方法

论文举了两个相关的方法,旨在说明自己方法的有效性

Weisfeiler-Lehman(WL) subtree kernel

  • 这个方法常常用于进行两个图的同构检验,主要思路:
    • 首先对各个节点,进行一阶邻居聚合,作为新的特征
    • 然后排序,比较两个图的节点特征,看是否相同
    • 重复上述两个步骤h次。如果两个图的节点特征不同,说明不同构;但如果两个图的节点特征相同,不一定是同构的
  • 可以表示如下(𝛿𝑥,𝑦=1 𝑖𝑓 𝑥==𝑦 𝑒𝑙𝑠𝑒 0,c为节点的颜色(用int编码),即节点特征):
  • 而DGCNN的卷积层可以表示如下(Y≔XW):
    • 可以将中间的
    • 看成是一种聚合的方式,因而可以看成是一种“软的”WL算法

propagation kernel(PK)

  • 比较两个图之间的标签分布,而不是对整数节点标签进行操作
  • 具有与WL相似的图分类性能,甚至更高的效率
  • DGCNN的卷积层和PK十分相像

3 实验

  • 论文先后和图核的方法(图1),神经方法(图2)进行比较

    • 为了证明排序工具优于求和,DGCNN(sum)用求和层替换了DGCNN中的排序层和随后的一维卷积层。在大多数情况下,性能会恶化很多

4 感想

  • 本文的想法是比较符合直觉的。既然图无法直接卷积的原因是没有顺序,那么就直接给其顺序。
  • 卷积层其实就是GCN,随着层数的加深,肯定会出现过平滑问题的。但是排序的时候需要用最后一层卷积的输出,理由是需要更高级的特征,原文是“most refined continuous WL colors”。可能作者也知道这一点,于是将前几层的特征保留下来,参与到后续的卷积中。这么做既防止了过平滑,也能够得到更好的结果。这与JK网络有点像了。
  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值