异构图神经网络
参考
Chuxu Zhang, Dongjin Song, Chao Huang, Ananthram Swami, and Nitesh V. Chawla. 2019. Heterogeneous Graph Neural Network. In Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining (KDD '19). Association for Computing Machinery, New York, NY, USA, 793–803. https://doi.org/10.1145/3292500.3330961
原文下载地址
方法
假设GNN中节点有K种类型(文本,图像等),输入为节点特征+图结构,输出为训练后的节点特征。
步骤:
- 为每个节点(a)采样固定数量的异质邻居节点(图a)
(1)Random walk with restart(RWR):从节点a开始随机游走,随机游走迭代访问a的邻居同时以概率p回到a;持续随机游走直到采样的节点数量达到阈值。同时,要确保采样的节点包括所有节点类型(作者、文章、期刊等)。
(2)对每种节点类型t,根据随机游走访问的节点频率选取topk节点,作为每种类型的采样节点。最后取当前节点(a)作为单独一类节点。 - 编码每个节点的异质内容(图b)
对于采样出的节点,一个节点可能有不同类型的特征,例如作者节点包含名字、图片、简介等信息;为了融合异质信息构成节点特征,这里对节点的不同类型信息分别编码,例如序列用one-hot编码、图片用CNN编码、简介用par2vec编码;每种类型编码后的特征分别用全连接神经网络处理成统一格式,接着不排序直接输入BiLSTM(不同类型节点的BiLSTM不同),将每个单元输出拼接起来,通过MeanPooling得到该节点最后的特征。 - 整合异质邻居信息
(1)同类型邻居节点信息整合(图c)
对于同类型节点,将他们的特征不排序直接放入BiLSTM,将每个单元的输出拼接起来,通过MeanPooling得到整合后的特征。
(2)异质邻居节点信息整合(图d)
Q为由图b得到的当前节点(v)的特征,K为由图C得到的每种节点的整合特征,V与Q相同。注意力机制根据不同类型节点对当前节点贡献度基于不同权重,每个类型节点特征加权和为训练后当前节点特征。
目标函数
σ为sigmoid激活函数vc为步骤1中对当前节点(v)随机游走采样获得的节点,希望vc节点的输出与当前节点v的输出越像越好;vc’为从预定义的各种类型节点的噪声分布采样得到的负样本,希望vc’节点的输出与当前节点v的输出越不像越好;因此,目标函数o2越大越好。
训练过程
采取mini-batch训练,每个batch计算的目标函数叠加,如果连续2轮训练使目标函数变化小于阈值,则停止训练。
数据集
节点类型包括作者、论文、地址等,每种节点可能包含不同种属性,例如作者节点可能包含照片、名字、简介等。
实验
节点分类(聚类)实验结果,GraphSAGE和本文方法准确性最高。
注:归纳式学习和直推式学习参考这里