CN116090504A - 图神经网络模型训练方法及装置、分类方法、计算设备 - Google Patents

图神经网络模型训练方法及装置、分类方法、计算设备 Download PDF

Info

Publication number
CN116090504A
CN116090504A CN202111301676.0A CN202111301676A CN116090504A CN 116090504 A CN116090504 A CN 116090504A CN 202111301676 A CN202111301676 A CN 202111301676A CN 116090504 A CN116090504 A CN 116090504A
Authority
CN
China
Prior art keywords
node
nodes
training
neural network
network model
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202111301676.0A
Other languages
English (en)
Inventor
王志涛
洪立涛
黄薇屹
苏函晶
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN202111301676.0A priority Critical patent/CN116090504A/zh
Publication of CN116090504A publication Critical patent/CN116090504A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/088Non-supervised learning, e.g. competitive learning

Abstract

本公开实施例公开了一种图神经网络模型的训练方法及装置、分类方法、计算设备,可以用于地图交通、微信支付、社交网络等领域。训练方法可以包括:获取图结构的信息,其中图结构的节点全集包括有标签的第一节点集和无标签的第二节点集,并且图结构的信息包括:图结构中的每个节点的节点特征、以及节点之间的关联性信息;基于第一节点集中的每个节点对图神经网络模型进行有监督训练;基于节点全集中的每个节点以及每个节点对应的训练相关节点,对图神经网络模型进行无监督训练,其中每个节点对应的训练相关节点是基于关联性信息来确定的;以及利用有监督训练以及无监督训练,对图神经网络模型进行联合训练。

Description

图神经网络模型训练方法及装置、分类方法、计算设备
技术领域
本申请涉及计算机技术领域,尤其涉及一种图神经网络模型的训练方法及装置、分类方法、计算设备。
背景技术
在很多业务场景中,面临一个共同的问题:相比于总体数据规模,有标签的样本是十分稀少的,大多数都是无标签的样本,因此如何充分利用稀少的有标签样本以及大量的无标签样本,是典型的半监督学习问题。另一方面,业务场景中样本之间往往存在关联性,如何充分利用这些额外的关联性信息来进行半监督学习,是典型的基于图结构的半监督学习问题。
目前提出了一些基于图结构的半监督学习的方法,例如包括图正则方法、图嵌入方法等。这两种方法均是通过目标函数(也可以理解为损失函数)引入图结构数据的信息的方式实现半监督学习。但是,图正则方法的假设显式依赖图信息,限制了图正则方法的能力,例如如果两个样本在图中没有直接关联(即,直接连接)但间接相似(两个样本有很多共同邻居)时,这个假设无法捕捉到这样的涉及相似信息的隐式关联关系。同样地,图嵌入方法在嵌入空间相对隐式地将无标签样本和有标签样本通过在图结构上的相似性关联起来,也无法捕捉到样本之间的隐式关联关系。
因此,需要一种能够尽可能地利用样本之间的关联性信息的方案,以提高模型的鲁棒性和性能。
发明内容
根据本公开的一方面,提供了一种图神经网络模型的训练方法,包括:获取图结构的信息,其中所述图结构的节点全集包括有标签的第一节点集和无标签的第二节点集,并且所述图结构的信息包括:所述图结构中的每个节点的节点特征、以及节点之间的关联性信息;基于所述第一节点集中的每个节点对所述图神经网络模型进行有监督训练;基于所述节点全集中的每个节点以及每个节点对应的训练相关节点,对所述图神经网络模型进行无监督训练,其中每个节点对应的训练相关节点是基于所述关联性信息来确定的;以及利用所述有监督训练以及所述无监督训练,对所述图神经网络模型进行联合训练。
根据本公开的另一方面,还公开了一种对图结构中的节点进行分类的方法,包括:获取待识别的图结构的信息,其中所述待识别的图结构的信息包括:所述待识别的图结构中的每个节点的节点特征、以及节点之间的关联性信息;利用经训练的图神经网络模型对所述待识别的图结构中的节点进行分类,其中,所述图神经网络模型根据如上所述的训练方法训练得到。
根据本公开的又一方面,还公开了一种图神经网络模型的训练装置,包括:获取模块,用于获取图结构的信息,其中所述图结构的节点全集包括有标签的第一节点集和无标签的第二节点集,并且所述图结构的信息包括:所述图结构中的每个节点的节点特征、以及节点之间的关联性信息;训练模块,用于:基于所述第一节点集中的每个节点对所述图神经网络模型进行有监督训练;基于所述节点全集中的每个节点以及每个节点对应的训练相关节点,对所述图神经网络模型进行无监督训练,其中每个节点对应的训练相关节点是基于所述关联性信息来确定的;以及利用所述有监督训练、以及所述无监督训练,对所述图神经网络模型进行联合训练。
根据本公开的又一方面,还公开了一种分类装置,包括:获取模块和分类模块,其中,获取模块用于获取待识别的图结构的信息,其中所述待识别的图结构的信息包括:所述待识别的图结构中的每个节点的节点特征、以及节点之间的关联性信息;分类模块用于利用经训练的图神经网络模型对所述待识别的图结构中的节点进行分类,其中,所述图神经网络模型根据如上所述的训练方法训练得到。
根据本公开的另一方面,还提供了一种计算设备,包括:处理器;和存储器,其上存储有计算机程序,所述计算机程序在由所述处理器执行时,使得所述一个或多个处理单元执行如上所述的训练方法和如上所述的分类方法的各个步骤。
根据本公开的另一方面,还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如前面所述的图神经网络模型的训练方法和分类方法的各步骤。
根据本公开的又一方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如前面所述的图神经网络模型的训练方法和分类方法的各步骤。
通过本公开的对图神经网络模型的训练方法,通过利用基于第一节点集的有监督训练和基于节点全集的无监督训练进行的联合训练,可以利用图结构中的更多节点的信息来训练图神经网络模型,即使图结构比较稀疏的情况下,也可使得图神经网络模型能够应用到在工业级的业务应用中且能够学习到较多的有效信息,从而提升模型的鲁棒性,进而具备更稳定和更优的性能。
附图说明
图1示出了一种基于图神经网络模型的半监督学习的方法的示意图。
图2示出了根据本公开实施例的图神经网络模型的训练方法的流程示意图。
图3A-3B示出了图2描述的训练方法中的联合训练步骤的更多细节。
图4示出了联合训练步骤的示意过程图。
图5A示出了一种基于预测的图神经网络模型的训练方法。
图5B示出了图5A中的训练方法的示意图。
图6示出了根据本公开实施例的对图结构中的节点进行分类的方法的流程示意图。
图7A-7B示出了根据本公开实施例的神经网络模型的训练装置的结构框图。
图8示出了根据本公开实施例的计算设备的结构框图。
具体实施方式
为了使得本公开的目的、技术方案和优点更为明显,下面将参照附图详细描述根据本公开的示例实施例。显然,所描述的实施例仅仅是本公开的一部分实施例,而不是本公开的全部实施例,应理解,本公开不受这里描述的示例实施例的限制。
在本说明书和附图中,具有基本上相同或相似步骤和元素用相同或相似的附图标记来表示,且对这些步骤和元素的重复描述将被省略。同时,在本公开的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性或排序。
机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是AI的核心,是使计算设备具有智能的根据途径;所谓的机器学习是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科;其专门研究计算设备怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。而深度学习则是一种利用深层神经网络系统,进行机器学习的技术;机器学习/深度学习通常可包括人工神经网络、强化学习(Reinforcement Learning,RL)、有监督学习、无监督学习等多种技术。
在对本公开的内容进行详细描述之前,首先对本文中可能用到的部分术语进行如下解释和说明。
半监督学习:令L和U分别表示有标签样本集合和无标签样本集合中的样本数量,半监督学习一般是指机器学习模型在L远远小于U(L<<U)的样本集合上进行学习,即利用该样本集合对该机器学习模型进行训练。
图结构:由若干节点和节点间连边所组成的一种数据结构,每个节点可以视为一个样本,可以用一个邻接矩阵A∈R(L+U)×(L+U)来表示,其中邻接矩阵A中的元素ai,j表示节点i和节点j之间的关系,对于无权图来说ai,j非0即1,对于有权图来说ai,j一般是一个在0到1之间的权重值,不同的值表示两个节点的关联程度。本文中也可以表达为图结构数据、图结构信息、图、网络、图网络等类似表达。
基于图结构的半监督学习:已知节点样本之间的某些关联性信息(一般这些关联性信息可以以图结构的形式表示出来),并且模型利用包括关联性信息的图结构来进行半监督学习。
图神经网络(Graph neural network,GNN):基于图结构的节点之间关联性进行建模,其输入可以理解是图结构(体现为各个节点的特征和关联性信息),经过多个图神经网络层的各种操作(例如,卷积、聚合、更新等),最终得到各个节点的特征表示,以便于进行节点分类、图与子图的生成等等任务。具体示例可以包括图卷积神经网络(GCN)、图注意力网络(Graph Attention Networks,GAT)、图采样和聚合(GraphSAGE)网络和深度游走(DeepWalk)网络等。
如前面所述,针对基于图结构的半监督学习,目前的图正则方法和图嵌入方法均是通过在目标函数(损失函数)引入图结构的信息的方式实现半监督学习,无法很好地利用图结构中的节点之间的关联性信息,因此需要一种能够尽可能地利用样本之间的关联性信息的方案。
图1示出了一种基于图神经网络(GNN)模型的半监督学习的方法的示意图。
GNN模型是在样本信息的表征(信息编码)的过程中将图结构的信息融合进来。大部分的GNN模型对于样本信息的表征都可以统一概括在消息传递框架中,消息传递框架是用于各种类型的图神经网络模型中的基础。消息传递框架的示意图如图1所示。在图1中,示出了五个节点A-E,节点A的相邻节点为节点B和C,节点B的相邻节点为A,节点C的相邻节点为节点A、D和E,节点D的相邻节点为节点C和E,节点E的相邻节点为节点C和D。实际应用中,图结构的节点数量可以远远大于5,特别是在各种业务场景中,例如微信支付、社交网络等。
每个样本(节点)的原始节点特征
Figure BDA0003338634050000051
就是作为第一层输入的原始特征向量(后文中也可以省略描述为特征),即
Figure BDA0003338634050000052
i大于等于1且小于等于图结构中的节点数量N,每经过一层GNN的消息传递后,每个样本的节点特征都会被更新。消息传递主要有两个步骤:
第一步是信息聚合(AGGREGATE)。每个样本(节点)从图结构上的相邻节点
Figure BDA0003338634050000053
收集相邻节点在前一层输出时的节点特征
Figure BDA0003338634050000054
k为当前进行聚合的层的序号,且大于等于1以及小于等于GNN模型的神经网络层的总层数K,
Figure BDA0003338634050000055
为相邻节点的集合(例如,对于节点A,其相邻节点的集合包括节点B和C),然后使用对应函数生成相邻节点的聚合信息:
Figure BDA0003338634050000056
第二步是状态更新(UPDATE)。根据相邻节点的聚合信息
Figure BDA0003338634050000057
和目标节点(例如前文提及的节点i)在前一层输出的节点特征
Figure BDA0003338634050000058
使用对应函数更新目标节点的状态:
Figure BDA0003338634050000059
通过k层的AGGREGATE(k)(·)和UPDATE(k)(·),该消息传递框架将每个节点(样本)自身的特征信息和其k阶的相邻节点(样本)的特征信息都编码在了第k层的节点特征
Figure BDA0003338634050000061
最终,图结构中的一小部分节点是有标签节点,DL表示有标签样本的集合,(xi,yi)表示每个节点i的节点信息,包括节点特征(原始节点特征)和标签信息,因此可以通过如下损失函数对GNN模型进行有监督的训练:
Figure BDA0003338634050000062
对于节点分类的应用问题,可以通过softmax函数将节点i对应的第K层输出
Figure BDA0003338634050000063
映射为标签预测值,通过损失函数基于各个节点标签预测值和标签真实值进行计算,实现对模型的训练。
在模型训练过程中,虽然只用到了有标签样本,但是在产生每个节点i的最终节点特征
Figure BDA0003338634050000064
的过程中,会有无标签的相邻节点的节点特征的信息被包括进来,聚合的方式可以包括直接拼接或者加权。例如,如图1所示,假设节点A和E是有标签样本,B、C和D是无标签样本,在对节点A进行节点特征的过程中,在第一层时,
Figure BDA0003338634050000065
包括了节点A(有标签)的原始节点特征
Figure BDA0003338634050000066
以及相邻节点B和C(无标签)的原始节点特征的聚合信息
Figure BDA0003338634050000067
涵盖了节点C(有标签)的原始节点特征
Figure BDA0003338634050000068
以及相邻节点A、D(无标签)和E(有标签)的原始节点特征的聚合信息
Figure BDA0003338634050000069
在第二层时,
Figure BDA00033386340500000610
聚合了节点A(有标签)的第一层输出的节点特征
Figure BDA00033386340500000611
和相邻节点B和C(无标签)在第一层输出的节点特征
Figure BDA00033386340500000612
Figure BDA00033386340500000613
的聚合信息
Figure BDA00033386340500000614
由于如前面所述
Figure BDA00033386340500000615
包括了节点D(无标签)的信息,因此,在第二层的
Figure BDA00033386340500000616
实际也包括了节点D(无标签)的信息,即使它们并未直接相邻。
聚合函数AGGREGATE(k)(·)是通过图结构结合有标签样本和无标签样本的关键,不同的GNN模型对于AGGREGATE(k)(·)的设计有不同的思想,即包括不同的聚合方式,例如图卷积神经网络GCN可以等价为一种加权平均聚合函数,GraphSAGE中提出了平均(Mean)、池化(Pooling)和长短期记忆网络(LSTM)等与聚合方式相关联的多种聚合函数,图注意网络(GAT)则设计了一种基于注意力机制的聚合函数。例如,对于平均的方法,可以简单地将任一节点和邻居节点的第k-1层特征向量拼接起来,然后对特征向量的每个维度进行求均值的操作,将得到的结果做一次非线性变换产生该节点的第k层特征向量。
可以看到GNN模型的核心就是学习AGGREGATE和UPDATE这两个函数,要经过训练调节的GNN模型的主要参数也来自这两个函数。
在用训练好的GNN模型对无标签的节点进行预测时,可以通过每一层的聚合函数和更新函数将其他部分节点的信息融合到该节点最终输出的节点特征中,然后基于该节点特征来得到预测结果(例如,分类的情况下将该节点特征送入softmax函数)。
由于在GNN模型训练(学习)的过程中能够聚合更多节点的特征信息,即使节点之间并未直接关联,因此相对于目前的图正则方法和图嵌入方法,训练后的模型具有较好的性能。
然而,GNN模型在工业界的实际业务场景中依然面临一些应用问题,工业界的实际业务场景例如可能涉及10亿级别节点数量和100亿级别连接边数量的图结构。问题主要包括以下两方面。
(1)业界应用场景中的有标签样本缺失严重,直接应用GNN模型效果不理想。原因可以总结为:当有标签节点过少时,而图结构稀疏(一般业界应用的图数据都比较稀疏,例如,可以包括多个簇,每个簇之间可能只有一个边,那么两个簇的节点之间可能需要很多跳才能关联),那么有标签节点的信息只能在小范围内传递,即,有标签节点的信息无法聚合到与其间隔较多跳的节点的信息中,因此不能高效地利用各个节点信息。
(2)为了解决上述问题(1),可能设想到通过增加GNN模型的层数提升模型效果的方式,以增加可以聚合的节点数量,但是基于某些考虑也不能一味地增加GNN模型的层数。例如,若层数增加到p,每个节点所聚合的信息就是其p跳的相邻节点(在p跳内能连接则视为相邻)信息,从而扩大了有标签节点的传播范围,但是一味的增加层数,会导致GNN模型过度平滑(Over Smoothing)的问题。“过度平滑”即每个节点的特征十分相近,主要是因为GNN模型的每一层都会把节点及其相邻节点的信息聚合在一起,层级越深则每个节点可以聚合的节点数量越多,甚至包括一些不相关的节点,最终导致各个节点的特征向量就会越来越趋同,例如,在分类问题中,不同类型的节点的特征向量却越来越趋同。此外,GNN模型的层数过多带来的另一个问题就是时间复杂度的增加,业界场景中动辄亿级别的数据量使得这个问题会变得更加严重。因此,当有标签节点的数量较少时,通过增加GNN层数来利用更多的节点特征和图结构信息是不可行的。
因此,本公开提出针对上述GNN模型的训练方法的改进,使得GNN模型可以利用图结构中的更多节点的信息,且不需过多的层数。
本公开的核心在于将基于有标签节点的有监督训练和基于图结构的所有节点(全图信息)的无监督训练结合起来,对图神经网络模型进行联合训练。
图2示出了根据本公开实施例的图神经网络模型的训练方法的流程示意图。
如图2所示,在步骤S210中,获取图结构的信息,其中图结构的节点全集包括有标签的第一节点集和无标签的第二节点集,并且图结构的信息包括:图结构中的每个节点的节点特征、以及节点之间的关联性信息。
可选地,图结构中的每个节点可以视为一个样本,样本和样本之间可以具有关联性。例如,在微信支付业务场景中,每个用户可以视为一个节点(按照预定格式(例如,标识、地址、活跃度等属性进行编码)可以生成节点的原始特征向量),用户和用户之间存在交互,该交互即体现关联性。
可选地,节点特征可以是特征向量,如前面参考图1中描述的xi,i为大于等于1且小于等于图结构中的节点总数N;关联性信息可以用邻接矩阵来表示,如前面描述的A∈R(L +U)×(L+U),其中L表示第一节点集并且U指代第二节点集,L+U表示节点全集。
可选地,针对第一节点集中的每个节点,还预先标注了该节点的标签。如果该图神经网络用于实现分类,那么该节点的标签为类别标签。如果该图神经网络用于实现线性回归,那么该节点的标签为理论值标签,即第一节点中的每个节点的节点特征向量(一般是多维向量,例如xi=[xi1,xi2,xi3…])与该节点对应的理论值可以拟合成某种线性函数关系。
在步骤S220中,基于所述第一节点集中的每个节点对所述图神经网络模型进行有监督训练。
可选地,图神经网络模型可以是如参考图1描述的GNN模型,从图1中可以看出,GNN模型包括至少一个图神经网络层(如图1中示出的K层),每个图神经网络层包括聚合子层和更新子层,聚合子层用于针对每个节点聚合与该节点直接关联的节点(相邻节点)的信息,得到该节点的邻居聚合信息;更新子层针对前一图神经网络层输出的每个节点的节点特征或每个节点的原始节点特征,基于该节点的邻居聚合信息进行更新,作为当前图神经网络层输出的节点的节点特征。所有节点的节点特征也可以组合表示为一个特征矩阵,然后可以与A∈R(L+U)×(L+U)进行矩阵运算,得到每一层输出的各个节点的特征矩阵。
例如,在图1中,在第一个图神经网络层时,该第一个图神经网络层的聚合子层用于聚合相邻节点B和C(无标签)的聚合信息
Figure BDA0003338634050000091
然后第一个图神经网络层的更新子层利用聚合信息
Figure BDA0003338634050000092
对节点A(有标签)的原始节点向量
Figure BDA0003338634050000093
进行更新,得到第一个图神经网络层输出的节点向量
Figure BDA0003338634050000094
即节点A经过第一个图神经网络层之后的节点特征。
每个节点的节点特征经过图神经网络模型之后会生成一个输出表示(也称为输出特征向量、节点输出向量等等),然后可以基于该输出表示得到预测值,并基于预测值与标签的真实值来进行有监督训练。有监督训练的具体的细节将在后文参考图3A-4描述。
在步骤S230中,基于所述节点全集中的每个节点以及每个节点对应的训练相关节点,对所述图神经网络模型进行无监督训练,其中每个节点对应的训练相关节点是基于所述关联性信息来确定的。也就是说,无监督训练是基于节点全集的。
可选地,每个节点对应的训练相关节点可以包括该节点的一个关联节点和至少一个非关联节点,并且该关联节点和至少一个非关联节点可以通过关联性信息(例如,前文所述的邻接矩阵A)来确定。无监督训练的具体的细节也将在后文参考图3A-4描述。
在步骤S240中,利用所述有监督训练以及所述无监督训练,对所述图神经网络模型进行联合训练。
也就是说,所述图神经网络模型的模型参数的优化需要通过基于第一节点集的每个节点的有监督训练和基于所述节点全集中的每个节点及其对应的训练相关节点的无监督训练来进行。
应注意,在本公开的各个实施例中,为了便于描述,对所描述的方法的各个步骤以流程图的形式来进行表示,但是应理解,多个步骤不并一定是必须顺序进行,还可以以相反的顺序或者还可以交替进行。
通过本公开的对图神经网络模型的训练方法,通过利用基于第一节点集的有监督训练和基于节点全集的无监督训练进行的联合训练,可以利用图结构中的更多节点的信息来训练图神经网络模型,即使在图结构比较稀疏的情况下,也可使得图神经网络模型能够应用到在工业级的业务应用中且能够学习到较多的有效信息,从而提升模型鲁棒性,具备更稳定和更优的性能。
以下结合图3A-4对利用有监督训练和无监督训练的联合训练的过程进行详细描述。
在本公开的实施例中,可以在基于所述第一节点集中的每个节点都进行了有监督训练之后调整一次模型参数,然后基于所述节点全集中的每个节点都进行了无监督训练之后继续调整一次模型参数,实现基于联合训练的一次参数调整,然后再重新进行上述有监督训练和无监督训练。
但是为了加快模型训练的速度、利用较少的迭代次数并保持较好的训练效果,通常可以利用第一节点集和节点全集分批次地对该图神经网络模型进行多轮次的联合训练,例如在每一轮次的联合训练中,基于该第一节点集的子集对该图神经网络模型进行有监督训练,以及基于该图结构的节点全集的子集以及节点全集的该子集中的每个节点对应的训练相关节点对该图神经网络模型进行无监督训练。
可选地,第一节点集和节点全集都可以被划分为多个子集,它们各自的不同子集用于不同轮次的联合训练,每一轮次的联合训练与一个批次的节点子集相对应。
每个批次对应的第一节点集的子集中的节点的数量一般相同,每个子集中的节点数量作为第一数量;每个批次对应的节点全集的子集中的节点的数量一般相同,每个子集中的节点数量作为第二数量。例如,在第一节点集和节点全集的节点无法被平均划分到多个批次中时,其中一个批次包括的节点的数量可能小于第一数量/第二数量,此时可以用先前已经用于训练的至少一个节点用来补齐。由于第一节点集中的节点数量一般远小于节点全集中的节点数量,因此第一数量可以小于第二数量。
当然,每个批次对应的第一节点集的子集中的节点的第一数量可以不同,每个批次对应的节点全集的子集中的节点的第二数量可以不同。例如,在第一节点集和节点全集的节点无法被平均划分到多个批次中时,其中一个批次对应的子集的节点数量可以少于其他批次。
如图3A所示,图3A示出了每一轮次的联合训练中涉及的各个子步骤的示意图。
在步骤S220-1中,选择所述第一节点集中包括第一数量的节点的一个子集以及所述节点全集中包括第二数量的节点的一个子集,用于所述轮次的联合训练。
可选地,在每一轮次的联合训练时,选择不同批次的第一数量的节点来进行该轮次的有监督训练,并选择不同批次的第二数量的节点来进行该轮次的无监督训练。
例如,假如第一节点集的节点数量为10万个(图结构的节点总数N为10亿),则可以将该10万个节点分为500个批次,每个批次的节点数量N1(第一数量)为200(batchsize为200)。在每一轮次的有监督训练将基于这个批次的200个节点进行,然后下一轮次的有监督训练将基于另外批次的200个节点进行。
假如节点全集的节点数量为10亿个(图结构的节点总数N为10亿),则也需要将该10亿个节点分为500个批次,每个批次的节点数量N2(第二数量)为200万(batchsize为200万)。在每一轮次的无监督训练将基于这个批次的200个节点及其训练相关节点进行,然后下一轮次的有监督训练将基于另外批次的200个节点及其训练相关节点进行。
在步骤S220-2中,针对所述第二数量的节点中的每个节点,基于所述关联性信息确定所述节点的一个关联节点以及所述节点的至少一个非关联节点,作为所述节点对应的训练相关节点。
例如,针对N2个节点中的每个节点xi,可以确定与该节点经过小于等于预设数量的边连接(也称为预设数量的跳)的一个节点,作为关联节点,以及确定与该节点不存在关联的节点(例如,间隔超过预设数量的跳)的至少一个节点,作为非关联节点。也就是说,对于N2个节点中的每个节点xp,确定了一个关联节点xq和至少一个非关联节点xn
在本公开的上下文中,为了描述的方便,节点之间存在关联性可以指节点之间间隔不超过预设数量的跳,例如,预设数量为2时,节点1与间隔3条的节点不存在关联性。此外,还采用deepwalk(深度游走)算法获取某一节点的关联节点和非关联节点,具体地,根据当前节点随机游走预设数量次,并将游走得到的处于预设范围(如:目标节点的2阶范围)内的节点作为关联节点,将游走得到的预设范围外的节点作为非关联节点。可以理解,关联节点的节点特征与该个节点的节点特征之间的相似度高于非关联节点的节点特征与该个节点的节点特征之间的相似度,且直接关联的两个节点是指这两个节点间隔一跳。
在步骤S220-3中,基于所述第一数量的节点对所述图神经网络模型进行有监督训练,并且基于所述第二数量的节点中的每个节点、每个节点的关联节点和非关联节点对所述图神经网络模型进行无监督训练。
可选地,针对每一轮次的联合训练,该联合训练的联合损失函数与用于该有监督训练的第一损失函数与用于该无监督训练的第二损失函数相关联。
例如,联合损失函数可以为第一损失函数与第二损失函数的和。
图神经网络模型一般可以包括一组模型参数,在每个轮次的联合训练中,可以先基于有监督训练对模型参数进行更新,然后再基于无监督训练来对模型参数进行更新。
如前面所述,每次有监督训练是基于第一数量的节点的,并且每次无监督训练是基于第二数量的节点的,那么第一损失函数可以用于计算针对第一数量的节点进行有监督训练时的第一损失值,且训练目标是使得第一损失值最小,并且第二损失函数可以用于计算针对第二数量的节点进行无监督训练时的第二损失值,且训练目标是使得第二损失值最小。
作为示例而非限制,可以通过梯度下降法来更新模型参数。即,使用梯度下降法对所述图神经网络模型的当前模型参数进行更新,得到第一组模型参数,所述第一组模型参数使得:在当前轮次的联合训练时针对对应的第一数量的节点该第一损失函数的第一损失值最小;以及使用梯度下降法对该第一组模型参数进行更新,得到第二组模型参数,该第二组模型参数使得:在当前轮次的联合训练时针对所述第二数量的节点该第二损失函数的第二损失值最小。梯度下降方法来更新模型参数是本领域已知的方法,因此这里不再详细描述其过程。另外,在该示例中,针对每一轮次的联合训练,先进行有监督训练再进行无监督训练,这样可以加快模型参数的收敛速度。
此外,为了避免多批次的有监督训练和无监督训练分别对模型参数的更新而导致训练反复,一般可以将无监督训练的第二损失函数与一系数相乘后再与第一损失函数相加,并且还可以对于两部分训练过程设置不同的参数学习率,以调节在有监督训练和无监督训练各自的过程时的模型参数的更新步长。
针对每个轮次的有监督训练和无监督训练的具体过程,可以包括如下操作,如图3B所示。
如图3B所示,首先,针对第一数量的节点中的每个节点,经过图神经网络模型得到该节点对应的输出表示(特征向量),作为第一输出表示。
然后,针对第二数量的节点中的每个节点,经过图神经网络模型得到该节点、该节点的关联节点和非关联节点各自对应的输出表示(特征向量),作为第二输出表示。
最后,基于该第一数量的节点各自对应的第一输出表示并基于第一损失函数对图神经网络模型进行有监督训练,并且基于该第二数量的节点中的每个节点、每个节点的关联节点和非关联节点各自对应的第二输出表示并基于第二损失函数对图神经网络模型进行无监督训练。
根据一些其他实施方式,在从图神经网络模型输出每个节点的特征向量(输出表示,后文为了便于区分也称为GNN特征向量)之后,这些GNN特征向量还可以输入一个深度神经网络(例如多层感知机(MLP)),以通过增加深度来提高这些GNN特征向量的应用效果,以进一步提高模型的性能,然后再将经过深度神经网络得到的这些节点的进一步处理的向量(优化输出表示,也称为MLP特征向量)替换GNN特征向量用于有监督训练和无监督训练。这时,GNN模型的模型参数和深度神经网络模型的模型参数为待调节参数,因此可以类似地在每个轮次的联合训练时根据有监督训练和无监督训练来调整更新这些待调节参数。
即,可以将所述第一数量的每个节点各自对应的第一输出表示分别输入深度神经网络模型,得到对应的第一优化输出表示,得到对应的第一优化输出表示;将第二数量的节点中的每个节点、每个节点的关联节点和非关联节点各自对应的第二输出表示分别输入深度神经网络模型,得到对应的第二优化输出表示;并且用每个第一优化输出表示作为第一输出表示对所述图神经网络模型进行有监督训练,并且用每个第二优化输出表示作为第二输出表示对所述图神经网络模型进行无监督训练。
如前面所述,联合损失函数为第一损失函数和第二损失函数的和,因此作为示例而非限制,联合损失函数可以为:
Figure BDA0003338634050000131
其中,L为联合损失函数,
Figure BDA0003338634050000132
为第一损失函数,DL为第一节点集,DU为第二节点集,xi为第一节点集中的节点i的节点特征,yi为节点i的标签的真实值,
Figure BDA0003338634050000141
为第二损失函数,(DL+DU)为节点全集,xp为节点全集中的节点j的节点特征,GNN(xi,A)或GNN(xp,A)为节点i或p的节点特征经过具有关联性信息(邻接矩阵)A的图神经网络模型或者图神经网络模型后配置的深度神经网络模型之后输出的特征,λ为0到1之间的常数且用于调节无监督训练的第二损失值在联合损失函数的联合损失值中所占的比例。
如前面所述,联合训练是分轮次进行的,也就是说每个轮次的联合训练结束时针对有监督训练更新了一次模型参数,且针对无监督训练又更新了一次模型参数,此时,在公式2中,第一项
Figure BDA0003338634050000142
针对了第一节点集中的第一数量的节点xi求和计算了此轮次的有监督训练的损失值,且同样的,第二项
Figure BDA0003338634050000143
也针对节点全集中的第二数量的节点xp求和计算了此轮次的无监督训练的损失值。
可选地,第一损失函数基于所述第一数量的节点中的每个节点的标签的预测值和真实值计算第一损失值,所述节点的所述预测值是基于所述节点对应的第一输出表示(例如,第一优化输出表示)得到的(例如,利用softmax函数基于第一输出表示(例如,第一优化输出表示)的输出得到预测值);所述第二损失函数基于针对所述第二数量的节点中的每个节点的、所述节点与其关联节点的第一关联性表示和所述节点与其非关联节点的第二关联性表示之间的差异计算第二损失值,所述第一关联性表示是基于所述节点和所述节点的关联节点各自对应的第二输出表示或第二优化输出表示来计算的,且所述第二关联性表示是基于每个节点和所述节点的非关联节点各自对应的第二输出表示(例如,第二优化输出表示)来计算的。
例如,第一损失函数
Figure BDA0003338634050000144
可以为
Figure BDA0003338634050000145
其中,xi为某个轮次的联合训练时的第一数量的节点中的节点i的原始特征向量,(xi,yi)表示节点i的原始特征向量和对应的标签的真实值,g(·)是输出控制函数,用于将经过图神经网络模型后的GNN特征向量或者在有深度神经网络的情况下的MLP特征向量(上式中均用hi来表示)进行处理,以得到模型的最终输出。例如,对于分类的情况,g(·)可以为归一化指数函数softmax(·),这样,hi经过softmax(·)函数后得到每个类别的标签的预测值(预测概率,在0到1之间),由此可以确定节点i的真实类别的标签具有的预测值,此时第一损失函数
Figure BDA0003338634050000151
可以是交叉熵函数,即第一数量的节点的交叉熵。第一损失函数针对该轮次进行第一数量的项(yilog(g(hi)))的求和运算。当然,根据图神经网络最终要实现的任务,可以选择其他的输出控制函数,例如,对于线性回归,可以根据节点i的真实值yi的格式设置合适的g(·),并且g(·)也可以为1。通过调整模型参数,使得第一损失函数的值在该轮次的有监督训练中最小。
再例如,第二损失函数
Figure BDA0003338634050000152
可以为:
Figure BDA0003338634050000153
其中,xp为节点全集的子集(第二数量的节点)的节点p的原始特征向量,(DL+DU)为节点全集,xq为节点全集中与节点p存在关联性的一个节点(可以随机从与节点p存在关联性的多个节点中采样)的原始节点特征;K为所采样的与节点p不存在关联性的节点(负样本)的数量,xn为节点全集中与节点p不存在关联性的一个节点(负样本共K个)的原始特征向量,Pn(v)为负样本的概率分布,
Figure BDA0003338634050000154
指负采样分布;σ(·)是sigmoid函数;hp,hq
Figure BDA0003338634050000155
分别为节点p、关联节点q和非关联节点vn的原始节点特征经过图神经网络模型或者图神经网络模型后配置的深度神经网络模型之后输出的特征。
也就是说,-log(σ(hp·hq))可以视为针对节点p的关联节点对之间的第一关联性表示,且
Figure BDA0003338634050000156
表示针对节点p的多个非关联节点对之间的第二关联性表示,通过调整模型参数使第二损失函数的值在该轮次的无监督训练中最小。第二损失函数针对该轮次,对第二数量的项
Figure BDA0003338634050000157
进行求和。
综上对联合训练的方法的各方面的细节进行了详细描述,为了更好地理解,图4示出了联合训练的示意过程图。
如图4所示,节点A、B、C、D和E为图结构中的五个节点(作为示例示出,实际节点数量远大于5),并且节点之间也存在关联性,该关联性可以用于生成每个节点经过图神经网络模型输出的特征向量,并且可以用于选择节点全集中的子集进行无监督训练。
每个节点的原始节点特征经过图神经网络模型的K个神经网络层后得到各个对应的GNN特征向量(如,
Figure BDA0003338634050000158
…),虽然图4未示出,但是可以可选地在GNN模型之后设置的深度神经网络(MLP),这样每个节点的GNN向量经过MLP模型得到每个节点对应的MLP特征向量,GNN特征向量或者MLP特征向量可以用于由第一损失函数和第二损失函数计算当前的损失值。
从如上的描述可知,联合训练在有监督训练的基础上,引入了基于节点全集的无监督训练,在无监督训练训练中,由于每一轮次用于训练的节点均是随机从图结构的节点全集中选择的,并且利用所选择的每个节点的关联节点和非关联节点,因此可以相当于利用了整个节点全集的信息来对模型进行了训练,这样也可以利用潜在的相似节点(没有直接关联但具有许多相同的邻居节点的两个节点),因此可以在不需要增加过多的图神经网络模型的层数(甚至可以为一个层)的情况下利用图结构中的更多节点的信息来训练图神经网络模型,即使在图结构比较稀疏的情况下,也能够应用于工业级的业务应用且具有较高的性能。
此外,通过可选地在图神经网络模型之后加入深度神经网络,可以通过增加深度来提高这些GNN特征向量的应用效果,以进一步提高模型(包括GNN模型和深度神经网络)的性能。
作为上面参考图3A-4描述的训练方法的替代或补充,对于分类应用,还可以采用基于标签预测的图神经网络模型的训练方法。
图5A示出了根据本公开实施例的基于标签预测的图神经网络模型的训练方法的流程示意图。
如图5A所示,在步骤S510中,获取图结构的信息。
其中,图结构仍然如前面所述的,包括有标签的第一节点集和无标签的节点集。
在步骤S520中,利用第一节点集对图神经网络模型进行有监督训练,得到第一模型。
然后,在步骤S530中,迭代地执行以下操作,直至用于训练第一模型的训练数据集中的节点数量达到预设数量且第一模型的模型参数收敛。
操作i,利用第一模型针对第二节点集中的无标签节点进行预测,从第二节点集中的无标签节点中选择扩充节点集,并更新第二节点集中的无标签节点。
可选地,利用第一模型针对第二节点集中的无标签节点进行预测,得到第二节点集中的每个无标签节点的标签以及对应的置信度;并且基于第二节点集中的每个无标签节点的标签对应的置信度,从第二节点集中选择置信度满足预设条件的节点,得到扩充节点集。
例如,对于每一类别的标签,从具有类别的标签的节点中选择置信度最高的M个节点,并基于M个节点以及类别的标签得到扩充节点集。
操作ii,将第一节点集和扩充节点集作为训练数据集,并利用训练数据集对第一模型进行训练,以更新第一模型的模型参数。
为了更好地理解该基于标签预测的模型训练方法,图5B示出了过程示意图。
如图5B所示,首先在现有的有标签节点(样本)的训练数据集上预训练图神经网络模型(GNN模型,模型结构可以与前文一样,且损失函数的形式可以与前文的第一损失函数相同),然后用预训练GNN模型对当前无标签节点进行预测,得到无标签节点的预测标签,这种情况可以将softmax函数视为GNN模型的输出层的函数;对于每一类别的预测标签,选出M个置信度最高的节点(比较预测概率的大小),对这M个节点添加上伪标签,添加到现有的有标签节点的集合(第一节点集)中,作为新的训练集。然后继续使用预训练的GNN模型和新的训练集再次训练当前的GNN模型,直到训练集中的节点(样本)的数量达到预设数量且GNN模型的模型参数收敛。
这样,也可以使更多的节点被打上了标签,从而更多的节点信息参与到了GNN模型的有监督训练中,可以充分利用已训练GNN模型的预测能力以缓解有标签样本极度稀少的问题,这样也可以只保留一个图神经网络层,在工业级别规模的数据上训练效率高。
根据本公开的又一方面,还公开了一种对图结构中的节点进行分类的方法。
图6示出了根据本公开实施例的对图结构中的节点进行分类的方法的流程示意图。
在步骤S610中,获取待识别的图结构的信息,其中所述待识别的图结构的信息包括:所述待识别的图结构中的每个节点的节点特征、以及节点之间的关联性信息。
图结构中的每个节点以及节点之间的关联性信息的细节与前文描述的相同,这里不再重复描述。区别在于,作为待识别的图结构,所有节点的标签都是未知的。
在步骤S620中,利用经训练的图神经网络模型对所述待识别的图结构中的节点进行分类或者进行值预测,其中,所述图神经网络模型根据参考图3A-5B描述的所述的训练方法训练得到。
例如,如果根据参考图3A-5B描述的所述的训练方法训练得到的图神经网络模型为分类模型,则将对待识别的图结构中的节点进行分类,如果为线性回归模型,则基于待识别的图结构中的节点的节点特征而输出计算值。
由于训练时采用了前文的联合训练,因此参考前文的描述可知,训练的模型具有较好的性能,因此能够较准确且较快地进行节点分类。
本公开的实施例的一个重要应用场景是微信支付业务场景。假设通过服务器中的监控数据,已知微信的多个用户(例如,100万)以及用户之间的交互信息,并且部分用户(例如,5万)的标签是已知的(例如,普通用户、诈骗方用户、受骗方用户等等),其中,每个用户相当于图结构中的一个节点,并且根据某些特定的格式对每个用户的属性信息(例如,用户的IP、注册时间、在线时长、好友数量等)进行编码,以生成每个用户的用户特征(原始节点特征),并且基于用户之间的交互信息来确定关联性信息,因此,如前面所述,可以基于所有用户对应的用户特征、有标签用户对应的用户特征以及关联性信息来对图神经网络模型进行训练。
经过训练的图神经网络模型在后续使用中,例如,可以获取当前微信用户的用户特征以及这些用户之间的交互信息(关联性信息)构成的待识别图结构,经过训练的图神经网络模型对该待识别图结构的各个用户的类型进行分类,这样可以根据分类结果识别出异常用户,从而进行进一步的警示操作,因此可以实现反诈骗等效果。
此外,本公开的实施例的另一个重要应用场景还可以是地图方面的交通预测等,例如根据设置在路边的每个传感器获取的流量数据等传感器数据(节点的节点特征),以及传感器两两之间的关系(作为边),构成图结构,以对交通流量等进行预测。
根据本公开的再一方面,还公开了一种图神经网络模型的训练装置。
图7A-7B示出了根据本公开实施例的图神经网络模型的训练装置的结构框图。
如图7A所示,图神经网络模型的训练装置700包括获取模块710和训练模块720。
获取模块710用于获取图结构的信息,其中图结构的节点全集包括有标签的第一节点集和无标签的第二节点集,并且图结构的信息包括:图结构中的每个节点的节点特征、以及节点之间的关联性信息。
训练模块720用于:基于所述第一节点集中的每个节点对所述图神经网络模型进行有监督训练;基于所述节点全集中的每个节点以及每个节点对应的训练相关节点,对所述图神经网络模型进行无监督训练,其中每个节点对应的训练相关节点是基于所述关联性信息来确定的;以及利用所述有监督训练、以及所述无监督训练,对所述图神经网络模型进行联合训练。
可选地,训练模块720被配置为在对图神经网络模型进行联合训练时:对图神经网络模型进行多轮次的联合训练,并且在每一轮次的联合训练中,基于第一节点集的子集对图神经网络模型进行有监督训练,以及基于图结构的节点全集的子集以及节点全集的子集中的每个节点对应的训练相关节点对图神经网络模型进行无监督训练。
进一步地,如图7B所示,训练模块可以包括选择子模块720-1和训练子模块720-2,为了进行联合训练,选择子模块720-1用于选择所述第一节点集中包括第一数量的节点的一个子集以及所述节点全集中包括第二数量的节点的一个子集用于所述轮次的联合训练,其中,所述第一节点集和节点全集各自的不同子集用于不同轮次的联合训练;并针对所述第二数量的节点中的每个节点,基于所述关联性信息确定所述节点的一个关联节点以及所述节点的至少一个非关联节点,作为所述节点对应的训练相关节点;所述训练子模块720-2用于基于所述第一数量的节点对所述图神经网络模型进行有监督训练,并且基于所述第二数量的节点中的每个节点、每个节点的关联节点和非关联节点对所述图神经网络模型进行无监督训练。
关于训练模块(或者其包括的训练子模块)执行联合训练中的有监督训练和无监督训练时的更多细节与前面参考图3A-4描述的训练方法中对应部分的内容类似,因此这里不再重复。
此外,在图7A-7B中示意性地划分了训练装置中的多个模块,但是根据训练装置所要执行的各个操作、自身的设计以及其他的划分方式等等,该训练装置可以包括更多或更少的不同的模块,本公开对此不做限制。
通过本公开的对图神经网络模型的训练装置,通过在有监督训练的基础上,引入了基于节点全集的无监督训练,在无监督训练训练中,由于每一轮次用于训练的节点均是随机从图结构的节点全集中选择的,并且利用所选择的每个节点的关联节点和非关联节点,因此可以相当于利用了整个节点全集的信息来对模型进行了训练,这样也利用到了潜在的相似节点,因此可以在不需要增加过多的图神经网络模型的层数(甚至可以为一个层)的情况下利用图结构中的更多节点的信息来训练图神经网络模型,即使图结构比较稀疏的情况下,也可使得图神经网络模型能够应用到在工业级的业务应用中且能够学习到较多的有效信息,从而提升模型鲁棒性,具备更稳定和更优的性能。
相应地,本公开还公开了一种分类装置,该分类装置可以包括:获取模块和分类模块,其中,获取模块用于获取待识别的图结构的信息,其中所述待识别的图结构的信息包括:所述待识别的图结构中的每个节点的节点特征、以及节点之间的关联性信息;分类模块用于利用经训练的图神经网络模型对所述待识别的图结构中的节点进行分类,其中,所述图神经网络模型根据如上所述的训练方法训练得到。
根据本公开的又一方面,还公开了一种计算设备。
图8示出了根据本公开实施例的计算设备800的示意性框图。
如图8所示,计算设备800包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该终端的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现如前面所述的图神经网络模型的训练方法和分类方法的各步骤中描述的各种操作。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行同样的图神经网络模型的训练方法和分类方法的各步骤中描述的各种操作。
例如,训练方法的操作可以包括:获取图结构的信息,其中所述图结构的节点全集包括有标签的第一节点集和无标签的第二节点集,并且所述图结构的信息包括:所述图结构中的每个节点的节点特征、以及节点之间的关联性信息;基于所述第一节点集中的每个节点对所述图神经网络模型进行有监督训练;基于所述节点全集中的每个节点以及每个节点对应的训练相关节点,对所述图神经网络模型进行无监督训练,其中每个节点对应的训练相关节点是基于所述关联性信息来确定的;以及利用所述有监督训练、以及所述无监督训练,对所述图神经网络模型进行联合训练。每个步骤的更多细节已经在前文进行了详细描述,因此这里不再重复。
处理器可以是一种集成电路芯片,具有信号的处理能力。上述处理器可以是通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、现成可编程门阵列(FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本公开的实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等,可以是X84架构或ARM架构的。
非易失性存储器可以是只读存储器(ROM)、可编程只读存储器(PROM)、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)或闪存。应注意,本公开描述的方法的存储器旨在包括但不限于这些和任意其它适合类型的存储器。
计算设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算设备的输入装置可以是显示屏上覆盖的触摸层,也可以是终端外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
该计算设备可以是终端或者服务器。其中,终端可包括但不限于:智能手机、平板电脑、笔记本电脑、台式计算机、智能电视等;终端内可运行各式各样的客户端(application,APP),如多媒体播放客户端、社交客户端、浏览器客户端、信息流客户端、教育客户端,等等。服务器可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN(Content Delivery Network,内容分发网络)、以及大数据和人工智能平台等基础云计算服务的云服务器,等等。
根据本公开的另一方面,还提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行如前面所述的图神经网络模型的训练方法和分类方法的各步骤。
根据本公开的又一方面,还提供了一种计算机程序产品,包括计算机程序,计算机程序被处理器执行时实现如前面所述的图神经网络模型的训练方法和分类方法的各步骤。
需要说明的是,附图中的流程图和框图,图示了按照本公开各种实施例的方法和装置的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含至少一个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
在上面详细描述的本公开的示例实施例仅仅是说明性的,而不是限制性的。本领域技术人员应该理解,在不脱离本公开的原理和精神的情况下,可对这些实施例或其特征进行各种修改和组合,这样的修改应落入本公开的范围内。

Claims (16)

1.一种图神经网络模型的训练方法,包括:
获取图结构的信息,其中所述图结构的节点全集包括有标签的第一节点集和无标签的第二节点集,并且所述图结构的信息包括:所述图结构中的每个节点的节点特征、以及节点之间的关联性信息;
基于所述第一节点集中的每个节点对所述图神经网络模型进行有监督训练;
基于所述节点全集中的每个节点以及每个节点对应的训练相关节点,对所述图神经网络模型进行无监督训练,其中每个节点对应的训练相关节点是基于所述关联性信息来确定的;以及
利用所述有监督训练以及所述无监督训练,对所述图神经网络模型进行联合训练。
2.根据权利要求1所述的训练方法,其中,对所述图神经网络模型进行多个轮次的联合训练,
其中,利用所述有监督训练以及所述无监督训练,对所述图神经网络模型进行联合训练,包括:
在每一轮次的联合训练中,基于所述第一节点集的子集对所述图神经网络模型进行有监督训练,以及基于所述图结构的所述节点全集的子集以及所述节点全集的所述子集中的每个节点对应的训练相关节点对所述图神经网络模型进行无监督训练。
3.根据权利要求2所述的训练方法,其中,所述第一节点集和所述节点全集各自的不同子集用于不同轮次的联合训练,
其中,基于所述第一节点集的子集对所述图神经网络模型进行有监督训练,以及基于所述图结构的所述节点全集的子集以及所述节点全集的所述子集中的每个节点对应的训练相关节点对所述图神经网络模型进行无监督训练,包括:
选择所述第一节点集中包括第一数量的节点的一个子集以及所述节点全集中包括第二数量的节点的一个子集,用于所述轮次的联合训练,
针对所述第二数量的节点中的每个节点,基于所述关联性信息确定所述节点的一个关联节点以及所述节点的至少一个非关联节点,作为所述节点对应的训练相关节点;
基于所述第一数量的节点对所述图神经网络模型进行有监督训练,并且基于所述第二数量的节点中的每个节点、每个节点的关联节点和非关联节点对所述图神经网络模型进行无监督训练。
4.根据权利要求3所述的训练方法,其中,所述联合训练的联合损失函数与用于所述有监督训练的第一损失函数与用于所述无监督训练的第二损失函数相关联。
5.根据权利要求4所述的训练方法,其中,基于所述第一数量的节点对所述图神经网络模型进行有监督训练,并且基于所述第二数量的节点中的每个节点、每个节点的关联节点和非关联节点对所述图神经网络模型进行无监督训练,包括:
针对所述第一数量的节点中的每个节点,经过所述图神经网络模型得到所述节点对应的输出表示,作为第一输出表示;
针对所述第二数量的节点中的每个节点,经过所述图神经网络模型得到所述节点、所述节点的关联节点和非关联节点各自对应的输出表示,作为第二输出表示;以及
基于所述第一数量的节点各自对应的第一输出表示并基于第一损失函数对所述图神经网络模型进行有监督训练,并且基于所述第二数量的节点中的每个节点、每个节点的关联节点和非关联节点各自对应的第二输出表示并基于第二损失函数对所述图神经网络模型进行无监督训练。
6.根据权利要求5所述的训练方法,其中:
将所述第一数量的每个节点各自对应的第一输出表示分别输入深度神经网络模型,得到对应的第一优化输出表示;
将所述第二数量的节点中的每个节点、每个节点的关联节点和非关联节点各自对应的第二输出表示分别输入所述深度神经网络模型,得到对应的第二优化输出表示;
用每个第一优化输出表示作为所述第一输出表示对所述图神经网络模型进行有监督训练,并且用每个第二优化输出表示作为所述第二输出表示对所述图神经网络模型进行无监督训练。
7.根据权利要求5所述的训练方法,其中,
所述第一损失函数基于所述第一数量的节点中的每个节点的标签的预测值和真实值计算第一损失值,所述节点的所述预测值是基于所述节点对应的第一输出表示得到的;
所述第二损失函数基于针对所述第二数量的节点中的每个节点的、所述节点与其关联节点的第一关联性表示和所述节点与其非关联节点的第二关联性表示之间的差异计算第二损失值,所述第一关联性表示是基于所述节点和所述节点的关联节点各自对应的第二输出表示来计算的,且所述第二关联性表示是基于每个节点和所述节点的非关联节点各自对应的第二输出表示来计算的。
8.根据权利要求7所述的训练方法,其中,
所述第一损失函数基于所述第一数量的节点中的每个节点的标签的预测值和真实值计算第一损失值,其中所述节点的所述预测值是基于所述节点对应的第一输出表示或者第一优化输出表示得到的;
所述第二损失函数基于针对所述第二数量的节点中的每个节点的、所述节点与其关联节点的第一关联性表示和所述节点与其非关联节点的第二关联性表示之间的差异计算第二损失值,其中所述第一关联性表示是基于所述节点和所述节点的关联节点各自对应的第二输出表示或第二优化输出表示来计算的,且所述第二关联性表示是基于每个节点和所述节点的非关联节点各自对应的第二输出表示或第二优化输出表示来计算的。
9.根据权利要求7或8所述的训练方法,其中,所述联合损失函数为:
Figure FDA0003338634040000031
其中,L为联合损失函数,
Figure FDA0003338634040000032
为第一损失函数,DL为第一节点集,DU为第二节点集,xi为第一节点集中的节点i的节点特征,yi为节点i的标签的真实值,
Figure FDA0003338634040000041
为第二损失函数,(DL+DU)为节点全集,xp为节点全集中的节点p的节点特征,GNN(xi,A)或GNN(xp,A)为节点i或p的节点特征经过具有关联性信息A的图神经网络模型或者图神经网络模型后配置的深度神经网络模型之后的输出表示,λ为0到1之间的常数且用于调节无监督训练的第二损失值在联合损失函数的联合损失值中所占的比例。
10.根据权利要求1所述的训练方法,其中,对于第一节点集,每个节点的标签为所述节点的类别标签、或针对所述节点的节点特征的真实值标签。
11.根据权利要求1所述的训练方法,其中,所述图神经网络模型包括至少一个图神经网络层,每个图神经网络层包括聚合子层和更新子层,
所述聚合子层用于针对每个节点聚合与所述节点直接关联的节点的信息,得到所述节点的邻居聚合信息;
所述更新子层针对前一图神经网络层输出的每个节点的节点特征或每个节点的原始节点特征,基于所述节点的邻居聚合信息进行更新,作为当前图神经网络层输出的所述节点的节点特征。
12.一种对图结构中的节点进行分类的方法,包括:
获取待识别的图结构的信息,其中所述待识别的图结构的信息包括:所述待识别的图结构中的每个节点的节点特征、以及节点之间的关联性信息;
利用经训练的图神经网络模型对所述待识别的图结构中的节点进行分类,其中,所述图神经网络模型根据权利要求1-11中任一项所述的训练方法训练得到。
13.一种图神经网络模型的训练装置,包括:
获取模块,用于获取图结构的信息,其中所述图结构的节点全集包括有标签的第一节点集和无标签的第二节点集,并且所述图结构的信息包括:所述图结构中的每个节点的节点特征、以及节点之间的关联性信息;
训练模块,用于:
基于所述第一节点集中的每个节点对所述图神经网络模型进行有监督训练;
基于所述节点全集中的每个节点以及每个节点对应的训练相关节点,对所述图神经网络模型进行无监督训练,其中每个节点对应的训练相关节点是基于所述关联性信息来确定的;以及
利用所述有监督训练、以及所述无监督训练,对所述图神经网络模型进行联合训练。
14.根据权利要求13所述的训练装置,其中,所述训练模块被配置为在对所述图神经网络模型进行联合训练时:
对所述图神经网络模型进行多轮次的联合训练,并且在每一轮次的联合训练中,基于所述第一节点集的子集对所述图神经网络模型进行有监督训练,以及基于所述图结构的所述节点全集的子集以及所述节点全集的所述子集中的每个节点对应的训练相关节点对所述图神经网络模型进行无监督训练。
15.根据权利要求14所述的训练装置,其中,所述训练模块还包括选择子模块和训练子模块,其中,
所述选择子模块用于:
选择所述第一节点集中包括第一数量的节点的一个子集以及所述节点全集中包括第二数量的节点的一个子集用于所述轮次的联合训练,其中,所述第一节点集和节点全集各自的不同子集用于不同轮次的联合训练,并且
针对所述第二数量的节点中的每个节点,基于所述关联性信息确定所述节点的一个关联节点以及所述节点的至少一个非关联节点,作为所述节点对应的训练相关节点;
所述训练子模块用于基于所述第一数量的节点对所述图神经网络模型进行有监督训练,并且基于所述第二数量的节点中的每个节点、每个节点的关联节点和非关联节点对所述图神经网络模型进行无监督训练。
16.一种计算设备,包括:
处理器;
存储器,其上存储有计算机程序,所述计算机程序在由所述处理器执行时,使得所述一个或多个处理单元执行如权利要求1-11任一项所述的训练方法和如权利要求12所述的方法的各个步骤。
CN202111301676.0A 2021-11-04 2021-11-04 图神经网络模型训练方法及装置、分类方法、计算设备 Pending CN116090504A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111301676.0A CN116090504A (zh) 2021-11-04 2021-11-04 图神经网络模型训练方法及装置、分类方法、计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111301676.0A CN116090504A (zh) 2021-11-04 2021-11-04 图神经网络模型训练方法及装置、分类方法、计算设备

Publications (1)

Publication Number Publication Date
CN116090504A true CN116090504A (zh) 2023-05-09

Family

ID=86185405

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111301676.0A Pending CN116090504A (zh) 2021-11-04 2021-11-04 图神经网络模型训练方法及装置、分类方法、计算设备

Country Status (1)

Country Link
CN (1) CN116090504A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117273086A (zh) * 2023-11-17 2023-12-22 支付宝(杭州)信息技术有限公司 多方联合训练图神经网络的方法及装置
CN117785490B (zh) * 2024-02-27 2024-05-10 苏州元脑智能科技有限公司 一种图神经网络模型的训练架构、方法、系统及服务器

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117273086A (zh) * 2023-11-17 2023-12-22 支付宝(杭州)信息技术有限公司 多方联合训练图神经网络的方法及装置
CN117273086B (zh) * 2023-11-17 2024-03-08 支付宝(杭州)信息技术有限公司 多方联合训练图神经网络的方法及装置
CN117785490B (zh) * 2024-02-27 2024-05-10 苏州元脑智能科技有限公司 一种图神经网络模型的训练架构、方法、系统及服务器

Similar Documents

Publication Publication Date Title
US11829880B2 (en) Generating trained neural networks with increased robustness against adversarial attacks
CN110263227B (zh) 基于图神经网络的团伙发现方法和系统
CN110263280B (zh) 一种基于多视图的动态链路预测深度模型及应用
Cui et al. Sequential-knowledge-aware next POI recommendation: A meta-learning approach
CN110852447A (zh) 元学习方法和装置、初始化方法、计算设备和存储介质
CN111651671B (zh) 用户对象推荐方法、装置、计算机设备和存储介质
CN109033107A (zh) 图像检索方法和装置、计算机设备和存储介质
WO2022152161A1 (zh) 混合图神经网络模型的训练、预测
CN112990295A (zh) 一种基于迁移学习和深度学习融合的半监督图表示学习方法及装置
CN112231592A (zh) 基于图的网络社团发现方法、装置、设备以及存储介质
Bai et al. Deep spatial–temporal sequence modeling for multi-step passenger demand prediction
Wang et al. Environmental monitoring based on fog computing paradigm and internet of things
CN113761250A (zh) 模型训练方法、商户分类方法及装置
Liang et al. Survey of graph neural networks and applications
CN116664719B (zh) 一种图像重绘模型训练方法、图像重绘方法及装置
Smahi et al. A deep learning approach for collaborative prediction of Web service QoS
CN113822315A (zh) 属性图的处理方法、装置、电子设备及可读存储介质
Gao et al. Adversarial mobility learning for human trajectory classification
Wang et al. Urban traffic flow prediction: A dynamic temporal graph network considering missing values
Song et al. Visibility estimation via deep label distribution learning in cloud environment
CN112817563A (zh) 目标属性配置信息确定方法、计算机设备和存储介质
CN116090504A (zh) 图神经网络模型训练方法及装置、分类方法、计算设备
Li et al. An improved non-negative latent factor model for missing data estimation via extragradient-based alternating direction method
CN114202035A (zh) 一种多特征融合的大规模网络社区检测算法
Putrada et al. Edgesl: Edge-computing architecture on smart lighting control with distilled knn for optimum processing time

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
REG Reference to a national code

Ref country code: HK

Ref legal event code: DE

Ref document number: 40089244

Country of ref document: HK