论文《Tree Decomposed Graph Neural Network》笔记

news2024/11/26 18:50:02

【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/

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

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

相关文章

简易部署的设备日志采集工具

永久免费: Gitee下载 最新版本 使用说明: Moretl 企业级采集文件工具 优势: A. 开箱即用. 解压直接运行.不需额外安装. B. 批管理设备. 设备配置均在后台管理. C. 无人值守 客户端自启动,自更新. D. 稳定安全. 架构简单,内存占用小,通过授权访问.

OPENCV中0x00007FFE5F35F39C发生异常

原因:读取图片时已经为灰度图像,又进行了一次灰度处理cvtColor 解决方法:如上图所示,将cv::imread的第二个参数改为cv::IMREAD_COLOR;或者保留cv::IMREAD_GRAYSCALE,删去后面的cv::cvtColor

高通安卓12-OTA 升级

1.OTA介绍 OTA 英文全称是 Over-the-Air Technology,即空间下载技术的意思。 OTA 升级是 Android 系统提供的标准软件升级方式。它功能强大,可以无损失升级系统,主 要通过网络[例如 WIFI、3G]自动下载 OTA 升级包、自动升级,但…

仿饿了么加入购物车旋转控件 - 自带闪转腾挪动画 的按钮

, mWidth - mCircleWidth, mHeight - mCircleWidth); canvas.drawRoundRect(rectF, mHintBgRoundValue, mHintBgRoundValue, mHintPaint); //前景文字 mHintPaint.setColor(mHintFgColor); // 计算Baseline绘制的起点X轴坐标 int baseX (int) (mWidth / 2 - mHintPaint.m…

新闻管理与推荐系统Python+Django+协同过滤推荐算法+管理系统

一、介绍 新闻管理与推荐系统。本系统使用Python作为主要开发语言开发的一个新闻管理与推荐的网站平台。 网站前端界面采用HTML、CSS、BootStrap等技术搭建界面。后端采用Django框架处理用户的逻辑请求,并将用户的相关行为数据保存在数据库中。通过Ajax技术实现前后…

mayavi pyqt 实例

目录 安装: 示例代码: 生成3d检测框: 安装: pip install pyqt5 mayavi traits traitsui 示例代码: import sys from PyQt5.QtWidgets import QApplication, QMainWindow, QVBoxLayout, QWidget, QPushButton from …

区块链中nonce是什么,什么作用

目录 区块链中nonce是什么,什么作用 区块链中nonce是什么,什么作用 Nonce在以太坊中是一个用于确保交易顺序性和唯一性的重要参数。以下是对Nonce的详细解释: 定义 Nonce是一个scalar值,它等于从该地址发送的交易数量,或在具有关联代码的账户的情况下,由该账户创建的合…

【Flutter 专题】112 图解自定义 ACEPieWidget 饼状图 (一)

类别选项球;切割绘制饼状图;饼状图中绘制文字; 1. 类别选项球 对于两侧不同颜色类别选项卡,仅需要简单设置一下 Container 的 decoration 装饰器即可,只是方便用户查看饼状图分类而已; return Container…

不用写一行代码,deepseek结合腾讯云语音识别来批量转录Mp3音频

首先,打开window系统中的cmd命令行工具,或者powershell,安装腾讯云tencentcloud的Python库 pip install -i https://mirrors.tencent.com/pypi/simple/ --upgrade tencentcloud-sdk-python 然后,开通腾讯云的对象存储COS服务&…

【小沐学AI】Python实现语音识别(Whisper-Web)

文章目录 1、简介2、下载2.1 openai-whisper2.2 whisper-web 结语 1、简介 https://openai.com/index/whisper/ Whisper 是一种自动语音识别 (ASR) 系统,经过 680,000 小时的多语言和多任务监督数据的训练,从网络上收集。我们表…

【大数据 复习】第8章 Hadoop架构再探讨

一、概念 1.Hadoop1.0的核心组件(仅指MapReduce和HDFS,不包括Hadoop生态系统内的Pig、Hive、HBase等其他组件),主要存在以下不足: (1)抽象层次低,需人工编码 (2&#xf…

Docker常用命令与实战示例

docker 1. 安装2. 常用命令3. 存储4. 网络5. redis主从复制示例6. wordpress示例7. DockerFile8. 一键安装超多中间件(compose) 1. 安装 以centOS系统为例 # 移除旧版本docker sudo yum remove docker \docker-client \docker-client-latest \docker-c…

AI时代的音乐革命:创作更简单,灵魂在哪里?

#AI在创造还是毁掉音乐# 我是李涛,一名音乐创作者,最近一直在思考一个问题:AI到底是在创造音乐,还是在毁掉音乐? 几个月前,我第一次接触到AI音乐创作工具。它让我震惊,只需要输入几个关键词&a…

数据结构7---图

一、定义 对于图的定义,我们需要明确几个注意的地方:一线性表中我们把数据元素叫元素,树中叫结点,在途中数据元素我们则称之为顶点(Vertex)。 对于图的定义,我们需要明确几个注意的地方: 线性表中我们把数据元素叫元素&#xf…

实现文件分片合并功能并使用Github Actions自动编译Release

一、编译IOS镜像 1.1 编译 起因是公司电脑使用的Win11 23H2的预览版,这个预览版系统的生命周期只到2024-09-18,到期后就会强制每两小时重启。这是Windows强制升级系统的一种手段。 虽然公司里的台式电脑目前用不到,但是里面还保留许多旧项…

Jenkins定时构建自动化(一):Jenkins下载安装配置

目录 ​编辑 一、jdk下载安装 1. 已下载安装jdk 2. 未下载安装jdk 二、jenkins安装 1. .war包安装 三、获取IP地址 四、jenkins网页配置 一、jdk下载安装 1. 已下载安装jdk (1)查询jdk版本命令:java -version (2)…

[SAP ABAP] 运算符

1.算数运算符 算术运算符描述加法-减法*乘法/除法MOD取余 示例1 输出结果: 输出结果: 2.比较运算符 比较运算符描述示例 等于 A B A EQ B <> 不等于 A <> B A NE B >大于 A > B A GT B <小于 A < B A LT B >大于或等于 A > B A GE B <小…

Html去除a标签的默认样式

Html去除a标签的默认样式, a标签超链接字体默认蓝色带下划线; 去除可用: a{text-decoration:none;color:inherit;cursor:auto; }测试代码 <!DOCTYPE html> <html lang"zh-CN" dir"ltr"><head><meta charset"utf-8"/>&…

【开发12年码农教你】Android端简单易用的SPI框架-——-SPA

Service(priority 1) public class APrinterService implements IPrinterService { Override public void print() { System.out.println(“this is a printer service.”); } } 复制代码 B模块 —— BPrinterService Service(path“b_printer”, priority 2) public class…

微积分-导数1(导数与变化率)

切线 要求与曲线 C C C相切于 P ( a , f ( a ) ) P(a, f(a)) P(a,f(a))点的切线&#xff0c;我们可以在曲线上找到与之相近的一点 Q ( x , f ( x ) ) Q(x, f(x)) Q(x,f(x))&#xff0c;然后求出割线 P Q PQ PQ的斜率&#xff1a; m P Q f ( x ) − f ( a ) x − a m_{PQ} \…