1. Background
近几年异质图GNN(Heterogeneous graph neural networks (HGNNs))颇受关注,但是由于每个工作的数据预处理方式和评估设置都不同,因此很难对新模型具体的进步程度做全面理解。
本文使用12个异质图GNN模型的官方代码、数据集、实验设置和超参,证明了它们毫无进展(也不完全,只能说基本没有)。
同质图GNN模型(如GCN和GAT)因为不合适的实验设置而被低估了,GAT调好了不逊于甚至优于HGNNs。
此外本文还构建了异质图benchmark HGB,包含11个数据集,3个任务(节点分类、链路预测、knowledge-aware recommendation)。HGB统一了异质图数据划分、特征工程和模型评估的过程。
最后本文提出了简单但有效的异质图GNN baseline Simple-HGN。
本文得出的结论:
- 同质图GNN其实很强,原始GAT调一调就能超过大多数HGNNs。
- 以前的一些工作有实验设置不合适或数据泄露的问题,导致报告指标虚高。
- metapaths在大多数数据集中是没必要的。
- HGNNs还有很大的进步空间。
Preliminaries
GCN:
GAT:
meta-path:细节略,以后准备专门写博文讲这是个啥玩意
这个meta-path它解答了一个我在之前DEAL2和LeSICiN3笔记博文里提出的一个困惑,那就是,原来起点和终点不用是同一类节点啊!
(MAGNN4里面也有)
meta-path neighbor graph:以meta-path的起点到终点为边构建的图
2. 挨个介绍并喷近几年提出的异质图GNN模型
HGNNs的主要问题在于与同质图GNN的对比不公平,其他问题还有数据泄露、在测试集上调参、空间和时间消耗代价与效果提升不成正比。
2.1 节点分类
2.1.1 HAN5(2019 WWW)
需要人工选择meta-paths,然后用2层attention网络做聚合(meta-path邻居节点,meta-path)。
实验不公平:GCN和GAT只使用了一个meta-path neighbor graph作为输入。应该忽略类型,直接输入全图。
2.1.2 GTN6(2019 NeurIPS)
自动学习有价值的meta-paths。直觉是meta-path neighbor graph可以通过乘几个子图邻接矩阵来得到(还没看原论文,没搞懂这句话啥意思!)
因此,GTN利用soft sub-graph selection和矩阵乘法生成meta-path neighbor graphs,然后用GCN进行编码。
GTN的重要缺点是时间和空间代价太大,而且没什么提升。
2.1.3 RSHN7(2019 ICDM)
用coarsened line graph先获得边特征,然后传播节点和边特征。
RSHN官方代码没有验证集,直接在测试集上调参,而且在论文中报出的是在测试集上准确率最高的epoch的准确率。用这种调法GAT都能调出100%了。
2.1.4 HetGNN8(2019 KDD)
用RWR抽样异质邻居,按节点类型分类,然后用NN聚合。NN有两个模块,第一个模块编码内容,第二个模块聚合特征。
代码不公平的问题和HAN一样。
2.1.5 MAGNN4(2020 WWW)
考虑了节点的特征信息、metapath的中间节点和多种metapath。
MAGNN包含三个部件:
① node content transformation
② intra-metapath aggregation
③ inter-metapath aggregation
代码不公平的问题和HAN一样。
此外链路预测中还存在数据泄露问题:每个minibatch都会全是正值或者全是负值,批归一化的平均值和方差会提供额外信息。(没看懂)打乱测试集后效果就会下降很多。
2.1.6 HGT9(2020 WWW)
原数据集巨大,一般HGNNs模型跑不了,除非做subgraph sampling。为了解决抽样误差,本文用小数据集做了实验。
2.1.7 HetSANN10(2020 AAAI)
用type-specific graph attention layer聚合局部信息,这样就不需要手动挑选meta-paths了。
这篇论文没有提供数据集和预处理细节。
2.2 链路预测
2.2.1 RGCN11(2018 ESWC)
RGCN卷积可以被视为原始GCN在不同边类型上的加权求和:
2.2.2 GATNE12(2019 KDD)
2.3 knowledge-aware recommendation
2.3.1 KGCN13(2019 WWW) & KGCN-LS14(2019 KDD)
KGCN聚合知识图谱中实体邻居
KGNN-LS更进一步提出label smoothness假设,加正则项学习personalized weighted knowledge graph
2.3.2 KGAT15(2019 KDD)
类似KGCN。
针对knowledge graph reconstruction制定辅助损失函数,用预训练的BPR-MF作为输入。
本文提出了KGAT-,比KGAT更简单,但是效果相似甚至更好。
3. Leaderboard(虽然没人玩)
链路预测任务被建模为二分类问题。
从RGCN11中我们知道用DistMult16比直接点乘效果好(因为复杂的边类型),所以:
链路预测的指标是ROC-AUC和MRR。
其他略。
4. Simple-HGN
4.1 模型结构
GAT+
①可学习的类型嵌入
②residual connections
节点上有一个:
当隐藏层维度发生变化时:
边上还有一个:
multi-head attention:
还有其他一些改进(类似JKNet)
③输出嵌入上的L2正则
4.2 模型分析:Ablation Study