Abstract
存在的问题:现有的图结构数据的深度学习方法忽略了潜在因素的纠缠,使得学习到的表示不鲁棒,难以解释。
提出的方法:我们引入了解耦图卷积网络(DisenGCN)来学习解耦节点的表示。特别地,我们提出了一种新的邻域路由机制,它能够动态地识别可能导致节点与其邻居之间的边缘的潜在因素,并相应地将邻居分配给一个通道,该通道提取和卷积特定于该因素的特征。从理论上证明了该路由机制的收敛性。
Introduction
详细介绍存在的问题:但现有的图神经网络通常采用整体的表示学习方法:学习节点的表示将节点的邻域描述为一个感知整体,而忽略了邻域不同部分之间的细微差别。然而,一个真实世界的图的形成通常遵循一个复杂和异构的过程,由许多潜在因素的相互作用驱动。例如,一个社交网络中的一个人通常因为各种原因(如工作、学校)与他人联系,因此拥有一个由几个不同组成部分组成的社区。现有的整体方法未能认识到和理清异质性因素。因此,他们学习到的表征可能是非稳健的(例如,容易对一个不相关的因素反应过度),而且难以解释。
详细介绍提出的方法:在本文中,我们提出了解耦图卷积网络(DisenGCN),这是一个端到端深度模型,它解决了上述挑战并学习解耦节点表示。DisenGCN的关键成分是DisenConv,这是一个解耦的多通道卷积层。我们提出了一种新的邻域路由机制,该机制在DisenConv中执行,以识别可能导致给定节点到相邻节点的因素,并相应地将邻居发送到负责该因素的信道。该机制通过迭代分析节点及其邻居形成的潜在子空间簇,并将其投影到多个子空间中,从而推断出潜在因素。然后,DisenConv的每个通道从其接收到的邻居中提取特定于其中一个解耦因子的特征,并独立地执行卷积操作。邻域路由机制纯粹由可微模块组成。此外,它只需要来自局部邻域的信息,这使得我们可以将DisenConv表示为从邻域到节点表示的映射,因此可以支持归纳学习。通过叠加多个DisenConv层,DisenGCN能够提取局部邻域之外的信息。
本文的贡献如下:
- 我们提出了DisenGCN,一种新的图神经网络,学习解耦节点表示。
- 我们提出邻域路由,以推断每条边的形成背后的因素,以一种可微的方式和支持归纳学习。
- 我们从理论上分析了邻域路由的收敛性,并通过实证证明了学习解耦表示的优点。
因为看过了RGCF,这里着重介绍一下方法
Method
在本节中,我们首先介绍了DisenConv层,然后描述了DisenGCN的整体网络体系结构。
我们的目标是推导出一层f(·),这样输出的yu就会是一个解耦的表示。具体来说,我们希望你由K个独立分量组成,也就是\(\mathbf{y}_u=[\mathbf{c}_1,\mathbf{c}_2,\ldots,\mathbf{c}_K],\text{where c}_k\in\mathbb{R}^{\frac{d_{out}}{K}}(1\leq k\leq K),\)
假设有K个潜在的因素需要被解耦。第k个分量ck用于描述节点u中与因子k相关的方面。关键的挑战是识别由于因子k并且由节点u实际连接的邻居子集,以便更准确地描述节点u的第k个方面。
DisenConv Layer
设xu为输入,yu=[c1,c2...,ck]为输出,ck表示节点u的第k个方面
DisenConv由K个通道组成。我们认为ck是第k个通道的最终输出。我们首先假设当给定单个节点i时,K通道可以提取不同的特征,通过将特征向量xi投影到不同的子空间:
\[\mathbf{z}_{i,k}=\frac{\sigma(\mathbf{W}_k^\top\mathbf{x}_i+\mathbf{b}_k)}{\left\|\sigma(\mathbf{W}_k^\top\mathbf{x}_i+\mathbf{b}_k)\right\|_2}, \]然而,特征向量xi在现实世界中通常是不完整的,例如,用户可能会阅读,但从未发布任何东西。因此,我们不能直接使用\(z_{u,k}\)作为输入节点u的ck。为了全面捕获节点u的各个方面k,我们需要从邻域中挖掘信息,即从\(z_{u,k}\)和\(\{\mathbf{z}_{v,k}:(u,v)\in G\}\)中构造ck。
这里的关键见解是,我们在构造ck时不应该使用所有的邻居来描述节点u的方面k。具体来说,由于因子k,我们应该只使用实际与节点u连接的邻居。挑战在于设计一种机制来推断由于因子k而由节点u连接的邻居的子集。
因此,我们提出了邻域路由机制,它是基于两个合理的假设。第一个假设侧重于邻居之间的关系:
假设1:因子k很可能是节点u与其邻居的某个子集连接的原因,如果该子集很大,并且该子集中的邻居是关于k方面相似的,即它们在第k个子空间中形成一个簇。
第一个假设激励我们在从原始特征空间投射的K子空间中寻找最大的聚类。这个假设在xu有噪声或不完整的情况下是稳健的,因为不涉及xu。此外,在寻找大簇时,缺乏因子k信息的邻居将被自动修剪,因为它们的投影特征\(z_{vk}\)将是噪声,不会形成足够大的簇。
另一方面,第二个假设主要关注节点u与其一个相邻节点之间的关系:
假设二:因子k很可能是节点u和邻居v连接的原因,如果这两者在方面k方面是相似的
第二个假设表明,\(\mathbf{z}_{u,k}^\top\mathbf{z}_{v,k}\)可以提供u和v之间边后面的因子的提示,只要xu和xv包含足够的关于因子k的信息,它计算快速且有效。
假设2提供的提示,虽然计算效率高,但当xu或xv缺乏关于因子k的信息时,可能会产生误导。因此,我们需要通过将其与假设1相结合来缓解这个问题。同时,假设1需要一个聚类过程,这通常涉及到许多迭代。假设2可以作为一个强前指导聚类,以实现快速收敛。因此,我们提出了基于假设1和假设2的邻域路由机制。
设\(p_{v,k}\)是由u到达v在因子k下的概率,那么应该满足:
\(p_{v,k}~\geq~0~\mathrm{and}~\sum_{k^{\prime}=1}^{K}p_{v,k^{\prime}}~=~1.\)
那么\(p_{v,k}\)也是我们用邻域v来构造ck的概率,邻域路由机制将迭代推断\(p_{v,k}\)并构造ck。在假设二的激发下:初始化\(p_{v,k}\)为:\(p_{v,k}^{(1)}\propto\exp(\mathbf{z}_{v,k}^\top\mathbf{z}_{u,k}/\tau)\) 在假设一的激发下,迭代搜索每个子空间中最大的簇,约束每个子空间中的最大簇:
我们可以在这里将ck视为每个子空间簇的中心。假设2不仅用于初始化,而且在每次迭代中也被用作先验,以确保快速收敛。
网络结构
在本小节中,我们将描述用于执行节点相关任务的DisenGCN的整体网络体系结构。
在实践中,可能希望叠加多个DisenConv层。首先,这允许我们在生成节点的表示时挖掘局部邻域之外的信息。例如,我们可以利用邻居的邻居,以及两个邻居之间的边,通过叠加两个双连续层。其次,我们可以通过逐步减少后面一层的通道数量来学习层次表示。
设\(f^{l}(\cdot)\)为第l层的DisenConv层,\(y_u^{(l)}\)为第l层的输出,这里K (l)是第l层使用的通道数。我们保持一个通道的输出维度∆d,另外,我们还施加了约束条件K (1)≥K (2))≥……≥K (L)。使用ReLU作为方程1中的激活函数。然后,第l层的输出可以表示为
\(\mathbf{y}_u^{(l)}=\text{dropout}\left(f^{(l)}\left(\mathbf{y}_u^{(l-1)},\{\mathbf{y}_v^{(l-1)}:(u,v)\in G\}\right)\right)\)
标签:mathbf,假设,论文,邻域,笔记,邻居,DisenConv,节点,DisenGCN From: https://www.cnblogs.com/anewpro-techshare/p/18074086