四两拨千斤!OPPO用“轻巧”模型角逐超大规模图网络,入选KDD Cup四强( 二 )


排名第四的OPPO团队提出的MPLP模型在所有靠前的解决方案中“最为轻巧” , 算法的两个独立部分来看:
对训练和预测的节点 , 将标签和特征通过设定的元路径(Metapath)进行聚合 , 可以实现高效的特征预计算;
训练一个多层MLP模型 , 模型参数不到百万 。
因此 , 模型的采样仅涉及到训练和预测样本的2-hop邻居 , 而且可以通过并行加速 , 标签类特征预生成部分仅需要2小时20分钟(12个CPU) , MLP模型完全放到GPU中训练和推理 , 200个epoch只需要20分钟 。
而R-UniMP和APPNP等GNN模型 , 在单机多卡加速的情况下 , 单个模型训练仍需要至少需要24小时 。
在准确率方面和其他队伍存在差距的原因是什么呢?笔者通过与拓扑实验室团队的沟通中得知:
1、MPLP在特征和标签信息提取方面选择非常简单的聚合方式 , 不同于其他参赛队伍选择较复杂的图卷积的做法;
2、由于时间有限 , 最终提交的模型只考虑了部分元路径 , 同时考虑到过拟合问题 , 团队基于对数据的理解和训练效率考虑 , 删除了部分元路径;
3、MPLP非常简单 , 在大家都考虑到特征传递和标签传播的情况下 , 表达能力略有不足 。
换句话说 , OPPO用微弱的准确率下降 , 换来了模型的简洁性和计算开销的节约 。
2MPLP模型
MPLP模型 , 全称“Metapath-basedLabelPropagation” , 主要思路是通过结合不同异构元路径(Metapath , MP)下的标签传播生成的信息输出到下游分类器 。 对于节点分类任务来说 , 其框架如下:
四两拨千斤!OPPO用“轻巧”模型角逐超大规模图网络,入选KDD Cup四强
文章图片
其中H_emb为通过模型获得的图嵌入特征 , H_pk·X表示在第K个MP上进行特征X传播 , Θ_k为参数(做维度变换用) 。 在MPLP框架下 , 特征和标签在不同的MP下分别进行传播 , 之后将结果聚合起来输送到下游分类模型中 。
四两拨千斤!OPPO用“轻巧”模型角逐超大规模图网络,入选KDD Cup四强
文章图片
模型架构
模型训练分两步 , 第一步是在多种不同的MP上进?标签传播 , 包括paper-writed_by-author-writes-paper、paper-cited_by-paper-cites-paper等 , 获取不同MP下的标签分布信息作为节点当前MP下的特征;第二步将所有MP获得的特征分别做空间映射后结合起来 , 输入到下游分类器进行分类预测 。
如何将MPLP运用到节点预测任务中?由于比赛数据规模巨大 , 且数据中论文的主题分布随时间演化 , 加上论文分布极其不均匀 , 部分主题的论文数量只有几十篇 , 而另外一些主题的论文数达到几万篇 。
针对上述三个难点 , MPLP可以在不同的MP上预先进行标签传播 , 类似于SIGN和NARS方法 , 所以在规模和效率上具有天然的优势;对于标签分布随着时间演化问题 , 团队采用了类似迁移学习微调方法;
对于类别不均衡 , 团队定义了标签权重方法 , 如下:
四两拨千斤!OPPO用“轻巧”模型角逐超大规模图网络,入选KDD Cup四强
文章图片
其中cnt_2018是维度为N_class=153的一维向量 , 其每一位表示在2018年相应主题的论文数量 , 超参α设置为5 。
四两拨千斤!OPPO用“轻巧”模型角逐超大规模图网络,入选KDD Cup四强
文章图片
MPLP模型下吸收不同特征的实验结果
上图展示了在MPLP模型下吸收不同特征的实验结果 , ValidAcc(weight)表示在当前模型中加入类别weight的结果 , 括号内为未进行finetune 。 针对不同的模型 , label代表不同MP下标签Y传播的信息 , feat代表不同MP下特征X传播的信息 , R-GAT和LINE-2nd表示相应预训练模型的嵌入特征 。 考虑到模型复杂度和准确率表现 , 团队最终采用了MPLP(label+R-GAT)方法 。