《Capsule Neural Networks for Graph Classification using Explicit Tensorial Graph Representations》论文解读
论文地址:https://arxiv.org/abs/1902.08399
1.论文思想:
提出一个模型通过对给出的数据集中每个图提取固定大小的张量信息,再利用胶囊网络进行图分类。本文是基于Patchy-Sans模型上的改进。该模型运用图标签和正则化标签过程提取固定大小的局部特征,然后将这些特征为每个图形成一个3维的张量,再利用CNN执行分类的过程。而本文就改变分类的执行算法,采用Capsule Network进行图分类。
2.论文算法:
1)Graph to Contextual Tensor
论文采用以下算法求得每个图的张量表示:
根据上述算法1,首先根据图标注过程获得节点序列,对于这个序列中的每个节点,收集最近的邻居(根据跳数)(SubGn)。利用高度参数k给出待采集的邻域个数,然后根据图的标注过程对邻域进行归一化,通过选择节点对图的结构进行合理表示,从而对标签进行排序。这使得在相同跳数距离的节点太多的情况下,可以在候选节点之间进行选择,并在所选节点的子集内提供一致的顺序。最后,使用一个热编码对节点的分类属性进行编码。此过程为图中所选的每个节点生成一个接受域。研究了用于节点选择和排序的两种不同的标记程序:规范的标记程序和基于中间中心性的排序。使用规范标记过程的目的是对图中的节点进行排序,使它们对应于给定图的同构类,而中间中心性过程查找每个图中连接最多的节点。使用这两种方法的好处是在不同的图之间一致地选择节点,从而为同构图提供相同的表示,为相似的图提供类似的表示。张量表示Ti的最终形状由w×k×d给出,其中w为宽度,k为接受域,d为单热编码节点的维数特性。
2)Graph Capsule Network
The architecture of the Capsule Network:
一旦得到了Xtr图的张量表示,就采用一种重构的胶囊网络结构作为正则化方法。
图1描述了胶囊网络的体系结构。第一层是CNN,第二层(Primary caps)和第三层(graphcaps)是胶囊层。胶囊网络层与标准神经网络层的主要区别是存在一个协议路由的过程。这个过程在Hiton论文中有详细的描述,但是下面提供了一个简短的描述。在图1中,Primary caps代表了胶囊网络的第一层,这些胶囊和第一卷积层之间没有路由。graphcaps表示胶囊网络的第二层。在Primary caps和graph caps母之间有一个路由的过程。这个迭代过程如下所示,每个较低级别的胶囊将其输入发送到较高级别的胶囊,如果该胶囊与较低级别的输入一致,则该信息将在训练期间反向传播,并加强这些胶囊之间的联系。最后,在graphcaps层之后还有一个解码器层作为正则化器。总损耗由MSE给出,
它是使用解码器层重构图时产生的损耗。它是重构图与原图的均方误差。
ML是边缘损失,就两类或多类分类的情况下,它被定义为分类交叉熵损失,这是定义如下:
本文使用t-SNE算法将胶囊网络在CNN和胶囊层中学习到的高维表示可视化,并直接将显式张量表示作为网络的输入。该算法由高维空间中点间距离的概率分布近似到低维空间中点间距离的概率分布构成。用来度量两个概率分布相似性的度量是Kullback-Leibler (KL)散度。