HGNN+笔记

1.Title

HGNN+: General Hypergraph Neural Networks(Yue Gao; Yifan Feng; Shuyi Ji; Rongrong Ji)【IEEE Transactions on Pattern Analysis and Machine Intelligence 2023

2.Conclusion

        This paper extend the original conference version HGNN, and introduce a general high-order multi-modal/multi-type data correlation modeling framework called HGNN + to learn an optimal representation in a single hypergraph based framework. In this method, hyperedge groups are first constructed to represent latent high-order correlations in each specific modality/type with explicit or implicit graph structures. An adaptive hyperedge group fusion strategy is then used to effectively fuse the correlations from different modalities/types in a unified hypergraph. After that a new hypergraph convolution scheme performed in spatial domain is used to learn a general data representation for various tasks. 

3.Good Sentence

        1、On one hand, the data correlation in the real world is far beyond pairwise correlation, which cannot be well modeled with a plain graph. For example, users in social networks may have different properties, and the correlation among those users could be in the manner of group, e.g., several users may share the same hobbies or are involved in the same event. Another limitation of simple graph is its weak capability in modeling multi-modal/multi-type real-world data.(The shortcoming of GNNs)

        2、Here, we want to highlight the second fusion strategy: Adaptive Fusion. It associates each hyperedge group with a learnable parameter, thus adaptively identifying the importance of different hyperedge groups to the overall hypergraph representation learning and better exploiting the complementary representation of multi-modal/multi-type information(The innovative point of this paper)

        3、However, considering that the information richness of different hyperedge groups varies a lot, such a simple Coequal Fusion cannot make full use of the multi-modal hybrid high-order correlations. Therefore, in this paper, we propose an adaptive strategy for the fusion of hyperedge groups, namely Adaptive Fusion.(The shortcomings of Coequal Fusion and how to improve it)


上如是超图与简单图的区别。       

 在本文中提出了基于超图卷积的表示学习来处理表示学习过程中的高阶数据相关性,并显示出不错的性能,该方法是 HGNN 的扩展,称为HGNN+。HGNN+的架构如图左部分所示,右边是一个超图卷积过程。

HGNN + 可以对高阶数据关联进行建模,并且易于与多模态/多类型数据融合。首先,为了更好地捕捉数据之间的底层高阶相关性,采用超图结构进行数据关联建模; 在处理多模态/多类型数据时,超图可以使用多模态/多类型数据生成不同类型的超边,然后直接将这些超边连接成一个超图。


hyperedge group:本文完善了超边组的概念。从数学上讲,超边组可以定义为节点集上的一个集合群组。而在节点集上,节点之间可能存在多类型关系。超边组可以基于一种关系构建,用以表示多重信息的不同特征。

        本文将建模分为两个步骤:超边组构建和融合。在有/无图结构的数据下,引入4种类型的超边组来生成超图,即特征空间中的  成对边(using pairwise edge)、属性(attribute)、 k -Hop和邻居(neighbor)。

        在生成多个超边组后,进一步有两种构建整体超图结构的方案。第一种是:直接连接不同的超边组的关联矩阵【Coequal Fusion】第二种是:将每个超边组与一个可学习参数相关联,从而自适应地识别不同超边组对整体超图表示学习的重要性,并更好地利用多模态/多类型信息的互补表示。【Adaptive Fusion


超图任务:

        给定一个超图,分类任务转向对超图上的顶点进行分类,其中超图上的标签需要通过超图结构进行平滑处理。该任务可以表述为正则化,如图: ,其中

是正则化器,也是监督经验损失。是分类函数。        

                令,那么上一个式子的矩阵形式为:\Delta是超图拉普拉斯算子


超图神经网络HGNN + 的框架:

        分两部分:超图生成和超图卷积。

        超图建模:在大多数情况下数据没有明确的超图结构。因此,我们需要使用不同的策略生成超图。通常,从头开始生成超图的情况可以分为三种场景,即具有图结构的数据、没有图结构的数据和具有多模态/多类型表示的数据。目前有三种超边生成策略,分别是成对边、 k -Hop和邻居。成对边和 k -Hop可用于具有图结构的数据生成超边组,在特征空间中通过邻居法从无图结构的数据生成超边组。最后,所有超边组将被进一步连接以生成整体超图。


        当数据关联与图结构相关时。在某些情况下,存在可用的成对数据关联,就是成对边,它的目标是直接将图结构转换为一组2-uniform的超边,如图所示

能够完全覆盖图结构中的低阶(成对)相关性,这是高阶相关性建模所需的基本信息 


Hyperedge group using k-Hop neighbors 旨在通过图结构中的 k -Hop 可到达位置找到中心点的相关顶点.带有k-Hop的超边组可以写成:

能够通过扩展图结构中的搜索半径来利用中心顶点的外部相关顶点,因此超边不止两个顶点组成,而是包含一组顶点


接下来是数据没有图结构时的方法

用属性的超边组。通过给定类似属性的数据,例如地理位置、时间和其他不同主体共享的特定信息,可以生成一组在属性空间中相邻的超边。其中每个超边代表一个属性(或属性的一个子类型)并连接共享同一属性 a 的所有主体。共享该属性 a 的顶点子集可以表示为


Hyperedge group using features

给定每个顶点的特征,可以通过在特征空间中查找每个顶点的邻居来生成,给定一个节点作为质心,可以通过K-近邻生成超边,也可以通过选择距离在d以内的所有节点生成超边


 超边组连接成超图

        通过上面的方法生成多个超边组以后,需要把它们组成起来形成最终所需要的超图。

        构造超图G的关联矩阵的最简单的方法就是直接将所有超边连接为,所有超边的权重为1,这种方法就叫Coequal Fusion。

        然而,考虑到不同超边的信息丰富度差异较大,这种简单的Coequal Fusion无法充分利用多模态混合高阶相关性。因此,本文提出了一种超边缘群融合的自适应策略,即自适应融合(Adaptive Fusion)。

自适应融合:

每个超边组都与一个可训练参数相关联,该参数可以自适应地调整多个超边组对最终顶点嵌入的影响。其定义为

其中 w_k∈R 是指定超边组 k 内所有超边共享的可训练参数。

向量是超边组k的权重向量。

copy(a,b)是把a复制b次的函数,最后返回一个size为b的向量

表示所有超边组中超边的和

W是一个代表权重的对角矩阵。

给定多模型/多类型数据,可以相应地生成多个超边组。从构建的超边组中生成超图关联矩阵 H 和超边权重矩阵 W ,然后将其输入到超图卷积层中进行进一步计算。


超图卷积

光谱卷积在AIII 2019的HGNN上提到了,这里仅关注空间上的卷积。

定义:对于超图中的每个顶点,聚合其相邻顶点信息,根据中心顶点与其邻域中每个顶点之间的“路径”进行自我更新。超图中的路径hyperpath,节点v1到vk的路径被定义为:超路径中的每两个相邻顶点都由一个超边分隔。两个顶点之间的超图中的信息通过相关的超边传输。

        对于消息的传播,首先,将超边集和节点集间的邻居关系定义为N。

根据上式,可以定义超边的节点邻居和节点的超边邻居,分别如下

基于以上三个定义,假设给定一个顶点α,以及一个超图G,超图卷积的目标是从α的超边邻居集中聚合信息 ,而为了获得中每个超边β的信息,又需要从超边β的顶点邻居集中聚合信息。这两个步骤形成了一个从节点特征信息集X^tX^{t+1}的闭合传递循环。因此,第t层的空间域超图卷积可以定义为:

x_\alpha ^tX^t是节点α∈V的在第t(=1,2,.....T)层时的输入特征向量,x_\alpha ^{t+1}是节点α的更新信息,m_\beta^{t }是超边β的信息,而w_\beta是与超边β相关联的权重,m_\alpha^{t }是节点α的信息。y_\beta^{t }是超边β的超边特征分别是第t层的节点信息函数、超边更新函数、超边信息函数和节点更新函数,可以针对指定的应用进行灵活定义


HGNNConv +:

\Theta ^t是第t层的可训练参数,σ(⋅) 是任意非线性激活函数,表示将节点特征和超边特征归一化,这能够累积收敛并在一定程度上防止抖动。

HGNNConv+的矩阵形式如下:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/194224.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux打包压缩与搜索命令

tar 命令 tar [选项] [文件]选项: -c 产生.tar打包文件 -v 显示详细信息 -f 指定压缩后的文件名 -z 打包同时压缩 Gzip -x 解包.tar文件 示例1 压缩多个文件 tar -zcvf XXX.tar.gz n1.txt n2.txt示例2 压缩目录 tar -zcvf test.java.tar.gz test1示例3 解压&#…

大数据-hive

简介 hive是基于Hadoop的一个数据仓库工具,用来进行数据提取、转化、加载,这是一种可以存储、查询和分析存储在Hadoop中的大规模数据的机制。hive数据仓库工具能将结构化的数据文件映射为一张数据库表,并提供SQL查询功能,能将SQL…

C语言练习题

C语言练习题 文章目录 C语言练习题题目一题目二题目三题目四题目五题目六题目八 题目一 #include <stdio.h> //VS2022,默认对齐数为8字节 union Un {short s[7];int n; };int main() {printf("%zd", sizeof(union Un));return 0; }代码运行结果:> 16 sizeo…

新手村之SQL——增删改查条件查询

1.查询不同行——DISTINCT SELECT DISTINCT column_name FROM table_nameDISTINCT 关键字需位于列名之前。 2.在指定列中插入数据——INSERT INSERT INTO courses (name, student_count, created_at, teacher_id) VALUES (Flash Sale, 100, 2018-01-01, 5);3.更新数据——UPD…

用Python来解一元二次方程

1 问题 如何利用python 来解一元二次方程组。 2 方法 解一元二次方程是高中数学中的重要内容&#xff0c;也是数学中的基础知识之一。在Python语言中&#xff0c;我们可以使用数学库中的函数来解一元二次方程。一元二次方程的一般形式为&#xff1a;axbxc0&#xff0c;其中a、b…

基于Springboot + vue的汽车资讯网站

qq&#xff08;2829419543&#xff09;获取源码 开发语言&#xff1a;Java Java开发工具&#xff1a;JDK1.8 后端框架&#xff1a;springboot 前端&#xff1a;采用vue技术开发 数据库&#xff1a;MySQL5.7和Navicat管理工具结合 服务器&#xff1a;Tomcat8.5 开发软件&#xf…

基于springboot实现的垃圾分类管理系统

一、系统架构 前端&#xff1a;html | layer | jquery | css 后端&#xff1a;springboot | mybatis 环境&#xff1a;jdk1.8 | mysql | maven 二、 代码及数据库 三、功能介绍 01. 登录页 02. 系统设置-用户管理 03. 系统设置-页面管理 04. 系统设置-角色管…

【Openstack Train安装】一、虚拟机创建

Openstack是一个云平台管理的项目&#xff0c;它不是一个软件。这个项目由几个主要的组件组合起来完成一些具体的工作。Openstack是一个旨在为公共及私有云的建设与管理提供软件的开源项目。它的社区拥有超过130家企业及1350位开发者&#xff0c;这些机构与个人将 Openstack作为…

[Java] 模拟Jdk 以及 CGLib 代理原理

文章目录 JDKarthas 反编译jdk代理对象arthas 反编译的结果是&#xff1a; CGlibmethodProxy 不经过反射调用方法的原理MethodProxy原理模拟 结合目标对象使用模拟结合 代理对象使用 JDK Jdk代理的最简单模拟&#xff0c; 由前文可知 JDK动态代理需要实现接口&#xff0c;所以…

★543. 二叉树的直径

543. 二叉树的直径 简单题&#xff0c;确实不难。 相当于就是求节点的深度。左孩子的最大深度 右孩子的最大深度 1 根节点深度。 本题要求的就是路径数&#xff0c;这里的路径数 节点数 - 1&#xff0c;然后想一下&#xff0c;对于一个节点来说&#xff0c;以他为根左右两…

数据结构与算法设计分析——NP完全理论

目录 一、P类问题与NP类问题的定义二、常见的NP类问题&#xff08;一&#xff09;旅行商问题&#xff08;TSP&#xff09;&#xff08;二&#xff09;哈密尔顿回路问题&#xff08;三&#xff09;判断回路问题&#xff08;四&#xff09;图的着色问题&#xff08;五&#xff09…

使用AOS实现网页动画效果

在现代Web开发中&#xff0c;动画效果是提升用户体验和页面交互性的重要因素之一。而AOS&#xff08;Animate On Scroll&#xff09;作为一个强大的动画库&#xff0c;可以帮助我们轻松地实现网页元素的滚动动画效果。 什么是AOS&#xff1f; AOS是一个基于CSS3和JavaScript的…

Transformer

目录 Encoder Add&Norm:&#xff08;LayerNorm&#xff09;Transformer中的归一化(五)&#xff1a;Layer Norm的原理和实现 & 为什么Transformer要用LayerNorm - 知乎 (zhihu.com) LayerNorm怎么做的&#xff1f; Feed Forward: FeedForward代码&#xff1a; 公式…

Java Stream流对多个字段动态指定字段排序

Java 8 的 Stream 使用了函数式编程模式,它可以被用来对集合或数组进行链状流式的排序就需要搬出Stream sort方法进行排序,重写其中的Comparator。 本文重点介绍使用Java Stream流排序器Comparator对List集合进行排序的技巧,包括复杂实体对象多字段升降序排序方法。 1为什么…

学习TypeScrip5(函数扩展)

函数的类型 注意&#xff0c;参数不能多传&#xff0c;也不能少传 必须按照约定的类型来 const fn (name: string, age:number): string > {return name age } fn(张三,18) 函数的可选参数? 通过?表示该参数为可选参数 const fn (name: string, age?:number): stri…

Android 12 及以上授权精确位置和模糊位置

请求位置信息权限 为了保护用户隐私&#xff0c;使用位置信息服务的应用必须请求位置权限。 请求位置权限时&#xff0c;请遵循与请求任何其他运行时权限相同的最佳做法。请求位置权限时的一个重要区别在于&#xff0c;系统中包含与位置相关的多项权限。具体请求哪项权限以及…

栈和队列的OJ题——14.用栈实现队列

14.用栈实现队列 232. 用栈实现队列 - 力扣&#xff08;LeetCode&#xff09; /* 解题思路&#xff1a; 此题可以用两个栈实现&#xff0c;一个栈进行入队操作&#xff0c;另一个栈进行出队操作 出队操作&#xff1a; 当出队的栈不为空是&#xff0c;直接进行出栈操作&#xff…

算法通关村第七关—迭代实现二叉树的遍历(黄金)

迭代实现二叉树的遍历 迭代法实现前序遍历 前序遍历是中左右&#xff0c;如果还有左子树就一直向下找。完了之后再返回从最底层逐步向上向右找。不难写出如下代码&#xff1a;&#xff08;注意代码中&#xff0c;空节点不入栈&#xff09; public List<Integer>preorde…

VSCode 中将头文件和头文件函数分离,编译主函数跳出 undefined reference to 的问题解决

VSCode 编写 C &#xff08;.h&#xff0c;.cpp 文件分离&#xff09;代码&#xff0c;编写完成后&#xff0c;编译遇到了编译错误 undefined reference to xxx。 开始还以为使用了 -stdc20 而不能使用 #include “xxx.h" 方式头文件&#xff0c;但仔细一想虽然引入了 im…

前端这个岗位对于整个项目的意义

在软件开发这个领域&#xff0c;开发一款软件就意味着一个项目的诞生&#xff0c;那么&#xff0c;一个项目诞生它包括很多人的共同协作和努力去实现&#xff0c;那么大概包括以下这些步骤&#xff1a; 1.需求分析&#xff1a;这是软件开发的第一步&#xff0c;商务人员和产品…