论文分享
作者:苏涛
编辑整理:萝卜兔
来自KDD 2018 的工作,将graph数据转化成 grid-like 结构数据,可以直接传入卷积层。并且提出Sub-Graph Training,一种有效的根据图顶点抽样,得到子图训练模型的方法。解决图相关的深度学习模型内存和计算问题。本方法在各个baseline数据集上取得了state-of-the-art的效果。
Learnable Conv on Graph
LGCN 也是从中心节点邻居的特征中聚合出新的特征表达,但与GCN不同之处在于,它是将邻居节点的特征,结合中心节点本身的特征,转化为grid-like结构化数据,再经过两层CNN,转化的向量作为本次迭代中心节点的表达。
具体的细节是,从graph 到 grid-like结构数据具体操作,是对一阶邻居节点每一维度特征降序排列,构成特征矩阵,取前k行。结合中心节点本身的特征即为一个的特征矩阵。特征矩阵经过两层kernal为的CONV1D卷积层,这里每一列特征作为一个channel,输出本轮迭代中心节点的表达。
值得注意的是,作者对邻居节点的特征做了降序排列,这样的做法有两个好处,一是尽量保留数值较大的激活值,二是通过降序排列使邻居节点之间的位置不敏感。
Sub-Graph Training
内存和计算资源压力是 graph 深度学习模型的另一个巨大挑战,尤其是当节点规模大时,本文提出的方法是随机采样一个子图。子图的节点保留原图中节点的连接。从筛选的初始节点开始,运用广度搜索,迭代的将邻居节点纳入子图。
抽样子图的具体步骤如下图:
1.筛选一些初始节点,如图中红色节点。
2.从这些节点开始,广度搜索,得到这些节点的一阶邻居,随机筛选个,如图中蓝色节点。
3.第二次迭代,从5个蓝色节点开始,这次筛选个。如图中绿色节点。
4.迭代完毕,筛选出的所有节点构成子图。如图中的红色、蓝色、绿色节点。
实验
作者在transductive 和 inductive 配置下,利用 LGCNs 完成节点分类任务。基于作者提出的子图选择算法,对比其他state-of-the-art的模型,研究超参数设置。实验结果显示,LGCNs提高了模型表现,并且 sub-graph 训练在效率上大大优于 whole-graph 训练。
实验配置
Transduction Learning输出节点特征的维度为32,每个LGCLs设置k=8,在数据集Cora、Citeseer和Pubmed上,分别叠加2、1、1层LGCLs,每层特征输出跳连concat。最后的全连接层作为分类器。在全连接层之前,通过简单求和来聚合邻居节点的特征。在输入和邻接矩阵使用dropout,参数分别0.16和0.999。使用sub-graph training方法,子图大小为2000。
Inductive Learning模型主体不变,几个超参数略作修改,graph embedding层,输出特征维度调整为128。叠加两层LGCLs层,设置k=64.依然使用子图训练,筛选子图的随机初始节点个数为500和200。dropout概率为0.9。
实验结果分析
不论transductive 配置还是 inductive配置,在图节点分类任务上,LGCLs模型的表现对比其他state-of-the-art模型,都有很大的提高。
实验对比sub-graph和whole-graph训练。sub-graph训练设置,初始节点数分别为140、120、60,子图筛选迭代中不对做限制,但是整个子图的最大节点数限制为2000。实验结果显示,TITAN Xp GPU上跑100个epoch。对于全量数据,比表现更好,但是耗时也更多。而效果与相同,但运行速度却远比快。显示了子图训练的LGCNs模型强大的表示能力和训练速度。
在三大数据集上设置不同的超参数k,训练,结果显示,当k=8时,模型表现最佳。
https://arxiv.org/pdf/1808.03965.pdf
>
领取专属 10元无门槛券
私享最新 技术干货