THUDM / HGB

Revisiting, benchmarking, and refining Heterogeneous Graph Neural Networks.
305 stars 47 forks source link

about meta-paths #22

Open NovelinUp opened 2 years ago

NovelinUp commented 2 years ago

您好,在论文中,ACM的元路径设置如图,但在代码中 HAN 的meta-path不是这样https://github.com/THUDM/HGB/blob/master/NC/benchmark/methods/HAN/utils.py#L170 这需要自己改动吗 image

以及我跑了benchmark中HAN的代码,按照代码的路径设置,验证集最好 macro f1 为 0.87,micro f1 为 0.96,5 次后提交到 biendata,测试集的 macro f1 和 micro f1 都是 0.86 左右,与论文的 90.8% 左右还是相差较多 image 如果把路径按论文设置(即没有 ptp,添加额外的引用/参考关系),验证集最好 macro f1 为 0.78,micro f1 为 0.90

不知道其他人跑 ACM 结果如何,请问 ACM 的实验有什么要注意的吗

NovelinUp commented 2 years ago

第二个问题可能是随机种子的影响,在跑 GAT 的时候发现,seed 为 1、2、4、5 结果与 0.93 差不多,而 seed 是 3 时只有 0.82;不设置随机种子,随便跑 5 次要复现可能需要点运气 🍀

Sleepychord commented 2 years ago

Hi @NovelinUp , 我们在测评中对于baselines进行了超参搜索,因此report的可能确实和默认的设置不完全一致。另外第二个问题HAN这个算法可能没有那么稳定,关于更多的稳定性细节可能需要询问HAN的作者QAQ

NovelinUp commented 2 years ago

@Sleepychord Thanks. 还有一个疑问关于 l2 正则化,论文中说是对节点最后的 embedding 进行 l2 正则化,但在代码中 https://github.com/THUDM/HGB/blob/master/NC/benchmark/methods/baseline/GNN.py#L63 中 logits 是 https://github.com/THUDM/HGB/blob/master/NC/benchmark/methods/baseline/GNN.py#L46 的结果,即此处 logits 应是预测结果,维数是 num_classes,所以不应是节点的 embedding,我感觉这个 l2 是个 trick,在训练中会更稳定一些,没那么过拟合