论文《Tree Decomposed Graph Neural Network》笔记

【TDGNN】本文提出了一种树分解方法来解决不同层邻域之间的特征平滑问题,增加了网络层配置的灵活性。通过图扩散过程表征了多跳依赖性(multi-hop dependency),构建了TDGNN模型,该模型可以灵活地结合大感受场的信息,并利用多跳依赖性进行信息聚合。

本文发表在2021年CIKM会议上,作者学校:Vanderbilt University,引用量:59。

CIKM会议简介:全称Conference on Information and Knowledge Management(信息与知识管理国际会议),信息检索和数据挖掘的顶级国际学术会议之一,由美国计算机协会(ACM)主办,CCF B。

查询会议:

  • 会伴:https://www.myhuiban.com/

  • CCF deadline:https://ccfddl.github.io/

原文和开源代码链接:

  • paper原文:https://arxiv.org/abs/2108.11022
  • 开源代码:https://github.com/YuWVandy/TDGNN

0、核心内容

问题背景:传统的GNNs通过迭代地进行特征传播和转换来学习更好的表示,但这种迭代传播限制了高层邻域信息与低层邻域信息的融合,导致不同层之间特征平滑,尤其在异配性网络上影响性能。

主要贡献:

  • 提出了一种树分解方法来解决不同层邻域之间的特征平滑问题,增加了网络层配置的灵活性。
  • 通过图扩散过程表征了多跳依赖性(multi-hop dependency),构建了TDGNN模型,该模型可以灵活地结合大感受场的信息,并利用多跳依赖性进行信息聚合。
  • 在同配性和异配性网络的多种节点分类设置下,通过广泛的实验验证了TDGNN的优越性能。
  • 进行了参数分析,强调了TDGNN防止过平滑和结合浅层特征与深层多跳依赖性的能力。

方法介绍:

  • 树分解(Tree Decomposition):通过分解计算图来避免不同层邻域之间的特征平滑。
  • 多跳依赖性(Multi-hop Dependency):利用图扩散过程来模拟节点间的多跳依赖性。
  • TDGNN框架:结合树分解和图扩散,提出了TDGNN模型,该模型有两种变体:TDGNN-s(直接将各层表示相加)和TDGNN-w(为每层分配可学习的权重并自适应地组合节点表示)。

实验:在多个真实世界的数据集上进行了广泛的节点分类实验,包括半监督和全监督设置,证明了TDGNN模型相比现有方法的优越性。

参数分析:通过改变使用的邻域层数和多跳依赖性的长度,分析了这些参数对TDGNN性能的影响。

相关工作:讨论了与TDGNN相关的其他工作,包括解决GNNs中过平滑问题的方法和应用于异配图的方法。

结论与未来工作:论文总结了TDGNN的主要贡献,并提出了未来的研究方向,包括开发节点自适应层聚合机制和利用自监督学习来预训练模型。

1、先验知识
① 什么是多跳依赖性(multi-hop dependency)?

多跳依赖性是图神经网络中的一个概念,指的是网络中两个节点通过至少一条长度为特定跳数的简单路径相互连接的关系。在图数据结构中,节点间的直接连接通常表示为一跳依赖(即两个节点通过一条边直接相连)。而多跳依赖则涉及通过多个节点和边间接连接的节点对。

  • 一跳依赖:如果两个节点通过一条边直接相连,它们之间存在一跳依赖。
  • **多跳依赖:如果两个节点通过至少一条长度大于1的路径相连,它们之间存在多跳依赖。**例如,节点A通过至少一条长度为2的路径(即经过至少一个中间节点)到达节点B,那么它们之间存在二跳依赖。

在本文提到的TDGNN模型中,多跳依赖性是通过图扩散过程来建模的。这个过程考虑了从某个节点到其他所有节点的路径,不仅仅是直接相连的邻居节点,还包括通过更长路径可达的节点。这样做的目的是捕捉节点间的间接关系,这些关系对于理解图中的结构和进行有效的节点表示学习是非常重要的。

在TDGNN中,多跳依赖性通过以下方式形式化:

  • 使用图扩散矩阵 A k A_k Ak来表示第 k k k跳的依赖性,其中矩阵的每个元素 A k i j A_{k_{ij}} Akij衡量了长度为 k k k的路径在从节点 i i i到节点 j j j传播特征时的强度。
  • 通过将所有 A k A_k Ak矩阵相加,可以计算出从节点 i i i到节点 j j j通过不同长度路径的总依赖性。

通过这种方式,TDGNN能够更全面地利用图中的局部和全局信息,从而提高节点分类等任务的性能。

② 什么是图扩散(Graph Diffusion)?

**图扩散是一种在图结构数据上进行信息传播的机制,它模拟了在图中从一个节点到另一个节点的信息流动过程。**这种机制在图神经网络中非常重要,因为它允许节点通过边来接收来自其邻居节点的信息,并且可以扩展到更远的邻居。

在图扩散的过程中,每个节点会收集来自其邻居的信息,并将这些信息与其自身的信息结合起来更新自己的状态。这个过程可以迭代地进行,每经过一轮迭代,节点的状态就会更新一次,从而逐渐融合来自更远邻居的信息。图扩散通常包括以下几个关键步骤:

  • 初始化:每个节点通常以其特征向量开始,这些特征向量可以是节点的初始属性或者从数据集中获得。
  • 信息传播:在每一轮扩散中,节点收集来自其直接邻居的信息。这可以通过多种方式实现,例如通过加权求和、平均或者应用特定的聚合函数。
  • 更新规则:节点根据收集到的信息更新自己的状态。这通常涉及到一个可学习的转换函数,如神经网络层。
  • 迭代过程:这个过程可以迭代进行,直到满足一定的停止条件,例如达到预定的迭代次数或状态更新不再显著。
  • 多跳依赖性建模:图扩散可以捕捉多跳依赖性,即节点间的间接连接。通过考虑更长的路径,图扩散可以模拟节点间的间接影响。

在TDGNN中,图扩散用于计算多跳依赖性,这是通过构建一个图扩散矩阵来实现的,该矩阵的每个元素表示在特定跳数下从一个节点到另一个节点的路径的强度。通过这种方式,TDGNN能够模拟和利用节点间的间接关系,从而提高学习到的节点表示的质量。

图扩散的过程可以形式化为一个矩阵乘法过程,其中邻接矩阵 A A A表示图中的边,节点特征矩阵 X X X表示节点的特征,通过连续乘以 A A A的幂来模拟不同跳数的信息传播。这种方法允许GNNs捕捉到图中的长距离依赖性,这对于理解和预测图中的复杂模式是非常有用的。

2、TDGNN框架&原理

整个框架如图3所示,它有三个主要组成部分:树分解来处理不同邻域层之间的特征平滑,图扩散来建模多跳依赖关系,以及聚合来组合不同层的表示。

在这里插入图片描述

① Tree Decomposition

在图1中,我们展示了Cora和Texas数据集中不同邻域层的同质性水平。

在这里插入图片描述

图1观察:在Cora数据集中,较低层的同配性较高,这意味着在这些层中传播节点特征可以融合同一类别的节点嵌入,从而使得不同类别的节点嵌入更容易区分。然而,随着层数的增加,同配性水平逐渐降低,这可能导致在更高层的邻域中传播特征时发生特征平滑,影响模型性能。相反,在Texas数据集中,由于其强烈的异配性,低层邻域中的节点特征传播可能会导致不同类别的节点嵌入混合,使得节点难以区分,从而导致学习到的节点表示性能较差。

这些观察结果为TDGNN的设计提供了动机,即通过树分解方法解耦不同层的邻域信息,并通过图扩散过程来模拟多跳依赖性,以提高GNNs在异配网络和同配网络上的性能。(老生常谈了……)

图2:展示了树分解的可视化例子,其中中心节点的邻域被分解成不同层级的子图,并直接与中心节点相连。这样,高层邻域的特征可以直接传播到中心节点,而不受底层邻域的干扰。(想法不错,我就知道CIKM不会让我失望。)

在这里插入图片描述

② Multi-hop dependency

这一部分讨论了图神经网络中的多跳依赖问题,并提出了一种通过图扩散过程来建模多跳依赖性的方法。

多跳依赖性的定义:首先定义了多跳依赖性,如果网络中的两个节点通过至少一条长度为某个跳数的简单路径相连,则它们之间存在多跳依赖性。例如,两个节点之间存在2跳依赖性,如果它们通过至少一条长度为2的路径相连。

特征平滑问题:本文指出,尽管树分解方法可以避免不同层之间特征平滑的问题,但同时也可能丢失了原始迭代传播中捕获的多跳依赖性,这可能导致过平滑。例如在图2中,节点 v 2 v_2 v2的特征可以沿着 v 2 − > v 1 v_2->v_1 v2>v1传播,也可以沿着 v 2 − > v 5 − > v 6 − > v 3 − > v 1 v_2->v_5->v_6->v_3->v_1 v2>v5>v6>v3>v1传播到 v 1 v_1 v1。而在树分解后,节点 v 2 v_2 v2的特征沿着 v 2 − > v 1 v_2->v_1 v2>v1传播成为了唯一方法。

图扩散模型:为了解决这个问题,作者提出了使用图扩散来模拟多跳依赖性。图扩散是一种考虑节点间不同长度路径影响的过程,可以捕捉节点间的间接关系。

图扩散矩阵:论文引入了图扩散矩阵 A k A_k Ak来表示第 k k k跳的依赖性,其中 A k A_k Ak的每个元素 A k i j A_{k_{ij}} Akij衡量了长度为 k k k的路径在从节点 i i i到节点 j j j传播特征时的强度。

多跳依赖性聚合:通过将所有的 A k A_k Ak矩阵相加,可以计算出从节点 i i i到节点 j j j通过不同长度路径的总依赖性,这可以作为分解后子图中传播特征的边权重。

灵活性和适应性:通过图扩散建模多跳依赖性,TDGNN模型能够灵活地选择有效的感受野(receptive field),并根据特定网络生成自适应的节点表示。

与现有工作的关联:论文还讨论了多跳依赖性与现有工作的关系,特别是与注意力机制和图卷积网络中的混合传播规则的关联。

这一部分强调了在GNNs中考虑多跳依赖性的重要性,并提出了一种新的图扩散方法来建模这种依赖性,从而提高了模型对节点间复杂关系的捕捉能力,并有助于解决过平滑问题。

③ Tree Decomposed Graph Neural Network(TDGNN)

结合树分解和图扩散的概念,作者提出了TDGNN模型。这个模型旨在解决GNNs中的两个主要挑战:不同层邻域之间的特征平滑问题和多跳依赖的缺失。

TDGNN的组件:TDGNN主要由三个主要部分组成——

  • 树分解:用于处理不同邻域层之间的特征平滑问题。
  • 图扩散:用于模拟多跳依赖性。
  • 聚合机制:用于组合不同层的节点表示。

数学公式:

在这里插入图片描述

其中,初始节点表示 H 0 H^0 H0的计算,通过在原始特征矩阵 X X X上应用多层感知机(MLP);通过树分解计算每层的邻接矩阵 T k T^k Tk;利用图扩散计算多跳依赖性 E k , K E^{k,K} Ek,K;传播初始节点表示 H 0 H^0 H0以获得每层的表示 H k H^k Hk

聚合机制:

  • TDGNN-s:直接将所有层的表示相加。
  • TDGNN-w:为每层分配可学习的权重,并自适应地组合每层的节点表示。

最终表示:通过聚合机制得到的最终节点表示 Z Z Z,用于计算所有标记节点的交叉熵损失。

3、实验
① 数据集

在这里插入图片描述

② 同配图上半监督节点分类任务的分类精度

在这里插入图片描述

③ 8个数据集上全监督节点分类任务的分类精度

在这里插入图片描述

4、启发&心得
① 异配图神经网络的挑战

异配图神经网络的挑战在于:过平滑问题和多跳依赖问题之间的平衡。

  • 过平滑问题:GCN层数过多,学习到了更远距离的节点信息,但是会导致过平滑问题,使所有节点聚合后的特征相似,以至于无法区分。
  • 多跳依赖问题:GCN层数过少,只适合同配图,丢失了远距离的节点信息,在异配图上性能较差。

现在大部分工作其实在解决的就是这两个挑战,提出平衡这两个问题的解决办法。

② 如何理解树分解和多跳依赖性?

简单地理解,树分解就是将中心节点的每一层邻域解耦,而多跳依赖则是对每一层邻域赋予权重,防止对每一层邻域的重视程度一样导致的过平滑问题。

在考虑异配图的对抗攻击方法的时候,我们也想过这样一个思路,先找出中心节点的每一层邻域中那一层邻域对中心节点的预测结果影响最大,然后再找到这一层中对中心节点的预测结果影响最大的前几个节点。

③ 本文值得参考的地方

论文思路很清晰,写的不错,包装的很好,哈哈哈。

本文从消息传递的角度来解耦每一层邻域的信息,角度很新。

5、参考资料
  • kimi:https://kimi.moonshot.cn/

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

接口性能优化方法总结

接口性能优化是后端开发人员经常碰到的一道面试题,因为它是一个跟开发语言无关的公共问题。 这个问题既可以很简单,也可以相当复杂。 导致接口性能问题的原因多种多样,不同项目的不同接口,其原因可能各不相同。 下面列举几种常…

Codeforces Round 953 (Div. 2) A~F

A.Alice and Books(思维) 题意: 爱丽丝有 n n n本书。第 1 1 1本书包含 a 1 a_1 a1​页,第 2 2 2本书包含 a 2 a_2 a2​页, … \ldots …第 n n n本书包含 a n a_n an​页。爱丽丝的操作如下: 她把所有的…

Web3设计风格的特点和趋势

Web3的设计风格正随着区块链技术和去中心化理念的兴起而逐渐形成自己的特色。Web3的设计风格反映了这一新兴领域的创新精神和对个性化、社区驱动的重视。随着技术的发展和用户需求的变化,Web3的设计风格预计将继续演进。以下是一些Web3设计风格的特点和趋势。北京木…

【启明智显产品介绍】工业级HMI芯片Model3C详解(二)图像显示

Model3C芯片国产自主的工业级高清显示与智能控制 MCU,配备强大的 2D 图形加速处理器、PNG/JPEG 解码引擎,可以满足多种交互设计场景和多媒体互动需求,具备高可靠性、高开放性,可广泛应用于工业自动化控制、HMI人机交互、串口屏、智…

Python低溫半导体电子束量子波算法计算

🎯要点 🎯任意维度求解器,绘制三维投影结果 | 🎯解二维静电场、静磁场 | 🎯狄利克雷、诺依曼条件几何矩阵算子 | 🎯算法模拟低溫半导体材料 | 🎯计算曲面达西流 | 🎯电子结构计算和…

深入探索 Gradle 自动化构建技术(六、Gradle 插件平台化框架 ByteX 探秘之旅)

public void test1(){ //1. Collection 提供了两个方法 stream() 与 parallelStream() List list new ArrayList<>(); Stream stream list.stream(); //获取一个顺序流 Stream parallelStream list.parallelStream(); //获取一个并行流 //2. 通过 Arrays 中的 stream…

使用Spring Boot构建全栈应用程序:从理论到实践

文章目录 引言第一章 项目初始化1.1 使用Spring Initializr生成项目1.2 创建基本项目结构 第二章 后端服务开发2.1 定义实体类2.2 创建Repository接口2.3 实现Service类2.4 创建Controller类 第三章 前端集成3.1 使用Thymeleaf模板引擎3.2 创建前端控制器 第四章 安全配置4.1 S…

AcWing算法基础课笔记——求组合数4

求组合数Ⅳ 用来解决求 C a b C_a^b Cab​的问题&#xff08;没有模运算&#xff09; 解决办法&#xff1a;分解质因数&#xff0c;实现高精度乘法。 C a b a ! b ! ( a − b ) ! C_a^b \frac{a!}{b!(a - b)!} Cab​b!(a−b)!a!​ 其中 a ! a! a!可以用 p p p的倍数来表示…

Linux中web集群-nginx负载均衡及案例

概述 代理&#xff1a;外卖&#xff0c;中介&#xff0c;中间商&#xff0c;用户无法直接做事情&#xff0c;通过中介进行处理 用户–》代理–》节点&#xff0c;后面只有一个节点&#xff0c;一般使用的是nginx代理功能即可&#xff0c;如果是集群就需要使用nginx负载均衡 …

世界名著精选,免费!精选了数百本世界名著,打包带走!

世界名著精选是一款汇集了全球经典文学作品的电子书阅读软件。是一个旨在让经典文学作品更易于接触和阅读的平台。它不仅收录了世界各地的经典名著&#xff0c;还通过现代技术手段&#xff0c;让阅读变得更加便捷和个性化。 软件链接&#xff1a;免费&#xff01;几百种资源&a…

【数据结构与算法】图论 详解

何为完全图、稀疏图、稠密图。 完全图&#xff1a;完全图是一种简单的无向图&#xff0c;其中每对不同的顶点之间都恰好有一条边。对于有n个顶点的完全图&#xff0c;它包含n(n-1)/2条边。在有向图中&#xff0c;如果任意两个顶点之间都存在方向相反的两条边&#xff0c;包含n(…

OA流程节点超时功能

在OA系统中&#xff0c;节点超时功能是一个关键的技术特性&#xff0c;它能够确保流程的顺畅进行&#xff0c;避免任务因为个别环节的延误而影响整体进度。本文将探讨OA系统中节点超时功能的技术实现和优化策略。 参考泛微OA ecology E9 前台设置&#xff1a; 系统管理员在管…

2000年 - 2022年 Fama-French三因子模型数据+代码

Fama-French三因子模型是由著名经济学家尤金法玛&#xff08;Eugene Fama&#xff09;和肯尼斯法兰奇&#xff08;Kenneth French&#xff09;提出的&#xff0c;旨在改进资本资产定价模型&#xff08;CAPM&#xff09;&#xff0c;更全面地解释资产收益率的变化。该模型认为&a…

pytest测试框架pytest-rerunfailures插件重试失败用例

Pytest提供了丰富的插件来扩展其功能&#xff0c;介绍下插件pytest-rerunfailures &#xff0c;用于在测试用例失败时自动重新运行这些测试用例。 pytest-rerunfailures官方显示的python和pytest版本限制&#xff1a; Python 3.8pytest 7.2 或更新版本 此插件可以通过以下可…

CentOS 7 内核 3.10 升级 6.5.2 (RPM 直装 + 源码编译)

方案一 直接基于 RPM 在线升级&#xff08;简单&#xff0c;速度快&#xff09; rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm -y # &#xff08;选项一&#xff09;升级最新版内…

【GD32】从零开始学兆易创新32位微处理器——RTC实时时钟+日历例程

1 简介 RTC实时时钟顾名思义作用和墙上挂的时钟差不多&#xff0c;都是用于记录时间和日历&#xff0c;同时也有闹钟的功能。从硬件实现上来说&#xff0c;其实它就是一个特殊的计时器&#xff0c;它内部有一个32位的寄存器用于计时。RTC在低功耗应用中可以说相当重要&#xf…

Linux操作系统段式存储管理、 段页式存储管理

1、段式存储管理 1.1分段 进程的地址空间&#xff1a;按照程序自身的逻辑关系划分为若干个段&#xff0c;每个段都有一个段名&#xff08;在低级语言中&#xff0c;程序员使用段名来编程&#xff09;&#xff0c;每段从0开始编址。内存分配规则&#xff1a;以段为单位进行分配…

Redis-事务-watch-unwatch

文章目录 1、监视key2、提交事务 1、监视key 打开两个窗口&#xff0c;第一个窗口先监视key&#xff0c;然后开始事务&#xff0c;然后再打开第二个窗口&#xff0c;修改balance为0 2、提交事务 此时事务被打断

分布式定时任务系列10:XXL-job源码分析之路由策略

传送门 分布式定时任务系列1&#xff1a;XXL-job安装 分布式定时任务系列2&#xff1a;XXL-job使用 分布式定时任务系列3&#xff1a;任务执行引擎设计 分布式定时任务系列4&#xff1a;任务执行引擎设计续 分布式定时任务系列5&#xff1a;XXL-job中blockingQueue的应用 …

【深度学习驱动流体力学】计算流体力学算例剖析与实现

目录 一.求解器分类汇总压缩性流动求解器(Compressible Flow Solvers):不可压缩流动求解器(Incompressible Flow Solvers):多相流动求解器(Multiphase Flow Solvers):热传递求解器(Heat Transfer Solvers):其他特殊求解器:其他常见求解器:求解器分类:二.求解器案…