最近在做和超图相关的工作,自己主要偏编码的工作,但在敲代码和参考其他现有超图库的过程中发现了一个叫DeepHypergrah的库,里面涉及了很多和深度学习相关的内容,用到了pytorch、scipy、numpy之类啥啥啥,看的我一头雾水,想起之前给自己定了一个学习pytorch这一工具的目标,现在终于有契机去研究一下了,顺便也学习一下和图神经网络相关的知识。

论文标题:HGNN+:General Hypergraph Neural Networks

高阶网络乍听过来是一个很牛的概念,因为一般来说我只会用networkx(link:https://github.com/networkx/networkx)或easygraph(link:https://github.com/easy-graph/Easy-Graph)构建简单图来算一些图相关的指标。所以在了解了高阶网络的概念后往往会有一个疑惑就是我们为什么要定义超边(简单来讲就是一条连着多个点的边)、构造超图来建模我们的场景。通过这个文章中的说明或许可以找到一点答案。文章给出的解释是:
一方面,现实世界中的数据相关性远远超过了成对的相关性,这不能用平面图很好地建模。例如,社交网络中的用户可能有不同的属性,这些用户之间的相关性可能以组的方式存在,例如,几个用户可能共享相同的爱好或被调用在同一事件中。简单图的另一个局限性是它的多模态/多类型真实数据建模能力较弱。例如,社交网络中的微博数据可能包含时间、图像、表情符号甚至视频,这些信息它们之间有社交联系。
且考虑到多模态/多类型数据表示的相关性,传统的基于GNN的方法需要在学习阶段整合多个图,并探索相关性多模态/多类型数据中的相关性成为一项具有挑战性的任务。

Fig2(a)描述了超图和普通图之间的区别。(b)描述了超图针对多模态/多类型数据的策略。

主要贡献:

  1. 提出了一个超图神经网络框架:HGNN+,其中主要包括两个流程:超边建模和超图卷积。在超图的建模过程中,理论上提出了"超边组"并进一步定义了四个方式去生成超边组。
  2. 将原来的卷积策略HGNNConv从空间域扩展到一般的两阶段超图卷积运算。(讲真,这句话我不太懂想表达贡献,可能是可拓展性更好的意思吧)
  3. 做了很多实验,发现文章提出的东西效果很牛逼…还提出了一个叫DeepHypergrah的工具包

相关工作:

GNN相关

GNN用于修复深度卷积和非常规数据处理之间的鸿沟,且能直接应用到随机图结构上。GNN可以被分成两类,第一类是spectral-based(基于谱的),第二类是spatial-based(基于空间的)。根据网上的说法,前者代表将graph看作一张image然后做卷积;后者是把在image上做卷积 kernel 转化为能再graph上卷积的样子,就是让graph的局部仿照image的卷积过程。让每个node对应原本image CNN中的pixel,它的邻接node 就是3*3 kernel周围的那8个pixel。
解释来源:https://zhuanlan.zhihu.com/p/338785684

Hypergraph Learning相关

超图学习首先在[ Zhou D, Huang J, Scholkopf B. Learning with Hypergraphs: ¨Clustering, Classification, and Embedding[C]. NeurIPS. 2007]中被引入,它可以进行可转换学习,可以看作是超图结构上的一个传播过程。超图的转换推理旨在最小化超图上连接较强的顶点之间的标签差异。在过去的几年里,超图学习一直被扩展在许多领域得到了良好的开发和应用。Wang等人[Wang Y, Zhu L, Qian X, et al. Joint Hypergraph Learning for Tagbased Image Retrieval[J]. TPAMI, 2018, 27(9): 4437-4451.]构建了一个包含全局、局部视觉特征和标签信息的复杂超图,以学习图像在ta任务中的相关性基于g的图像检索。为了模拟脑功能连接网络(FCN),Xiao等人[Xiao L, Stephen J M, Wilson T W, et al. A Hypergraph Learning Method for Brain Functional Connectivity Network Construction from fMRI Data[C]. MI. 2020, 11317: 1131710.]提出了加权超图学习,它能够捕获大脑区域之间的关系而不是传统的基于图的方法和现有的基于未加权超图的方法

THE FRAMEWORK OF HYPERGRAPH NEURAL NETWORK HGNN+

在本节中,我们将简要介绍超图神经网络(HGNN+)的框架,它旨在为对给定的原始数据的表示学习提供一个一般的框架。
它包括两个部分:超图建模和超图卷积。
超图建模:可用数据被用于生成高阶相关性,而这种相关性由超图表示。文章中定义了三类超边组:pairwise edge(成对边)、特征空间中的k-Hop与邻居。在这个过程中,将生成所有这些类型的超边缘组(如果可用),并连接到一个超图中,用于数据相关建模。
超图卷积:这些卷积过程可以利用来自高阶相关数据和多模态数据的信息来生成更好的表示。

这里针对三种超边组生成进行展开。其中pairwise edge、k-Hop这两种方法是当数据相关性与图结构相关时的场景。而数据相关性与图结构无关时,就需要使用attributes或features。
pairwise edge
就是普通图中点-点相连,在超边的情况下,就是将两个点包一起作为一条超边。
k-Hop
k-Hop有两种方式,第一种是随机游走k步到达的点叫k-hop neighbors,第二种是与其最短路径距离为k。看文章的意思感觉是随机游走那类。相比于上一种方法,这种方法能提供更加丰富的相关性信息。

attributes
下面这张图很直观的表示这种超图构造规则

features
给定每个顶点的特征,可以通过寻找特征空间中每个顶点的邻居来生成第二种类型的特征。这种方式就是给定一个顶点为质心,它在特征空间中的k个近邻可以用一个超边连接,也可以用与质心距离d内的所有邻居连接。这种类型的超边的目的是找到顶点特征背后的关系。它可以在多尺度上设置,例如在邻居查找过程中设置不同的k或d值

Combination of Hyperedge Groups

接下来介绍如何利用这些超边组去生成一张超图。
法一:Coequal Fusion
就是把这些超边组拼接到一起;但这种方法很明显太简单暴力了,文章认为不同超边的信息丰富程度是不同的,简单的拼接不能完全利用多模态的混合高阶相关性。从而有了法二。
法二:Adaptive Fusion
每个超边组与一个可训练的参数相关联,它可以自适应地调整多个超边组对最终顶点嵌入的影响,它的定义如下:

wk就是在一个超边组k中被所有超边共享的一个可训练参数
W是一个表示超图的权重矩阵的对角矩阵
H表示通过将多个超边群的关联矩阵连接起来(·||·)而生成的超图的关联矩阵

由构造的超边组生成超图关联矩阵H和超边权值矩阵W,然后会将这两个矩阵输入超图卷积层进行进一步计算。

Hypergraph Convolution

文章中提出的HGNNConv可以由以下公式定义

Dv和De分别表示顶点度和边度的对角矩阵,Θ是在训练过程中要学习的参数。

Spatial Convolution on Hypergraph

谈到这个方法,首先,让我们简要回顾一下一个典型的基于spatial的图卷积的定义。一个图像可以被看作是一个网格图,其中每个像素代表一个顶点,每个顶点只连接它周围的邻居顶点。图像中的每个顶点(像素)都具有一个c通道特征(C-channel)。对图像的滤波可以看作是中心顶点聚集其邻居特征的过程转换其特征后的平均聚合。类似地,对于一个简单的图,基于空间的图卷积利用其相邻顶点的聚合来得到一个新的表示中心顶点。空间图卷积中的消息从相邻的顶点运行到中心顶点,这遵循了简单图中的“路径”的定义。
图中的路径被定义为P(v1、vk)=(v1、v2、···、vk)。它是一个顶点序列,其属性是序列中的每个顶点都与它旁边的顶点相邻,这意味着i和i+ 1(1≤i≤k 1)的所有顶点对都有邻域关系(Neighbor Relation.)。
在这里,我们可以定义超图上的空间卷积。对于超图中的每个顶点,我们聚合其相邻的顶点消息,以根据中心顶点之间的“路径”来更新自己以及其邻域内的每个顶点。超图中两个不同顶点v1和vk之间的路径被定义为一个序列:

其中vj和vj+1属于由超边ej表示的同一个顶点子集。显然,超路径中的每个两个相邻顶点都由一个超边分隔,超图中两个顶点之间的消息通过相关的超边传播,与普通图中相比,通过超边可以利用高阶关系。

然后,根据邻域间关系定义了超边e的顶点间集Nv (e)和顶点v的超边间集Ne (v)。

在定义1、2、3之后,我们介绍了一个空间超图卷积层通过超路径的邻居顶点消息聚合的消息传递。给定超图G的一个顶点α∈V= {V,E,W},我们的目标是聚合来自其超边间邻居集Ne(α)的消息。在第t层的一般空间超图卷积可以定义为:

其中xtα∈Xt是层t = 1中顶点α∈V的输入特征向量1,2,···,T,xt+1α是顶点α的更新特征。mtβ是超边β∈E的消息,wβ是一个权值等连接到超边缘β. mt+1 α表示顶点α的消息。ytβ是超边β的超边特征,它是超边特征集Y t = {yt1,yt2,···,ytM},yti∈RCt层t.Mtv(·)、Ute(·)、Mte(·)、Utv(·)是第t层的顶点消息函数、超边更新函数、超边消息函数和顶点更新函数。

下一章是各种方法之间的比较,文章通过随机游走与马尔可夫链这两个例子比较普通图和超图。还比较了HGNN/HGNN+与GNN的区别,认为前者在继承后者的基础上还拥有学习高阶关系的能力。

Experiments

baselines:
GCN、GraphSage、GAT、GIN、GraphConv、HyperGCN、Hyper-Atten
选取的大多是GNN中比较经典的模型,且选取的和超图相关的图神经网络像是将普通图中的一些方法在超图上进行实现。

一些训练细节就跳过了

Loss Functions
对于单标签任务,采用交叉熵函数,对于多标签任务采用二进制交叉熵函数

Evaluation Metrics
对于单标签任务是accuracy、macro f1 score,对于多标签任务是exact match ratio、example-based accuracy

在有图结构的数据上进行节点分类

Datasets:
Citation Network(Cora、Citeseer、PubMed)
Social Media Network(Github Web ML、Facebook Page-Page)
Settings
数据预处理:
原始结点特征是一个二进制矩阵,维度为N*C。对于citation network,每个非0的元素值表明这个元素在该出版物中出现,对于每个特征按行归一化。
对于两个社交媒体网络数据集,每个非0元素代表该用户/网站有对应的属性。由于社交媒体中的属性更加复杂,归一化方面有难度,所以没有进行归一化处理。

训练/验证/测试集切分:
对于每个数据集,每个类别随机选择5/10个样本进行训练,每个类别随机选择5个样本进行验证。其余的顶点将用于测试实验中的所有数据集。

超图构建:
对于方法HGNN+,三种类型的超边缘群E(pair) (Eq。(3)), E (hop1 )(Eq.(4)),和E(hop2) (Eq。(4))进行超图生成,超边组的的融合策略采用自适应融合。在这里,采用两个卷积层来生成嵌入,然后将输出输入一个softmax层,以预测每个类别的概率分布最高点.所有数据集的隐藏维数都固定为64

实验部分的结果如下图

结果原因探究
从图结构方面考虑,本文提出的方法更深度地利用数据的高阶相关性。
固定层数n的GNN,现有的基于GNN的方法只利用邻接矩阵明确表示的信息,希望横向捕获图上的高阶相关性,以便进一步考虑通过多层叠加来进行表示学习。然而,堆叠多层GCN可能会陷入k -hop邻域平滑的陷阱。文章中的说明固定层数n的GNN中每个结点在输出层的特征是由平滑n跳邻居获得的,但实际上不同任务中,不同跳数的领居的贡献度是不同的,所以传统的只有固定层数的GNN可能获得的只是次优解,但本文的方法通过定义多个超边组及超边组的权重来平衡上述这个问题。
至于为什么基于超图的方法效果也不好,文章中给出的解释是,HyperGCN对超图的结构进行了简化导致结构信息丢失;而Hyper-Atten虽然效果比HyperGCN好,但利用超边-结点注意力机制模块,使得参数化程度太高,即需要学习的参数太多,因此可能导致过拟合的概率变高。

这张图只用了每个类型下的10个样例去训练,想模拟训练数据较少的情况

文章通过这个实验想表达自己的模型即使在训练数据很少的情况下也能取得很牛逼的结果,这恰好说明了自己的模型是捕捉到数据之间的高阶相关性的。

Ablation Experiments(消融实验)


对无图结构的数据的顶点分类
这一部分采用了两个公开的三维对象数据集,包括ModelNet40 [40]数据集和NTU [41]数据集。
超图的构建:
因为没有图结构,所以采用K个最近邻(KNN)算法进行超图构造。且有两个被之前论文验证效果最好的3D对象特征提取算法被用于这篇文章,分别是MVCNN和GVCNN,文章使用这两个算法对应的特征构造了两个超边组,并且使用直接拼接的策略构建超图。
基于超图结构的数据的顶点分类
这里使用的数据集是:Cooking-200 and MovieLens2k-v2,这两个数据集本身就是超图结构的。在MovieLens2k-v2数据集中,电影作为顶点,超边可以由[电影、标签、权重]和[电影、导演]的相关性来构建。且采用直接合并的方式融合不同超边组。

图的构建
对于第一个数据集,文章将原料当做超边,菜谱当作结点。这里有个细节是,由于GCN不能直接处理超图结构,所以文章采用非加权团展开和加权团展开两种方法,将超图结构转移到简单的图结构中。


原因探索:
HGNN和HGNN+的两阶段消息传递策略V→E、E→V可以有效地捕获超图中的高阶信息与基于图的方法中采用的单阶段消息传递策略V→V相比,从而获得了更好的性能。

可视化:
文章使用t-SNE的方法(一个非线性降维机器学习算法,非常适用于高维数据降维到 2 维或者 3 维,进行可视化),从下图结果来看,HGNN+算法的聚类效果更好

THU-DEEPHYPERGRAPH: AN OPEN TOOLBOX OF THE HGNN+ FRAMEWORK

这一节主要介绍了该团队开发的一个超图开发工具包:DeepHyperGraph

Conclusions

所提出的HGNN+框架在从多模态/多类型数据建模高阶数据相关性方面具有优势。
1.文章介绍了四种类型的数据相关性生成方法,并提出了一种自适应的超边缘融合策略来生成整体超图,引入了空间域中的超图卷积来学习表示。
2.在9个数据集上的实验和与最先进的方法的比较证明了文章所提出的方法的有效性,结果和数学讨论表明,所提出的框架能够实现新的最先进的性能,特别是当没有明确的数据相关性。
3.提出了一个超图工具包THU-DeepHyperGraph被发布供公众使用。

[HyperGraph专题]HGNN+:General Hypergraph Neural Networks相关推荐

  1. 模型加速--Slimmable neural networks

    Slimmable neural networks ICLR2019 Code and models will be released 可瘦身的神经网络,针对不同硬件和运行环境,可以快速提供与之相适应 ...

  2. Hypergraph Neural Networks HGNN

    Hypergraph Neural Networks HGNN论文阅读 [摘要]在本文中,我们提出了一个用于数据表示学习的超图神经网络(HGNN)框架 ①它可以在超图结构中编码高阶数据相关性.面对在实 ...

  3. (HGNN) Hypergraph Neural Networks

    Hypergraph Neural Networks 1.Abstract 提出了一个用于数据表示学习的超图神经网络(HGNN)框架,它可以在超图结构中编码高阶数据相关性.面对在实际实践中学习复杂数据 ...

  4. DHGNN:Dynamic Hypergraph Neural Networks

    IJCAI-19-Dynamic Hypergraph Neural Networks 动机 贡献 DHNN DHC(动态超图construction) 超图卷积 节点卷积 超边卷积 实验 Cora ...

  5. 【论文分享】★★★「SOTA」小样本图神经网络分类模型 HGNN:Hybrid Graph Neural Networks for Few-Shot Learning

    题目:Hybrid Graph Neural Networks for Few-Shot Learning 链接:https://ieeexplore.ieee.org/stamp/stamp.jsp ...

  6. 斯坦福CS224W图机器学习笔记自用:A General Perspective on Graph Neural Networks

    1. Recap Deep Graph Encoders(深度图编码器) Graph Neural Networks GNN核心思想:节点的邻域定义了一个计算图 Aggregate from Neig ...

  7. 2019_AAAI_Hypergraph neural networks

    [论文阅读笔记]2019_AAAI_Hypergraph neural networks 论文下载地址: https://deepai.org/publication/hypergraph-neura ...

  8. Paper:《Graph Neural Networks: A Review of Methods and Applications—图神经网络:方法与应用综述》翻译与解读

    Paper:<Graph Neural Networks: A Review of Methods and Applications-图神经网络:方法与应用综述>翻译与解读 目录 < ...

  9. 【论文阅读】A Gentle Introduction to Graph Neural Networks [图神经网络入门](7)

    [论文阅读]A Gentle Introduction to Graph Neural Networks [图神经网络入门](7) Into the Weeds Other types of grap ...

最新文章

  1. 博士申请 | ​香港中文大学LaVi实验室招收2022年秋季入学博士生、硕士生
  2. windows api打开文件对话框
  3. html的分类与特点
  4. c语言实践 1/1+1/2+1/3+1/4+...+1/n
  5. python中bool函数_bool()函数以及Python中的示例
  6. 实例53:python
  7. 周四下午3小时,4个行业分享,尽在信创行业发展高端研讨会数据库专场
  8. 解决虚拟机克隆后eth0不见的问题
  9. 使用Spring容器最简单的代码姿势
  10. Jmeter模拟多用户同时登陆
  11. 阿里云携手蓝凌软件,打造全球化企业智慧办公平台
  12. UML学习系统(一)
  13. h3c comware 使用 freeradius 统一认证---草稿
  14. 笔记本网络带宽叠加(有线和WiFi同时使用) 2021-09-27
  15. download failed: assets/main/import/09/09f53264-cd95-4751-99ad-d516c164dd80._cconb.dbbin, status: 40
  16. 漫话:如何给女朋友解释什么是语法糖?
  17. 常见html5营销类型有哪些,常见的品牌营销都有哪几种形式
  18. 一键抠图Portrait Matting人像抠图 (C++和Android源码)
  19. elasticsearch 单节点状态yellow解决方法
  20. 换元积分法和分部积分法

热门文章

  1. Pymysql数据迁移到mysql_Django -Mysql数据库利用pymysql数据迁移
  2. windows访问共享文件夹 登录失败: 禁用当前的账户 解决方法
  3. linux gvim使用教程,Vim编辑器使用教程
  4. 【技巧插件】PDF文件转换为CAD文件
  5. 现有的自动生成电路的软件有哪些?
  6. 先建立一个Point(点)类,包含数据成员x,y(坐标点)。以它为基类,派生出一个Circle(圆)类,增加数据成员r(半径),再以Circle类为直接基类,派生出一个Cylinder(圆柱体)类,再
  7. 王立平--poser
  8. 工业组态 物联网组态 组态编辑器 web组态 组态插件 编辑器
  9. flickr之我们心中的点子
  10. smart-doc的使用