乐趣区

关于算法:PGL图学习之图神经网络ERNIESageUniMP进阶模型系列八

PGL 图学习之图神经网络 ERNIESage、UniMP 进阶模型[系列八]

原我的项目链接:fork 一下即可:https://aistudio.baidu.com/aistudio/projectdetail/5096910?contributionType=1

相干我的项目参考:(其余图神经网络相干我的项目见主页)

对于图计算 & 图学习的基础知识概览:前置知识点学习(PGL)[系列一] https://aistudio.baidu.com/aistudio/projectdetail/4982973?contributionType=1

图机器学习 (GML)& 图神经网络(GNN) 原理和代码实现(前置学习系列二):https://aistudio.baidu.com/ai…

图学习【参考资料 1】词向量 word2vec https://aistudio.baidu.com/ai…

图学习【参考资料 2】- 常识补充与 node2vec 代码注解 https://aistudio.baidu.com/ai…

1.Open Graph Benchmark(OGB)

1.1 OGB 概述

如何进一步推动图学习的钻研呢?从历史上看,高质量和大规模的数据集在推动钻研中施展了重要的作用,例如 计算机视觉畛域的 IMAGENET、MS COCO,自然语言解决畛域的 GLUE BENCHMARK、SQUAD,语言解决畛域的 LIBRISPEECH、CHIME 等。然而,以后在图学习钻研中罕用的数据集和评估程序可能会对将来的倒退产生负面影响。

以后基准数据集存在的问题:

与理论利用中的图相比,大多数罕用数据集都十分小。例如宽泛应用的 Cora、Citeseer、Pubmed 数据集,在节点分类工作中只用 2700 至 20000 个节点。因为在这些小型数据集上宽泛开发了模型,因而大多数模型都无奈扩大到较大的图;其次,较小的数据集很难去严格地评估须要大量数据的模型,例如图神经网络(GNNs)。
没有对立且通常遵循的试验协定。不同的钻研采纳本人的数据集划分、评估指标和穿插验证协定,因而比拟各种钻研报告的问题具备挑战性。另外,许多钻研应用随机宰割来生成 train /test sets,这对于真实世界的利用是不事实的或无用的,并且通常导致过于乐观的性能后果。
因而,迫切需要一套残缺的事实世界基准测试套件,该套件将来自不同畛域的各种大小的数据集组合在一起。数据拆分以及评估指标很重要,因而能够以统一且可反复的形式掂量进度。最初,基准测试还须要提供不同类型的工作,例如节点分类,链接预测和图分类。OGB 就这样应运而生。

凋谢图谱基准 (OGB) 是图机器学习的基准数据集、数据加载器和评估器的汇合。数据集涵盖各种图形机器学习工作和理论利用。OGB 旨在提供涵盖重要图机器学习工作、多样化数据集规模和丰盛畛域的图数据集。

论文链接:https://arxiv.org/abs/2005.00687
OGB 官网:https://ogb.stanford.edu/
GitHub 地址:https://github.com/snap-stanf…

  • Graph ML Tasks: 涵盖了三个根本的图机器学习工作:节点属性预测,链接属性预测,图属性预测。
  • Diverse scale: 小型图形数据集能够在单个 GPU 中解决,而中型和大型图形可能须要多个 GPU 或奇妙的采样 / 分区技术。分为 small、medium、large 三个规模,具体为 small:超过 10 万个节点和超过 100 万条边;medium:超过 100 万个节点或超过 1000 万条边;large:大概 1 亿个节点或 10 亿条边。
  • Rich domains: 图数据集来自从迷信畛域到社会 / 信息网络的不同畛域,还包含异构常识图谱。nature:蕴含生物网络和分子图;society:蕴含学术图和电子商务网络;information:蕴含常识图谱等。

看一下 OGB 当初蕴含的数据集和数据集的统计明细:

1.2 OGB 数据集简介

1.2.1 OGB 节点属性预测

ogbn-products:亚马逊产品独特购买网络。

  • 节点代表在 Amazon 销售的产品,两个产品之间的边示意产品是一起购买的。节点特色是通过从产品描述中提取词袋特色来生成的,而后进行主成分剖析将维度减小到 100。
  • 预测工作:在多类别分类设置中预测产品的类别,其中有 47 个顶级类别用于指标标签。
  • 数据集划分:应用销售排名(受欢迎水平)将节点划分为训练 / 验证 / 测试集,依据产品的销售排名对产品进行排序,并应用前 10%作为训练集,而后应用前 2%作为验证集,其余用于测试集。

ogbn-proteins:蛋白质关联网络

  • 节点代表蛋白质,边示意蛋白质之间不同类型的有生物学意义的分割。所有的边都具备 8 维特色,其中每个维度示意单个关联类型的强度,值在 0 到 1 之间。这些蛋白质来自 8 个物种。
  • 预测工作:在一个多标签二元分类零碎中预测蛋白质性能的存在,该零碎中总共有 112 种标签须要预测。通过 112 个工作的 ROC-AUC 分数的平均值来掂量性能。
  • 数据集宰割:依据蛋白质起源的物种,将蛋白质节点分成训练 / 验证 / 测试集。

试验中为了简略起见,应用传入边的均匀边缘特色作为节点特色。

ogbn-arxiv:论文援用网络

  • 每个节点都是一篇 Arxiv 论文,每条有向边示意一篇论文援用了另一篇论文。每篇论文都有一个 128 维的特征向量,它是通过对题目和摘要中单词的嵌入进行均匀失去的。
  • 预测工作:预测 Arxiv 论文的次要类别,这是一个 40 类的分类问题。
  • 数据集宰割:思考一个基于论文发表日期的事实数据宰割。倡议将 2017 年及以前发表的论文作为训练集,将 2018 年发表的论文作为验证集,将 2019 年当前发表的论文作为测试集。

试验中为了简略起见,将有向图转换为无向图。从上面的后果能够看出,摸索如何思考边缘方向信息以及节点工夫信息(例如论文发表的年份)以进步预测性能将是富有成效的。

ogbn-papers100M:论文援用网络

  • MAG(Microsoft Academic Graph)索引的 1.11 亿篇论文的有向引文图。此数据集的数量级比任何现有的节点分类数据集大。
  • 预测工作:预测在 Arxiv 中发表的论文的子集的主题畛域。有 172 个 Arxiv 主题畛域,这使预测工作成为 172 类分类问题。
  • 数据集宰割:思考一个基于论文发表日期的事实数据宰割。倡议将 2017 年及以前发表的论文作为训练集,将 2018 年发表的论文作为验证集,将 2019 年当前发表的论文作为测试集。

试验中为了简略起见,将有向图转换为无向图。从上面的后果能够看出,SGC 重大拟合有余,表明应用更具表现力的 GNNs 可能会同时改善训练和测试准确性。

ogbn-mag:异构微软学术图(MAG)

  • 由 Microsoft Academic Graph (MAG)的一个子集组成的异构网络。它蕴含四种类型的实体(论文、作者、机构和钻研畛域),以及连贯两种类型实体的四种有向关系。每一篇论文具备 128 维的特色。
  • 预测工作:依据给定的内容、参考文献、作者和作者的附属关系来预测每篇论文的会议地点。ogbn-mag 中共有 349 个不同的会议地点,这使得该工作成为 349 类分类问题。
  • 数据集宰割:遵循雷同的基于工夫的策略。用 2018 年之前发表的所有论文的训练模型,并用 2018 年和 2019 年当前发表的论文别离验证和测试模型。

对于 GCN 和 GRAPHSAGE,试验中在同构子图上利用模型。从上面的后果能够看出吗,利用图的异构性质对于在这个数据集上获得良好的性能是至关重要的。

1.2.2 OGB 链接属性预测

ogbl-ppa:蛋白质关联网络

  • 节点示意来自 58 个不同物种的蛋白质,边示意蛋白质之间的生物学上有意义的关联。每个节点都蕴含一个 58 维的 one-hot 特征向量,该向量批示相应蛋白质所来自的物种。
  • 预测工作:在给定训练边的状况下预测新的关联边。评估基于模型对 positive 测试边胜过 negative 测试边的等级。具体来说,针对 3,000,000 个随机采样的 negative 边对验证 / 测试集中的每个 positive 边进行排名,并计算排名在第 K 位或更高(Hits@K)的 positive 边的比率。发现 K =100 是评估模型性能的一个很好的阈值。
  • 数据集宰割:依据边的生物学吞吐量分为训练 / 验证 / 测试边。

试验后果如下所示,GNN 训练成果不佳表明,仅靠 GNN 无奈捕捉的地位信息对于适应训练边并取得有意义的节点嵌入可能至关重要。

ogbl-collab:作者单干网络

  • 每个节点代表一个作者,边示意作者之间的单干。所有节点都具备 128 维特色,这些特色是通过均匀作者发表的论文的词嵌入取得的。所有边都与两种类型的元信息相关联:年份和边缘权重,代表当年发表的单干论文的数量。
  • 预测工作:依据给定的过来单干来预测将来的作者单干关系。评估指标相似于 ogbl-ppa,心愿该模型将实在合作的等级高于虚伪合作。具体来说,在 100,000 个随机采样的 negative 合作中对每个实在合作进行排名,并计算排名在 K 位或更高(Hits@K)的 positive 边的比率。在初步试验中,发现 K =50 是一个很好的阈值。
  • 数据集宰割:依据工夫拆分数据,以便在合作举荐中模仿理论利用。具体来说,将直到 2017 年的单干作为训练边,将 2018 年的单干作为验证边,并将 2019 年的单干作为测试边。

试验后果如下图,值得注意的是,MATRIXFACTORIZATION 能够达到近乎完满的训练后果,然而即便利用大量的正则化解决,也无奈将良好的后果转移到验证和测试拆分中。总体而言,摸索将地位信息注入 GNN 并开发更好的正则化办法是富有成果的。

ogbl-ddi:药品交互网络

  • 节点代表 FDA 批准的或试验药物,边代表药物之间的相互作用,并且能够解释为一种景象,其中将两种药物合用的联结成果与预期的药物彼此独立起作用的成果有很大不同。
  • 预测工作:在已知药物相互作用的根底上预测药物相互作用。评估指标与 ogbl-collab 类似,心愿该模型将实在药物相互作用的排名高于非相互作用药物对。具体来说,在大概 100,000 个随机采样的 negative 药物相互作用中对每个实在药物相互作用进行排名,并计算在 K 位或更高(Hits@K)处排名的 positive 边缘的比率。在初步试验中,发现 K = 20 是一个很好的阈值。
  • 数据集宰割:开发了一种蛋白质 - 靶标拆分,这意味着依据那些药物在体内靶向的蛋白质来拆分药物边缘。

试验后果如下所示,乏味的是,GNN 模型和 MATRIXFACTORIZATION 办法都比 NODE2 VEC 取得了显著更高的训练后果。然而,只有 GNN 模型能力在某种程度上将这种性能传递给测试集,这表明关系信息对于使模型推广到看不见的交互作用至关重要。

ogbl-citation:论文援用网络

  • 从 MAG 提取的论文子集之间的引文网络,与 ogbn-arxiv 类似,每个节点都是具备 128 维 WORD2VEC 特色的论文,该论文总结了其题目和摘要,并且每个有向边都示意一篇论文援用了另一篇论文。所有节点还带有示意相应论文发表年份的元信息。
  • 预测工作:依据给定的现有援用来预测短少的援用。具体来说,对于每篇原始论文,将随机删除其两个参考文献,并且心愿模型将缺失的两个参考文献的排名高于 1,000 个 negative 参考候选集。negetive 援用是从源论文未援用的所有先前论文中随机抽取的。评估指标是 Mean Reciprocal Rank(MRR),其中针对每份原始论文计算实在参考文献在 negative 候选者中的互惠等级,而后取所有原始论文的平均值。
  • 数据集宰割:为了模仿引文举荐中的理论利用,会依据工夫划分边缘(例如,用户正在撰写一篇新论文,并且曾经援用了几篇现有论文,但心愿被举荐为其余参考)。为此,应用最新论文(2019 年发表)作为要举荐参考文献的原始论文。对于每篇原始论文,从参考文献中删除两篇——所失去的两个降落边(从原始论文指向删除的论文)指向别离用于验证和测试。其余所有边缘均用于训练。

从上面的试验后果能够看出,mini-batch 技术的性能要比 full-batch 差,这与节点分类数据集(例如 ogbn-products 和 ogbn-mag)相同,基于小批量的模型有更强的泛化性能。与用于节点预测的技术不同,这种限度为将小批处理技术利用于链接预测提出了一个独特的挑战。

ogbl-wikikg:Wikidata 常识图

  • 从 Wikidata 知识库中提取的常识图(KG)。它蕴含一组三元组边缘(头部、关系、尾部)其捕捉了世界各实体之间的不同类型的关系。检索了 Wikidata 中的所有关系语句,并过滤掉罕见实体。该 KG 中蕴含了 2,500,604 个实体和 535 个关系类型。
  • 预测工作:在给定训练边缘的状况下预测新的三元组边缘。评估指标遵循 KG 中宽泛应用的规范过滤指标。具体来说,通过用随机采样的 1,000 个 negative 实体(头部为 500 个,尾部为 500 个)替换其头部或尾部来毁坏每个测试三元组边缘,同时确保生成的三元组不会呈现在 KG 中。指标是将实在的头部(或尾部)实体排名高于 negative 实体,该排名由均匀互惠排名(MRR)掂量。
  • 数据集宰割:依据工夫划分三元组,模仿一个事实的 KG 实现计划,该计划旨在填充在某个工夫戳上不存在的缺失三元组。具体来说,在三个不同的工夫戳 17(2015 年 5 月,8 月和 11 月)下载了 Wikidata,并构建了三个 KG,其中仅保留最早呈现在 5 月 KG 中的实体和关系类型。应用五月 KG 中的三元组进行训练,并应用八月和 11 月 KG 中的三元组别离进行验证和测试。

试验后果如下表所示,从表的上半局部能够看到,当应用无限的嵌入维数时,COMPLEX 在四个基线中体现最佳。从表的下半局部能够看出,随着维数的减少,所有四个模型都可能在训练、验证和测试集上实现更高的 MRR。这表明应用足够大的嵌入维数在此数据集中实现良好性能的重要性。

ogbl-biokg:生物医学常识图

  • 是一个常识图(KG),应用了大量生物医学数据库中的数据创立了该图。它蕴含 5 种类型的实体:疾病(10,687 个节点)、蛋白质(17,499 个节点)、药物(10,533 个节点)、副作用(9,969 个节点)和蛋白质性能(45,085 个节点)。有 51 种类型的有向关系将两种类型的实体分割起来,包含 39 种药物相互作用,8 种蛋白质相互作用等。所有关系都被建模为有向边,其中连贯雷同实体类型(例如蛋白质 - 蛋白质,药物 - 药物,性能 - 性能)的关系始终是对称的,即边是双向的。KG 中的三元组来自具备各种置信度级别的起源,包含试验读数,人工策动的正文以及主动提取的元数据。
  • 预测工作:在给定训练三元组的状况下预测新的三元组。评估协定 ogbl-wikikg 完全相同,这里只思考针对雷同类型的实体进行排名。例如,当毁坏蛋白质类型的头部实体时,仅思考 negative 蛋白质实体。
  • 数据集宰割:对于此数据集,采纳随机宰割。尽管依据工夫划分三元组是一种有吸引力的抉择,但留神到,要取得无关何时进行三元组的个别试验和察看的精确信息十分艰难。致力在 OGB 的将来版本中提供其余数据集拆分。

试验后果如下图所示,在这四个模型中,COMPLEX 达到了最佳的测试 MRR,而 TRANSE 与其余模型相比,性能显著差。TRANSE 的较差性能能够通过以下事实来解释:TRANSE 无奈为该数据集中普遍存在的对称关系建模,例如,蛋白质 - 蛋白质和药物 - 药物关系都是对称的。总体而言,进一步提高模型性能具备重大的实际意义。一个有前途的方向是为异构常识图开发一种更专门的办法,该办法中存在多个节点类型,并且整个图遵循预约义的架构。

1.2.3OGB 图属性预测

ogbg-mol*:分子图

  • ogbg-molhiv 和 ogbg-molpcba 是两个大小不同的分子属性预测数据集:ogbg-molhiv(small)和 ogbg-molpcba(medium)。所有分子均应用 RDKIT 进行预处理。每个图示意一个分子,其中节点示意原子,而边示意化学键。输出节点特色为 9 维,蕴含原子序数和手性,以及其余附加原子特色,例如模式电荷和原子是否在环中。输出边特色是 3 维的,蕴含键类型,键立体化学以及批示键是否共轭的附加键特色。
  • 预测工作:尽可能精确地预测指标分子个性,其中分子个性被标记为二元标记,例如分子是否克制 HIV 病毒复制。对于 ogbg-molhiv,应用 ROC-AUC 进行评估。对于 ogbg-molpcba,因为类均衡重大偏斜(仅 1.4%的数据为 positive),并且数据集蕴含多个分类工作,因而将工作均匀后的准确召回曲线(PRC)-AUC 作为评估指标。
  • 数据集宰割:采纳支架宰割程序,该程序依据分子的二维构造框架格调分子。支架宰割试图将构造上不同的分子分为不同的子集,这在预期的试验环境中提供了对模型性能的更事实的预计。总体而言,OGB 与它们的数据加载器一起提供了有意义的数据拆分和改良的分子性能,从而使对 MOLECULENET 数据集的评估和比拟更加容易和标准化。

试验后果如下图所示,能够看到具备附加性能的 GIN 和虚构节点在两个数据集中提供了最佳性能。

ogbg-ppa:蛋白质关联网络

  • 从 1,581 个不同物种的蛋白质关联网络中提取的一组无向蛋白质关联邻域,涵盖了 37 个宽泛的生物分类群。从每种物种中随机抉择了 100 种蛋白质,并以每个选定的蛋白质为核心构建了 2 -hop 蛋白质关联邻域。而后,从每个邻域中删除核心节点,并对邻域进行二次采样,以确保最终的蛋白质关联图足够小(少于 300 个节点)。每个蛋白质关联图中的节点示意蛋白质,边示意蛋白质之间的生物学上有意义的关联。边与 7 维特色相干,其中每个元素取 0 到 1 之间的值,并代表特定类型的蛋白质关联的强度。
  • 预测工作:给定一个蛋白质关联邻域图,该工作是一个 37-way 多分类,以预测该图源自哪个分类组。
  • 数据集宰割:与 ogbn-proteins 相似,采纳物种宰割办法,其中验证和测试集中的邻域图是从在训练过程中未发现但属于 37 个分类组之一的物种蛋白质关联网络中提取的。

试验后果如下表,相似于 ogbg-mol * 数据集,带有 VIRTUAL NODE 的 GIN 提供了最佳性能。尽管如此,泛化差距依然很大(将近 30 个百分点)。

ogbg-code:源代码的形象语法树

  • 从大概 45 万个 Python 办法定义中取得的形象语法树(AST)的汇合。办法是从 GITHUB 上最受欢迎的我的项目的总共 13,587 个不同的存储库中提取的。Python 办法汇合来自 GITHUB Code Search-Net,它是用于基于机器学习的代码检索的数据集和基准的汇合。
  • 预测工作:给定 AST 示意的 Python 办法主体及其节点特色,工作是预测组成办法名称的子标记——节点类型(来自 97 种类型的池)、节点属性(例如变量名,词汇量为 10002),AST 中的深度、预遍历索引
  • 数据集宰割:采纳我的项目宰割,其中训练集的 AST 是从 GITHUB 我的项目中取得的,这些我的项目未呈现在验证和测试集中。这种划分尊重理论状况,即在大量源代码上训练模型,而后将其用于在独自的代码库上预测办法名称。

1.3 OGB Package

OGB Package 包旨在通过自动化数据加载和评估局部,使钻研人员易于拜访 OGB 管道。OGB 与 Pytorch 及其关联的图形库齐全兼容:PyG 和 DGL。OGB 还提供了与库无关的数据集对象,可用于任何其余 Python 深度学习框架(如 Tensorflow 和 Mxnet)。上面,将解释数据加载和评估。为简略起见,专一于应用 PyG 进行图属性预测的工作。无关其余工作详见官网。

OGB 数据加载器:OGB Package 使获取与 PyG 齐全兼容的数据集对象变得容易仅用一行代码即可实现操作,最终用户只需指定数据集的名称即可。而后,OGB Package 将下载、解决、存储并返回所申请的数据集对象。此外,能够从数据集对象中轻松取得标准化的数据集宰割。

OGB 评估器:OGB 还能够通过 ogb.*.Evaluator 类实现标准化和牢靠的评估。如上面的代买所示,最终用户首先指定他们要评估其模型的数据集,而后用户能够理解须要传递给 Evaluator 对象的输出格局。输出格局取决于数据集,例如,对于 ogbg-molpcba 数据集,Evaluator 对象须要输出一个字典,其中蕴含 y_true(存储实在二进制标签的矩阵)和 y_pred(存储模型输入的分数的矩阵)。最终用户通过指定的词典作为输出后,评估程序对象将返回适宜手头数据集的模型性能,例如 ogbg-molpcba 的 PRC-AUC。

2.ERNIESage(街坊聚合)

2.1 模型概述

ERNIE-Sage 是 ERNIE SAmple aggreGatE 的简称,该模型能够同时建模文本语义与图构造信息,无效晋升 Text Graph 的利用成果。

论文链接:https://aclanthology.org/2020…
论文介绍了百度 PGL 团队设计的零碎,该零碎在 TextGraphs 2020 共享工作中取得第一名。该工作的重点是为基础科学问题提供解释。给定一个问题及其相应的正确答案,被要求从大型知识库中抉择能够解释为什么该问题和答复 (QA) 的答案是正确的事实。为了解决这个问题,PGL 团队应用预训练的语言模型来回顾每个问题的前 K 个相干解释。而后,他们采纳基于预训练语言模型的从新排序办法对候选解释进行排序。为了进一步提高排名,还开发了一种由弱小的预训练变压器和 GNN 组成的架构,以解决多跳推理问题。

2.2 原理介绍

在很多工业利用中,往往呈现如下图所示的一种非凡的图:Text Graph。顾名思义,图的节点属性由文本形成,而边的构建提供了构造信息。如搜寻场景下的 Text Graph,节点可由搜索词、网页题目、网页注释来表白,用户反馈和超链信息则可形成边关系。

ERNIE-Sage 是 ERNIE 与 GraphSAGE 碰撞的后果,是 ERNIE SAmple aggreGatE 的简称,它的构造如下图所示,次要思维是通过 ERNIE 作为聚合函数(Aggregators),建模本身节点和街坊节点的语义与构造关系。ERNIE-Sage 对于文本的建模是构建在街坊聚合的阶段,核心节点文本会与所有街坊节点文本进行拼接;而后通过预训练的 ERNIE 模型进行音讯汇聚,捕获核心节点以及街坊节点之间的互相关系;最初应用 ERNIESage 搭配独特的街坊相互看不见的 Attention Mask 和独立的 Position Embedding 体系,就能够轻松构建 TextGraph 中句子之间以及词之间的关系。

应用 ID 特色的 GraphSAGE 只可能建模图的构造信息,而独自的 ERNIE 只能解决文本信息。通过 PGL 搭建的图与文本的桥梁,ERNIESage 可能很简略的把 GraphSAGE 以及 ERNIE 的长处联合一起。以上面 TextGraph 的场景,ERNIESage 的成果可能比独自的 ERNIE 以及 GraphSAGE 模型都要好。

ERNIE-Sage 能够很轻松地在 PGL 中的消息传递范式中进行实现,目前提供了 4 个版本的 ERNIESage 模型:

  • ERNIE-Sage v1: ERNIE 作用于 text graph 节点上;
  • ERNIE-Sage v2: ERNIE 作用在 text graph 的边上;
  • ERNIE-Sage v3: ERNIE 作用于一阶街坊及起边上;
  • ERNIE-Sage v4: ERNIE 作用于 N 阶街坊及边上;

模型成果

TextGraph 2020 成果过后的 SOTA

利用场景

文本匹配、Query 举荐等

2.3 如何对 Text Graph 进行建模

上个我的项目讲到的 GraphSage 只关注构造信息,无奈实现语义了解,而 NLP 对应的预训练模型却反之,这时候 ErnieSage 就能很好实现两者达到图语义了解

简略提一下 Ernie 1.0 外围是常识加强,通过词级别的 Masked Language Model(MLM)工作以及继续学习思维获得优异性能

Transformer 根底构造

transformer 好比全连通图,图节点类比 token 外加了自留神机制。

继续学习效果

将 ERNIE 作用于 Graph 的各大元素:

  1. ERNIESage V1 模型外围流程 —ERNIE 作用于 Text Graph 的 Node(节点)上
  • ERNIE 提取节点语义 -> GNN 聚合

<img src=”https://ai-studio-static-online.cdn.bcebos.com/0ab25a4f0c1647acbcfacc1be2066d47e98ec4f1931d4dcebd209347dc1b5448″ alt=” 图片替换文本 ” width=”300″ height=”313″ align=”bottom” />

  • 利用 ERNIE 取得节点示意
  • 聚合街坊特色,进行消息传递
  • 将以后节点和聚合后的街坊特色进行 concat,更新节点特色
  1. ERNIESage V2 外围代码 ———ERNIE 聚合 Text Graph 的 Edge(边)上信息
  • GNN send 文本 id -> ERNIE 提取边语义 -> GNN recv 聚合街坊语义 -> ERNIE 提取核心节点语义并 concat

<img src=”https://ai-studio-static-online.cdn.bcebos.com/24d5cca257624cc6bb94eeea7a7c3f84512534070c5949a5a9aca8fc8455f52e” alt=” 图片替换文本 ” width=”500″ height=”313″ align=”bottom” />

为了使得大家对上面无关 ERNIE 模型的局部可能有所理解,这里先贴出 ERNIE 的主模型框架图。

  • 利用 ERNIE 获取核心节点的文本特色示意
  • 特色交互:核心节点和街坊节点一起作为 ERNIE 输出,计算交互特色
  • 聚合街坊特色
  • 将以后节点和聚合后的街坊特色 concat,更新节点特色

ERNIESage Node 与 ERNIESage Edge 比照

大部分单塔模型优于双塔模型因为含有特色交互信息更充沛,做链接预测问题思路:将两个节点进行內积失去一个值,和阈值比照假如大于 0.5 则边存在

  1. ERNIESage V3 外围过程 ——–ERNIE 聚合节点的 1 Neighbor(一阶街坊)信息
  • GNN send 文本 id 序列 -> GNN recv 拼接文本 id 序列 -> ERNIE 同时提取核心和多个街坊语义表白

将核心节点的文本与所有一阶街坊节点文本进行单塔拼接,再利用 ERNIE 做音讯聚合;这样就会遇到:

  1. 如何确保在输出时街坊不带有程序?
  2. 如果街坊数量过多,如何建模?

解决方案如下:针对问题一采纳独立地位编码,街坊节点编码雷同不受程序影响;针对问题提二:进行街坊采样

2.4 基于 PGL 算法实现

PGL&paddle 2.x+ 版本

ErnieSage 能够很轻松地在基于 PaddleNLP 构建基于 Ernie 的图神经网络,目前 PaddleNLP 提供了 V2 版本的 ErnieSage 模型:

ErnieSage V2: ERNIE 作用在 text graph 的边上;

外围局部蕴含:

  • 数据集局部
  • example_data – 简略的输出文件,格局为每行 query \t answer,可作简略的运行实例应用。
  • 模型文件和配置局部
  • ernie_config.json – ERNIE 模型的配置文件。
  • vocab.txt – ERNIE 模型所应用的词表。
  • ernie_base_ckpt/ – ERNIE 模型参数。
  • config/ – ERNIESage 模型的配置文件
  • 代码局部
  • local_run.sh – 入口文件,通过该入口可实现预处理、训练、infer 三个步骤。
  • preprocessing 文件夹 – 蕴含 dump_graph.py, 在预处理局部,首先须要进行建图,将输出的文件构建成一张图。因为所钻研的是 Text Graph,因而节点都是文本,将文本示意为该节点对应的 node feature(节点特色),解决文本的时候须要进行切字,再映射为对应的 token id。
  • dataset/ – 该文件夹蕴含了数据 ready 的代码,以便于在训练的时候将训练数据以 batch 的形式读入。
  • models/ – 蕴含了 ERNIESage 模型外围代码。
  • train.py – 模型训练入口文件。
  • learner.py – 分布式训练代码,通过 train.py 调用。
  • infer.py – infer 代码,用于 infer 出节点对应的 embedding。
  • 评估局部
  • build_dev.py – 用于将的验证集批改为须要的格局。
  • mrr.py – 计算 MRR 值。
    局部后果展现:
[2022-11-23 14:18:01,252] [INFO] - global step 890, epoch: 27, batch: 25, loss: 0.005078, speed: 1.70 step/s
[2022-11-23 14:18:06,836] [INFO] - global step 900, epoch: 28, batch: 3, loss: 0.004688, speed: 1.79 step/s
[2022-11-23 14:18:12,588] [INFO] - global step 910, epoch: 28, batch: 13, loss: 0.004492, speed: 1.74 step/s
[2022-11-23 14:18:18,633] [INFO] - global step 920, epoch: 28, batch: 23, loss: 0.005273, speed: 1.65 step/s
[2022-11-23 14:18:24,022] [INFO] - global step 930, epoch: 29, batch: 1, loss: 0.004687, speed: 1.86 step/s
[2022-11-23 14:18:29,897] [INFO] - global step 940, epoch: 29, batch: 11, loss: 0.004492, speed: 1.70 step/s
[2022-11-23 14:18:35,727] [INFO] - global step 950, epoch: 29, batch: 21, loss: 0.007814, speed: 1.72 step/s
[2022-11-23 14:18:41,339] [INFO] - global step 960, epoch: 29, batch: 31, loss: 0.012500, speed: 1.78 step/s
INFO 2022-11-23 14:18:47,170 launch.py:402] Local processes completed.
INFO 2022-11-23 14:18:47,170 launch.py:402] Local processes completed.

运行结束后,会产生较多的文件,这里进行简略的解释。

  1. graph_workdir/ – 这个文件夹次要会存储和图相干的数据信息。
  2. output/ – 次要的输入文件夹,蕴含了以下内容:

    • (1)模型文件,依据 config 文件中的 save_per_step 可调整保留模型的频率,如果设置得比拟大则可能训练过程中不会保留模型;
    • (2)last 文件夹,保留了进行训练时的模型参数,在 infer 阶段会应用这部分模型参数;
    • (3)part- 0 文件,infer 之后的输出文件中所有节点的 Embedding 输入。

预测后果见 /output part-0,局部后果展现:

1    干部走读之所以成为“千夫所指”,是因为这种行为减少了行政老本。0.08133 -0.18362 0.00346 -0.01038 -0.05656 -0.05691 -0.09882 0.12029 0.05317 -0.02939 -0.14508 -0.07692 -0.02769 -0.04896 0.09963 -0.14497 -0.13574 0.02424 0.10587 -0.07323 -0.06388 0.01103 0.00944 -0.07593 -0.00731 -0.11897 0.11635 -0.05529 0.04156 0.01942 -0.07949 -0.02761 0.00033 -0.06539 0.05739 0.02487 0.03389 0.18369 0.05038 -0.02183 0.02685 0.09735 -0.13134 0.01999 -0.04034 -0.03441 0.07738 0.14992 0.06287 -0.20294 -0.05325 0.07003 0.02595 0.01826 0.12306 0.06234 -0.11179 -0.09813 0.14834 -0.16425 0.13985 0.06430 0.01662 -0.01184 0.02659 0.13431 0.05327 -0.07269 0.06539 -0.12416 -0.03247 0.12320 -0.06268 -0.06711 -0.01775 -0.02475 0.12867 0.05980 0.09311 0.11515 -0.06987 0.07372 0.09891 -0.10539 -0.03451 0.02539 -0.05701 -0.06300 0.03582 0.13427 -0.07082 -0.01588 -0.10033 0.04229 -0.02681 0.22213 0.00073 0.00075 -0.16839 0.12594 0.00807 -0.00040 -0.07686 0.08944 -0.04361 -0.13446 -0.15051 -0.08336 0.13476 -0.07999 0.00719 0.04443 -0.21426 -0.02944 0.04165 0.14448 -0.07233 -0.07226 -0.01737 -0.05904 -0.08729 0.01087 0.11581 -0.00041 -0.04341 0.01526 -0.01272 -0.15089
1    承当县人大常委会同市人大常委会及乡镇人大的工作分割。0.06494 -0.25502 -0.00777 -0.02933 -0.03097 -0.08472 -0.15055 0.03232 0.04819 -0.03571 -0.18642 0.01614 0.07226 0.04660 0.06138 -0.14811 -0.01807 -0.00931 0.11350 0.04235 -0.14285 0.08077 0.10746 -0.03673 -0.12217 -0.05147 0.15980 -0.02051 -0.08356 0.00127 0.02313 0.14206 0.02116 -0.02332 -0.02032 0.03704 0.04234 0.05832 -0.03426 -0.02491 0.07948 0.11802 0.10158 -0.06468 -0.11558 0.00161 0.02030 0.06531 -0.04109 -0.13033 -0.04947 0.10836 -0.06057 0.01797 0.00183 0.18616 -0.13693 -0.17120 0.02910 0.01781 0.24061 -0.03953 0.10843 0.05329 -0.08753 -0.09504 0.05383 -0.11522 0.05172 -0.02633 0.06554 0.18186 -0.03937 -0.09151 -0.01045 -0.01857 0.10766 0.04191 0.10127 -0.00513 -0.02739 -0.10974 0.07810 -0.17015 -0.07228 -0.05809 -0.08627 -0.02947 -0.01907 0.12695 -0.09196 0.03067 -0.09462 0.15618 -0.05241 0.17382 -0.06615 0.02156 0.07060 0.09616 -0.02560 0.01197 -0.00582 -0.06037 -0.11539 -0.11853 -0.16872 0.00075 0.13284 0.02941 -0.01361 -0.01200 -0.12901 0.06944 -0.03066 0.09824 -0.01635 0.04351 -0.08985 0.08947 0.00923 -0.02436 0.10783 0.00891 0.10256 0.01953 -0.06292 -0.04989
# 接下来,计算 MRR 得分。# 留神,运行此代码的前提是,曾经将 config 对应的 yaml 配置文件中的 input_data 参数批改为了:"train_data.txt"
# 并且留神训练的模型是针对 train_data.txt 的,如果不合乎,请从新训练模型。!python mrr.py --emb_path output/part-0

# 因为仅是为了提供一个可运行的实例,计算出来的 MRR 值可能比拟小,须要的同学能够本人更换数据集来测试更多的后果。1021it [00:00, 19102.78it/s]
46it [00:00, 68031.73it/s]
100%|█████████████████████████████████████████| 46/46 [00:00<00:00, 2397.52it/s]
MRR  0.22548099768841945

PGL&paddle 1.x+ 版本

提供多版本供大家学习复现,含外围模型代码解说

我的项目链接:

https://aistudio.baidu.com/ai…

3.UniMP(标签迁徙)

UniMP:交融标签传递和图神经网络的对立模型

论文名:Masked Label Prediction:用于半监督分类的对立消息传递模型

论文链接:https://arxiv.org/abs/2009.03509

图神经网络(GNN)和标签流传算法(LPA)都是消息传递算法,在半监督分类中获得了优越的性能。GNN 通过神经网络执行特色流传来进行预测,而 LPA 应用跨图邻接矩阵的标签流传来取得后果。然而,目前还没有无效的办法将这两种算法间接联合起来。为了解决这个问题,提出了一种新鲜的对立消息传递模型 (UniMP),它能够在训练和推理时联合特色和标签流传。首先,UniMP 采纳 Graph Transformer 网络,将 feature embedding 和 label embedding 作为输出信息进行流传。其次,为了在自循环输出标签信息中不适度拟合地训练网络,UniMP 引入了一种屏蔽标签预测策略,其中肯定比例的输出标签信息被随机屏蔽,而后进行预测。UniMP 在概念上对立了特色流传和标签流传,并且在教训上是弱小的。它在 Open Graph Benchmark (OGB) 中取得了新的最先进的半监督分类后果。

此外,提出 UniMP_large 通过减少来扩大根本模型的宽度,并通过合并 APPNPhead_num 使其更深。此外,他们首先提出了一种新的基于注意力的 APPNP 来进一步提高模型的性能。

APPNP:Predict then Propagate: Graph Neural Networks meet Personalized PageRank https://arxiv.org/abs/1810.05997

用于图形半监督分类的神经消息传递算法最近获得了巨大成功。然而,为了对节点进行分类,这些办法仅思考间隔流传几步之遥的节点,并且这个应用的邻域的大小很难扩大。在本文中,利用图卷积网络 (GCN) 与 PageRank 之间的关系,推导出一种基于个性化 PageRank 的改良流传计划。利用这种流传过程来构建一个简略的模型、神经预测的个性化流传 (PPNP) 及其疾速近似 APPNP。模型的训练工夫与以前的模型雷同或更快,其参数数量与以前的模型雷同或更少。它利用一个大的、可调整的邻域进行分类,并且能够很容易地与任何神经网络相结合。表明,在迄今为止对类 GCN 模型所做的最彻底的钻研中,该模型优于最近提出的几种半监督分类办法。的施行可在线取得。

3.1 背景介绍

在半监督图节点分类场景下,节点之间通过边相连接,局部节点被打上标签。工作要求模型通过监督学习的形式,拟合被标注节点数据,并对未标注的节点进行预测。如下图所示,在个别机器学习的问题上,已标注的训练数据在新数据的推断上,并不能施展间接的作用,因为数据的输出是独立的。然而在图神经网络的场景下,已有的标注数据能够从节点与节点的连贯中,依据图构造关系推广到新的未标注数据中。

个别利用于半监督节点分类的算法分为图神经网络和标签传递算法两类,它们都是通过消息传递的形式(前者传递特色、后者传递标签)进行节点标签的学习和预测。其中经典标签传递算法如 LPA,只思考了将标签在图上进行传递,而图神经网络算法大多也只是应用了节点特色以及图的链接信息进行分类。然而单纯思考标签传递或者节点特色都是不足够的。

百度 PGL 团队提出的对立消息传递模型 UniMP,将上述两种音讯对立到框架中,同时实现了节点的特色与标签传递,显著晋升了模型的泛化成果。UniMP 以 Graph Transformer 模型作为根底骨架,联结应用标签嵌入办法,将节点特色和局部节点标签同时输出至模型中,从而实现了节点特色和标签的同时传递。

简略的退出标签信息会带来标签透露的问题,即标签信息即是特色又是训练指标。实际上,标签大部分是有程序的,例如在援用网络中,论文是依照工夫先后顺序呈现的,其标签也应该有肯定的先后顺序。在无奈得悉训练集标签程序的状况下,UniMP 提出了标签掩码学习办法。UniMP 每一次随机将一定量的节点标签掩码为未知,用局部已有的标注信息、图构造信息以及节点特色来还原训练数据的标签。最终,UniMP 在 OGB 上获得 SOTA 成果,并在论文的融化试验上,验证了办法的有效性。

通过:Masked Label Prediction 解决标签泄露问题

模型构造

论文一些数据仿真展现:【数据集状况等】

3.2 原理介绍

局部作者提出质疑也是值得探讨的:

3.3 基于码源具体阐释

3.3.1 为何引入 MaskLabel?

简略的退出标签信息会带来 标签透露 的问题,即标签信息即是特色又是训练指标。能够设想间接将标签作为网络输出,要求输入也向标签聚拢,势必会造成“1=1”的训练后果,无奈用于预测。

在援用网络中,论文是依照工夫先后顺序呈现的,其标签也应该有肯定的先后顺序。在无奈得悉训练集标签程序的状况下,UniMP 提出了 MaskLabel 学习办法。每一次随机将一定量的节点标签掩码为未知,用局部已有的标注信息、图构造信息以及节点特色来还原训练数据的标签。

def label_embed_input(self, feature):
    label = F.data(name="label", shape=[None, 1], dtype="int64")
    label_idx = F.data(name='label_idx', shape=[None, 1], dtype="int64")
    label = L.reshape(label, shape=[-1])
    label_idx = L.reshape(label_idx, shape=[-1])

    embed_attr = F.ParamAttr(initializer=F.initializer.NormalInitializer(loc=0.0, scale=1.0))
    embed = F.embedding(input=label, size=(self.out_size, self.embed_size), param_attr=embed_attr)
    feature_label = L.gather(feature, label_idx, overwrite=False)
    feature_label = feature_label + embed
    feature = L.scatter(feature, label_idx, feature_label, overwrite=True)
        
    lay_norm_attr = F.ParamAttr(initializer=F.initializer.ConstantInitializer(value=1))
    lay_norm_bias = F.ParamAttr(initializer=F.initializer.ConstantInitializer(value=0))
    feature = L.layer_norm(feature, name='layer_norm_feature_input', param_attr=lay_norm_attr, bias_attr=lay_norm_bias)
    
    return feature

在下面的代码中能够看到,对于已知标签的节点,首先将其 embedding 成和节点特色同样维度(这里是 100 维),而后就能够间接与节点特色相加,进而实现了标签信息与特色信息的交融,一块送入 graph_transformer 进行消息传递。

改良:这里,最外围的一句代码是 feature_label = feature_label + embed,它实现了标签和特色的交融,由此能够想到管制两者的权重,失去:

feature_label = alpha*feature_label + (1-alpha)*embed

alpha 能够设定为固定值,也能够通过学习取得。参考 model_unimp_large.py 中的门控残差连贯:

if gate:
    temp_output = L.concat([skip_feature, out_feat, out_feat - skip_feature], axis=-1)
    gate_f = L.sigmoid(linear(temp_output, 1, name=name + '_gate_weight', init_type='lin'))
    out_feat = skip_feature * gate_f + out_feat * (1 - gate_f)
else:
    out_feat = skip_feature + out_feat

能够写出:

temp = L.concat([feature_label,embed,feature_label-embed], axis=-1)
alpha = L.sigmoid(linear(temp, 1, name='alpha_weight', init_type='lin'))
feature_label = alpha*feature_label + (1-alpha)*embed

当然也能够间接通过一层 FC 后再将两者相加:

feature_label = L.fc(feature_label, size=100) + L.fc(embed, size=100)

而做这些的目标,都是为了寻找能使标签信息和特色信息交融的更好的形式。

3.3.2 Res 连贯 &Dense 连贯?

(1)残差网络(或称深度残差网络、深度残差学习,英文 ResNet)属于一种卷积神经网络。相较于一般的卷积神经网络,残差网络采纳了跨层恒等连贯,以加重卷积神经网络的训练难度。残差网络的一种根本模块如下所示:

实现起来比较简单,这里不予赘述。

(2)DenseNet 原文:Densely Connected Convolutional Networks

相比 ResNet,DenseNet 提出了一个更激进的密集连贯机制:即相互连贯所有的层,具体来说就是每个层都会承受其后面所有层作为其额定的输出。DenseNet 的网络结构如下所示:

以下代码实现了 Dense 连贯:

dense=[feature]
for i in range(self.num_layers - 1):
    ngw = pgl.sample.edge_drop(graph_wrapper, edge_dropout) 
    res_feature = feature

    feature, _, cks = graph_transformer(str(i), ngw, feature,
    hidden_size=self.hidden_size,
    num_heads=self.heads, 
        concat=True, skip_feat=True,
         layer_norm=True, relu=True, gate=True)
    if dropout > 0:
    feature = L.dropout(feature, dropout_prob=dropout, dropout_implementation='upscale_in_train') 

    dense.append(feature)
    feature = L.fc(dense, size=self.hidden_size, name="concat_feature")

3.3.3 注意力机制?

注意力机制就是将注意力集中于部分要害信息的机制,能够分成两步:第一,通过全局扫描,发现部分有用信息;第二,加强有用信息并克制冗余信息。SENet 是一种十分经典的注意力机制下的深度学习办法。它能够通过一个小型的子网络,主动学习失去一组权重,对特色图的各个通道进行加权。其含意在于,某些特色通道是较为重要的,而另一些特色通道是信息冗余的;那么,咱们就能够通过这种形式加强有用特色通道、减弱冗余特色通道。SENet 的一种根本模块如下所示:

值得指出的是,通过这种形式,每个样本都能够有本人独特的一组权重,能够依据样本本身的特点,进行独特的特色通道加权调整。

Unimp 中的注意力机制呈现在 Graph Transformer 以及最初的输入层 attn_appnp,attn_appnp 的代码为:

def attn_appnp(gw, feature, attn, alpha=0.2, k_hop=10):
    """Attention based APPNP to Make model output deeper
    Args:
        gw: Graph wrapper object (:code:`StaticGraphWrapper` or :code:`GraphWrapper`)
        attn: Using the attntion as transition matrix for APPNP
        feature: A tensor with shape (num_nodes, feature_size).
        k_hop: K Steps for Propagation
    Return:
        A tensor with shape (num_nodes, hidden_size)
    """
    def send_src_copy(src_feat, dst_feat, edge_feat):
        feature = src_feat["h"]
        return feature

    h0 = feature
    attn = L.reduce_mean(attn, 1)
    for i in range(k_hop):
        msg = gw.send(send_src_copy, nfeat_list=[("h", feature)])
        msg = msg * attn
        feature = gw.recv(msg, "sum")
        feature = feature * (1 - alpha) + h0 * alpha
    return feature

在调用函数时,其中的 alpha 为后面的 graph_transformer 学习到的参数,用于更好的交融各层特色。

3.4 基于 PGL 算法实现

3.4.1 基于斯坦福 OGB (1.2.1) 基准测试

试验基于斯坦福 OGB (1.2.1) 基准测试,

To_do list:

  • UniMP_large in Arxiv
  • UniMP_large in Products
  • UniMP_large in Proteins
  • UniMP_xxlarge

这里给出 giyhub 官网代码链接:https://github.com/PaddlePadd…

因为在装置环境中须要装置 torch,在 aistudio 上尝试屡次仍无奈运行,上面给出代码流程和官网后果。感兴趣同学私下本地运行吧。比拟吃算力!

超参数介绍:

Arxiv_dataset(Full Batch):          Products_dataset(NeighborSampler):          Proteins_dataset(Random Partition):
--num_layers        3               --num_layers                3               --num_layers                7                   
--hidden_size       128             --hidden_size               128             --hidden_size               64               
--num_heads         2               --num_heads                 4               --num_heads                 4
--dropout           0.3             --dropout                   0.3             --dropout                   0.1
--lr                0.001           --lr                        0.001           --lr                        0.001
--use_label_e       True            --use_label_e               True            --use_label_e               True
--label_rate        0.625           --label_rate                0.625           --label_rate                0.5 
--weight_decay.     0.0005

后果展现:

OGB 的仿真性能:

Model Test Accuracy Valid Accuracy Parameters Hardware
Arxiv_baseline 0.7225 ± 0.0015 0.7367 ± 0.0012 468,369 Tesla V100 (32GB)
Arxiv_UniMP 0.7311 ± 0.0021 0.7450 ± 0.0005 473,489 Tesla V100 (32GB)
Arxiv_UniMP_large 0.7379 ± 0.0014 0.7475 ± 0.0008 1,162,515 Tesla V100 (32GB)
Products_baseline 0.8023 ± 0.0026 0.9286 ± 0.0017 1,470,905 Tesla V100 (32GB)
Products_UniMP 0.8256 ± 0.0031 0.9308 ± 0.0017 1,475,605 Tesla V100 (32GB)
Proteins_baseline 0.8611 ± 0.0017 0.9128 ± 0.0007 1,879,664 Tesla V100 (32GB)
Proteins_UniMP 0.8642 ± 0.0008 0.9175 ± 0.0007 1,909,104 Tesla V100 (32GB)

改良 OGBN 蛋白质的更多技巧

评估中的随机分区大小,随机分区在训练过程中体现得像 DropEdge,发现的模型能够从这种策略中受害。,但在评估中,发现较小的分区大小能够进步分数。

# To compare 

python train.py --place 0 --use_label_e --log_file eval_partition_5 --eval_partition 5

python train.py --place 0 --use_label_e --log_file eval_partition_3 --eval_partition 3

应用 Self-Attention 聚合 Neighbor Feature
OGBN-Proteins 中 UniMP 和其余相似 DeeperGCN 的原始代码应用均匀边缘特色作为初始节点特色。采纳这些模块作为可学习的聚合器。为每个节点采样大概 64 个边,并应用变换器 [3 * (Self-Attention + Residual + ReLU + LayerNorm) + Mean Pooling] 作为聚合器来获取初始化节点特色。简略地称它为 CrossEdgeFeat。你能够在 cross_edge_feat.py
最后的 ogbn-proteins 工具取得了大概 0.9175 的验证分数和 0.864 的测试分数。并且通过 CrossEdgeFeat,能够促成疾速收敛并取得更高的分数。

# To compare

python train.py --place 0 --use_label_e --log_file with_cross_edge_feat  --cross_edge_feat 3

python train.py --place 0 --use_label_e --log_file without_cross_edge_feat  --cross_edge_feat 0

训练曲线(验证 AUC)如下:

3.4.2 图学习之基于 PGL-UniMP 算法的论文援用网络节点分类工作[系列九]

内容过多引到下一篇我的项目

我的项目链接:https://aistudio.baidu.com/ai…

fork 一下即可

4.OGB 最新榜单局部展现

这里就展现了节点预测的,更多的能够自行去官网查看取得最新模型

5. 总结

通过以上两个版本的模型代码简略的解说,能够晓得他们的不同点,其实次要就是在消息传递机制的局部有所不同。ERNIESageV1 版本只作用在 text graph 的节点上,在传递音讯 (Send 阶段) 时只思考了街坊自身的文本信息;而 ERNIESageV2 版本则作用在了边上,在 Send 阶段同时思考了以后节点和其街坊节点的文本信息,达到更好的交互成果。

为了实现可扩大的,强壮的和可重现的图学习钻研,提出了 Open Graph Benchmark (OGB)——具备规模大、畛域广、工作类别多样化的事实图数据集。在特定于应用程序的应用案例的驱动下,对给定的数据集采纳了理论的数据宰割办法。通过宽泛的基准试验,强调 OGB 数据集对于图学习模型在事实的数据宰割计划下解决大规模图并进行精确的预测提出了重大挑战。总而言之,OGB 为将来的钻研提供了丰盛的机会,以推动图学习的前沿。

OGB 还在一直的扩大中,置信之后会有更多数据集,也将产生更多优良的模型,推动图学习的钻研,理解和把握相干内容还是很有必要的。

原我的项目链接:fork 一下即可:https://aistudio.baidu.com/aistudio/projectdetail/5096910?contributionType=1

退出移动版