【论文笔记】Factorizable Graph Convolutional Networks
文章目录
- 1. Abstract
- 2. Method
- 2.1 Disentangling Step
- 2.2 Aggregation Step
- 2.3 Merging Step
- 3. 总体架构
- 4. 超参数的设置
Factorizable Graph Convolutional Networks,FactorGCN,可分解图卷积网络
1. Abstract
在许多真实的图中,节点之间的多个异质关系被混合并折叠成一条边。在社交网络的情况下,两个人可能是朋友、同事和同时生活在同一个城市,但通过单一的边连接,忽略了这种相互联系;在共同购买场景中,产品是由于促销、功能互补等不同原因一起购买的,但在图的构建中往往被忽略。在这些情况下,FactorGCN将提供一个清晰的、可解释的解决方案来解释潜在的基本原理
FactorGCN解离出的每一个子图代表一种潜在的关系,可以理解为只包含一种边类型的图。然后在每个因子分解的潜在空间中分别聚合节点的特征,生成解纠缠的特征,从而提高后续任务的性能。
在合成数据集和真实数据集上对提出的factororgcn进行了定性和定量的评价,并证明了它在分解和特征聚合方面都产生了真正令人鼓舞的结果
过去的Disentangling都在潜在特征生成阶段,尽管在 CNN Disentangling方面有许多先前的努力,但在应用图卷积网络 (GCN) 模型的不规则结构域中进行Disentangling的工作很少。 2019年的Disentangled graph convolutional networks是GNN上的首创,但是只在node-level级别进行邻居分割。
而FactorGCN进行graph-level disentangling,基于卷积特征的聚合。 对节点进行解离分割形成的子图是局部的特征聚合,而对边进行解离,是全局级别的解离,因为每一种类型的都边存在于整个拓扑图中。
图中有的边出现在多个子图中?
FactorGCN 的每一层:大图disentangling为多个子图,每个子图对应一个解开且可解释的关系空间,每个子图经过一个 GCN,各自从disentangled后的每一个潜在空间里聚合特征,然后合并操作,最后将导出的特征连接起来,产生 the final block-wise interpretable features(分块的可解释特征)。
block-wise:对于每一节点的特征,其特征表示是分块的,其中每一块的特征是从对应的因子图中抽取出来,块内不同维度的特征相关性也比较大
Graph-level Disentangling.
Multi-relation Disentangling:多关系解缠,这意味着中心节点可以聚合来自多个关系类型的邻居的信息
Quantitative Evaluation Metric:
网格领域现有的定量评价方法依赖生成模型,如auto-encoder或GAN。然而在不规则区域,不幸的是,最先进的图生成模型只适用于生成小的图或没有特征的大的图。此外,这些模型包含一个连续的生成步骤,使其不可能集成到图解纠缠框架中。为此,我们提出了一个基于图编辑距离的度量,它绕过生成步骤,估计因子图与地面真实之间的相似性。
2. Method
2.1 Disentangling Step
鉴别器被认为是一个三层 GCN,然后是一层 MLP。 输入鉴别器是维数为 F 的节点的变换特征和因子图。 这三层 GCN 的隐藏特征的维度分别设置为 F、F/2 和 F。非线性激活函数是 Tanh,没有使用残差连接。 那么平均池化是应用于生成的节点特征以获得图的特征。 然后将这些特征输入到为每个类生成激活的一层 MLP
输入的大图记为h={h0,h1,…,hn},hi∈RF\mathbf{h}=\left\{h_{0}, h_{1}, \ldots, h_{n}\right\}, h_{i} \in \mathcal{R}^{F}h={h0,h1,…,hn},hi∈RF,e={e0,e1,…,em},ek=(hi,hj)\mathbf{e}=\left\{e_{0}, e_{1}, \ldots, e_{m}\right\}, e_{k}=\left(h_{i}, h_{j}\right)e={e0,e1,…,em},ek=(hi,hj),hhh是点集,eee是边集。
变换后的特征被用来生成因子系数如下:
Eije=1/(1+e−Ψe(hi′,hj′));h′=Wh(1)E_{i j e}=1 /\left(1+e^{-\Psi_{e}\left(h_{i}^{\prime}, h_{j}^{\prime}\right)}\right) ; h^{\prime}=\mathbf{W} h \tag{1} Eije=1/(1+e−Ψe(hi′,hj′));h′=Wh(1)
函数Ψe\Psi_{e}Ψe以节点i和节点j的特征为输入,来计算子图e的边的注意力分数(实现时,采用单层MLP的形式)。
EijeE_{i j e}Eije将注意力分数归一化为[0,1],代表子图eee中从节点iii到节点jjj的边的系。h′h^{\prime}h′是转换后的节点特性,在所有Ψe\Psi_{e}Ψe函数中共享。
与以往大多数基于注意力的GCNs形式不同,我们提出的模型直接生成这些系数作为子图(generates these coefficients directly as the factor graph.)
一旦计算出所有的系数,某一个子图eee就可以用EeE_eEe来表示,它将用于下一个聚合步骤。
然而,在没有其他约束的情况下,生成的一些因子图可能包含类似的结构,降低了模型的解纠缠性能和能力。因此, 在the disentangle layer中加入一个多余的head ,目的是避免生成的因子图的退化
附加head的动机是:
一个disentangled好的子图应该有足够的信息,仅根据其结构就可以与其他的区分开来。但实际上,直接区分是难以实现的,所以 additional head相当于给子图一个唯一的标签,把子图作为一个图分类问题来求解。
我们把additional head称为discriminator(鉴别器):
Ge=Softmax(f(Readout(A(Ee,h′))))(2)G_{e}=\operatorname{Softmax}\left(f\left(\operatorname{Readout}\left(\mathcal{A}\left(\mathbf{E}_{e}, \mathbf{h}^{\prime}\right)\right)\right)\right) \tag{2} Ge=Softmax(f(Readout(A(Ee,h′))))(2)
包含一个三层图自编码器A\mathcal{A}A,以h′h^{\prime}h′和子图EeE_eEe生成的注意系数为输入,生成新的节点特征
Readout读出这些特征以生成整个子图的表示。
在进行图分类的最后一个步骤一般需要一个读出(readout)函数,读出函数的作用是聚合所有的节点获得一个graph-level的表示,用于分类回归等任务。
特征向量将被发送到一个全连接层的分类器。
注意,所有的子图分享相同的节点特征,确保这个鉴别器挖掘的信息是来自于子图结构的不同而不是因为节点的表示不同
训练鉴别器的损失函数是:
Ld=−1N∑iN(∑c=1Ne1e=clog(Gie[c]))(3)\mathcal{L}_{d}=-\frac{1}{N} \sum_{i}^{N}\left(\sum_{c=1}^{N_{e}} \mathbb{1}_{e=c} \log \left(G_{i}^{e}[c]\right)\right) \tag{3} Ld=−N1i∑N(c=1∑Ne1e=clog(Gie[c]))(3)
- NNN为训练样本个数,设为输入图个数乘因子图个数(类别数)(k×kk\times kk×k)
- NeN_eNe为子图种类数(the number of factor graphs)
- GieG_i^eGie是样本iii的分布,Gie[c]G_i^e[c]Gie[c]表示生成的子图有标签c的概率
- 1e=c\mathbb{1}_{e=c}1e=c是一个指标函数,当预测的标签正确时取为1。
2.2 Aggregation Step
唯一的不同,每个子图的聚合都是独立发生的
hi(l+1)e=σ(∑j∈NiEije/cijhj(l)W(l)),cij=(∣Ni∣∣Nj∣)1/2(4)h_{i}^{(l+1) e}=\sigma\left(\sum_{j \in \mathcal{N}_{i}} E_{i j e} / c_{i j} h_{j}^{(l)} \mathbf{W}^{(l)}\right), c_{i j}=\left(\left|\mathcal{N}_{i}\right|\left|\mathcal{N}_{j}\right|\right)^{1 / 2} \tag{4} hi(l+1)e=σ⎝⎛j∈Ni∑Eije/cijhj(l)W(l)⎠⎞,cij=(∣Ni∣∣Nj∣)1/2(4)
$ E_{i j e}就是子图就是子图就是子图e中边中边中边ij的权重系数,的权重系数,的权重系数,c_{ij}是根据节点I和节点j的度计算的归一化项,是根据节点I和节点j的度计算的归一化项,是根据节点I和节点j的度计算的归一化项,W$和Disentangling Step使用的是同一矩阵(注意,尽管我们使用输入图中节点的所有邻居来聚合信息,但如果因子图中相应的系数为零,其中一些邻居就没有贡献)
2.3 Merging Step
hi(l+1)=∥e=1Nehi(l+1)eh_{i}^{(l+1)}=\|_{e=1}^{N_{e}} h_{i}^{(l+1) e} hi(l+1)=∥e=1Nehi(l+1)e
NeN_{e}Ne是子图的个数
3. 总体架构
上面三个步骤组成一个disentangle layer,在实验部分的FactorGCN模型包含了几个disentangle layer,增加了表达能力。此外,该模型通过在不同层中设置不同数量的子图,可以分层分解输入数据。
FactorGCN模型的总losslossloss为L=Lt+λ∗Ld\mathcal{L}=\mathcal{L}_{t}+\lambda * \mathcal{L}_{d}L=Lt+λ∗Ld。Lt\mathcal{L}_{t}Lt是原始任务的损失,Ld\mathcal{L}_{d}Ld是上面提到的鉴别器的损失,λ\lambdaλ是平衡这两种损失的权重。
在这里,我们使用六个数据集来评估所提出方法的有效性。 第一个是包含固定数量的预定义图作为因子图的合成数据集。 第二个是由分子图构建的 ZINC 数据集 [Dwivedi et al., 2020]。 第三个是模式数据集[Dwivedi et al., 2020],这是一个用于节点分类任务的大规模数据集。 其他三个被广泛使用的图分类数据集包括**社交网络(COLLAB,IMDB-B)**和生物信息学图(MUTAG)[Yanardag 和 Vishwanathan,2015]。 为了生成包含 Ne 因子图的合成数据集,我们首先生成 Ne 预定义图,它们是众所周知的图,如 Turán 图、house-x 图和平衡树图。 然后我们选择其中的一半并用孤立的节点填充它们,使节点数为 15。填充后的图将合并在一起作为训练样本。 合成数据的标签是一个二元向量,维度为 Ne。 根据样本生成的图形类型,一半的标签将设置为 1,其余的设置为零。 有关数据集的更多信息可以在补充材料中找到
4. 超参数的设置
当因子图个数不大于4时,隐藏特征的维数设置为32,不大于64。将factororgcn中鉴别器损耗的权重设置为0.5
【论文笔记】Factorizable Graph Convolutional Networks相关推荐
- 论文阅读笔记:Graph Convolutional Networks for Text Classification
Abstract 文本分类作为一个经典的自然语言处理任务,已经有很多利用卷积神经网络进行文本分类的研究,但是利用图卷积神经网络进行研究的仍然较少. 本文基于单词共现和文档单词间的关系构建一个text ...
- 论文阅读 Semantic Graph Convolutional Networks for 3D Human Pose Regression
Semantic Graph Convolutional Networks for 3D Human Pose Regression 使用语义图卷积网络对三维人体姿态进行回归 Abstract 在 ...
- 关于GCN的论文笔记--End-to-end Structure-Aware Convolutional Networks for Knowledge Base Completion
用于知识图谱完成的端到端结构感知卷积网络 论文题目 End-to-end Structure-Aware Convolutional Networks for Knowledge Base Compl ...
- 论文笔记《Fully Convolutional Networks for Semantic Segmentation》
[论文信息] <Fully Convolutional Networks for Semantic Segmentation> CVPR 2015 best paper key word: ...
- 【论文笔记】Region-based Convolutional Networks for Accurate Object Detection and Segmentation
<Region-based Convolutional Networks for Accurate Object Detection and Segmentation>是将卷积神经网络应用 ...
- 论文笔记 Very Deep Convolutional Networks for Large-Scale Visual Recognition - ICLR 2014
VGG Very Deep Convolutional Networks for Large-Scale Visual Recognition Karen Simonyan and Andrew Zi ...
- GNN论文笔记: Graph Neural Networks with convolutional ARMA filters
0 摘要 流行的图神经网络基于多项式谱滤波器实现图的卷积运算. 在本文中,我们提出了一种新的图卷积层,其灵感来自自回归移动平均(ARMA)滤波器. 与多项式滤波器相比,它提供了更灵活的频率响应,更鲁棒 ...
- 「论文翻译」Graph convolutional networks for computational drug development and discovery
briefings in Bioinformatics 2019 (B类) 文章目录 Abstract Introduction Principles of graph convolution App ...
- SGC - Simplifying Graph Convolutional Networks 简化的图卷积网络 论文详解 ICML 2019
文章目录 1 相关介绍 1.1 Simple Graph Convolution (SGC)提出的背景 1.2 SGC效果 2 Simple Graph Convolution 简化的图卷积 2.1 ...
最新文章
- linux 查询内存和核心数,Linux下查看操作系统信息、内存情况及cpu信息:cpu个数、核心数、线程数...
- [asp.net mvc 奇淫巧技] 04 - 你真的会用Action的模型绑定吗?
- python判断语句的复杂度_Python内置方法的时间复杂度(转)
- linux服务器禁止ping和允许ping的方法
- 关于自学的又一点思考
- https阿里云证书购买与apache环境配置
- android listview刷新数据库,android – 如何在数据库更改后刷新ListView?
- 玩转windows XP
- vue transition淡入淡出
- cisco 防火墙模拟器_37、如果手头有华为AP,怎们配合模拟器做部分实验呢?(完结篇)...
- 在线博客系统——文章详情(redis incr自增实现增加阅读数和评论数)
- Python轻松搞定免费语音合成,利用百度AI为短视频配音
- np.arange()和 range()的用法及区别
- 数据结构中的有序和无序
- 皮皮安学习Java第八天
- 揭秘红海云逆势增长的创新密码
- Manjaro安装配置与美化--折腾日记
- ABB AC500 PLC 与西门子 S7-300 CPU DP 通讯
- 软件架构师 第一部分 基础篇 第二章 模块化
- C语言一维波动方程,地震数值模拟毕业设计(31页)-原创力文档