多任务图架构的搜索方法、装置、行为预测方法和产品

未命名 09-13 阅读:88 评论:0


1.本发明涉及深度学习技术领域,特别是一种多任务图架构的搜索方法、装置、行为预测方法和产品。


背景技术:

2.图神经网络可以处理图数据并且用于节点分类、图分类、链接预测等下游任务,广泛应用于社交网络分析、交通预测、欺诈检测等业务中。图神经网络架构搜索用于根据数据集,自动化地从一个自定义的搜索空间中搜索得到性能最优的图神经网络架构,省去人工设计架构的成本。
3.然而,现有的图架构的搜索方法只针对应用于单任务图学习的图神经网络架构搜索,无法直接搜索得到,应用于多任务图学习的图神经网络架构。因此,有必要开发一种多任务图架构的搜索方法、装置、行为预测方法和产品,以实现快速准确的多任务图架构的搜索。


技术实现要素:

4.鉴于上述问题,本发明实施例提供了一种多任务图架构的搜索方法、装置、行为预测方法和产品,以便克服上述问题或者至少部分地解决上述问题。
5.本发明实施例第一方面提供了一种多任务图架构的搜索方法,所述方法包括:
6.将多个图任务输入分层解耦超网络,在所述分层解耦超网络中进行前向传播,得到输出的多个架构;所述分层解耦超网络为多层结构,在每一层超网络中将特征空间划分为多个互相解耦的块;每个块具有对应的软任务协作参数,所述软任务协作参数表示上一层超网络的块的节点表征对自身的节点表征的影响程度;
7.利用所述输出的多个架构进行目标分类任务,得到预测结果,根据所述预测结果,得到损失函数;
8.根据所述损失函数,进行架构参数训练,对所述分层解耦超网络的架构参数进行更新,对所述软任务协作参数进行更新;所述架构参数表示,所述块对上一层超网络的块输出的图卷积操作的操作结果进行加权和时,各自的权重;
9.根据所述损失函数,进行模型参数训练,对所述分层解耦超网络的模型参数更新,所述模型参数表示所述图卷积操作的参数;
10.重复上述步骤,得到训练完成的分层解耦超网络;
11.将所述多个图任务输入所述训练完成的分层解耦超网络,得到多任务图神经网络架构。
12.在一种可能的实施方式中,所述在所述分层解耦超网络中进行前向传播,包括:
13.接收前一层超网络各个块输出的图卷积操作的操作结果,每个块对应一种操作类型;
14.根据所述架构参数中的每个所述操作结果的权重,对接收到的所述操作结果进行
加权和,得到新的操作结果,向下一层超网络的各个块输出所述新的操作结果。
15.在一种可能的实施方式中,所述软任务协作参数在[-1,1]范围内,初始值均为0,所述根据所述损失函数,进行架构参数训练,对所述分层解耦超网络的架构参数进行更新,对所述软任务协作参数进行更新,包括:
[0016]
根据所述损失函数,对所述架构参数求梯度,使用梯度下降法对所述架构参数进行更新;
[0017]
按照如下公式对所述软任务协作参数进行计算,并按照梯度下降法进行更新:
[0018][0019]
其中,i表示相邻两个层级中一层超网络中的块的位置,j表示相邻两个层级中另一层超网络中的块的位置,θ
ij
表示j所对应的块的针对i所对应的块的可学习参数,p
ij
表示块i与块j之间的软任务协作参数。
[0020]
在一种可能的实施方式中,所述根据所述损失函数,进行模型参数训练,包括:
[0021]
根据所述多个图任务各自的损失函数,对所述模型参数求梯度的模长,所述梯度的模长表示所述损失函数所对应的所述图任务的难度;
[0022]
按照课程学习的方法,对所述梯度进行重加权调整,以使所述模型参数受到所述多个图任务较为均衡的影响;
[0023]
根据调整后的所述梯度,对所述模型参数进行更新。
[0024]
在一种可能的实施方式中,所述对所述梯度进行重加权调整,包括:
[0025]
利用tanh函数,按照如下公式,对所述梯度进行裁剪,得到裁剪后的梯度;裁剪的强度随着训练轮次的增加而逐渐减小;
[0026][0027]
其中,γ表示裁剪强度,p
ij
表示块i与块j之间的软任务协作参数,表示损失函数,fj表示第j块的模型参数,fi表示第i块的模型参数。
[0028]
在一种可能的实施方式中,所述利用所述输出的多个架构进行目标分类任务,得到预测结果,根据所述预测结果,得到损失函数,包括:
[0029]
每个所述架构,利用所述图任务进行分类,得到所述预测结果,所述预测结果表示对所述图任务的预测结果;
[0030]
将所述预测结果和所述图任务的标签进行比对,得到每个所述架构的损失函数,所述损失函数表示所述架构对所述图任务的类型的预测准确程度。
[0031]
本技术实施例第二方面提供了一种多任务图架构的搜索装置,所述装置包括:
[0032]
前向传播模块,用于将多个图任务输入分层解耦超网络,在所述分层解耦超网络中进行前向传播,得到输出的多个架构;所述分层解耦超网络为多层结构,在每一层超网络中将特征空间划分为多个互相解耦的块;每个块具有对应的软任务协作参数,所述软任务协作参数表示上一层超网络的块的节点表征对自身的节点表征的影响程度;
[0033]
损失函数确定模块,用于利用所述输出的多个架构进行目标分类任务,得到预测结果,根据所述预测结果,得到损失函数;
[0034]
架构参数训练模块,用于根据所述损失函数,进行架构参数训练,对所述分层解耦超网络的架构参数进行更新,对所述软任务协作参数进行更新;所述架构参数表示,所述块对上一层超网络的块输出的图卷积操作的操作结果进行加权和时,各自的权重;
[0035]
模型参数训练模块,用于根据所述损失函数,进行模型参数训练,对所述分层解耦超网络的模型参数更新,所述模型参数表示所述图卷积操作的参数;
[0036]
重复模块,用于重复上述步骤,得到训练完成的分层解耦超网络;
[0037]
搜索模块,用于将所述多个图任务输入所述训练完成的分层解耦超网络,搜索得到多任务图神经网络架构。
[0038]
在一种可能的实施方式中,所述前向传播模块,包括:
[0039]
接收子模块,用于接收前一层超网络各个块输出的图卷积操作的操作结果,每个块对应一种操作类型;
[0040]
计算子模块,用于根据所述架构参数中的每个所述操作结果的权重,对接收到的所述操作结果进行加权和,得到新的操作结果,向下一层超网络的各个块输出所述新的操作结果。
[0041]
在一种可能的实施方式中,所述软任务协作参数在[-1,1]范围内,初始值均为0,所述架构参数训练模块,包括:
[0042]
架构参数更新子模块,用于根据所述损失函数,对所述架构参数求梯度,使用梯度下降法对所述架构参数进行更新;
[0043]
软任务协作参数更新子模块,用于按照如下公式对所述软任务协作参数进行计算,并按照梯度下降法进行更新:
[0044][0045]
其中,i表示相邻两个层级中一层超网络中的块的位置,j表示相邻两个层级中另一层超网络中的块的位置,θ
ij
表示j所对应的块的针对i所对应的块的可学习参数,p
ij
表示块i与块j之间的软任务协作参数。
[0046]
在一种可能的实施方式中,所述模型参数训练模块,包括:
[0047]
梯度计算子模块,用于根据所述多个图任务各自的损失函数,对所述模型参数求梯度的模长,所述梯度的模长表示所述损失函数所对应的所述图任务的难度;
[0048]
调整子模块,用于按照课程学习的方法,对所述梯度进行重加权调整,以使所述模型参数受到所述多个图任务较为均衡的影响;
[0049]
模型参数更新子模块,用于根据调整后的所述梯度,对所述模型参数进行更新。
[0050]
在一种可能的实施方式中,所述调整子模块,包括:
[0051]
梯度裁剪单元,用于利用tanh函数,按照如下公式,对所述梯度进行裁剪,得到裁剪后的梯度;裁剪的强度随着训练轮次的增加而逐渐减小;
[0052][0053]
其中,γ表示裁剪强度,p
ij
表示块i与块j之间的软任务协作参数,表示损失函数,fj表示第j块的模型参数,fi表示第i块的模型参数。
[0054]
在一种可能的实施方式中,所述损失函数确定模块,包括:
[0055]
预测子模块,用于对每个所述架构,利用所述图任务进行分类,得到所述预测结果,所述预测结果表示对所述图任务的预测结果;
[0056]
比对子模块,用于将所述预测结果和所述图任务的标签进行比对,得到每个所述架构的损失函数,所述损失函数表示所述架构对所述图任务的类型的预测准确程度。
[0057]
本技术实施例第三方面还提供了一种行为预测方法,所述方法包括:
[0058]
将图数据输入多任务图神经网络架构中,所述多任务图神经网络架构输出是否执行多种行为的预测结果,所述多任务图神经网络架构是通过本技术实施例第一方面所提出的任一项所述的多任务图架构的搜索方法得到的。
[0059]
本实施例第四方面还提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行时实现如本发明实施例第一方面任一所述的多任务图架构的搜索方法中的步骤。
[0060]
本发明实施例第五方面还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现本发明实施例第一方面任一所述的多任务图架构的搜索方法中的步骤。
[0061]
本技术实施例第六方面提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现第一方面中任一所述的多任务图架构的搜索方法中的步骤。
[0062]
本发明实施例提供的一种多任务图架构的搜索方法、装置、行为预测方法和产品,该方法包括:将多个图任务输入分层解耦超网络,在所述分层解耦超网络中进行前向传播,得到输出的多个架构;所述分层解耦超网络为多层结构,在每一层超网络中将特征空间划分为多个互相解耦的块;每个块具有对应的软任务协作参数,所述软任务协作参数表示上一层超网络的块的节点表征对自身的节点表征的影响程度;利用所述输出的多个架构进行目标分类任务,得到预测结果,根据所述预测结果,得到损失函数;根据所述损失函数,进行架构参数训练,对所述分层解耦超网络的架构参数进行更新,对所述软任务协作参数进行更新;所述架构参数表示,所述块对上一层超网络的块输出的图卷积操作的操作结果进行加权和时,各自的权重;根据所述损失函数,进行模型参数训练,对所述分层解耦超网络的模型参数更新,所述模型参数表示所述图卷积操作的参数;重复上述步骤,得到训练完成的分层解耦超网络;将所述多个图任务输入所述训练完成的分层解耦超网络,得到多任务图神经网络架构。本技术实施例通过利用多个图任务对分层解耦超网络进行联合学习,根据损失函数对架构参数和模型参数进行更新,捕获不同任务之间的协作关系,为不同的任务定制不同的架构。并且,引入软任务协作参数的概念,在联合学习过程中,对该软任务协作
参数进行更新,对超网络的结构进行进一步的优化,使得超网络中的架构能够很好地处理任务多样的图表征学习场景。
附图说明
[0063]
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
[0064]
图1是本发明实施例提供的一种多任务图架构的搜索方法的步骤流程图;
[0065]
图2是本发明实施例提供的一种架构搜索的过程示意图;
[0066]
图3是本发明实施例提供的一种多任务图架构的搜索装置的结构示意图;
[0067]
图4是本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
[0068]
下面将结合本发明实施例中的附图更详细地描述本发明的示例性实施例。虽然附图中显示了本发明的示例性实施例,然而应当理解,可以以各种形式实现本发明而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本发明,并且能够将本发明的范围完整的传达给本领域的技术人员。
[0069]
图神经网络被普遍用于解决图表征学习问题。图神经网络架构搜索旨在搜索出一个对图学习任务最优的图神经网络架构。神经网络的架构搜索是通过计算机使用搜索算法,在搜索空间中根据图数据搜索出该图数据的最优架构。相关的现有技术主要分为两种:一种是手工设计图神经网络架构并定制参数,这类方法为图任务设计一个固定的神经网络架构,从另一个神经网络(或者用外部知识学习任务之间的关系)得到并优化该网络架构的参数;另一种是进行神经网络架构搜索,这类方法是在一个自定义的搜索空间中执行强化学习、可微搜索等算法,最后搜索出的最优神经网络架构将通过标准的机器学习训练测试流程。
[0070]
然而,现有的图神经网络架构搜索方法只针对应用于单任务图学习的图神经网络架构搜索,无法直接搜索得到,应用于多任务图学习的图神经网络架构。示例性的,对于一个图数据,可以通过一个图神经网络架构a预测用户是否会收藏该图,可以通过一个图神经网络架构b预测用户是否会对该图进行点赞,可以通过一个图神经网络架构c预测用户是否会执行转发操作。现有技术通过一定的搜索方法可以搜索得到上述三个架构,作为单任务图神经架构,分别进行工作。然而上述方法没有考虑到不同任务之间的协作关系,无法直接搜索得到可用于执行多个任务的图神经网络架构。
[0071]
鉴于上述问题,本发明实施例提出一种多任务图架构的搜索方法,为多个任务联合定制架构,利用多个图任务与超网络之间进行联合优化,实现了快速地多任务图架构搜索,并且,通过在架构搜索中,考虑任务之间的协作关系,提高了搜索到的架构的准确率。该方法有利于将搜索到的架构应用到处理任务多样的图表征学习场景中。
[0072]
下面结合附图,通过一些实施例及其应用场景对本技术实施例提供的定位方法进行详细地说明。
[0073]
本实施例提出了一种多任务图架构的搜索方法,参照图1,图1示出了一种多任务图架构的搜索方法的步骤流程图,如图1所示,该方法包括:
[0074]
步骤s101,将多个图任务输入分层解耦超网络,在所述分层解耦超网络中进行前向传播,得到输出的多个架构;所述分层解耦超网络为多层结构,在每一层超网络中将特征空间划分为多个互相解耦的块;每个块具有对应的软任务协作参数,所述软任务协作参数表示上一层超网络的块的节点表征对自身的节点表征的影响程度。
[0075]
图任务,又可以表示为图数据,多个图任务可以看做一组图数据集,每一个图数据对应一个图任务,可搜索得到一个对应的图神经网络架构。图数据,是由节点和边构成的具有图结构的数据,一个节点代表一个独立的单位,两个节点之间的边表示两个节点之间的关系,图数据可以为社交网络关系图、蛋白质分子结构图等,图神经网络架构专门用于对图数据进行处理,完成图数据对应的任务。在本实施例中,预先给定的图任务,可以表示为一个图数据,和该图数据对应的节点标签。
[0076]
在本实施例中,分层解耦超网络为多层结构,在每一层超网络中将特征空间划分为多个互相解耦的块。具体的,整体超网络是以有向无环图的形式构建的,包括有一系列有序的解耦超网络层。所以超网络本身具有多层的层级结构,每一层的操作生成的向量就是该层的特征,向量的空间就是该层的特征空间。对于每一层超网络,将该层的特征空间划分为了多个互相解耦的块,其中每个块接收前一层超网络的所有的块的输出。示例性的,第二层超网络存在10个块,第三层超网络存在5个块,对于第三层超网络中5个块中的任意一个块,都需要接收第二层超网络10个块的输出。对于第一层超网络的每个块,将所述多个图任务作为输入。
[0077]
在具体实施时,将多个图任务输入分层解耦超网络,在所述分层解耦超网络中进行前向传播,得到输出的多个架构。前向传播就是指,通过对一层的结点以及对应的连接权值进行加权和运算,结果加上一个偏置项,然后通过一个非线性函数(即激活函数),如relu,sigmoid等函数,得到的结果就是下一层结点的输出。按照上述步骤,从第一层(输入层)开始不断的通过这种方法一层层的运算,最后得到输出层的最终结果。在本实施例中,将多个图任务作为最初的输入,在分层解耦超网络中执行前向传播算法,从而得到多个图神经网络架构。在具体实施时,向超网络中输入k个图任务,通过前向传播,最终可以得到k个图神经网络架构,图任务与图神经网络架构一一对应,每个架构用于执行一个图任务。
[0078]
在一种可能的实施方式中,所述在所述分层解耦超网络中进行前向传播,包括:
[0079]
步骤s1011,接收前一层超网络各个块输出的图卷积操作的操作结果,每个块对应一种操作类型。
[0080]
在本实施例中,超网络中的每一层被划分为多个互相解耦的块,每个块对应一种操作类型,或者说对应一种算子,例如,不同种类的图神经网络卷积。每个块所输出的是与操作类型相对应的图卷积操作的操作结果,即算子的运算结果。
[0081]
步骤s1012,根据所述架构参数中的每个所述操作结果的权重,对接收到的所述操作结果进行加权和,得到新的操作结果,向下一层超网络的各个块输出所述新的操作结果。
[0082]
在本实施例中,架构参数表示,每个块对上一层超网络的块输出的图卷积操作的操作结果进行加权和时,各个操作结果所对应的权重。执行前向传播时,每一个块的输出结果是这个块接收到的所有的操作结果的加权和,示例性的,第2层的块a会接收到第1层的5
个块所输出的操作结果,并对这5个操作结果进行加权和计算。对应的,每个块的架构参数用于表示这个块进行加权和时的权重分配,即,为接收到的不同块的操作结果,赋予不同的权重。示例性的,按照上述示例,第2层的块a会接收到第1层的5个块所输出的操作结果,在进行加权时,其中,块1输出的操作结果的权重为20%,块2输出的操作结果的权重为10%,块3输出的操作结果的权重为40%,块4输出的操作结果的权重为20%,块5输出的操作结果的权重为10%。第2层的块a对上述5个操作结果按照该权重配比进行加权和,从而计算得到新的操作结果,进而向第3层的各个块传播。由此,本实施例使每个块所计算加权和时,对于不同操作结果的权重是不同的,据此,以不同的块代表不同的图神经网络架构,整个超网络便可以看做是同时管理了多个不同的图神经网络架构。
[0083]
步骤s102,利用所述输出的多个架构进行目标分类任务,得到预测结果,根据所述预测结果,得到损失函数。
[0084]
在通过前向传播,得到多个图神经网络架构后,利用预先给定的图数据,执行目标分类任务,得到对图数据的预测结果,将预测结果与图数据的标签进行比对,从而可以根据预测结果,计算得到损失函数。可选地,所述图数据可以为步骤s101中输入超网络的多个图任务。
[0085]
在一种可能的实施方式中,所述步骤s102,利用所述输出的多个架构进行目标分类任务,得到预测结果,根据所述预测结果,得到损失函数,包括:
[0086]
步骤s1021,每个所述架构,利用所述图任务进行分类,得到所述预测结果,所述预测结果表示对所述图任务的预测结果。
[0087]
步骤s1022,将所述预测结果和所述图任务的标签进行比对,得到每个所述架构的损失函数,所述损失函数表示所述架构对所述图任务的类型的预测准确程度。
[0088]
在本实施例中,对于得到的每个图神经网络架构,将图任务(即给定的图数据)输入该架构中,根据预先设定的图分类任务,对图任务进行分类,得到该图神经网络架构对该图任务的预测结果。示例性的,图任务为商品推荐关系图,将商品作为图的节点,商品与商品之间的关系作为图的边,根据图任务的标签,可以知道该节点所表征的商品是否为用户感兴趣的商品。图神经网络架执行对应的图分类任务,得到对应的预测结果,该预测结果表示对图任务中每个节点的类型的预测结果,在本示例中,表示预测每个商品(节点)是否为用户感兴趣的商品。将预测结果与和图任务的标签进行比对,标签表示预先标注好的每个节点的类型信息,在本示例中,标签可以表示用户感兴趣,浏览了的商品。图神经网络架构根据图任务,预测用户感兴趣的商品,然后将预测结果与标签进行比对,计算两者之间的损失,得到损失函数。
[0089]
步骤s103,根据所述损失函数,进行架构参数训练,对所述分层解耦超网络的架构参数进行更新,对所述软任务协作参数进行更新;所述架构参数表示,所述块对上一层超网络的块输出的图卷积操作的操作结果进行加权和时,各自的权重。
[0090]
在本实施例中,超网络的架构参数表示的是前向传播过程中,计算加权和时,块与块之间的权重。此外,每个块还具有对应的软任务协作参数,软任务协作参数表示的是,块与块之间的影响程度,具体的,是指上一层超网络的块的节点表征对自身块的节点表征的影响程度。例如,上一层的块a节点表征对相邻的下一层的块b节点表征的影响程度。本实施例利用软任务协作参数来学习多个图任务之间的协作关系。
[0091]
在一种可能的实施方式中,所述软任务协作参数在[-1,1]范围内,初始值均为0,所述步骤s103,根据所述损失函数,进行架构参数训练,对所述分层解耦超网络的架构参数进行更新,对所述软任务协作参数进行更新,包括:
[0092]
根据所述损失函数,对所述架构参数求梯度,使用梯度下降法对所述架构参数进行更新;
[0093]
按照如下公式对所述软任务协作参数进行计算,并按照梯度下降法进行更新:
[0094][0095]
其中,i表示相邻两个层级中一层超网络中的块的位置,j表示相邻两个层级中另一层超网络中的块的位置,θ
ij
表示j所对应的块的针对i所对应的块的可学习参数,θ
ij
作为可学习的实数值,初始化为0,在软任务协作参数更新过程中,通过梯度下降法进行更新,p
ij
表示块i与块j之间的软任务协作参数(影响程度)。
[0096]
在本实施例中,在根据损失函数,对架构参数进行更新时,可以通过计算损失函数对架构参数求梯度,从而使用梯度下降法对架构参数进行更新。在具体实施时,软任务协作参数可以限制在[-1,1]范围内,令所有块与块之间的软任务协作参数初始值均为0,这样,初始的分层解耦的超网络实际上由几个分离的图神经网络架构组成。然后按照上述公式,计算得到新的软任务协作参数,完成对软任务协作参数的更新。具体的,根据公式可以看出,为了确保某一块的节点表征对相邻的下一层级相同位置的块的影响最大,即当i=j时(相邻两个层级的超网络的两个块的位置相同),将此时的软任务协作参数设置为1。由此,因为块与块之间的影响程度不同(软任务协作参数不同),使得不同的块所对应的图神经网络架构是相对多样化的,有助于学习到解耦的隐表征,和包含对不同图任务更有用的信息。本实施例通过在训练过程中,更新相邻层的不同块之间的影响程度,自动学习图神经网络架构之间的可迁移性。
[0097]
步骤s104,根据所述损失函数,进行模型参数训练,对所述分层解耦超网络的模型参数更新,所述模型参数表示所述图卷积操作的参数。
[0098]
在本实施例中,所述超网络中还包括模型参数,该模型参数表示超网络中每个块的图卷积操作的参数。在训练过程中,根据损失函数,对模型参数求梯度,从而使用梯度下降法对模型参数进行更新。
[0099]
在一种可能的实施方式中,所述步骤s104,根据所述损失函数,进行模型参数训练,包括:
[0100]
步骤s1041,根据所述多个图任务各自的损失函数,对所述模型参数求梯度的模长,所述梯度的模长表示所述损失函数所对应的所述图任务的难度。
[0101]
在具体的对模型参数进行更新的过程中,由于是对多个图任务同时进行学习的,其中损失函数梯度较大的图任务对于超网络的学习会有主宰性的影响,削弱了对其他图任务的学习效率。为了解决这个问题,本实施例先对模型参数求梯度的模长。具体的,根据步骤s102可以知道,对于每个图任务,得到对应的图神经网络架构,从而利用该图神经网络架构执行目标分类任务,得到对应的损失函数,所以每个图任务有对应的损失函数。不同的图任务的损失函数对模型参数求梯度的模长,由此得到的对应的梯度模长表示该图任务的难度。示例性的,有三个图任务a、b、c,通过步骤s101得到对应的三个图神经网络架构a、b、c,
计算得到对应的损失函数,fa(x)、fb(x)、fc(x),对于每个损失函数求模型参数的梯度,对应的梯度的模长la、lb、lc表示图任务a、b、c的难度。
[0102]
步骤s1042,按照课程学习的方法,对所述梯度进行重加权调整,以使所述模型参数受到所述多个图任务较为均衡的影响。
[0103]
本实施例利用基于图任务的课程学习的方式,对求得的梯度进行重加权调整,然后利用重加权后的梯度对模型参数进行更新,以解决多个图任务影响不均衡的问题。
[0104]
在一种可能的实施方式中,所述对所述梯度进行重加权调整,包括:
[0105]
利用tanh函数,按照如下公式,对所述梯度进行裁剪,得到裁剪后的梯度;裁剪的强度随着训练轮次的增加而逐渐减小;
[0106][0107]
其中,γ表示裁剪强度,p
ij
表示块i与块j之间的软任务协作参数(影响程度),l表示损失函数,fj表示第j块的模型参数,fi表示第i块的模型参数,p

ij
表示裁剪后的用于计算回传梯度的软任务协作参数。在本实施例中,在模型参数的训练过程中,将梯度按照tanh函数进行裁剪,如公式所示,表示原始的梯度,表示裁剪后的梯度,通过γ(裁剪强度)的大小来控制这两部分的权重。具体的,在对梯度进行裁剪时,使裁剪的强度随训练轮次的增加而逐渐减小,γ越大,裁剪的强度越小,γ越小,裁剪的强大越大,通过使γ从0逐渐增加到1来实现裁剪强度的减小,最后完全退化到原始梯度。通过上述方式,使得较大的梯度被削弱更多,与较小的梯度形成更为均衡的影响。
[0108]
步骤s1043,根据调整后的所述梯度,对所述模型参数进行更新。
[0109]
在本实施例中,通过对软任务协作参数进行裁剪,完成对梯度的重加权调整,得到调整后的梯度,从而根据该调整后的梯度更新模型参数。在上述课程学习的过程中,控制裁剪的强度随着训练轮次的增加而逐渐减小(使γ逐渐增大),在训练的最后,使梯度按照原始的幅度回传,使得架构参数训练和模型参数训练的损失函数一致。本实施例通过对梯度进行裁剪,完成课程训练,使得模型参数受到各个图任务的影响较为均衡,从而得到有效训练。
[0110]
步骤s105,重复上述步骤,得到训练完成的分层解耦超网络。
[0111]
在具体实施时,将多个图任务输入到超网络中,得到每个图任务对应的图神经网络架构,进而得到对应的损失函数,利用该损失函数进行基于任务的课程学习训练,完成对架构参数、软任务协作参数和模型参数的更新。重复这一过程,将多个图任务重新输入到更新后的超网络中,得到新的损失函数,利用新的损失函数进行课程学习训练,在该过程中对梯度进行裁剪的强度比上一次课程学习时的裁剪强度更小,从而完成对架构参数、软任务协作参数和模型参数的又一次更新。如此重复多次,直至在模型参数训练时,裁剪强度减至最小值(γ增大到1),架构参数训练和模型参数训练的损失函数一致,结束训练,得到训练
完成的分层解耦超网络。
[0112]
步骤s106,将所述多个图任务输入所述训练完成的分层解耦超网络,得到多任务图神经网络架构。
[0113]
本技术实施例利用多个图任务对分层解耦超网络进行联合学习,根据得到的多个图神经网络架构,确定出损失函数,根据损失函数对架构参数和模型参数进行更新优化,并且,对软任务协作参数进行更新,利用软任务协作参数学习不同的图任务之间的协作关系。通过重复上述学习过程,不断对超网络进行优化,使得超网络中的架构能够很好地处理任务多样的图表征学习场景。本实施例通过分层结构超网络对多个图任务同时进行架构搜索,为不同的图任务定制不同的架构。然后利用软任务协作参数捕获图任务之间的复杂关系,以在不同的图任务间共享有用的知识,通过基于任务的课程学习策略,重新均衡不同图任务的难度对架构优化的影响,以更好地优化超网络。
[0114]
示例一
[0115]
以预测用户行为为应用场景,对上述实施例进行说明。参照图2,图2示出了架构搜索的过程示意图,按照上述实施例所述的搜索方法,搜索得到多个用于执行不同图任务(预测用户行为)的图神经网络架构。
[0116]
给定图任务a、b、c和图数据对应的节点标签,如图2所示,图任务为一个具体的图数据,该图数据以一个商品为单独的节点,以两个商品之间的关系作为边,图任务a的节点标签表示该商品是否为用户浏览的商品,对应的图任务a是搜索得到一个图神经网络架构以预测该商品是否为用户会浏览的商品;图任务b以一个店铺为单独的节点,以两个店铺之间的关系作为边,图任务b的节点标签表示该店铺是否为用户收藏的店铺,对应的图任务b是搜索得到一个图神经网络架构以预测该店铺是否为用户会收藏的店铺;图任务c以一个商品为单独的节点,以两个商品之间的关系作为边,图任务c的节点标签表示该商品是否为用户购买的商品,对应的图任务c是搜索得到一个图神经网络架构以预测该商品是否为用户会购买的商品。
[0117]
将图任务a、b、c输入该分层解耦超网络中,进行前向传播,得到对应的图神经网络架构。在此过程中,每一层的超网络中的块,接收前一层超网络的各个块输出的操作结果,每个块对应一种图卷积操作,如图2所示,o1表示一种操作类型,o2表示另一种操作类型。每一个块的输出结果是这个块接收到的所有的操作结果的加权和。
[0118]
根据得到的图神经网络架构,确定对应的图任务的损失函数如图2所示,loss表示确定出的损失函数。根据损失函数对架构参数和软任务协作参数进行更新,基于任务的课程学习,对梯度进行裁剪,利用裁剪后的梯度对模型参数进行更新。通过重复多次上述训练过程,得到优化完成的分层解耦超网络。
[0119]
将多个图任务输入该分层解耦超网络,按照可微分搜索算法或进化算法对超网络进行搜索,得到对应的三个图神经网络架构a、b、c。每个图神经网络架构用于执行一种图任务。具体的,图神经网络架构a用于预测图数据中的商品是否为用户会浏览的商品,图神经网络架构b用于预测图数据中的店铺是否为用户会收藏的店铺,图神经网络架构c用于预测图数据中的商品是否为用户会购买的商品。
[0120]
本技术实施例第二方面提供了一种多任务图架构的搜索装置,参照图3,图3示出了一种多任务图架构的搜索装置的结构示意图,如图3所示,所述装置包括:
[0121]
前向传播模块,用于将多个图任务输入分层解耦超网络,在所述分层解耦超网络中进行前向传播,得到输出的多个架构;所述分层解耦超网络为多层结构,在每一层超网络中将特征空间划分为多个互相解耦的块;每个块具有对应的软任务协作参数,所述软任务协作参数表示上一层超网络的块的节点表征对自身的节点表征的影响程度;
[0122]
损失函数确定模块,用于利用所述输出的多个架构进行目标分类任务,得到预测结果,根据所述预测结果,得到损失函数;
[0123]
架构参数训练模块,用于根据所述损失函数,进行架构参数训练,对所述分层解耦超网络的架构参数进行更新,对所述软任务协作参数进行更新;所述架构参数表示,所述块对上一层超网络的块输出的图卷积操作的操作结果进行加权和时,各自的权重;
[0124]
模型参数训练模块,用于根据所述损失函数,进行模型参数训练,对所述分层解耦超网络的模型参数更新,所述模型参数表示所述图卷积操作的参数;
[0125]
重复模块,用于重复上述步骤,得到训练完成的分层解耦超网络;
[0126]
搜索模块,用于将所述多个图任务输入所述训练完成的分层解耦超网络,搜索得到多任务图神经网络架构。
[0127]
在一种可能的实施方式中,所述前向传播模块,包括:
[0128]
接收子模块,用于接收前一层超网络各个块输出的图卷积操作的操作结果,每个块对应一种操作类型;
[0129]
计算子模块,用于根据所述架构参数中的每个所述操作结果的权重,对接收到的所述操作结果进行加权和,得到新的操作结果,向下一层超网络的各个块输出所述新的操作结果。
[0130]
在一种可能的实施方式中,所述软任务协作参数在[-1,1]范围内,初始值均为0,所述架构参数训练模块,包括:
[0131]
架构参数更新子模块,用于根据所述损失函数,对所述架构参数求梯度,使用梯度下降法对所述架构参数进行更新;
[0132]
软任务协作参数更新子模块,用于按照如下公式对所述软任务协作参数进行计算,并按照梯度下降法进行更新:
[0133][0134]
其中,i表示相邻两个层级中一层超网络中的块的位置,j表示相邻两个层级中另一层超网络中的块的位置,θ
ij
表示j所对应的块的针对i所对应的块的可学习参数,p
ij
表示块i与块j之间的软任务协作参数。
[0135]
在一种可能的实施方式中,所述模型参数训练模块,包括:
[0136]
梯度计算子模块,用于根据所述多个图任务各自的损失函数,对所述模型参数求梯度的模长,所述梯度的模长表示所述损失函数所对应的所述图任务的难度;
[0137]
调整子模块,用于按照课程学习的方法,对所述梯度进行重加权调整,以使所述模型参数受到所述多个图任务较为均衡的影响;
[0138]
模型参数更新子模块,用于根据调整后的所述梯度,对所述模型参数进行更新。
[0139]
在一种可能的实施方式中,所述调整子模块,包括:
[0140]
梯度裁剪单元,用于利用tanh函数,按照如下公式,对所述梯度进行裁剪,得到裁
剪后的梯度;裁剪的强度随着训练轮次的增加而逐渐减小;
[0141][0142]
其中,γ表示裁剪强度,p
ij
表示块i与块j之间的软任务协作参数,表示损失函数,fj表示第j块的模型参数,fi表示第i块的模型参数。
[0143]
在一种可能的实施方式中,所述损失函数确定模块,包括:
[0144]
预测子模块,用于对每个所述架构,利用所述图任务进行分类,得到所述预测结果,所述预测结果表示对所述图任务的预测结果;
[0145]
比对子模块,用于将所述预测结果和所述图任务的标签进行比对,得到每个所述架构的损失函数,所述损失函数表示所述架构对所述图任务的类型的预测准确程度。
[0146]
本技术实施例第三方面还提供了一种行为预测方法,所述方法包括:
[0147]
将图数据输入多任务图神经网络架构中,所述多任务图神经网络架构输出是否执行多种行为的预测结果,所述多任务图神经网络架构是通过本技术实施例第一方面所提出的任一项所述的多任务图架构的搜索方法得到的。
[0148]
本发明实施例还提供了一种电子设备,参照图4,图4是本发明实施例提出的电子设备的结构示意图。如图4所示,电子设备100包括:存储器110和处理器120,存储器110与处理器120之间通过总线通信连接,存储器110中存储有计算机程序,该计算机程序可在处理器120上运行,进而实现本发明实施例公开的一种多任务图架构的搜索方法中的步骤。
[0149]
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序/指令,该计算机程序/指令被处理器执行时实现本发明实施例公开的一种多任务图架构的搜索方法中的步骤。
[0150]
本发明实施例还提供了一种计算机程序产品,包括计算机程序/指令,该计算机程序/指令被处理器执行时实现本发明实施例公开的一种多任务图架构的搜索方法中的步骤。
[0151]
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
[0152]
本发明实施例是参照根据本发明实施例的方法、装置、电子设备和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0153]
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
[0154]
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
[0155]
以上对本发明所提供的一种多任务图架构的搜索方法、装置、行为预测方法和产品,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

技术特征:
1.一种多任务图架构的搜索方法,其特征在于,所述方法包括:将多个图任务输入分层解耦超网络,在所述分层解耦超网络中进行前向传播,得到输出的多个架构;所述分层解耦超网络为多层结构,在每一层超网络中将特征空间划分为多个互相解耦的块;每个块具有对应的软任务协作参数,所述软任务协作参数表示上一层超网络的块的节点表征对自身的节点表征的影响程度;利用所述输出的多个架构进行目标分类任务,得到预测结果,根据所述预测结果,得到损失函数;根据所述损失函数,进行架构参数训练,对所述分层解耦超网络的架构参数进行更新,对所述软任务协作参数进行更新;所述架构参数表示,所述块对上一层超网络的块输出的图卷积操作的操作结果进行加权和时,各自的权重;根据所述损失函数,进行模型参数训练,对所述分层解耦超网络的模型参数更新,所述模型参数表示所述图卷积操作的参数;重复上述步骤,得到训练完成的分层解耦超网络;将所述多个图任务输入所述训练完成的分层解耦超网络,得到多任务图神经网络架构。2.根据权利要求1所述的多任务图架构的搜索方法,其特征在于,所述在所述分层解耦超网络中进行前向传播,包括:接收前一层超网络各个块输出的图卷积操作的操作结果,每个块对应一种操作类型;根据所述架构参数中的每个所述操作结果的权重,对接收到的所述操作结果进行加权和,得到新的操作结果,向下一层超网络的各个块输出所述新的操作结果。3.根据权利要求1所述的多任务图架构的搜索方法,其特征在于,所述软任务协作参数在[-1,1]范围内,初始值均为0,所述根据所述损失函数,进行架构参数训练,对所述分层解耦超网络的架构参数进行更新,对所述软任务协作参数进行更新,包括:根据所述损失函数,对所述架构参数求梯度,使用梯度下降法对所述架构参数进行更新;按照如下公式对所述软任务协作参数进行计算,并按照梯度下降法进行更新:其中,i表示相邻两个层级中一层超网络中的块的位置,j表示相邻两个层级中另一层超网络中的块的位置,θ
ij
表示j所对应的块的针对i所对应的块的可学习参数,p
ij
表示块i与块j之间的软任务协作参数。4.根据权利要求1所述的多任务图架构的搜索方法,其特征在于,所述根据所述损失函数,进行模型参数训练,包括:根据所述多个图任务各自的损失函数,对所述模型参数求梯度的模长,所述梯度的模长表示所述损失函数所对应的所述图任务的难度;按照课程学习的方法,对所述梯度进行重加权调整,以使所述模型参数受到所述多个图任务较为均衡的影响;根据调整后的所述梯度,对所述模型参数进行更新。
5.根据权利要求4所述的多任务图架构的搜索方法,其特征在于,所述对所述梯度进行重加权调整,包括:利用tanh函数,按照如下公式,对所述梯度进行裁剪,得到裁剪后的梯度;裁剪的强度随着训练轮次的增加而逐渐减小;其中,γ表示裁剪强度,p
ij
表示块i与块j之间的软任务协作参数,表示损失函数,f
j
表示第j块的模型参数,f
i
表示第i块的模型参数。6.根据权利要求1所述的多任务图架构的搜索方法,其特征在于,所述利用所述输出的多个架构进行目标分类任务,得到预测结果,根据所述预测结果,得到损失函数,包括:每个所述架构,利用所述图任务进行分类,得到所述预测结果,所述预测结果表示对所述图任务的预测结果;将所述预测结果和所述图任务的标签进行比对,得到每个所述架构的损失函数,所述损失函数表示所述架构对所述图任务的类型的预测准确程度。7.一种多任务图架构的搜索装置,其特征在于,所述装置包括:前向传播模块,用于将多个图任务输入分层解耦超网络,在所述分层解耦超网络中进行前向传播,得到输出的多个架构;所述分层解耦超网络为多层结构,在每一层超网络中将特征空间划分为多个互相解耦的块;每个块具有对应的软任务协作参数,所述软任务协作参数表示上一层超网络的块的节点表征对自身的节点表征的影响程度;损失函数确定模块,用于利用所述输出的多个架构进行目标分类任务,得到预测结果,根据所述预测结果,得到损失函数;架构参数训练模块,用于根据所述损失函数,进行架构参数训练,对所述分层解耦超网络的架构参数进行更新,对所述软任务协作参数进行更新;所述架构参数表示,所述块对上一层超网络的块输出的图卷积操作的操作结果进行加权和时,各自的权重;模型参数训练模块,用于根据所述损失函数,进行模型参数训练,对所述分层解耦超网络的模型参数更新,所述模型参数表示所述图卷积操作的参数;重复模块,用于重复上述步骤,得到训练完成的分层解耦超网络;搜索模块,用于将所述多个图任务输入所述训练完成的分层解耦超网络,搜索得到多任务图神经网络架构。8.一种行为预测方法,其特征在于,所述方法包括:将图数据输入多任务图神经网络架构中,所述多任务图神经网络架构输出是否执行多种行为的预测结果,所述多任务图神经网络架构是通过权利要求1-6中任一项所述的多任务图架构的搜索方法得到的。9.一种电子设备,包括存储器、处理器及存储在存储器上并在处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时,实现如权利要求1-6中任一所述的多任务图架构的搜索方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6中任一所述的多任务图架构的搜索方法的步骤。

技术总结
本发明提供了一种多任务图架构的搜索方法、装置、行为预测方法和产品,该方法应用于深度学习技术领域,该方法包括:将多个图任务输入分层解耦超网络,在分层解耦超网络中进行前向传播,得到输出的多个架构;利用输出的多个架构进行目标分类任务,得到预测结果,根据预测结果,得到损失函数;根据损失函数,进行架构参数训练,对分层解耦超网络的架构参数进行更新,对软任务协作参数进行更新;根据损失函数,进行模型参数训练,对分层解耦超网络的模型参数更新,模型参数表示图卷积操作的参数;重复步骤,得到训练完成的分层解耦超网络;将多个图任务输入训练完成的分层解耦超网络,得到多任务图神经网络架构。任务图神经网络架构。任务图神经网络架构。


技术研发人员:朱文武 王鑫 秦一鉴
受保护的技术使用者:清华大学
技术研发日:2023.06.15
技术公布日:2023/9/12
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐