| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 人工智能 -> 【论文翻译】GCN-Semi-Supervised Classification with Graph Convolutional Networks(ICLR) -> 正文阅读 |
|
[人工智能]【论文翻译】GCN-Semi-Supervised Classification with Graph Convolutional Networks(ICLR) |
学习总结
文章目录
零、Abstract本文提出一种具有可扩展性的用于图数据结构的半监督学习的方法。我们通过谱图卷积(spectral graph convolution)的局部一阶近似(localized first-order approximation),方便确定选择我们的卷积结构。GCN模型的规模会随着图中边的数量的增长而线性增长。GCN能够学习编码局部图结构和节点特征的隐藏层表示。在引文数据集和知识图数据集上的多次实验表明,本文的方法明显优于该领域的相关方法。 一、Introduction基于图的半监督学习:给定的图结构的数据中,只有少部分节点是有标记(label)的,任务就是预测出未标记节点的label。 1.1 经典的分类方法(1)Standard Approach基于平滑正则(假设相邻的节点具有相似的label) (2)Embedding-based Approach1)学习每个节点的embedding
1.2 本文的工作
1.3 数学符号说明:
二、Fast approximate convolutions on graphs经过作者的一系列推导(下文会讲过程),得到了图卷积神经网络的(单层)最终形式:
2.1 Spectral graph convolutions(1)谱图卷积网络一开始我们考虑信号
x
∈
R
N
x∈\mathbb{R}^N
x∈RN(通常是节点的特征向量)与以参数为
θ
∈
R
N
θ∈\mathbb{R}^N
θ∈RN的滤波器
g
θ
=
d
i
a
g
(
θ
)
g_θ=diag(θ)
gθ?=diag(θ)在傅里叶域的谱卷积。
(2)切比雪夫近似谱卷积其中(3)的计算量很大,因为特征向量矩阵U的复杂度是
O
(
N
2
)
O(N^{2})
O(N2)。另外对于大型图来说,L的特征值分解的计算量很大。为了解决这个问题,Hammond et al.(2011) :Wavelets on graphs via spectral graph theory论文指出
g
θ
(
Λ
)
g_{\theta}(\Lambda)
gθ?(Λ)可以很好的通过Chebyshev多项式
T
k
(
x
)
T_k(x)
Tk?(x)的Kth阶截断展开来拟合,并对
Λ
\Lambda
Λ进行scale使其元素位于[-1, 1]:
(3)写回L的函数为了避免特征值分解,回到对信号x与滤波器
g
θ
g_{\theta}
gθ?的卷积的定义,我们将,现在有:
PS:公式(4)到(5)的证明是用到数学归纳法和切比雪夫多项式的定义。 2.2 Layer-wise linear model 逐层线性模型(1)简化:K=1(2个参数的模型)因此可以通过堆叠多个形式为式(5)的卷积层来建立基于图卷积的神经网络模型。现在,文中将分层卷积操作限制为K=1(式(5)),即关于L是线性的,因此在图拉普拉斯谱上具有线性函数。 (以上展示了改进后的卷积的形式,都是前人的工作,本文的工作如下) 在GCN的这个线性公式中,作者进一步近似
λ
max
?
≈
2
\lambda_{\max } \approx 2
λmax?≈2 , 可以预测到GCN的参数能够在训练中适应这一变化。根据这些近似,式(5)简化为: (2)简化:1个参数的模型实际上,进一步限制参数的数量以解决过拟合并最小化每层的操作数量(例如矩阵乘法)会是有益的。具体来说,文中令(为了进一步减少参数数量,防止过拟合)
θ
=
θ
0
′
=
?
θ
1
′
\theta=\theta_{0}^{\prime}=-\theta_{1}^{\prime}
θ=θ0′?=?θ1′?则有: 为了解决该问题,引入了一个renormalization trick(归一化技巧),让它的特征值落在[0, 1]范围内: (3)推广:特征映射公式可以将这个定义推广到具有C个输入通道(即每个节点的C维特征向量)的信号 X ∈ R N × C X∈\mathbb{R}^{N×C} X∈RN×C和 F 个滤波器或特征映射如下: Z = D ~ ? 1 / 2 A ~ D ~ ? 1 / 2 X Θ Z=\tilde{D}^{-1 / 2} \tilde{A} \tilde{D}^{-1 / 2} X \Theta Z=D~?1/2A~D~?1/2XΘ其中:
这个滤波操作复杂度是 O ( ∣ E ∣ F C ) O(|E| F C) O(∣E∣FC),因为 X X ~ X \tilde X XX~可以有效地实现为密集矩阵和稀疏矩阵的乘积。(在源代码中使用了稀疏矩阵和稠密矩阵乘法) 三、Semi-supervised node classification3.1 Example考虑一个两层的半监督节点分类GCN抹香鲸,在对称邻接矩阵A上操作。 (1)预处理操作首先计算 A ^ = D ~ ? 1 / 2 A D ~ ? 1 / 2 \hat{A}=\tilde{D}^{-1 / 2} A \tilde{D}^{-1 / 2} A^=D~?1/2AD~?1/2因此,前向计算变成一个简单的形式: Z = f ( X , A ) = softmax ? ( A ^ ReLU ? ( A ^ X W ( 0 ) ) W ( 1 ) ) Z=f(X, A)=\operatorname{softmax}\left(\hat{A} \operatorname{ReLU}\left(\hat{A} X W^{(0)}\right) W^{(1)}\right) Z=f(X,A)=softmax(A^ReLU(A^XW(0))W(1))注意:
(2)交叉熵误差评估所有标记标签的交叉熵误差: (3)训练神经网络的权重
W
(
0
)
,
W
(
1
)
W^{(0)}, W^{(1)}
W(0),W(1)通过梯度下降来进行训练。 邻接矩阵A使用稀疏表示法,内存需求是O(E),E为边数,即和边数呈线性关系。 3.2 Implementation在实践中,利用TensorFlow,使用稀疏-密集矩阵乘法在GPU上高效实现了下式: 四、Related work4.1 Graph-based semi-supervised learning4.2 Neural networks on graphs五、Experiments5.1 Datasets数据集的信息表如图: (1)Citation networks本文考虑三个引文网络数据集:Citeseer、Cora和PubMed(Sen等人,2008)。数据集包含每个文档的稀疏bag-of-words特征向量和文档之间的引用链接列表。本文将引用链接视为(无向)边,并构造一个二元对称邻接矩阵A。每个文档都有一个类标签。在训练时,每个类只使用20个标签。 (2)NELLNELL是从中引入的知识图中提取的数据集(Carlson,2010年)。知识图是一组与有向标记边(关系)相连的实体。实验中遵循Yang等人所述的预处理方案(2016年)。文中为每个实体对(E1,R,E2)分配单独的关系节点R1和R2作为(E1,R1)和(E2,R2)。其中,实体节点由稀疏特征向量描述。通过为每个关系节点分配一个唯一的 o n e ? h o t one-hot one?hot 表示来扩展NELL中的特征数量,从而有效地为每个节点生成 61278 维稀疏特征向量。这里的半监督任务只考虑训练集中每个类一个标记示例的极端情况。如果节点i和j之间存在一条或多条边,作者通过设置 A i j = 1 A_{ij}=1 Aij?=1,从图中构造一个二元对称邻接矩阵(binary, symmetric adjacency matrix)。 (3)Random graphs文中模拟各种大小的随机图数据集进行实验,测量每个 e p o c h epoch epoch 的训练时间。对于一个具有n个节点的数据集,创建一个随机图,随机均匀地分配 2 n 2n 2n 条边。将单位矩阵 I N I_N IN? 作为输入特征矩阵x,从而隐式地采用一种无特征的方法,其中模型只知道每个节点的标识,由唯一的 o n e ? h o t one-hot one?hot 向量指定。文中为每个节点添加 d u m m y dummy dummy 标签 y i = 1 y_i = 1 yi?=1。 5.2 Experimental set-up 参数设置训练两层GCN,并评估1000个标记示例的测试集的预测精度。补充实验(附录)中提供了使用最多10层的更深层次模型的额外实验。 相关参数
5.3 Baselines
六、Results6.1 Semi-supervised node classification半监督节点分类 6.2 Evaluation of propagation model表中数字表示100次随机权重矩阵初始化重复运行的平均分类精度。在每层有多个变量的情况下,文中对第一层的所有权重矩阵施加L2正则化。 6.3 Training time per epoch文中使用了100个epochs在模拟的随机图上每一个epoch的平均训练时间(前向传播、交叉熵计算、后向传播)的结果,以wall-clock时间测量。并且用GPU和只用CPU的两组实验结果进行如下对比。
七、Discussion7.1 Semi-supervisied model7.2 Limitations and future work(1)内存要求较大在当前setup中,采用批量梯度下降(full-batch gradient descent),内存需求在数据集的大小上呈线性增长。文中已经证明,对于不适合GPU内存的大型图形,采用CPU训练仍然是一个可行的选择。小批量随机梯度下降(Mini-batch stochastic gradient descent)可以缓解这一问题。然而,生成Mini-batch的过程应该考虑到GCN模型中的层数,因为具有k层的GCN的k阶邻居必须存储在内存中,以便进行精确的过程。对于非常大且紧密相连的图数据集,可能需要进一步的近似。 (2)不支持边的特征文中的框架目前不支持边的特征(edge features)(即有向还是无向),只限于无向图(加权或不加权)。然而,NELL上的结果表明,通过将原始有向图表示为无向二部图,以及表示原始图中边缘的附加节点,可以处理有向边和边缘特征。 (3)硬性假定文中直接认为 A ~ = A + I N \tilde A=A+I_N A~=A+IN?。但是,对于某些数据集,在A的定义中引入一个权衡参数 λ \lambda λ 可能更有益的: A ~ = A + λ I N \tilde{A}=A+\lambda I_{N} A~=A+λIN? 在典型的半监督的参数设置中,该参数现在扮演着与监督学习的损失函数和非监督学习的损失函数之间的权衡参数相似的角色,并且该参数能够通过梯度下降进行学习。 八、Conclusion本文提出了一种新的图结构数据半监督分类方法,所提出的GCN模型使用了一种基于图上谱卷积的一阶近似的高效层传播规则。对多个网络数据集的实验表明,所提出的GCN模型能够以一种对半监督分类有用的方式对图结构和节点特征进行编码。在这种情况下,文中的模型在很大程度上优于最近提出的几种方法,同时具有不错的计算效率。 作者在附录给最终得到的propagation rule找到了理论解释。第一种理论解释是建立了该方法与经典的Weisfeiler-Lehman algorithm之间的联系,将该propagation rule解释为一种特殊的hash function。第二种是从Spectral Graph Theory推导而来。对这部分理论解释感兴趣的童鞋可以去看paper~ 附录A:Relation to Weisfeiler-Lehman algorithmA.1 Node embeddings with random weights随机权重的GCN模型 A.2 Semi-supervised node embedding附录B:Experiments on model depthH ( l + 1 ) = σ ( D ~ ? 1 2 A ~ D ~ ? 1 2 H ( l ) W ( l ) ) + H ( l ) H^{(l+1)}=\sigma\left(\tilde{D}^{-\frac{1}{2}} \tilde{A} \tilde{D}^{-\frac{1}{2}} H^{(l)} W^{(l)}\right)+H^{(l)} H(l+1)=σ(D~?21?A~D~?21?H(l)W(l))+H(l)实验设置
图4显示了节点嵌入在许多训练迭代中的演化。该模型成功地实现了基于最小监督和图结构的社区线性分离。整个训练过程的视频可以在作者的网站上找到:http://tkipf.github.io/graph-convolutional-networks/ Reference(1)https://tkipf.github.io/graph-convolutional-networks/ |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/27 12:36:53- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |