结合胶囊网络Capsule和图卷积GCN的文章
结合胶囊网络Capsule和图卷积GCN的文章
- 一、Capsule Neural Networks for Graph Classification
- 1.1 文章概要
- 1.2 实现方法
- 1.2.1 Graph to Contextual Tensor
- 1.2.2 Graph Capsule Network
- 1.3 实验结果
- 二、Graph Capsule Convolutional Neural Networks
- 2.1 文章概要
- 2.2 GCN的缺点以及解决方法
- 2.3 实现方法
- 2.3.1 Graph Capsule CNN
- 2.3.2 Graph Permutation Invariant Layer
- 2.3.3 GCAP-CNN with Global Features
- 三、Capsule Graph Neural Networks
- 3.1 文章摘要
- 3.2 实现方法
- 3.2.1 Basic node capsules
- 3.2.2 High level graph capsules
- 3.2.3 Graph classification block
- 3.3 实验结果
一、Capsule Neural Networks for Graph Classification
题目:
Capsule Neural Networks for Graph Classification using Explicit Tensorial Graph Representation
作者:
Marcelo Daniel Gutierrez Mallea, Peter Meltzer, Peter J Bentley
参考链接:
https://arxiv.org/abs/1902.08399
代码链接:
https://github.com/BraintreeLtd/PatchyCapsules
1.1 文章概要
图分类是许多科学领域的一个重要问题。它处理多种任务,如根据蛋白质和化合物的功能或化学和结构性质将其分类。在有监督的情况下,这个问题可以被理解为学习一组标记图的结构、特征和特征之间的关系,并能够正确预测不可见图的标签或类别。当试图使用已有的分类算法时,由于需要固定大小的矩阵,但这些图的节点和边的数量可能会有很大的变化,因此这一任务出现了很大的困难。这篇文章先通过将数据集中的每个子图生成一个矩阵表示,再应用一个胶囊网络在这样的表示上。
1.2 实现方法
1.2.1 Graph to Contextual Tensor
其具体流程如下图:
- 对于每一个图 G i G_i Gi,通过给定的参数 w w w确定 N o d e L i s t NodeList NodeList的长度,并通过 N o d e S e q u e n c e O r d e r i n g NodeSequenceOrdering NodeSequenceOrdering将 w w w个 n o d e node node排序。其中排序利用的是graph labelling procedure(这个最后讲);
- 对于这个序列中的每个节点,收集最近的k个邻居(根据点与点之间的跳跃次数),再通过 N e i g h b o u r G a t h e r i n g NeighbourGathering NeighbourGathering将这一些点标记成一类;
- 通过 N o r m a l i z a t i o n Normalization Normalization再次筛选点的个数,用于处理跳跃次数一样的点过多的情况。排序同样利用的graph labelling procedure;
- 将每个点上的类别特征转换成One-hot特征,并进行 E n c o d i n g Encoding Encoding;
- 最后输出一个 w × k × d w × k × d w×k×d的张量,其中 w w w为 N o d e L i s t NodeList NodeList的长度, k k k为 N e i g h b o u r G a t h e r i n g NeighbourGathering NeighbourGathering时邻居的个数, d d d为每个点的特征长度。
刚刚上面排序时采用的graph labelling procedure方法有两种:canonical labelling procedure 和 ranking based on betweenness centrality,即分别基于接近中心性(closeness)和中介中心性(betweenness)进行排序,其具体的定义如下:
- 接近中心性(Closeness Centrality)。反映在网络中某一节点与其他节点之间的接近程度。将一个节点到所有其他节点的最短路径距离的累加起来的倒数表示接近性中心性。即对于一个节点,它距离其他节点越近,那么它的接近性中心性越大。
- 中介中心性/中间中心性(Between Centrality) 。以经过某个节点的最短路径数目来刻画节点重要性的指标。
1.2.2 Graph Capsule Network
可以说是非常暴力地直接用刚刚处理好的张量输入CapsNet中,模型结构如下:
1.3 实验结果
二、Graph Capsule Convolutional Neural Networks
题目:
Graph Capsule Convolutional Neural Networks
作者:
Saurabh Verma , Zhi-Li Zhang
参考链接:
https://arxiv.org/pdf/1805.08090.pdf
2.1 文章概要
图形卷积神经网络是深度学习领域中最新的令人兴奋的进展,其应用正在包括生物信息学、化学信息学、社会网络、自然语言处理和计算机视觉在内的多交叉领域迅速扩展。在这篇文章中,我们揭示并解决了GCN模型的一些基本弱点,并提出了我们的图胶囊网络模型GCAPS-CNN。此外,我们还设计了我们的模型来解决当前GCN模型所面临的特别是图分类问题。通过大量实验,我们证明了我们提出的图形胶囊网络在图形分类基准数据集上的性能明显优于现有的深度学习方法和图形核。
2.2 GCN的缺点以及解决方法
GCN模型的第一个缺陷是由于基本的图形卷积运算,它被定义为对应于每个特征(或通道)的局部邻域中的节点值的聚合aggregation。因此其实在这个聚合的同时是会有信息的损失的。
为了解决这一限制,通过引入图胶囊的概念来改进基本的图卷积运算,图胶囊封装了关于局部邻域中节点的更多信息,其中局部邻域以与GCN模型中相同的方式定义。本文通过使用Weisfeiler-Lehman(WL)- subtree graph kernel的方式,使得每个节点标特征是从本地邻域中每个节点的邻居节点收集的,并且通过不断地迭代更新这个中心点的特征,这些新的特征的直方图会被拼接到每次迭代中,从而可以通过最后一次迭代的特征还原出所有的特征(即信息不会损失)。
GCN模型的第二个主要缺陷在于它处理图分类问题的能力,它必须处理结构相同的图。
为此作者设计了对称函数(如pointnet中置换不变性函数)保证置换不变性,使得所有的同构图都能输出相同的结果;
最后GCN很难整理全局的特征用于很好得分类。
为此作者利用全局特征(占整个图形结构的特征),使用图光谱距离族来解决这个问题。
2.3 实现方法
2.3.1 Graph Capsule CNN
首先先看一下普通GCN的公式,可以看出每个节点通过邻居点的值聚合形成的是一个标量;
因此GCAPS只是将其输出变为了一个向量,而聚合的向量可以是每个邻结点的1到p阶的多项式的集合。
最终文中使用的聚合方法是邻点的1到p阶矩(由于其具有置换不变性并且矩阵的乘法计算比较效率):
2.3.2 Graph Permutation Invariant Layer
文中先证明了像1.2.1节中使用的Max-Sort Pooling不具有置换不变性,再证明了矩是具有置换不变性的。
其中L为拉普帕斯矩阵即D-A。
2.3.3 GCAP-CNN with Global Features
使用 FGSD features去聚合全局特征,其具体形式入下:
(所以写到这里才发现他和CapsNet没啥关系…开始第三篇)
三、Capsule Graph Neural Networks
题目:
Capsule Graph Neural Networks
作者:
Zhang Xinyi, Lihui Chen
参考链接:
https://arxiv.org/pdf/1805.08090.pdf
代码链接:
https://github.com/benedekrozemberczki/CapsGNN
3.1 文章摘要
从GCN中学习到的高质量节点嵌入已经被应用到广泛的基于节点的应用中,其中一些已经实现了SOTA的性能。然而,当应用从GNNs学习的节点嵌入来生成图嵌入时,标量节点表示可能不足以有效地保持节点/图属性,从而导致不够好的图嵌入。
受启发与CapsNet,本文提出胶囊图神经网络(CapsGNN),其采用胶囊的概念来解决现有基于GNN的图嵌入算法中的弱点。通过提取胶囊形式的节点特征,可以利用路由机制在图形级别捕获重要信息。因此,我们的模型为每个图生成多个嵌入,以从不同的方面捕获图的属性。CapsGNN中包含的注意模块用于处理各种大小的图形,这也使模型能够关注图形的关键部分。
3.2 实现方法
模型的结构如下:
3.2.1 Basic node capsules
利用L层GCN提取信息,每一层的计算方式都如下:
其中 W i j W_{ij} Wij是可以训练的参数,即从第 l l l层的第 i i i个通道到第 ( l + 1 ) (l + 1) (l+1)层的第 j j j个通道的卷积核;激活函数 f ( ⋅ ) = t a n h ( ⋅ ) f(·) = tanh(·) f(⋅)=tanh(⋅);A和D的组合表示邻接的信息,即只对邻接矩阵为1的链接进行如上的操作。
上面的图其实标注的字母不太对,根据源码中的向量维度,对于输入向量 N × D N\times D N×D,其中N为点的个数,D为每个点的特征维度,通过 L L L层的GCN以后产生了 L L L个输出的维度 D o u t D_{out} Dout,将这些 L L L个 N × D o u t N\times D_{out} N×Dout的向量进行合并,就得到了输出的三维张量 N × D o u t × L N\times D_{out}\times L N×Dout×L,作为CapsNet后续的输入。
3.2.2 High level graph capsules
先将上一步的输出通过一个Primary Capsule,然后接一个Attention模块。
原因是因为在CapsGNN中,基于每个节点提取主胶囊,这意味着主胶囊的数量取决于输入图的大小。在这种情况下,如果直接应用路由机制,生成的高级胶囊的值将高度依赖于初级胶囊的数量(图的大小)。因此,引入了注意力机制来解决这个问题。在注意力机制之后,在生成节点胶囊投票的过程中,会给予每一个结点的胶囊不一样的权重。
3.2.3 Graph classification block
直接利用Marginal Loss和Reconstruction Loss做分类。
3.3 实验结果
最后一行即第一篇文章与这篇文章的算法优劣比较:
结合胶囊网络Capsule和图卷积GCN的文章相关推荐
- python实现胶囊网络_胶囊网络 -- Capsule Networks
胶囊网络是 vector in vector out的结构,最后对每个不同的类别,输出不一个向量,向量的模长表示属于该类别的概率. 例如,在数字识别中,两个数字虽然重叠在一起,Capsule中的两个向 ...
- 【Mo 人工智能技术博客】胶囊网络——Capsule Network
胶囊网络--Capsule Network 作者:林泽龙 1. 背景介绍 CNN 在处理图像分类问题上表现非常出色,已经完成了很多不可思议的任务,并且在一些项目上超过了人类,对整个机器学习的领域产生了 ...
- gcn 图卷积神经网络_复制一文读懂图卷积GCN
首发于郁蓁的机器学习笔记 写文章 一文读懂图卷积GCN 苘郁蓁 阿里巴巴 算法工程师 关注她 唯物链丶.小小将等 480 人赞同了该文章本文的内容包括图卷积的基础知识以及相关辅助理解的知识点,希 ...
- 神经网络的学习方式网络传播和图卷积,两者到底什么关系?
作者 | Remy Lau 本文转载自CSDN博主「deephub」 你可能听说过图卷积,因为它在当时是一个非常热门的话题.虽然不太为人所知,但网络传播是计算生物学中用于网络学习的主要方法.在这篇文章 ...
- 一文读懂图卷积GCN
" 本文的内容包括图卷积的基础知识以及相关辅助理解的知识点,相信同学们看完后一定能平滑上手理解GCN!" 作者:苘郁蓁 来源:知乎专栏 郁蓁的机器学习笔记. 编辑:happyGir ...
- 介绍胶囊网络 capsule networks
读到一篇文章,介绍capsule networks,特此记录笔记. 原始链接: https://www.oreilly.com/ideas/introducing-capsule-networks?u ...
- Graph Convolutional Network (图卷积GCN)
目标:为了解决非规则数据结构 - 学习图上特征映射 直觉上想要找到构图结点的特征,一定是与其相关的结点.连接的边有关.那么就直接把每个顶点比如1号结点相邻的结点找出来,虽然相邻的个数可能不一样,设个最 ...
- 实例39:用胶囊网络识别黑白图中的服装图片
一.熟悉样本:了解Fashion-MNIST数据集 FashionMNIST数据集的单个样本为28pixel*28pixel的灰度图片.训练集有60000张图片,测试集有10000张图片.样本内容为上 ...
- 深度卷积网络基本模型,图卷积网络 图像分类
如何利用卷积神经网络提取图像特征 . 卷积神经网络有以下几种应用可供研究:1.基于卷积网络的形状识别物体的形状是人的视觉系统分析和识别物体的基础,几何形状是物体的本质特征的表现,并具有平移.缩放和旋转 ...
最新文章
- 一起谈.NET技术,asp.net控件开发基础(18)
- MQTT初始篇笔记整理
- Git常见疑难解答集锦
- 一步一步学Silverlight 2系列(5):实现简单的拖放功能
- 分布式之redis复习精讲
- flask get 参数_用它 5 分钟以后,我放弃用了四年的 Flask
- 判断是否是日期格式_Java8新特性之新世间与日期
- toCharArray()和 charAt()的用法
- 生长区域算法的php实现
- Vue 中watch和computed 的用法及区别
- Qt视频直播软件--项目实战(Day4)
- mqtt压力测试工具emqtt
- 实验五|Python 企业获利能力分析
- “夏栀的博客”网站一期建站通知贴
- C++模板元编程(3)模板显示具体化
- 产品和技术解决方案_成功的产品负责人挑战技术解决方案
- 去中心化隐私社交平台的十大金刚
- FaceX-Zoo | 使用PyTorch Toolbox进行人脸识别(附源代码)
- (9)javaEE---equest与response
- 2022-2028全球小型建筑设备行业调研及趋势分析报告
热门文章
- 国神生态产业助推乡村振兴项目亮相丝博会
- Win10 C盘 满 空间不足 清理
- Android提取字符串中的特殊字符(以手机号为例)并修改样式和添加点击事件
- 【知识图谱实战学习--[3]】
- 单片机多功能电子琴课设_基于单片机的多功能电子琴设计
- Knn算法实现鸢尾花分类
- Focused crawling: a new approach to topic specific web resource discovery
- Tim聊天界面不显示头像问题解决方法
- 我的世界服务器设置复活位置,我的世界联机设置复活点指令 | 手游网游页游攻略大全...
- 软著授权出现“数据查询异常,错误码:DB004“