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