敞开成长之旅!这是我参加「日新计划12月更文挑战」的第1天,点击检查活动概况

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

原项目链接:fork一下即可:aistudio.baidu.com/aistudio/pr…

相关项目参阅:(其他图神经网络相关项目见主页)

关于图核算&图学习的根底常识概览:前置常识点学习(PGL)[系列一] aistudio.baidu.com/aistudio/pr…

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

图学习【参阅资料1】词向量word2vec aistudio.baidu.com/aistudio/pr…

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

1.Open Graph Benchmark(OGB)

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

1.1 OGB概述

怎么进一步推动图学习的研讨呢?从历史上看,高质量和大规划的数据集在推动研讨中发挥了重要的作用,例如核算机视觉范畴的IMAGENET、MS COCO,自然言语处理范畴的GLUE BENCHMARK、SQUAD,言语处理范畴的LIBRISPEECH、CHIME等。可是,其时在图学习研讨中常用的数据集和点评程序或许会对未来的发展产生负面影响。

其时基准数据集存在的问题:

与实践运用中的图比较,大多数常用数据集都十分小。例如广泛运用的Cora、Citeseer、Pubmed数据集,在节点分类使命中只用2700至20000个节点。由于在这些小型数据集上广泛开发了模型,因而大多数模型都无法扩展到较大的图;其次,较小的数据集很难去严格地点评需求许多数据的模型,例如图神经网络(GNNs)。 没有一致且通常遵从的试验协议。不同的研讨选用自己的数据集区分、点评方针和交叉验证协议,因而比较各种研讨报告的成绩具有挑战性。别的,许多研讨运用随机切割来生成train /test sets,这关于实在国际的运用是不实践的或无用的,而且通常导致过于乐观的功用成果。 因而,迫切需求一套完整的实践国际基准测验套件,该套件将来自不同范畴的各种巨细的数据集组合在一起。数据拆分以及点评方针很重要,因而能够以共同且可重复的办法衡量进展。最终,基准测验还需求供给不同类型的使命,例如节点分类,链接猜测和图分类。OGB就这样应运而生。

开放图谱基准 (OGB) 是图机器学习的基准数据集、数据加载器和点评器的调集。数据集包括各种图形机器学习使命和实践运用。OGB旨在供给包括重要图机器学习使命、多样化数据集规划和丰厚范畴的图数据集。

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

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

  • 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 现在包括的数据集和数据集的核算明细:

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

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

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 的运用作用。

论文链接:aclanthology.org/2020.textgr… 论文介绍了百度 PGL 团队规划的体系,该体系在 TextGraphs 2020 同享使命中取得第一名。 该使命的重点是为根底科学问题供给解说。 给定一个问题及其相应的正确答案,被要求从大型常识库中挑选能够解说为什么该问题和回答 (QA) 的答案是正确的事实。 为了处理这个问题,PGL团队运用预练习的言语模型来回忆每个问题的前 K 个相关解说。 然后,他们选用依据预练习言语模型的重新排序办法对候选解说进行排序。 为了进一步提高排名,还开发了一种由强壮的预练习变压器和 GNN 组成的架构,以处理多跳推理问题。

2.2 原理介绍

在许多工业运用中,往往呈现如下图所示的一种特殊的图:Text Graph。望文生义,图的节点特色由文本构成,而边的构建供给了结构信息。如查找场景下的Text Graph,节点可由查找词、网页标题、网页正文来表达,用户反应和超链信息则可构成边联络。

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

ERNIE-Sage 是 ERNIE 与 GraphSAGE 磕碰的成果,是 ERNIE SAmple aggreGatE 的简称,它的结构如下图所示,首要思维是经过 ERNIE 作为聚合函数(Aggregators),建模自身节点和街坊节点的语义与结构联络。ERNIE-Sage 关于文本的建模是构建在街坊聚合的阶段,中心节点文本会与一切街坊节点文本进行拼接;然后经过预练习的 ERNIE 模型进行音讯汇聚,捕捉中心节点以及街坊节点之间的相互联络;最终运用 ERNIESage 调配共同的街坊相互看不见的 Attention Mask 和独立的 Position Embedding 体系,就能够轻松构建 TextGraph 中语句之间以及词之间的联络。

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

运用 ID 特征的 GraphSAGE 只能够建模图的结构信息,而单独的ERNIE只能处理文本信息。经过 PGL 建立的图与文本的桥梁,ERNIESage能够很简略的把 GraphSAGE 以及 ERNIE 的长处结合一起。以下面 TextGraph 的场景,ERNIESage 的作用能够比单独的 ERNIE 以及 GraphSAGE 模型都要好。

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

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阶街坊及边上;

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

模型作用

TextGraph 2020 作用其时的SOTA

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

运用场景

文本匹配、Query 引荐等

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

2.3 怎么对Text Graph进行建模

上个项目讲到的GraphSage只重视结构信息,无法完结语义理解,而NLP对应的预练习模型却反之,这时分ErnieSage就能很好完结两者到达图语义理解

简略提一下Ernie 1.0中心是常识增强,经过词级别的Masked Language Model(MLM)使命以及持续学习思维取得优异功用

Transformer根底结构

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

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

持续学习作用

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

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

  1. ERNIESage V1 模型中心流程—ERNIE 作用于Text Graph的Node(节点) 上
  • ERNIE提取节点语义 -> GNN聚合
PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八]

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

  • 运用ERNIE取得节点标明
  • 聚合街坊特征,进行音讯传递
  • 将其时节点和聚合后的街坊特征进行concat,更新节点特征
  1. ERNIESage V2 中心代码———ERNIE聚合Text Graph的Edge(边) 上信息
  • GNN send 文本id -> ERNIE提取边语义 -> GNN recv 聚合街坊语义 -> ERNIE提取中心节点语义并concat
PGL图学习之图神经网络ERNIESage、UniMP进阶模型[系列八]

为了使得我们对下面有关ERNIE模型的部分能够有所了解,这儿先贴出ERNIE的主模型结构图。

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

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

  • 运用 ERNIE 获取中心节点的文本特征标明
  • 特征交互:中心节点和街坊节点一起作为 ERNIE 输入,核算交互特征
  • 聚合街坊特征
  • 将其时节点和聚合后的街坊特征 concat,更新节点特征

ERNIESage Node与ERNIESage Edge对比

大部分单塔模型优于双塔模型由于含有特征交互信息更充沛,做链接猜测问题思路:将两个节点进行內积得到一个值,和阈值对比假设大于0.5则边存在

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

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

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

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

  1. 怎么保证在输入时街坊不带有顺序?
  2. 假如街坊数量过多,怎么建模?

处理方案如下:针对问题一选用独立方位编码,街坊节点编码相同不受顺序影响;针对问题提二:进行街坊采样

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

2.4 依据PGL算法完结

PGL&paddle 2.x+版别

ErnieSage能够很轻松地在依据PaddleNLP构建依据Ernie的图神经网络,现在PaddleNLP供给了V2版别的ErnieSage模型:

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

中心部分包括:

  • 数据集部分
  1. example_data – 简略的输入文件,格局为每行query \t answer,可作简略的运转实例运用。
  • 模型文件和配置部分
  1. ernie_config.json – ERNIE模型的配置文件。
  2. vocab.txt – ERNIE模型所运用的词表。
  3. ernie_base_ckpt/ – ERNIE模型参数。
  4. config/ – ERNIESage模型的配置文件
  • 代码部分
  1. local_run.sh – 进口文件,经过该进口可完结预处理、练习、infer三个步骤。
  2. preprocessing文件夹 – 包括dump_graph.py,在预处理部分,首要需求进行建图,将输入的文件构建成一张图。由于所研讨的是Text Graph,因而节点都是文本,将文本标明为该节点对应的node feature(节点特征),处理文本的时分需求进行切字,再映射为对应的token id。
  3. dataset/ – 该文件夹包括了数据ready的代码,以便于在练习的时分将练习数据以batch的办法读入。
  4. models/ – 包括了ERNIESage模型中心代码。
  5. train.py – 模型练习进口文件。
  6. learner.py – 分布式练习代码,经过train.py调用。
  7. infer.py – infer代码,用于infer出节点对应的embedding。
  • 点评部分
  1. build_dev.py – 用于将的验证集修正为需求的格局。
  2. 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+版别

供给多版别供我们学习复现,含中心模型代码解说

项目链接:

aistudio.baidu.com/aistudio/pr…

3.UniMP(标签迁移)

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

论文名:Masked Label Prediction:用于半监督分类的一致音讯传递模型

论文链接:arxiv.org/abs/2009.03…

图神经网络(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 arxiv.org/abs/1810.05…

用于图形半监督分类的神经音讯传递算法最近取得了巨大成功。可是,为了对节点进行分类,这些办法仅考虑距离传达几步之遥的节点,而且这个运用的邻域的巨细很难扩展。在本文中,运用图卷积网络 (GCN) 与 PageRank 之间的联络,推导出一种依据个性化 PageRank 的改善传达方案。运用这种传达过程来构建一个简略的模型、神经猜测的个性化传达 (PPNP) 及其快速近似 APPNP。模型的练习时刻与曾经的模型相同或更快,其参数数量与曾经的模型相同或更少。它运用一个大的、可调整的邻域进行分类,而且能够很简略地与任何神经网络相结合。标明,在迄今为止对类 GCN 模型所做的最彻底的研讨中,该模型优于最近提出的几种半监督分类办法。的施行可在线取得。

3.1布景介绍

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

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

在半监督图节点分类场景下,节点之间经过边相衔接,部分节点被打上标签。使命要求模型经过监督学习的办法,拟合被标示节点数据,并对未标示的节点进行猜测。如下图所示,在一般机器学习的问题上,已标示的练习数据在新数据的推断上,并不能发挥直接的作用,由于数据的输入是独立的。可是在图神经网络的场景下,已有的标示数据能够从节点与节点的衔接中,依据图结构联络推广到新的未标示数据中。

一般运用于半监督节点分类的算法分为图神经网络和标签传递算法两类,它们都是经过音讯传递的办法(前者传递特征、后者传递标签)进行节点标签的学习和猜测。其间经典标签传递算法如LPA,只考虑了将标签在图上进行传递,而图神经网络算法大多也仅仅运用了节点特征以及图的链接信息进行分类。可是单纯考虑标签传递或许节点特征都是不满足的。

百度PGL团队提出的一致音讯传递模型 UniMP,将上述两种音讯一致到结构中,一起完结了节点的特征与标签传递,显著提升了模型的泛化作用。UniMP以Graph Transformer模型作为根底骨架,联合运用标签嵌入办法,将节点特征和部分节点标签一起输入至模型中,从而完结了节点特征和标签的一起传递。

简略的参加标签信息会带来标签走漏的问题,即标签信息便是特征又是练习方针。实践上,标签大部分是有顺序的,例如在引证网络中,论文是依照时刻先后顺序呈现的,其标签也应该有必定的先后顺序。在无法得知练习集标签顺序的情况下,UniMP提出了标签掩码学习办法。UniMP每一次随机将必定量的节点标签掩码为不知道,用部分已有的标示信息、图结构信息以及节点特征来复原练习数据的标签。最终,UniMP在OGB上取得SOTA作用,并在论文的消融试验上,验证了办法的有效性。

经过:Masked Label Prediction 处理标签走漏问题

模型结构

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

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

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

3.2原理介绍

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

部分作者提出质疑也是值得讨论的:

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

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)归于一种卷积神经网络。相较于一般的卷积神经网络,残差网络选用了跨层恒等衔接,以减轻卷积神经网络的练习难度。残差网络的一种根本模块如下所示:

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

完结起来比较简略,这儿不予赘述。

(2)DenseNet原文:Densely Connected Convolutional Networks

比较ResNet,DenseNet提出了一个更激进的密集衔接机制:即相互衔接一切的层,详细来说就是每个层都会承受其前面一切层作为其额外的输入。DenseNet的网络结构如下所示:

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

以下代码完结了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的一种根本模块如下所示:

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

值得指出的是,经过这种办法,每个样本都能够有自己共同的一组权重,能够依据样本自身的特色,进行共同的特征通道加权调整。

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官网代码链接:github.com/PaddlePaddl…

由于在装置环境中需求装置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)如下:

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

3.4.2 图学习之依据PGL-UniMP算法的论文引证网络节点分类使命[系列九]

内容过多引到下一篇项目

项目链接:aistudio.baidu.com/aistudio/pr…

fork一下即可

4.OGB最新榜单部分展现

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

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

5.总结

经过以上两个版别的模型代码简略的解说,能够知道他们的不同点,其实首要就是在音讯传递机制的部分有所不同。ERNIESageV1版别只作用在text graph的节点上,在传递音讯(Send阶段)时只考虑了街坊自身的文本信息;而ERNIESageV2版别则作用在了边上,在Send阶段一起考虑了其时节点和其街坊节点的文本信息,到达更好的交互作用。

为了完结可扩展的,健壮的和可重现的图学习研讨,提出了Open Graph Benchmark (OGB)——具有规划大、范畴广、使命类别多样化的实践图数据集。在特定于运用程序的运用事例的驱动下,对给定的数据集选用了实践的数据切割办法。经过广泛的基准试验,着重OGB数据集关于图学习模型在实践的数据切割方案下处理大规划图并进行精确的猜测提出了严峻挑战。总而言之,OGB为未来的研讨供给了丰厚的时机,以推动图学习的前沿。

OGB还在不断的扩展中,相信之后会有更多数据集,也将产生更多优秀的模型,推动图学习的研讨,了解和掌握相关内容还是很有必要的。

原项目链接:fork一下即可:aistudio.baidu.com/aistudio/pr…