一种训练样本的生成方法、装置、存储介质及电子设备与流程

文档序号:33623819发布日期:2023-03-25 14:11阅读:35来源:国知局
一种训练样本的生成方法、装置、存储介质及电子设备与流程

1.本说明书涉及计算机技术领域,尤其涉及一种训练样本的生成方法、装置、存储介质及电子设备。


背景技术:

2.随着科技的发展,机器学习得到了广泛的应用。随着机器学习的发展,机器学习模型的应用越来越广泛,尤其是图神经网络。
3.训练图神经网络的样本类型有很多,其中,可以将图中由部分节点以及节点与节点之间的边构成的子图作为训练图神经网络的样本。目前,许多应用程序和应用场景可以转化成图,根据应用程序和应用场景的不同,图有多种类型,比如静态图、时序图等。图中的节点包含实际应用的信息,边上包含节点与节点之间的关系信息。当需要获知图中某一未知节点的信息时,可以根据该未知节点与其他节点的关系信息来预测该节点的信息。
4.例如,在引文网络中,可以将引文网络上的每篇论文作为图中的节点,每篇论文之间存在着引用关系,这些引用关系是图上节点与节点之间连接的边的信息。当想获知引文网络中的一篇论文的所属类别时,可以根据该篇论文引用的其他论文来预测该篇论文的类别。
5.因此,如何高效的生成作为训练样本的子图是一个亟待解决的问题。


技术实现要素:

6.本说明书提供一种训练样本的生成方法、装置、存储介质及电子设备,以部分的解决现有技术存在的上述问题。
7.本说明书采用下述技术方案:
8.本说明书提供一种训练样本的生成方法,包括:
9.获取图中的节点,作为采样节点,确定所述采样节点连接的各边,并确定由所述各边构成的待采样边集;
10.采用预设的划分策略,构建以所述待采样边集为根节点、以所述待采样边集中的每个边作为叶子节点的二叉树;
11.根据所述各边的权重,生成随机数,并根据所述二叉树中每个节点中包含的边的权重以及所述随机数,确定所述随机数所命中的叶子节点,将所述叶子节点中包含的边作为采样边;
12.在所述二叉树中删除所述采样边,以更新所述二叉树,并重新生成随机数,根据更新后的二叉树以及重新生成的随机数继续确定采样边,直到满足第一采样结束条件时,将由所述图中所述采样节点、所述采样边以及与所述采样边连接的节点构成的子图作为生成的训练样本,所述训练样本用于输入待训练的图神经网络,以对所述待训练的图神经网络进行训练。
13.可选地,采用预设的划分策略,构建以所述待采样边集为根节点、以所述待采样边
集中的每个边作为叶子节点的二叉树,具体包括:
14.将所述待采样边集作为父节点;
15.根据预设的划分策略,将所述待采样边集划分为两个子边集,作为所述父节点的两个子节点;
16.针对每个子节点,将所述子节点重新作为父节点,以将重新确定的父节点继续进行划分,直至每个划分出的子节点中只包含一条边为止。
17.可选地,生成随机数,具体包括:
18.确定所述待采样边集中边的最小权重,以及所述待采样边集中边的权重之和;
19.在所述最小权重至所述权重之和的范围内,生成随机数。
20.可选地,根据所述二叉树中每个节点中包含的边的权重以及所述随机数,确定所述随机数所命中的叶子节点,具体包括:
21.将所述二叉树中的根节点作为待采样节点;
22.针对所述待采样节点的每个子节点,确定该子节点中包含的边的权重之和,作为该子节点的节点权重;
23.确定所述待采样节点的每个子节点的节点权重中的较小权重;
24.判断所述随机数是否不大于所述较小权重;
25.若是,将所述较小权重对应的子节点确定为所述随机数所命中的子节点;否则,将较大权重对应的子节点确定为所述随机数所命中的子节点,并将所述随机数与所述较小权重的差值重新确定为随机数;
26.将所述随机数所命中的子节点重新作为待采样节点,直至所述随机数命中叶子节点为止。
27.可选地,在所述二叉树中删除所述采样边,以更新所述二叉树,具体包括:
28.确定所述二叉树的节点中包含所述采样边的节点,作为更新节点;
29.将所述更新节点中包含的所述采样边删除,以更新所述二叉树。
30.可选地,在所述二叉树中删除所述采样边之前,所述方法还包括:
31.确定当前得到的采样边不满足第二采样结束条件;
32.若当前得到的采样边满足所述第二采样结束条件,则所述方法还包括:
33.针对每个采样边,在所述图中确定该采样边连接的节点,将该节点重新作为采样节点,并根据重新确定出的采样节点继续确定采样边,直至满足第一采样结束条件。
34.可选地,在获取图中的节点之前,所述方法还包括:
35.以各样本用户为节点,以各样本用户之间的关系为边,生成图;
36.在对所述待训练的图神经网络进行训练之后,所述方法还包括:
37.以各待预测用户为节点,以各待预测用户之间的关系为边,生成所述各待预测用户对应的拓扑图;
38.针对至少一个待预测用户,根据该待预测用户在所述拓扑图中对应的节点,确定该待预测用户对应的子图;
39.将该待预测用户对应的子图输入训练后的图神经网络,得到所述训练后的图神经网络输出的该待预测用户是否为目标用户的结果。
40.本说明书提供了一种训练样本的生成装置,包括:
41.获取模块,用于获取图中的节点,作为采样节点,确定所述采样节点连接的各边,并确定由所述各边构成的待采样边集;
42.创建模块,用于采用预设的划分策略,构建以所述待采样边集为根节点、以所述待采样边集中的每个边作为叶子节点的二叉树;
43.采样模块,用于根据所述各边的权重,生成随机数,并根据所述二叉树中每个节点中包含的边的权重以及所述随机数,确定所述随机数所命中的叶子节点,将所述叶子节点中包含的边作为采样边,在所述二叉树中删除所述采样边,以更新所述二叉树,并重新生成随机数,根据更新后的二叉树以及重新生成的随机数继续确定采样边,直到满足第一采样结束条件时,将由所述图中所述采样节点、所述采样边以及与所述采样边连接的节点构成的子图作为生成的训练样本,所述训练样本用于输入待训练的图神经网络,以对所述待训练的图神经网络进行训练。
44.可选地,所述创建模块具体用于,将所述待采样边集作为父节点;根据预设的划分策略,将所述待采样边集划分为两个子边集,作为所述父节点的两个子节点;针对每个子节点,将所述子节点重新作为父节点,以将重新确定的父节点继续进行划分,直至每个划分出的子节点中只包含一条边为止。
45.可选地,所述采样模块具体用于,确定所述待采样边集中边的最小权重,以及所述待采样边集中边的权重之和;在所述最小权重至所述权重之和的范围内,生成随机数。
46.可选地,所述采样模块具体用于,将所述二叉树中的根节点作为待采样节点;针对所述待采样节点的每个子节点,确定该子节点中包含的边的权重之和,作为该子节点的节点权重;确定所述待采样节点的每个子节点的节点权重中的较小权重;判断所述随机数是否不大于所述较小权重;若是,将所述较小权重对应的子节点确定为所述随机数所命中的子节点;否则,将较大权重对应的子节点确定为所述随机数所命中的子节点,并将所述随机数与所述较小权重的差值重新确定为随机数;将所述随机数所命中的子节点重新作为待采样节点,直至所述随机数命中叶子节点为止。
47.可选地,所述采样模块具体用于,确定所述二叉树的节点中包含所述采样边的节点,作为更新节点;将所述更新节点中包含的所述采样边删除,以更新所述二叉树。
48.可选地,所述采样模块,在所述二叉树中删除所述采样边之前,还用于确定当前得到的采样边不满足第二采样结束条件;
49.若当前得到的采样边满足所述第二采样结束条件,所述采样模块还用于,针对每个采样边,在所述图中确定该采样边连接的节点,将该节点重新作为采样节点,并根据重新确定出的采样节点继续确定采样边,直至满足第一采样结束条件。
50.可选地,所述获取模块,在获取图中的节点之前,还用于以各样本用户为节点,以各样本用户之间的关系为边,生成图;
51.所述采样模块,在对所述待训练的图神经网络进行训练之后,还用于以各待预测用户为节点,以各待预测用户之间的关系为边,生成所述各待预测用户对应的拓扑图;针对至少一个待预测用户,根据该待预测用户在所述拓扑图中对应的节点,确定该待预测用户对应的子图;将该待预测用户对应的子图输入训练后的图神经网络,得到所述训练后的图神经网络输出的该待预测用户是否为目标用户的结果。
52.本说明书提供了一种计算机可读存储介质,所述存储介质存储有计算机程序,所
述计算机程序被处理器执行时实现上述训练样本的生成方法。
53.本说明书提供了一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述训练样本的生成方法。
54.本说明书采用的上述至少一个技术方案能够达到以下有益效果:
55.本说明书提供的训练样本的生成方法中,采用预设的划分策略,构建以由各边构成的待采样边集为根节点、以每个边作为叶子节点的二叉树,根据生成的随机数和二叉树中每个节点的权重,对各边进行采样,得到采样边后,在二叉树中删除采样到的边,以更新二叉树,再根据更新后的二叉树重新进行采样,直到满足第一采样结束条件,将由采样节点、采样边和与采样边连接的节点构成的子图作为生成的训练样本,将训练样本输入待训练的图神经网络,以对待训练的图神经网络进行训练。
56.从上述方法中可以看出,本方法中在对采样节点连接的各边进行采样时,采用预设的划分策略,构建以由各边构成的待采样边集为根节点、以每个边作为叶子节点的二叉树,根据生成的随机数,在二叉树中查询命中的叶子节点,提高了采样的效率,而且将采样得到的边从二叉树中删除,避免了重复采样的问题,提高了采样的效率,从而能够高效的生成作为训练样本的子图。
附图说明
57.此处所说明的附图用来提供对本说明书的进一步理解,构成本说明书的一部分,本说明书的示意性实施例及其说明用于解释本说明书,并不构成对本说明书的不当限定。在附
58.图中:
59.图1为本说明书中一种训练样本的生成方法的流程示意图;
60.图2为本说明书中一种正在生成训练样本的图;
61.图3为本说明书中一种二叉树的示意图;
62.图4为本说明书中生成的子图样本的示意图;
63.图5为本说明书提供的一种训练样本的生成装置的示意图;
64.图6为本说明书提供的对应于图1的电子设备示意图。
具体实施方式
65.为使本说明书的目的、技术方案和优点更加清楚,下面将结合本说明书具体实施例及相应的附图对本说明书技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本说明书一部分实施例,而不是全部的实施例。基于本说明书中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本说明书保护的范围。
66.本说明书的实施例提供了一种训练样本的生成方法、装置、存储介质及电子设备,以下结合附图,详细说明本说明书各实施例提供的技术方案。
67.图1为本说明书中一种训练样本的生成方法的流程示意图,具体包括以下步骤:
68.s100:获取图中的节点,作为采样节点,确定所述采样节点连接的各边,并确定由所述各边构成的待采样边集。
69.在训练图神经网络时,可以将图中由部分节点以及节点与节点之间的边构成的子
图作为训练图神经网络的训练样本。图的类型可以为静态图,也可以是时序图,本说明书对于图的类型不做具体的限定。图采样有节点采样和分层采样等方式,为了方便说明,本说明书以节点采样为例。在图上进行节点采样时,需要进行多次采样,每次采样时,需要对图中的采样节点连接的各边进行采样,一次采样出多个与采样节点连接的边,将采样出的边连接的节点作为下一次的采样节点,最后将由采样节点,采样边以及与采样边连接的节点构成的子图作为训练样本输出。
70.基于此,在本说明书中,用于生成训练样本的设备确定在图中的节点作为采样节点,以及确定采样节点连接的各边,并确定由各边构成的待采样边集。其中,上述用于生成训练样本的设备可以是用于训练图神经网络的服务器,或能够执行本说明书方案的诸如手机、个人计算机(personal computer,pc)等设备。为了方便说明,下面以服务器为执行主体进行说明。
71.具体的,服务器将在图中确定的节点作为采样节点,确定采样节点连接的各边,并确定由各边构成的待采样边集,其中,采样节点可以是通过预设的规则从图中获取的采样节点,也可以是通过任一方式获取的采样节点。例如,图2为本说明书一种正在生成训练样本的图,图上包含节点1~10,每两个节点连接的边上包含权重,比如节点1到节点2的边上权重是2,假设从图中获取的采样节点为节点1,将与节点1连接的节点号作为连接边的编号,即与节点1连接的节点有节点2、节点3、节点4和节点5,也就是与采样节点连接的边有边2、边3、边4和边5,将由边2、边3、边4和边5构成的集合作为待采样边集。
72.s102:采用预设的划分策略,构建以所述待采样边集为根节点、以所述待采样边集中的每个边作为叶子节点的二叉树。
73.服务器采用预设的划分策略,构建以待采样边集为根节点、以待采样边集中的每个边作为叶子节点的二叉树,其中,预设的划分策略可以是将待采样边集分成边数相等的边子集,若待采样边集中边的数量不能够平均分时,将以根据待采样边集划分的边子集中边的数量差最小的规则,进行划分边子集。
74.具体的,服务器将待采样边集作为父节点,根据预设的划分策略,将待采样边集划分为两个子边集,作为父节点的两个子节点,针对每个子节点,将子节点重新作为父节点,以将重新确定的父节点继续进行划分,直至每个划分出的子节点中只包含一条边为止。在将待采样边集划分为两个子边集时,可以直接根据预设的划分策略进行划分,也可以将待采样边集中的各边按照权重从大到小或者权重从小到大的方式进行排序,再根据预设得到划分策略将得到的序列进行划分。
75.继续沿用上例,当将图2中的节点1作为采样节点时,如图3所示,服务器将待采样边集(即边2、边3、边4和边5)作为父节点a,根据预设的划分策略,由于待采样边集中边的数量为4,可以直接将待采样边集分为均包含两条边的两个子边集,作为父节点a的两个子节点,即子节点b和子节点c,假设子节点b包含的边为边2和边3,子节点c包含的边为边4和边5,针对每个子节点,将子节点重新作为父节点,以将重新确定的父节点继续进行划分,直至每个划分出的子节点中只包含一条边为止。比如针对子节点b,将子节点b重新作为父节点b,根据重新确定出的父节点b继续进行划分,得到父节点b的两个子节点,即子节点d和子节点e,此时子节点d和子节点e中均只包含一条边,按照同样的方式将子节点c进行划分,得到子节点c的两个子节点,即子节点f和子节点h,构建完成的二叉树如图3所示。图3为本说明
书中一种二叉树的示意图,图中的二叉树是以待采样边集为根节点a(即,父节点a)、以待采样边集中的每个边(即边2、边3、边4和边5)作为叶子节点(即子节点d、子节点e、子节点f和子节点h)的二叉树。
76.s104:根据所述各边的权重,生成随机数,并根据所述二叉树中每个节点中包含的边的权重以及所述随机数,确定所述随机数所命中的叶子节点,将所述叶子节点中包含的边作为采样边。
77.服务器根据所述各边的权重,生成一个随机数,并根据步骤s102中构建的二叉树中每个节点中包含的边的权重以及随机数,确定随机数所命中的叶子节点,将所命中的叶子节点中包含的边作为采样边。具体的,服务器确定待采样边集中边的最小权重以及待采样边集中边的权重之和,并在最小权重至权重之和的范围内,生成一个随机数。将二叉树中的根节点作为待采样节点,针对待采样节点的每个子节点,确定该子节点中包含的边的权重之和,作为该子节点的节点权重,确定待采样节点的每个子节点的节点权重中的较小权重,判断随机数是否不大于较小权重,若不大于,则将较小权重对应的子节点作为随机数所命中的子节点,否则,则将较大权重对应的子节点作为随机数所命中的子节点,并将随机数与较小权重的差值重新作为随机数,并将随机数所命中的子节点重新作为待采样节点,直至随机数命中叶子节点为止,并将叶子节点中包含的边作为采样边。
78.继续沿用上例,服务器确定待采样边集(即边2、边3、边4和边5)中边的最小权重,即边2的权重2,再确定待采样边集中边的权重之和,即边2、边3、边4和边5的权重和为14,在2~14的范围内生成一个随机数,假设生成的随机数是6,将二叉树中的根节点a作为待采样节点,针对待采样节点的每个子节点,将该子节点中包含的边的权重之和作为该子节点的节点权重,比如子节点b的节点权重是其包含的边2和边3的权重之和,也就是5。确定待采样节点的每个子节点的节点权重中的较小权重,由于子节点c的节点权重为9,故较小权重为5,判断随机数6是否不大于较小权重5,显然6大于5,将较大权重对应的子节点c作为随机数所命中的子节点,将随机数6与较小权重5的差值1重新作为随机数,将随机数所命中的子节点c重新作为待采样节点,继续进行采样,直到随机数命中叶子节点为止,子节点c的子节点f和子节点h中较小权重是子节点f的节点权重4,新的随机数1小于较小权重4,直接将较小权重4对应的子节点f作为随机数所命中的子节点,同时子节点f为叶子节点,直接将叶子节点(即子节点f)中包含的边4作为采样边。
79.s106:在所述二叉树中删除所述采样边,以更新所述二叉树,并重新生成随机数,根据更新后的二叉树以及重新生成的随机数继续确定采样边,直到满足第一采样结束条件时,将由所述图中所述采样节点、所述采样边以及与所述采样边连接的节点构成的子图作为生成的训练样本,所述训练样本用于输入待训练的图神经网络,以对所述待训练的图神经网络进行训练。
80.服务器在得到采样边后,在二叉树中删除采样边,以更新二叉树,并重新生成随机数,根据更新后的二叉树以及重新生成的随机数继续确定采样边,直到满足第一采样结束条件时,将由所述图中采样节点、采样边以及与采样边连接的节点构成的子图作为生成的训练样本,所述训练样本用于输入待训练的图神经网络,以对所述待训练的图神经网络进行训练。
81.具体的,服务器在得到采样边之后,在二叉树中删除采样边之前,需要确定当前得
到的采样边是否是不满足第二采样结束条件,若是,则将二叉树的节点中包含采样边的节点,作为更新节点,将更新节点中包含的采样边删除,并将更新节点的节点权重与采样边的权重的差值重新作为更新节点的权重,以更新二叉树。之后重新生成随机数,根据更新后的二叉树以及重新生成的随机数继续确定采样边,也就是重复执行步骤s104,直到满足第二采样结束条件。其中,第二采样结束条件可以是采样的节点数量已经达到预设的第二数量,所述的第二数量是采样节点的各邻居节点中已经采样的邻居节点的数量。
82.当满足第二采样结束条件时,针对每个采样边,在图中确定该采样边连接的节点,将该节点重新作为采样节点,并根据重新确定出的采样节点继续确定采样边,直至满足第一采样结束条件,即重复执行步骤s100~步骤s106。之后,将由图中采样节点、采样边以及与采样边连接的节点构成的子图作为生成的训练样本,训练样本用于输入待训练的图神经网络,以对待训练的图神经网络进行训练。其中,第一采样结束条件可以是无法采样出新的采样边,也可以是采样的节点数量已经达到预设的第一数量,第一数量是从采样节点开始采样到该采样节点的n阶邻接节点时,在图上所有已经采样的节点数量,并且第一数量大于上述第二数量,n为正整数。
83.继续沿用上例,服务器得到的采样边是边4,对应的采样节点是节点4,假设预设的第二数量是2,而当前采样节点的各邻居节点中已经采样的邻居节点的数量是1,不满足第二采样结束条件,将二叉树的节点中包含采样边的节点作为更新节点,也就是将根节点a,子节点c和子节点f作为更新节点,将更新节点中包含的采样边删除,比如将采样边删除后,子节点c中包含的边只有边5,将更新节点的节点权重与采样边(即边4)的权重4的差值重新作为更新节点的权重,也就是根节点a的节点权重更新为10,子节点c的节点权重更新为5,而子节点f是只包含边4的叶子节点,更新后该子节点已经在二叉树中不存在。重新生成随机数,根据更新后的二叉树以及重新生成的随机数继续确定采样边,也就是重复执行步骤s104,直到满足第二采样结束条件,也就是当采样边对应的采样的节点数量已经达到预设的第二数量2时,满足第二采样结束条件,停止本次的采样,进行下一次的采样。
84.假设本次采样边为边3和边4,在图中确定采样边连接的节点,也就是节点3和节点4,针对每个节点,将该节点重新作为采样节点,进行下一次的采样,即重复执行步骤s100~步骤s106,直至满足第一采样结束条件,假设预设的第一数量为7,当图上所有已经采样的节点数量达到7时,采样结束,将由所述图中采样节点、采样边以及与采样边连接的节点构成的子图作为生成的训练样本,训练样本用于输入待训练的图神经网络,以对待训练的图神经网络进行训练。假设在节点3作为采样节点采样得到的采样边为边6和边9,与其连接的节点分别为节点6和节点9,在节点4作为采样节点采样得到的采样边为边7和边8,与其连接的节点分别为节点7和节点8,由节点1、节点3、节点4、节点6、节点9、节点7和节点8以及采样边构成的子图如图4所示。
85.通过上述方法在图上进行采样得到子图,将由所述图中采样节点、采样边以及与采样边连接的节点构成的子图作为生成的训练样本,训练样本用于输入待训练的图神经网络,以对所述待训练的图神经网络进行训练。具体的,获取训练待训练图神经网络的子图样本以及子图样本的标注,其中,待训练图神经网络是为了得到图上未知类别的节点所属的类别的图神经网络,子图样本是部分节点以及节点与节点之间的边构成的子图,子图样本的标注是节点所属的类别。将子图样本输入待训练图神经网络,得到待训练图神经网络的
输出类别,以待训练图神经网络的输出类别和子图样本的标注之间的差异最小化为训练目标,对待训练图神经网络进行训练。
86.继续沿用上例,如图4所示,图4为生成的子图样本的示意图,将子图作为生成的训练样本,即子图样本,将子图样本对应的类别作为子图样本的标注,假设图2是引文网络中的论文之间的引用关系图,则子图样本表示的就是节点1代表的论文与其他部分论文(即节点3、节点4、节点6、节点9、节点7和节点8)之间的引用关系,故子图样本对应的类别就是节点1对应的类别,比如文学类,即子图样本的标注为文学类,将子图样本输入待训练图神经网络,得到待训练图神经网络的输出类别,以待训练图神经网络的输出类别和子图样本的标注之间的差异最小化为训练目标,对待训练图神经网络进行训练。
87.在步骤s106中,若图采样采用的是子图采样,服务器在得到采样边之后,在二叉树中删除采样边之前,需要确定当前得到的采样边是否是不满足第二采样结束条件,若是,则将二叉树的节点中包含采样边的节点,作为更新节点,将更新节点中包含的采样边删除,将更新节点的节点权重与采样边的权重的差值再加上与采样边连接的节点的邻居节点的权重重新作为更新节点的权重,以更新二叉树。
88.从上述方法中可以看出,本方法中在是图上生成训练样本时,对图上的节点进行采样得到作为训练样本的子图,在采样时,采用预设的划分策略构建二叉树,根据生成的随机数在二叉树中进行查询,直到查询到包含一条边的叶子节点,将其中包含的边作为采样边,在二叉树中删除采样到的边,以更新二叉树,再根据更新后的二叉树重新进行采样,直到满足第一采样结束条件,将由采样节点、采样边和与采样边连接的节点构成的子图作为生成的训练样本,将训练样本输入待训练的图神经网络,以对待训练的图神经网络进行训练。通过二叉树进行采样,可以快速的查找到随机数命中的叶子节点,提高了采样的效率。而且在得到采样边之后,将采样边从二叉树中删除,避免了重复采样的问题,使得训练样本的生成速度快,从而能够高效的生成作为训练样本的子图。
89.在本说明书中,在获取图中的节点之前,服务器还可以以各样本用户为节点,以各样本用户之间的关系为边,生成图,其中,关系可以为支付关系、亲属关系以及好友关系等。服务器在生成图之后,对图进行采样得到作为训练样本的子图,再对待训练的图神经网络进行训练,具体过程如上述步骤s100~s106,这里不再赘述。
90.在对待训练的图神经网络进行训练之后,服务器以各待预测用户为节点,以各待预测用户之间的关系为边,生成各待预测用户对应的拓扑图。然后,针对至少一个待预测用户,根据该待预测用户在拓扑图中对应的节点,确定该待预测用户对应的子图,将该待预测用户对应的子图输入训练后的图神经网络,得到训练后的图神经网络输出的该待预测用户是否为目标用户的结果。其中,目标用户可以为风险用户,也可以为符合某种条件的用户,具体符合何种条件是根据具体的需求进行确定,在这里不做具体限定,比如对于广告公司,目标用户是可以向其推荐广告的用户,故可以将待预测用户对应的子图输入训练后的图神经网络,根据训练后的图神经网络的输出的待预测用户是否为目标用户的结果,当待预测用户为目标用户时,向待测试用户推荐广告,否则,不向待测试用户推荐广告。
91.例如,假设图2为服务器以各待预测用户为节点,以各待预测用户之间的关系为边,生成各待预测用户对应的拓扑图,图2中的节点1~10分别代表各待测试用户1~10,针对各待测试用户1~10,根据该待预测用户在拓扑图中对应的节点,确定该待预测用户对应
的子图,假设根据待测试用户1在拓扑图中对应的节点1,确定出的待测试用户1对应的子图如图4所示,将待测试用户1对应的子图输入训练后的图神经网络,得到训练后的图神经网络输出的该待预测用户是否为目标用户的结果。
92.以上为本说明书的一个或多个实施例提供的训练样本的生成方法,基于同样的思路,本说明书还提供了相应的训练样本的生成装置,如图5所示。
93.图5为本说明书提供的一种训练样本的生成装置示意图,具体包括:
94.获取模块200,用于获取图中的节点,作为采样节点,确定所述采样节点连接的各边,并确定由所述各边构成的待采样边集;
95.创建模块202,用于采用预设的划分策略,构建以所述待采样边集为根节点、以所述待采样边集中的每个边作为叶子节点的二叉树;
96.采样模块204,用于根据所述各边的权重,生成随机数,并根据所述二叉树中每个节点中包含的边的权重以及所述随机数,确定所述随机数所命中的叶子节点,将所述叶子节点中包含的边作为采样边,用于在所述二叉树中删除所述采样边,以更新所述二叉树,并重新生成随机数,根据更新后的二叉树以及重新生成的随机数继续确定采样边,直到满足第一采样结束条件时,将由所述图中所述采样节点、所述采样边以及与所述采样边连接的节点构成的子图作为生成的训练样本,所述训练样本用于输入待训练的图神经网络,以对所述待训练的图神经网络进行训练。
97.可选地,所述创建模块202具体用于,将所述待采样边集作为父节点;根据预设的划分策略,将所述待采样边集划分为两个子边集,作为所述父节点的两个子节点;针对每个子节点,将所述子节点重新作为父节点,以将重新确定的父节点继续进行划分,直至每个划分出的子节点中只包含一条边为止。
98.可选地,所述采样模块204具体用于,确定所述待采样边集中边的最小权重,以及所述待采样边集中边的权重之和;在所述最小权重至所述权重之和的范围内,生成随机数。
99.可选地,所述采样模块204具体用于,将所述二叉树中的根节点作为待采样节点;针对所述待采样节点的每个子节点,确定该子节点中包含的边的权重之和,作为该子节点的节点权重;确定所述待采样节点的每个子节点的节点权重中的较小权重;判断所述随机数是否不大于所述较小权重;若是,将所述较小权重对应的子节点确定为所述随机数所命中的子节点;否则,将较大权重对应的子节点确定为所述随机数所命中的子节点,并将所述随机数与所述较小权重的差值重新确定为随机数;将所述随机数所命中的子节点重新作为待采样节点,直至所述随机数命中叶子节点为止。
100.可选地,所述采样模块204具体用于,确定所述二叉树的节点中包含所述采样边的节点,作为更新节点;将所述更新节点中包含的所述采样边删除,以更新所述二叉树。
101.可选地,所述采样模块204,在所述二叉树中删除所述采样边之前,还用于确定当前得到的采样边不满足第二采样结束条件;
102.若当前得到的采样边满足所述第二采样结束条件,所述采样模块204还用于,针对每个采样边,在所述图中确定该采样边连接的节点,将该节点重新作为采样节点,并根据重新确定出的采样节点继续确定采样边,直至满足第一采样结束条件。
103.可选地,所述获取模块200,在获取图中的节点之前,还用于以各样本用户为节点,以各样本用户之间的关系为边,生成图;
104.所述采样模块204,在对所述待训练的图神经网络进行训练之后,还用于以各待预测用户为节点,以各待预测用户之间的关系为边,生成所述各待预测用户对应的拓扑图;针对至少一个待预测用户,根据该待预测用户在所述拓扑图中对应的节点,确定该待预测用户对应的子图;将该待预测用户对应的子图输入训练后的图神经网络,得到所述训练后的图神经网络输出的该待预测用户是否为目标用户的结果。
105.本说明书还提供了一种计算机可读存储介质,该存储介质存储有计算机程序,计算机程序可用于执行上述图1所示的训练样本的生成方法。
106.本说明书还提供了图6所示的电子设备的示意结构图。如图6所述,在硬件层面,该电子设备包括处理器、内部总线、网络接口、内存以及非易失性存储器,当然还可能包括其他业务所需要的硬件。处理器从非易失性存储器中读取对应的计算机程序到内存中然后运行,以实现上述图1所示的训练样本的生成方法。当然,除了软件实现方式之外,本说明书并不排除其他实现方式,比如逻辑器件抑或软硬件结合的方式等等,也就是说以下处理流程的执行主体并不限定于各个逻辑单元,也可以是硬件或逻辑器件。
107.在20世纪90年代,对于一个技术的改进可以很明显地区分是硬件上的改进(例如,对二极管、晶体管、开关等电路结构的改进)还是软件上的改进(对于方法流程的改进)。然而,随着技术的发展,当今的很多方法流程的改进已经可以视为硬件电路结构的直接改进。设计人员几乎都通过将改进的方法流程编程到硬件电路中来得到相应的硬件电路结构。因此,不能说一个方法流程的改进就不能用硬件实体模块来实现。例如,可编程逻辑器件(programmable logic device,pld)(例如现场可编程门阵列(field programmable gate array,fpga))就是这样一种集成电路,其逻辑功能由用户对器件编程来确定。由设计人员自行编程来把一个数字系统“集成”在一片pld上,而不需要请芯片制造厂商来设计和制作专用的集成电路芯片。而且,如今,取代手工地制作集成电路芯片,这种编程也多半改用“逻辑编译器(logic compiler)”软件来实现,它与程序开发撰写时所用的软件编译器相类似,而要编译之前的原始代码也得用特定的编程语言来撰写,此称之为硬件描述语言(hardware description language,hdl),而hdl也并非仅有一种,而是有许多种,如abel(advanced boolean expression language)、ahdl(altera hardware description language)、confluence、cupl(cornell university programming language)、hdcal、jhdl(java hardware description language)、lava、lola、myhdl、palasm、rhdl(ruby hardware description language)等,目前最普遍使用的是vhdl(very-high-speed integrated circuit hardware description language)与verilog。本领域技术人员也应该清楚,只需要将方法流程用上述几种硬件描述语言稍作逻辑编程并编程到集成电路中,就可以很容易得到实现该逻辑方法流程的硬件电路。
108.控制器可以按任何适当的方式实现,例如,控制器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(application specific integrated circuit,asic)、可编程逻辑控制器和嵌入微控制器的形式,控制器的例子包括但不限于以下微控制器:arc625d、atmel at91sam、microchip pic18f26k20以及silicone labs c8051f320,存储器控制器还可以被实现为存储器的控制逻辑的一部分。本领域技术人员也知道,除了以纯计算机可读程序代码方式实现控制器以外,完全可以通过将方法步骤进行逻辑编程来使
得控制器以逻辑门、开关、专用集成电路、可编程逻辑控制器和嵌入微控制器等的形式来实现相同功能。因此这种控制器可以被认为是一种硬件部件,而对其内包括的用于实现各种功能的装置也可以视为硬件部件内的结构。或者甚至,可以将用于实现各种功能的装置视为既可以是实现方法的软件模块又可以是硬件部件内的结构。
109.上述实施例阐明的系统、装置、模块或单元,具体可以由计算机芯片或实体实现,或者由具有某种功能的产品来实现。一种典型的实现设备为计算机。具体的,计算机例如可以为个人计算机、膝上型计算机、蜂窝电话、相机电话、智能电话、个人数字助理、媒体播放器、导航设备、电子邮件设备、游戏控制台、平板计算机、可穿戴设备或者这些设备中的任何设备的组合。
110.为了描述的方便,描述以上装置时以功能分为各种单元分别描述。当然,在实施本说明书时可以把各单元的功能在同一个或多个软件和/或硬件中实现。
111.本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
112.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
113.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
114.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
115.在一个典型的配置中,计算设备包括一个或多个处理器(cpu)、输入/输出接口、网络接口和内存。
116.内存可能包括计算机可读介质中的非永久性存储器,随机存取存储器(ram)和/或非易失性内存等形式,如只读存储器(rom)或闪存(flash ram)。内存是计算机可读介质的示例。
117.计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(pram)、静态随机存取存储器(sram)、动态随机存取存储器(dram)、其他类型的随机存取存储器(ram)、只读存储器(rom)、电可擦除
可编程只读存储器(eeprom)、快闪记忆体或其他内存技术、只读光盘只读存储器(cd-rom)、数字多功能光盘(dvd)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
118.还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
119.本领域技术人员应明白,本说明书的实施例可提供为方法、系统或计算机程序产品。因此,本说明书可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本说明书可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
120.本说明书可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本说明书,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
121.本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
122.以上所述仅为本说明书的实施例而已,并不用于限制本说明书。对于本领域技术人员来说,本说明书可以有各种更改和变化。凡在本说明书的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本说明书的权利要求范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1