专利详情

标题基于图结构级知识互蒸馏的图神经训练方法及装置
[标]当前申请(专利权)人南开大学
申请日2024年4月23日
申请号CN202410493003.7
公开(公告)日2024年8月30日
公开(公告)号CN118569303A
授权日-
法律状态/事件公开
专利类型发明申请
发明人范宝余 | 宫晓利 | 张金 | 王立
受理局中国
当前申请人(专利权)地址300350 天津市津南区海河教育园区同砚路38号 (天津,天津,津南区)
IPC分类号G06N3/042 | G06N3/0495 | G06N3/082 | G06N3/045 | G06N3/096 | G06N3/084 | G06F18/241
国民经济行业分类号-
代理机构天津市北洋有限责任专利代理事务所
代理人李素兰
被引用专利数量-
专利价值-

摘要

本发明公开了一种基于图结构级知识互蒸馏的图神经训练方法及装置,构建包含并行的两个图神经网络的的图神经网络训练架构;实现两个图神经网络的一一对应层的选取;构建学习器,对两个图神经网络分别构建节点级知识互蒸馏学习器和图结构级知识互蒸馏学习器;进行图结构级知识互蒸馏的图神经网络训练,在图神经网络训练过程中,两个图神经网络之间互为教师网络、学生网络,对于被选取出的两个图神经网络一一对应的层实现在节点级知识互蒸馏和图结构级知识互蒸馏。与现有技术相比,本发明既实现了两个图神经网络节点级知识互蒸馏,同时实现了利用两个图神经网络的图结构级知识互蒸馏学习器进行图神经网络训练,提高了图神经网络的性能。

1.一种基于图结构级知识互蒸馏的图神经训练方法,其特征在于,包括:
构建包含并行的第一、第二图神经网络的图神经网络训练架构;
实现所述第一、第二图神经网络的一一对应层的选取;
构建学习器,对所述第一、第二图神经网络分别构建节点级知识互蒸馏学习器和图结构级知识互蒸馏学习器,其中所述图结构级知识互蒸馏学习器基于节点连接子图结构和基于节点聚合图结构,所述的基于节点连接子图结构为每个节点与邻居连接关系构成一个小的子图,所述基于节点聚合图结构为多个有边互连的节点聚合成一个超级节点;
进行图结构级知识互蒸馏的图神经网络训练,在图神经网络训练过程中,所述第一、第二图神经网络之间互为教师网络、学生网络,对于被选取出的所述第一、第二图神经网络一一对应的层实现在节点级知识互蒸馏和图结构级知识互蒸馏;构建图结构级知识互蒸馏损失函数,得到训练好的图神经网络应用于所述待应用场景,具体包括以下处理:
a.选取一个批次的待应用场景的训练用图数据作为训练样本,输入到所述图结构级知识互蒸馏的图神经网络中,完成一个批次数据的图结构级知识互蒸馏的图神经网络训练,
b.获取所有输入数据的在各个图神经网络选取的层中的节点输出;
c.依次遍历一一对应层所有节点,计算各个节点级知识互蒸馏迁移方向,计算节点级知识互蒸馏损失;依次遍历一一对应层所有节点,计算所有节点的子图结构相似性,并进行子图结构级知识互蒸馏;
d.计算第一、第二图神经网络的训练总的损失函数和每个节点的交叉熵损失;
f..联合图结构级知识互蒸馏损失、节点级知识互蒸馏损失和每个节点的交叉熵损失,获得待训练第一、第二图神经网络的总损失,表达式如下:

其中,Lagg代表致性度量损失,Lstruct代表超级节点的结构损失,代表、分别代表第一图神经网络→第二图神经网络、第二图神经网络→第一图神经网络的互蒸馏损失,代表第一图神经网络实体节点到第二图神经网络进行的图结构级知识互蒸馏损失,分别代表第二图神经网络的实体节点到第一图神经网络的实体节点的图结构级知识互蒸馏损失,代表为第一图神经网络的网络节点为教师节点,代表为第二图神经网络的网络节点为教师节点,代表第一图神经网络所有实体节点的交叉熵损失函数,代表第一图神经网络所有实体节点的交叉熵损失函数;
使用L1、L2对第一图神经网络和第二图神经网络进行损失函数梯度计算,并使用损失函数梯度下降法,对图神经网络进行一次训练;
g.重新随机选取新的训练用图数据,重复a到f过程,往复迭代,直到整个网络损失函数收敛道一个极小值,完成图神经网络训练。
2.根据权利要求1所述的一种基于图结构级知识互蒸馏的图神经训练方法,其特征在于,若第一图神经网络和第二图神经网络具有相同层数的结构,则选取全部层进行一一对应层的图神经网络节点特征的互更新;若第一图神经网络和第二图神经网络具有不同层数的结构,则按比例分层抽取后,实现图神经网络层的一一对应。
3.根据权利要求1所述的一种基于图结构级知识互蒸馏的图神经训练方法,其特征在于,对于每个实体节点,其中交叉熵损失值小的节点定义为教师节点,反之,交叉熵损失值大的节点定义为学生节点,包含学生节点的图神经网络为学生网络,包含教师节点的图神经网络为教师网络。
4.根据权利要求1所述的一种基于图结构级知识互蒸馏的图神经训练方法,其特征在于,其中,利用教师节点实现对学生节点的知识迁移,表达式如下:

其中,代表为第一图神经网络的网络节点为教师节点,实现第一图神经网络向第二图神经网络的知识迁移,KL(·)代表计算两个向量的KL散度,i代表第i个实体节点特征,代表为第二图神经网络的网络节点为教师节点,实现第二图神经网络向第一图神经网络的知识迁移,代表第一图神经网络的第l层的第i个节点特征输出,代表第二图神经网络的第l层的第i个节点特征输出,LCE(·)代表求交叉熵损失。
5.根据权利要求1所述的一种基于图结构级知识互蒸馏的图神经训练方法,其特征在于,其中图结构级知识互蒸馏损失函数具体公式如下:

其中,KL(·)代表计算KL散度,代表第一图神经网络实体节点到第二图神经网络进行的图结构级知识互蒸馏损失,同理,代表第二图神经网络的实体节点到第一图神经网络的实体节点的图结构级知识互蒸馏损失。
6.根据权利要求1所述的一种基于图结构级知识互蒸馏的图神经训练方法,其特征在于,其中,图结构级知识互蒸馏损失函数,具体公式如下:

其中,KL(·)代表计算KL散度,代表第一图神经网络实体节点到第二图神经网络进行的图结构级知识互蒸馏损失,代表第二图神经网络的实体节点到第一图神经网络的实体节点的图结构级知识互蒸馏损失。
7.根据权利要求1所述的一种基于图结构级知识互蒸馏的图神经训练方法,其特征在于,其中,一致性度量损失Lagg表达式如下:

其中,S代表超级节点的几何,Fs代表超级节点的特征,Fv代表超级节点内部原始节点的特征。
8.根据权利要求1所述的一种基于图结构级知识互蒸馏的图神经训练方法,其特征在于,其中,互蒸馏损失Ldistill表达式如下:

其中,分别代表两个网络中对应超级节点的特征,和分别代表1→2、2→1两个不同方向的超级节点特征KL损失。
9.根据权利要求1所述的一种基于图结构级知识互蒸馏的图神经训练方法,其特征在于,其中,超级节点的结构损失Lstruct,表达式如下:
Lstruct=||AGNN1-AGNN2||F
其中,AGNN1、AGNN2分别代表GNN1和GNN2中每个超级节点内部的邻接矩阵,||.||F代表Frobenius范数。
分裂超级节点的互蒸馏损失,表达式如下:

其中,D代表所有分裂后节点的集合,和代表第一图神经网络和第二图神经网络中相应分裂后的超级节点的特征,Lsplit代表节点分裂特征损失。
10.一种基于图结构级知识互蒸馏的图神经训练装置,包括:
训练架构构建模块,用于包含并行的第一、第二图神经网络的图神经网络训练架构;
学习器构建模块,用于对所述第一、第二图神经网络分别构建节点级知识互蒸馏学习器和图结构级知识互蒸馏学习器,其中所述图结构级知识互蒸馏学习器进一步包括基于节点连接子图结构和节点聚合图结构的图结构级知识互蒸馏学习器;所述的基于节点连接子图结构为每个节点与邻居连接关系构成一个小的子图,所述基于节点聚合图结构为多个有边互连的节点聚合成一个超级节点;
选取模块,用于实现所述第一、第二图神经网络的一一对应层的选取;
图神经网络训练模块,用于进行图结构级知识互蒸馏的图神经网络训练,在图神经网络训练过程中,所述第一、第二图神经网络之间互为教师网络、学生网络,对于被选取出的所述第一、第二图神经网络一一对应的层实现在节点级知识互蒸馏和图结构级知识互蒸馏;构建图结构级知识互蒸馏损失函数,得到训练好的图神经网络应用于所述待应用场景。

技术领域
[0001]本发明本发明涉及图神经网络、知识蒸馏和知识分类技术领域,特别是涉及一种基于图结构级知识互蒸馏的图神经训练方法及装置。
背景技术
[0002]随着信息化和大数据时代的到来,互联网上时时刻刻都在产生文本信息。这些文本信息分布于各行各业,从这些实时海量的文本中快速准确挖掘出有价值的信息有广泛的现实意义和应用场景。例如,在电商领域,商家可以通过用户对产品的评论信息快速分辨出用户对产品的喜好,进而设计出相应的销售策略增加产品销量;在社交媒体中,快速准确识别出其中的虚假信息。
[0003]因此,文本分类任务是自然语言处理中应用广泛且重要的任务,其根据文本的内容等特征按照特定的分类体系标准将其划分到预定义的类别中,能大大提高文本处理、文本挖掘的效率,有广泛的应用场景,例如情感分类、主题分类和虚假信息检测等。
[0004]为了更好的处理基于图结构数据,传统的图神经网络(GNNs)通过聚合邻域节点的特征信息,提出了基于邻居节点特征聚合的图神经网络训练范式,如GraphSAGE、GAT、GCN等等。为了进一步提高图神经网络性能,有研究学者将知识蒸馏的方法运用到图神经网络训练中,过去这些方法的基本思想是从较深层的教师GNN模型中提取知识,从而优化较浅的学生GNN模型。但是,这些方法有如下3个问题:
[0005]1)传统的知识蒸馏方法在学生模型的训练开始前,往往需要提前准备一个训练有素的教师网络模型(通常是个大模型),通常这是非常耗时、费力的。在如今海量的知识数据库面前,训练大型的教师网络模型由于成本原因甚至无法实现。
[0006]2)即使训练好一个优秀的教师模型,也并不保证会训练出一个更好的学生模型,因为教师网络和学生网络之间的模型、表现能力也并不匹配,即学生模型难以模仿过于强大的教师模型的输出。
[0007]3)传统的基于知识蒸馏的图神经网络训练方法忽略了子图结构的蒸馏,即,每个节点与邻居连接关系构成一个小的子图,教师网络与学生网络的子图连接信息,包括:距离损失、角度损失带来的师生网络输出图数据的结构差异,鲜有算法提及该差异性,而图数据的结构差异,即数据节点间的近邻关系是非常重要的,直接影响图节点特征映射关系的训练,从而影响分类精度。
发明内容
[0008]针对现有技术存在的缺陷,本发明旨在提出一种图结构级知识互蒸馏的文本分类图神经网络训练方法,在图神经网络训练中实时、动态管理两个并行的图神经网络的文本实体节点特征连接结构差异,利用两个图神经网络互为教师、学生实现相似样本的近邻关系保持和关系聚类,并将其应用到图神经网络训练中,进一步提高图神经网络的文本分类性能。
[0009]为了达到上述发明目的,本发明实现了以下技术方案:
[0010]一种基于图结构级知识互蒸馏的图神经训练方法,包括:
[0011]构建包含并行的第一、第二图神经网络的图神经网络训练架构;
[0012]实现所述第一、第二图神经网络的一一对应层的选取;
[0013]构建学习器,对所述第一、第二图神经网络分别构建节点级知识互蒸馏学习器和图结构级知识互蒸馏学习器,其中所述图结构级知识互蒸馏学习器基于节点连接子图结构和基于节点聚合图结构,所述的基于节点连接子图结构为每个节点与邻居连接关系构成一个小的子图,所述基于节点聚合图结构为多个有边互连的节点聚合成一个超级节点;
[0014]进行图结构级知识互蒸馏的图神经网络训练,在图神经网络训练过程中,所述第一、第二图神经网络之间互为教师网络、学生网络,对于被选取出的所述第一、第二图神经网络一一对应的层实现在节点级知识互蒸馏和图结构级知识互蒸馏;构建图结构级知识互蒸馏损失函数,得到训练好的图神经网络应用于所述待应用场景,具体包括以下处理:
[0015]a.选取一个批次的待应用场景的训练用图数据作为训练样本,输入到所述图结构级知识互蒸馏的图神经网络中,完成一个批次数据的图结构级知识互蒸馏的图神经网络训练,
[0016]b.获取所有输入数据的在各个图神经网络选取的层中的节点输出;
[0017]c.依次遍历一一对应层所有节点,计算各个节点级知识互蒸馏迁移方向,计算节点级知识互蒸馏损失;依次遍历一一对应层所有节点,计算所有节点的子图结构相似性,并进行子图结构级知识互蒸馏;
[0018]d.计算第一、第二图神经网络的训练总的损失函数和每个节点的交叉熵损失;
[0019]
[0020]
[0021]其中,Lagg代表致性度量损失,Lstruct代表超级节点的结构损失,代表、分别代表第一图神经网络→第二图神经网络、第二图神经网络→第一图神经网络的互蒸馏损失,代表第一图神经网络实体节点到第二图神经网络进行的图结构级知识互蒸馏损失,分别代表第二图神经网络的实体节点到第一图神经网络的实体节点的图结构级知识互蒸馏损失,代表为第一图神经网络的网络节点为教师节点,代表为第二图神经网络的网络节点为教师节点,代表第一图神经网络所有实体节点的交叉熵损失函数,代表第一图神经网络所有实体节点的交叉熵损失函数;
[0022]使用L1、L2对第一图神经网络和第二图神经网络进行损失函数梯度计算,并进行梯度反传训练;
[0023]f..联合图结构级知识互蒸馏损失、节点级知识互蒸馏损失和每个节点的交叉熵损失,获得待训练第一、第二图神经网络的总损失,并使用损失函数梯度下降法,对图神经网络进行一次训练;
[0024]g.重新随机选取新的训练用图数据,重复a到f过程,往复迭代,直到整个网络损失函数收敛道一个极小值,完成图神经网络训练。
[0025]一种基于图结构级知识互蒸馏的图神经训练装置,包括:
[0026]训练架构构建模块,用于包含并行的第一、第二图神经网络的基于图结构级知识互蒸馏的图神经网络训练架构;
[0027]学习器构建模块,用于对所述第一、第二图神经网络分别构建节点级知识互蒸馏学习器和图结构级知识互蒸馏学习器,其中所述图结构级知识互蒸馏学习器进一步包括基于节点连接子图结构和节点聚合图结构的图结构级知识互蒸馏学习器;
[0028]选取模块,用于实现所述第一、第二图神经网络的一一对应层的选取;
[0029]图神经网络训练模块,用于进行图结构级知识互蒸馏的图神经网络训练,在图神经网络训练过程中,所述第一、第二图神经网络之间互为教师网络、学生网络,对于被选取出的所述第一、第二图神经网络一一对应的层实现在节点级知识互蒸馏和图结构级知识互蒸馏;构建图结构级知识互蒸馏损失函数,得到训练好的图神经网络应用于所述待应用场景。
[0030]本发明的有益效果及优点在于:
[0031]1、既实现了两个图神经网络节点级知识互蒸馏,同时也实现了利用两个图神经网络的图结构级知识互蒸馏学习器进行图神经网络训练,从而全面地实现了图知识相互传递,提高了图神经网络的分类性能;
[0032]2、避免了传统知识蒸馏图神经网络训练过程的分阶段训练的缺陷即教师网络、学生网络分开训练;同时,也避免了传统知识蒸馏方法中,需要优秀教师网络的训练要求,在训练过程中两两网络相互训练,共同优化,避免了教师模型与学生模型表现能力不匹配问题;
[0033]3、可以广泛应用在多类图神经网络中,实现以图神经网络为核心的多种应用场景中,例如:邮件文本分类、网页分类、新闻分类等等;
附图说明
[0034]图1为本发明的一种基于图结构级知识互蒸馏的图神经训练方法流程图
[0035]图2为节点级知识互蒸馏学习器工作示意图;(a)第一、第二图神经网络示意图;(b)节点级知识互蒸馏学习过程示意图;
[0036]图3为本发明的一种基于图结构级知识互蒸馏的图神经训练装置模块图。
具体实施方式
[0037]下面结合附图和具体实施例对本发明技术方案作进一步详细描述。
[0038]实施例一:
[0039]本发明构建了一种图结构级知识互蒸馏的图神经网络训练架构,该架构包含两个并行的图神经网络,对所述第一、第二图神经网络分别构建节点级知识互蒸馏学习器和图结构级知识互蒸馏学习器,选取两个图神经网络一一对应的层,进行节点级知识互蒸馏学习、图结构互蒸馏学习,进行知识节点蒸馏学习与图结构级知识互蒸馏学习。
[0040]给定一个知识图谱ζ={E,R,T},其中,E代表知识图谱中所有实体的集合,R代表知识图谱中所有关系的结合,T代表所有三元组的集合。
[0041]每个三元组T={h,r,t}由头实体h、关系r和尾实体t构成,于是三元组集合可以表示为T={(h,r,t)|h,t∈E,r∈R}。对于某个实体而言,包含了其若干个三元组的集合往往隐含这个实体丰富的结构和语义特征,实际分类应用中利用多个三元组实现实体的刻画。对于分类任务,每个实体都包含一个类别标签,用于对该实体进行分类。类别标签集合可以表示为Y={y1,y2,······,yK},K代表总的标签类别数。
[0042]图神经网络是由多层垒叠的深层结构,本发明为l层,每一层都对输入的知识图谱进行处理,更新头实体、尾实体及其关系特征。
[0043]本发明的具体实施方案如下:
[0044]步骤1、构建包含任意两个并行的图神经网络的图神经网络训练架构,本步骤中的图神经网络的图数据输入的表达式如下所示:
[0045]
[0046]
[0047]
[0048]其中,l代表图神经网络第l层,代表头实体的第l层特征,代表尾实体的第l+1层图神经网络的特征,代表尾实体的第l层图神经网络的特征,代表头实体和尾实体之间的关系特征,Nh代表头实体的关系紧邻集合,即与头实体有连接关系的集合,Wr代表图神经网络特征映射矩阵,是一个随机矩阵,可训练,初始化为随机值,r′代表紧邻集合中的关系,t′代表紧邻集合中的尾实体,φ(·)代表图神经网络特征映射函数,δ(·)代表该实体与其关系紧邻集合中的每个邻居实体的近邻关系值;
[0049]步骤2、实现所述第一、第二图神经网络的一一对应层的选取,图神经网络的层选取过程为:若第一图神经网络和第二图神经网络具有相同层数的结构,则选取全部层进行一一对应层的图神经网络节点特征的互更新。若第一图神经网络和第二图神经网络具有不同层数的结构,则按比例分层抽取后,实现图神经网络层的一一对应,再进行图神经网络节点特征的互更新。例如,第一图神经网络结构为m层,第二图神经网络结构为为n层。对最后一层一定会进行图神经网络节点特征的互更新,因此该层不用选择。对于其余层,假设第一、第二图神经网络分别各选h层进行网络节点特征的互更新,因此第一图神经网络每隔delta=m/h抽取1层做为锚点层,第二图神经网络每隔beta=n/h层抽取1层做为锚点层。被选出的锚点层按照对应关系进行网络节点特征的互更新。该选择在训练初始化阶段进行,只进行一次,训练过程按照初始选择的层进行图神经网络节点特征的互更新。
[0050]如图2所示,对第一、第二图神经网络被选取的一一对应的层,获得知识图谱各个实体特征输出,但是经过第一、第二图神经网络聚合过程处理后的各个实体节点特征优劣不一,例如,某节点经过第一图神经网络聚合过程处理后会得到好的分类结果。
[0051]步骤3、构建学习器,对所述第一、第二图神经网络分别构建节点级知识互蒸馏学习器和图结构级知识互蒸馏学习器,其中所述图结构级知识互蒸馏学习器进一步包括基于节点连接子图结构和节点聚合图结构的图结构级知识互蒸馏学习器;两个图神经网络之间进行节点级知识互蒸馏和图结构互蒸馏,所述的基于节点连接子图结构为每个节点与邻居连接关系构成一个小的子图,所述基于节点聚合图结构为多个有边互连的节点聚合成一个超级节点;
[0052]3.1、构建节点级知识互蒸馏学习器,利用步骤1建立的两个图神经网络对知识图谱各个实体特征完成一次更新后,首先动态判断哪个神经网络输出的节点特征更优,从而在节点级别实现图神经网络知识互蒸馏,过程如下:
[0053]对于第一、第二图神经网络被选取出的一一对应的层,遍历该层的实体节点特征输出,对所有实体节点特征分别计算节点特征与节点真值标签的交叉熵;
[0054]遍历所有实体节点,对于每个实体节点,其中交叉熵损失值小的节点定义为教师节点,反之,交叉熵损失值大的节点定义为学生节点,包含学生节点的图神经网络为学生网络,包含教师节点的图神经网络为教师网络。
[0055]利用教师节点实现对学生节点的知识迁移,表达式如下:
[0056]
[0057]
[0058]其中,代表为第一图神经网络的网络节点为教师节点,实现第一图神经网络向第二图神经网络的知识迁移,KL(·)代表计算两个向量的KL散度,i代表第i个实体节点特征,代表为第二图神经网络的网络节点为教师节点,实现第二图神经网络向第一图神经网络的知识迁移,代表第一图神经网络的第l层的第i个节点特征输出,代表第二图神经网络的第l层的第i个节点特征输出,LCE(·)代表求交叉熵损失。
[0059]进行节点级知识互蒸馏,实现两个图神经网络节点特征的互更新。首先选取两个图神经网络对应的层,进行层与层之间的图神经网络节点特征的互更新。
[0060]3.2、构建图结构级知识互蒸馏学习器,过程如下:
[0061]对于第一、第二图神经网络被选取出的一一对应的层,遍历该层的所有实体节点,计算所有实体节点的子图结构相似性,并进行子图结构级知识互蒸馏。图结构级知识互蒸馏的方向和节点级知识互蒸馏的方向一致,即进行知识蒸馏时,对于一个头节点同时进行节点特征的知识互蒸馏和节点图结构的知识互蒸馏。蒸馏方向取决于对应节点特征的交叉熵损失值大小。
[0062]对于一个知识图谱实体,与其连接的实体为尾实体,连接关系记为r。每个知识图谱实体通常与多个尾实体连接,构成图结构关系。该图结构也蕴含知识。
[0063]本步骤的图结构级知识互蒸馏学习器包括2种图结构:1)基于节点连接子图结构,2)节点聚合图结构。
[0064]3.2.1、基于节点连接子图结构的知识互蒸馏图学习,过程如下:
[0065]分别计算每个知识图谱实体节点与其尾节点的图结构关系,表达式如下:
[0066]
[0067]
[0068]同理,
[0069]
[0070]其中,Nh代表与头节点有连接的近邻节点集合,包括多个头尾实体三元组,代表第一图神经网络的第l层的头节点(head)特征,代表第一图神经网络的第l层的与头节点相连的尾节点特征,代表连接关系向量,ψ1代表第一图神经网络的头节点h的结构系数,ψ2代表第二图神经网络的头节点h的结构系数,Wr代表图神经网络特征映射矩阵,是一个随机矩阵,可训练,初始化为随机值,g1、g2代表第一图神经网络、第二图神经网络的节点聚合关系函数,σ代表非线性映射函数。
[0071]对选取出的层的所有实体节点都进行子图结构级知识互蒸馏,构建图结构级知识互蒸馏损失函数,具体公式如下:
[0072]
[0073]
[0074]其中,KL(·)代表计算KL散度,代表第一图神经网络实体节点到第二图神经网络进行的图结构级知识互蒸馏损失,同理,代表第二图神经网络的实体节点到第一图神经网络的实体节点的图结构级知识互蒸馏损失。
[0075]依次遍历所有图结构级知识互蒸馏的节点,分别统计1→2(教师网络→学生网络)、2→1(学生网络→教师网络)两个不同方向的子图结构蒸馏损失之和。基于节点连接子图结构的图学习方式可以学习节点级的细粒度的子图结构特征。
[0076]3.2、基于节点聚合图结构的知识互蒸馏图学习,过程如下:
[0077]对于复杂网络来说,宏观的子图结构也是非常重要的。基于此,提出基于节点聚合和分裂图结构的图学习:先将重要性较高的节点聚合或分裂成超级节点,以简化图的复杂性,进而执行分别利用4.1的公式(6)~(8)计算每个知识图谱节点聚合或者分裂成超级节点的实体节点与其尾节点的图结构关系,以及,对选取出的层的每个知识图谱节点聚合或者分裂成超级节点的所有实体节点都进行子图结构级知识互蒸馏,构建图结构级知识互蒸馏损失函数,参考公式(9)~(10)。从而实现更有效的图结构表示和特征提取,提高网络分析的准确性和效率。
[0078]步骤4、进行图结构级知识互蒸馏的图神经网络训练,过程如下:
[0079]将待应用场景的图结构数据集作为训练样本,进行图结构级知识互蒸馏的图神经网络训练,在图神经网络训练过程中,所述第一、第二图神经网络之间互为教师网络、学生网络,对于被选取出的所述第一、第二图神经网络一一对应的层实现在节点级知识互蒸馏和图结构级知识互蒸馏;构建图结构级知识互蒸馏损失函数,得到训练好的图神经网络应用于所述待应用场景。
[0080]对本发明技术方案所涉及的相关概念介绍如下:
[0081]1)节点重要性评估,对于每个节点,在训练的每次迭代中,用其特征进行分类是否可以得到正确的分类结果,并将结果存储到节点验证存储器中,该存储器只存储每个节点近H次的分类结果。
[0082]2)对每个节点的重要性进行评估,计算其重要性得分。本发明读取节点验证存储器中每个节点的分类正确次数作为节点重要性评估标准,设置阈值M,当一个节点分类正确次数>M次时,证明该节点为重要节点。
[0083]3)节点聚合:统计重要节点的互联情况,如果一个节点是重要节点,并且其邻居也是重要节点,那么有这样的多个重要节点连接的区域称为重要区域。本发明设置重要区域的节点数为N个,当有超过N个重要节点互连时候,称为1个重要区域建立。
[0084]4)对于重要区域构建超级节点,将重要区域的节点聚合成超级节点。例如,可以将多个有边互连的节点聚合成一个代表性节点,称为超级节点,聚合方式有多重,例如所有重要区域节点特征求平均、区域随机采样R个节点求特征等等。
[0085]5)对超级节点进行边调整:超级节点建立以后,原图结构发生改变,调整超级节点相连的边,原来与重要区域节所有相连的边全部与超级节点相连,即重要区域节点周围节点都与超级节点相连。
[0086]6)对于每次训练,第一图神经网络构建超级节点,则第二图神经网络也会按照相应的节点聚合方式构建超级节点,并向第一图神经网络的超级节点及其超级节点结构进行学习。同理,第二图神经网络会构建超级节点,则第一图神经网络也会按照相应的节点聚合方式构建超级节点,并向第二图神经网络的超级节点及其超级节点结构进行学习。
[0087]本发明使用的两种损失函数包括聚合一致性度量损失和互蒸馏损失。
[0088]一致性度量损失Lagg:衡量超级节点内部原始节点特征的一致性,确保聚合不会损失过多信息,表达式如下:
[0089]
[0090]其中,S代表超级节点的几何,Fs代表超级节点的特征,Fv代表超级节点内部原始节点的特征。
[0091]互蒸馏损失Ldistill:促进两个图神经网络之间的知识交流,特别是在超级节点的结构和特征上,表达式如下:
[0092]
[0093]其中,分别代表两个网络中对应超级节点的特征。和分别代表1→2、2→1两个不同方向的超级节点特征KL损失。
[0094]对于超级节点的结构损失,考虑到有两个图神经网络(GNN1和GNN2)互相学习,这个损失函数用于促进两个网络中相应超级节点间的一致性,从而保证整体上促进两个超级节点内的图结构保持一致性。超级节点的结构损失的计算过程如下:
[0095]首先,对节点连接关系进行动态调整:对于GNN1和GNN2,在超级节点内部,如果某一个节点在节点重要性评估阶段被评估为非重要节点,则该节点与其余所有已连接的节点进行断开连接,否则保持连接关系不变;
[0096]下一步,连接关系进行动态调整后,计算GNN1和GNN2中每个超级节点内部的邻接矩阵,超级节点的结构损失Lstruct,表达式如下:
[0097]Lstruct=||AGNN1-AGNN2||F (13)
[0098]其中,AGNN1、AGNN2分别代表GNN1和GNN2中每个超级节点内部的邻接矩阵,||.||F代表Frobenius范数。
[0099]7)节点分裂特征损失,本发明还为重要或复杂的超级节点定义分裂策略,从而实现超级节点之间的宏观大结构损失度量。超级节点互学习的过程如下:
[0100]7.1)首先统计GNN1和GNN2的超级节点规模,当GNN1或GNN2中超级节点规模超过Q时候,进行超级节点分裂。分裂方式例如:将某个超级节点平均拆分为2部分,然后重新聚合成2个新的超级节点。如此循环往复的向下拆分,直到拆分后的超级节点内包含的节点数目小于T为止,则不进行分裂了;
[0101]7.2)若GNN1中的超级节点分裂完毕,则GNN2也会按照相应的方式进行分裂,并进行组合,从而GNN1和GNN2有相同的超级节点组合;反之,如果GNN2中的超级节点分裂完毕,则GNN1也会按照相应的方式进行分裂,并进行组合,从而GNN1和GNN2有相同的超级节点组合。
[0102]以上是超级节点互学习的过程,7.1)、7.2)是相互独立的过程。
[0103]8)分裂超级节点的目的是细化图的表示,使其更加精确地捕捉复杂的结构信息。
[0104]本发明设计了基于节点分裂特征的互蒸馏损失,考虑到两个图神经网络(GNN1和GNN2)的互相学习,应包括分裂超级节点的互蒸馏损失,表达式如下:
[0105]
[0106]D代表所有分裂后节点的集合,和代表GNN1和GNN2中相应分裂后的超级节点的特征。Lsplit代表节点分裂特征损失。
[0107]综述:
[0108]对于第一、第二图神经网络的训练,总的损失函数记为:
[0109]
[0110]
[0111]使用L1、L2对第一图神经网络和第二图神经网络进行损失函数梯度计算,并进行梯度反传训练。代表第一图神经网络所有实体节点的交叉熵损失函数。
[0112]如上,完成一个批次数据的图结构级知识互蒸馏的图神经网络训练的过程,再次总结本发明整体训练过程:
[0113]S1、构建基于图结构级知识互蒸馏的图神经网络训练架构,包含第一、第二图神经网络这两个图神经网络;
[0114]S2、第一和第二图神经网络选取的一一对应的层,在选取的层进行节点级知识互蒸馏和图结构级知识互蒸馏;
[0115]S3、选取一个批次的训练用图数据,输入到图结构级知识互蒸馏图神经网络中,获取所有输入数据的在各个图神经网络选取的层中的节点输出;
[0116]S4、对于一一对应的图神经网络层,依次遍历所有节点,计算各个节点级知识互蒸馏迁移方向,计算节点级知识互蒸馏损失;
[0117]S5、对于一一对应的图神经网络层,依次遍历所有节点,计算所有节点的子图结构相似性,并进行子图结构级知识互蒸馏。蒸馏的方向和节点级知识互蒸馏方向一致,即进行知识蒸馏时,对于一个头节点同时进行节点特征的知识蒸馏和节点图结构的知识互蒸馏。蒸馏方向取决于对应节点特征的交叉熵损失值大小;
[0118]S6、利用公式(15)、公式(16)计算各个节点的节点级知识互蒸馏损失、图结构级知识互蒸馏损失和每个节点的交叉熵损失;
[0119]S7、联合图结构级知识互蒸馏损失、节点级知识互蒸馏损失和每个节点的交叉熵损失,获得待训练第一、第二图神经网络的总损失,并使用损失函数梯度下降法,对图神经网络进行一次训练;
[0120]S8、重新随机选取新的训练用图数据,重复第3步到第7步过程,往复迭代,直到整个网络损失函数收敛道一个极小值,完成图神经网络训练,保存训练好的所有层的网络参数。
[0121]利用训练好的图神经网络进行知识提取,输出实体节点更好的分类结果。
[0122]综上所述,本发明实现了图结构特征细粒度更新;网络训练过程中两个图神经网络相互学习,各取其长,以能力强、精度高的图神经网络节点指导另一方训练,鉴别性的知识在两两图神经模型之间相互传递,共同优化;所提出的训练方式实现了end-to-end的图神经网络训练方式。本发明在图结构级知识互蒸馏的图神经网络训练的过程,由于所采用训练模式的独特性,使得图结构级知识互蒸馏的图神经网络训练的过程也是独一无二的,本发明保护其训练过程:通过各个图神经网络同时对相同的知识图谱输入进行处理,每个图神经网络为相同的输入数据提供不同的视角。为了实现图结构级知识互蒸馏,两个图神经网络之间互为教师网络、学生网络,进行知识互蒸馏,为彼此提供不同视角信息。
[0123]最后应当说明的是,以上内容仅用以说明本发明的技术方案,而非对本发明保护范围的限制,凡对上述的技术方案进行的简单修改或者等同替换,均不脱离本发明技术方案的实质和权利要求申请保护的范围。