文章核心思想?
文章针对异构图网络进行建模,得到每个节点的向量表示。首先,利用基于重启的随机游走策略为每个节点根据节点类型选择邻居,然后利用两个模块聚合邻居节点特征:一方面,对节点的不同类型特征进行建模,生成特征向量;另一方面,聚合不同类型的邻居节点,并融合注意力机制,对不同类型的节点赋予不同的权重,得到最终的向量表示。最后,建立损失函数,mini-batch梯度下降端对端学习模型。将学习到的向量表示用于链接预测,推荐,节点分类,聚类等问题,都取得了较好的效果。
异构图网络的挑战
1. 对异构图怎样采样?每个节点的邻居类型不同,邻居个数不同,和有的类型节点不是直接相连
2. 对不同类型的特征怎样进行编码?节点特征多种多样,比如说文字、图像等。
3. 对不同类型的节点如何聚合?不同类型节点影响不同,比如在作者-论文-会议图中,对于作者的向量来说,作者-论文的关系会比论文-会议更重要一些,因为会议中会包含各种类型的论文,会议对应的向量更加泛化一些
针对以上三个挑战,文章提出了HetGNN,主要贡献:
1. 定义异构图:图结构异构并且节点信息异构
2. 提出HetGNN模型,可以同时捕捉结构和内容的异构,可以适用于直推式和归纳式任务
3. 在多数据集实验,链接预测,节点分类,聚类等任务中表现良好
综上,
异构图定义 :有多种类型的节点和多种类型的边的图,并且每个节点有不同类型的特征(文本,图像等);
目的:学习异构图中每个节点的向量表示embedding
针对上文提到的异构网络面临的三个挑战,HetGNN分成了三个部分:
邻居采样策略:Sampling Heterogeneous Neighbors(挑战一)
特征编码:Encoding Heterogeneous Contents(挑战二)
聚合邻居:Aggregating Heterogeneous Neighbors(挑战三)
最后,根据目标函数进行优化,进行训练和预测
挑战一:对异构图如何采样?
在异构图中,直接采样邻居面临的问题:
1. 不能捕捉到不同类型邻居的信息。比如说,在下图的作者-论文-会议的图中,作者之间并不相连,作者会议也不相连,但他们之间的关系不可被忽视
2. 邻居数量的影响。有的作者写了很多篇论文,有的作者写的少。有的商品被很多人访问,有的商品无人问津,冷启动问题不能很好的表示
3. 节点的特征类型不同(如图像,文字等),不能直接聚合。
针对上述问题,本文采用一种random walk with restart(RWR)方法进行采样,主要有两步:
1. 从节点v随机游走采样,采样固定长度,每次以概率p访问邻居节点或返回初始节点,每种类型节点采样数固定,确保每类节点都会被采样到。
2. 对不同类型的邻居分组,不同类型的邻居,根据采样频率返回前k个
上述采样方法中:
1. 对于每种类型的节点都采样到了
2. 每种类型节点数量相同,并且高频邻居被选择
3. 同种类型的邻居放在了一起,邻居信息可以聚合
挑战二:对不同类型的特征怎样进行编码?
同一个节点,也往往有多种类型的特征,如图像,文字等,文章提出先对这一类特征进行预训练,如类别特征直接利用one-hot,文本特征利用par2vec,图像特征利用CNN,训练得到每类特征的向量表示后,利用Bi-LSTM进行编码后聚合。模型架构如图所示:
在数学表达式上,节点v的向量表示 为:
其中 为x的映射函数,也可为自身, 是要学习的参数,LSTM模块如下所示:
输入为 ,输出为 。这样的结构模型简单,参数少;考虑了异构信息,表达能力强;可以很容易添加新的特征,可扩展性强。
挑战三:对不同类型的节点如何聚合?
在上一部分,得到了每个节点的特征表示,在聚合上面临两个问题:对同样类型的不同节点怎样聚合?对不同类型的节点怎样聚合?分两步解决这两个问题:
Same type neighbors aggregation
在采样中,我们对不同类型的节点进行采样,通过上一步得到了每个节点的特征,这里,需要对同一类型的节点特征进行聚合,此处仍然采用Bi-LSTM方法:
输入为采样得到的相同类型邻居的特征表示,输出为这一类型邻居的向量表示,有点类似与GraphSAGE的思想,利用Bi-LSTM对相同类型的邻居节点进行聚合,模型结构如图所示:
Type Combination
上述得到了每个类型节点的向量表示,这里,希望对这些类型的节点进行聚合,考虑到不同类型节点的邻居贡献不同,因此引入注意力机制l联合学习不同类型的邻居:
模型结构如图所示:
根据目标函数学习模型参数:
综上所述,模型架构如图所示:
分成5步:
1. 对邻居节点进行采样,按照节点类型进行分类
2. NN-1:对节点不同类型特征学习
3. NN-2:对相同类型节点各个特征的聚合
4. NN-3:对不同类型节点的聚合
5. 根据Graph Context Loss损失函数进行优化
最终得到每个节点的向量表示用于下游任务
参考文献:
Zhang C , Song D , Huang C , et al. Heterogeneous Graph Neural Network[C]// the 25th ACM SIGKDD International Conference. ACM, 2019.