Pointspectrum: Equivariance Meets Laplacian Filtering for Graph Representation Learning

点谱:等价满足拉普拉斯滤波的图表示学习

01 概念

图表示学习(GRL):旨在捕获图的结构信息,并将其与节点和边缘属性结合起来计算低维表示
PointNetST:被用作置换等变神经网络架构。虽然可以做出不同的选择,如深度自我注意网络(Wang等人2018)或(Keriven和Peyré 2019)和(Sannai, Takai,和Cordonnier 2019)的结构,PointNetST是首选的,因为它被证明是等变函数空间上的通用逼近器。

02 要解决什么问题

  1. 图神经网络(GNN)(gnn不仅可以捕获排列等方差,还可以捕获图连通性,这使它们更具表现力)已被用于最先进的GRL架构,但当许多GNN层需要堆叠时,它们已被证明存在过度平滑的问题。
  2. GRL方法中,基于图滤波的谱方法出现了寻址过平滑;
  3. 他们使用的是传统的神经网络,不能有效地利用图数据的结构。

03 用什么方法解决

  1. 点谱(PointSpectrum)通过使用一个图过滤器(拉普拉斯矩阵)来解决平滑问题
  2. 点谱(PointSpectrum)通过集合等变网络来捕获图的结构,这是gnn和谱方法的交集。
    (PointSpectrum,一种GRL架构,它弥合了基于gnn和光谱GRL方法之间的差距(第2节)。PointSpectrum基于拉普拉斯平滑(在光谱方法中用于缓解过平滑问题),同时它保持了基于gnn方法的集合等方差特性。)

04 总体框架

在这里插入图片描述
(i)特征矩阵的拉普拉斯平滑,(ii) PointNetST作为编码器的置换等变神经网络,(iii)与解码器并排的聚类模块
输入:特征矩阵X并得到平滑的特征矩阵¯X 编码器-解码器网络的输入¯X是节点特征矩阵X的korder图卷积,由2.1节中描述的拉普拉斯滤波器H计算。卷积阶k越大,模型能捕捉到的节点间的相互作用越深;K是模型的超参数。
编码器:编码器是置换等变PointNetST,它生成节点嵌入Z,如2.2节所述。嵌入被提供给两个单独的模块:解码器和ClusterNet。
解码器:解码器的目的是在基于¯X的计算节点嵌入之间重建一个成对的相似值。
ClusterNet是一个可区分的集群模块,它学会将节点分配给集群,以便在嵌入空间中更好地分离它们(Wilder et al 2019)。

2.1 Graph Convolution and Laplacian Smoothing(图卷积与拉普拉斯平滑)

这个不再介绍 这个是有关 KDD 2020 Adaptive Graph Encoder for Attributed Graph Embedding 这篇文章的证明了经过精心设计的拉普拉斯矩阵可以实现对设计的滤波器H用作低通滤波器,以对特征矩阵X的高频分量进行去噪

2.2 Equivariance and PointNetST(等方差与PointNetST)

gnn不仅可以捕获排列等方差,还可以捕获图连通性,这使它们更具表现力。然而,这种高度表达带来了过度平滑的问题。在这项工作中,我们的目标是将GRL中使用的两种方法的优点结合起来:我们使用集合等变网络来解释图结构(通过矩阵¯X),同时避免超平滑(拉普拉斯波器2.1中提到的)。这一特性对于本工作的模型在传统神经网络中的流行是至关重要的,这将在第3节中说明。

2.3 PointSpectrum

1、通过置换编码器得到Z后经过decoder可以计算相似值,重构损失函数可以有不同的选择(例如最小平方误差或噪声-对比二元交叉熵。然而,由于在平滑信号中加入了连通性,我们使用一对解码器和负采样的交叉熵作为损失函数:
在这里插入图片描述
其中Ni为节点i的负样本(即不存在的边)。
2、ClusterNet通过优化KL-散度损失函数学习软分配Q的分布

在这里插入图片描述
qij表示节点i属于集群j的概率

总的来说,PointSpectrum优化了以下解码器和ClusterNet的联合损耗

3 Experimental Results

3.2 Efficiency of set equivariance

在这里插入图片描述

1、通过将PointSpectrum体系结构与编码器中的MLP和CNN神经网络的两个变体进行比较,我们研究了使用集合等变网络(PointNetST)和拉普拉斯平滑(¯X)的效率。与MLP和CNN变体相比,PointNetST实现了更高的性能,更健壮(方差更低),并且在卷积顺序方面的波动更小。
2、PointNetST的这种流行表明集合等变网络在与拉普拉斯平滑结合时能够捕获更丰富的信息,并且可能是好的替代其他光谱方法的传统编码器(如DAEGC, AGC, AGE)。
3、还展示了它们还有助于提高训练效率和计算复杂度。描述了在原始PointNetST和MLP/CNN变体的模型训练期间损失函数的值。在损失函数的两个组成部分(重建、聚类)和联合损失中,PointNetST帮助PointSpectrum比MLP/CNN变体更快地收敛。

05 结 论

PointSpectrum是第一个将集合等方差属性(通常是基于gnn的方法的一个属性)引入光谱方法的工作。集合等方差在学习图数据时是很重要的,因为它本质上是为了利用无序数据的性质而设计的。实验结果清楚地证明了在光谱方法中使用的MLP或CNN层上使用集合等变网络(PointNetST)的性能优势。

我们认为PointSpectrum是将集合等方差与拉普拉斯平滑相结合的最初努力(或作为概念证明)。这就是为什么我们对模型架构采用了简单的设计,没有对其模块进行过度工程设计或调优其超参数。

尽管如此,尽管如此简单,我们已经证明PointSpectrum可以在基准数据集中实现最先进的结果。这为我们的方法对其他光谱或更通用的GRL方法的效率、适用性和通用性带来了积极的信息。

06 拓展

特别地,我们认为以下是未来研究的有前途的方向:
扩展:集合等变网络(如DeepSet或PointNetST)可以很容易地引入到现有的光谱方法(如AGC、AGE或DAEGC)中,替换它们使用的MLP或CNN层。一个更具挑战性的方向是将所提出的方法扩展到生成模型,如V AE或GAN架构。

泛化:PointSpectrum即使在数据排列下也表现良好。对其在有噪声、损坏或不可见数据上的推广能力的更深入的理解(实验/理论),可以为在图上使用集合等变方法的机制提供进一步的见解,并引导设计更有效的GRL方法。

统一:PointSpectrum具有模块化设计,集合等变网络接收作为输入的光滑矩阵¯X。如果可能的话,将这两种操作统一到一个组件中(例如,一个新的GNN层),可以同时达到更高的性能和绕过平滑。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。
Go语言(也称为Golang)是由Google开发的一种静态强类型、编译型的编程语言。它旨在成为一门简单、高效、安全和并发的编程语言,特别适用于构建高性能的服务器和分布式系统。以下是Go语言的一些主要特点和优势: 简洁性:Go语言的语法简单直观,易于学习和使用。它避免了复杂的语法特性,如继承、重载等,转而采用组合和接口来实现代码的复用和扩展。 高性能:Go语言具有出色的性能,可以媲美C和C++。它使用静态类型系统和编译型语言的优势,能够生成高效的机器码。 并发性:Go语言内置了对并发的支持,通过轻量级的goroutine和channel机制,可以轻松实现并发编程。这使得Go语言在构建高性能的服务器和分布式系统时具有天然的优势。 安全性:Go语言具有强大的类型系统和内存管理机制,能够减少运行时错误和内存泄漏等问题。它还支持编译时检查,可以在编译阶段就发现潜在的问题。 标准库:Go语言的标准库非常丰富,包含了大量的实用功能和工具,如网络编程、文件操作、加密解密等。这使得开发者可以更加专注于业务逻辑的实现,而无需花费太多时间在底层功能的实现上。 跨平台:Go语言支持多种操作系统和平台,包括Windows、Linux、macOS等。它使用统一的构建系统(如Go Modules),可以轻松地跨平台编译和运行代码。 开源和社区支持:Go语言是开源的,具有庞大的社区支持和丰富的资源。开发者可以通过社区获取帮助、分享经验和学习资料。 总之,Go语言是一种简单、高效、安全、并发的编程语言,特别适用于构建高性能的服务器和分布式系统。如果你正在寻找一种易于学习和使用的编程语言,并且需要处理大量的并发请求和数据,那么Go语言可能是一个不错的选择。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值