图神经网络训练方法、装置、计算设备及存储介质与流程

文档序号:26280467发布日期:2021-08-13 19:37阅读:99来源:国知局
图神经网络训练方法、装置、计算设备及存储介质与流程

本发明涉及人工智能技术领域,尤其涉及一种图神经网络训练方法、装置、计算设备及存储介质。



背景技术:

近年来,将图结构和深度神经网络相结合的图神经网络技术在节点分类,预测等图模型问题上的表现逐渐超越了传统的图算法,因而也越来越多地应用于实际生产当中。但是在实际应用中数据往往蕴含着不同用户个体的隐私信息,传统的图神经网络模型构建方法中建模者必须掌握所有数据,在数据来自多个不同数据源的情况下数据隐私会泄露至模型的训练方,导致传统的图神经网络模型构建方法无法保证用户个人隐私的安全性问题。



技术实现要素:

本发明实施例提供一种图神经网络训练方法、装置、计算设备及存储介质,以解决传统的图神经网络模型训练方法无法保证用户个人隐私的安全性问题。

一种图神经网络训练方法,应用在一种图神经网络训练系统中,所述图神经网络训练系统包括训练终端以及可信终端;所述训练终端包括多个第一终端以及一个第二终端;不同的训练终端包括不同的本地图数据以及本地图神经网络;所述图神经网络训练方法包括:

通过所述训练终端根据所述本地图数据计算对应的本地特征;

基于所述本地特征,通过所述第一终端与所述第二终端进行秘密分享,得到所述本地特征对应的混淆局部特征,并将所述混淆局部特征发送给所述可信终端;

通过所述可信终端基于各训练终端发送的混淆局部特征进行还原聚合,以获取全局特征,并基于所述全局特征训练全局图神经网络,以将得到的网络输出结果发送至所述第二终端,以使所述第二终端根据所述网络输出结果计算网络梯度并返回给所述可信终端;

通过所述可信终端根据所述网络梯度更新所述全局图神经网络,以得到更新后的网络参数,并将所述更新后的网络参数发送至对应的所述训练终端以更新所述本地图神经网络。

一种图神经网络训练系统,包括:

本地特征计算模块,用于通过所述训练终端根据所述本地图数据计算对应的本地特征;

秘密分享模块,用于基于所述本地特征,通过所述第一终端与所述第二终端进行秘密分享,得到所述本地特征对应的混淆局部特征,并将所述混淆局部特征发送给所述可信终端;

特征还原聚合模块,用于通过所述可信终端基于各训练终端发送的混淆局部特征进行还原聚合,以获取全局特征,并基于所述全局特征训练全局图神经网络,以将得到的网络输出结果发送至所述第二终端,以使所述第二终端根据所述网络输出结果计算网络梯度并返回给所述可信终端;

网络更新模块,用于通过所述可信终端根据所述网络梯度更新所述全局图神经网络,以得到更新后的网络参数,并将所述更新后的网络参数发送至对应的所述训练终端以更新所述本地图神经网络。

一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述图神经网络训练方法的步骤。

一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述图神经网络训练方法的步骤。

上述图神经网络训练方法、装置、计算设备及存储介质中,通过训练终端根据本地图数据计算对应的本地特征,以便基于本地特征,通过第一终端与第二终端进行秘密分享,以对第一终端与第二终端进行秘密分享后的真实局部特征进行混淆,得到本地特征对应的混淆局部特征,保障双方数据隐私。然后通过可信终端基于各训练终端发送的混淆局部特征进行聚合,获取全局特征,并基于全局特征训练全局图神经网络,以将得到的网络输出结果发送至第二终端,实现在多方数据秘密分享的情况下,综合多方特征数据训练全局图神经网络的目的。由于第二终端对应有真实标签数据,故可将网络输出结果发送至第二终端,以根据网络输出结果计算网络梯度并返回给可信终端,保障第二终端的标签数据的隐私性。最后,通过可信终端根据网络梯度更新全局图神经网络,以得到更新后的网络参数,并将更新后的网络参数发送至对应的训练终端以更新本地图神经网络,使得训练过程中各个训练终端的数据不会脱离本地,在保护数据隐私的条件下实现了图神经网络的训练。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1是本发明一实施例中图神经网络训练方法的一流程图;

图2是图1中步骤s11的一具体流程图;

图3是图1中步骤s12的一具体流程图;

图4是图1中步骤s12的一具体流程图;

图5是图3中步骤s31的一具体流程图;

图6是图3中步骤s32的一具体流程图;

图7是图1中步骤s13的一具体流程图;

图8是本发明一实施例中图神经网络训练系统的一示意图;

图9是本发明一实施例中计算机设备的一示意图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

该图神经网络训练方法可应用一种图神经网络训练系统中,图神经网络训练系统包括训练终端以及可信终端;每一训练终端训练对应的本地图神经网络;训练终端包括多个第一终端以及一个第二终端。不同的训练终端包括不同的本地图数据以及本地图神经网络,通过将图神经网络拆分为不同的本地图神经网络部署在不同的训练终端本地,使得训练过程中各个联邦学习参与方的数据不会离开本地,在保护数据隐私的条件下实现了图神经网络的训练。其中,第一终端即指本地仅有训练样本的特征数据,而该训练样本未有对应的真实标签,即该训练样本未被标注。第二终端即指本地既有训练样本的特征数据,同时该训练样本就有对应的真实标签。可信终端即为用于进行全局网络训练的受信任的第三方。

在一实施例中,如图1所示,提供一种图神经网络训练方法,以该方法应用在图1中的服务器为例进行说明,包括如下步骤:

s11:通过训练终端根据本地图数据计算对应的本地特征。

其中,不同的训练终端对应不同的本地图数据以及本地图神经网络,该本地图数据包括多个图节点、每一图节点对应的节点特征以及多节点之间的连接关系。需要说明的是,于本实施例中,不同训练终端对应的本地图数据中的图节点相同,但其对应节点特征以及节点间的连接关系不同。

例如,训练终端a为微信,其包括本地图数据为三个图节点m、n、p(如用户节点),每一用户节点均包括a,b,c这三种节点特征,这三种节点特征可分别为微信步数、零钱通余额以及发布朋友圈的数量,其节点间的连接关系可通过微信好友关系建立;训练终端b为网易云音乐,其包括与训练中a相同的图节点m、n、p(如用户节点),每一用户节点均包括d,e这两种节点特征,这两种节点特征分别为最常听的音乐类型,最喜欢的歌手,其节点间的连接关系可通过微信好友关系建立。

具体地,不同的本地图数据种同一图节点对应的节点特征不同,而这些特征分散在不同的训练终端,故为聚合多方特征数据训练全局图神经网络,则需要在同一体系下构建特征矩阵,以通过该特征矩阵聚合多方数据。其中,不同的训练终端可在本地预先构建对应的特征矩阵w,即第一终端根据其所持有的节点特征数量、第二终端所持有的节点特征数量以及多方协商确定的提取特征数n(n值的选取可由多方协商确定,此处不做限定),构建对应的特征矩阵w;例如,某第一终端所持有的节点特征数量为p,第二终端所持有的节点特征数量为q,则第一终端构建的特征矩阵w的大小为n*(p+q),并初始化该特征矩阵w。

对于第二终端来说需要和多个(假设为k个)第一终端进行秘密分享,故需要构建k个特征矩阵w’,并初始化该特征矩阵w’。其中,每一特征矩阵的大小即为n*(m0+mi),其中,mi为第i个第一终端所持有的节点特征数量,m0为第二终端所持有的节点特征数量。

具体地,在计算本地特征时,可通过训练终端在本地直接将本地图数据与训练参与方所初始化的特征矩阵w或w’相乘即可得到训练终端对应的本地特征,该本地特征可用于表征本地图数据的图结构信息。其中,本地特征包括第一终端计算得到的第一本地特征以及第二终端计算得到的第二本地特征。

s12:基于本地特征,通过第一终端与第二终端进行秘密分享,得到本地特征对应的混淆局部特征,并将混淆局部特征发送给可信终端。

具体地,由于不同训练终端所持有的本地图数据包含用户的个人信息,而这些信息属于敏感信息,故为保证聚合多方本地特征时,避免泄露用户敏感信息的问题,本实施例中在通过第一终端与第二终端进行数据分享时,通过秘密分享的方式得到每一本地特征对应的混淆局部特征,以使分享双方均无法得知对应的本地特征的具体内容,以使多方数据在分享过程中不易泄露,保障隐私数据的安全性。

其中,秘密分享主要为通过不同的训练终端随机生成对应的秘密参数对,该秘密参数对可为一组绝对值相同的正负数(例如+2、-2),并根据该秘密参数对本地数据(即真实局部特征)进行数据混淆。可以理解地是,在将该混淆局部特征发送至可信第三方时,还需将对应的秘密参数对发送给可信第三方,以使可信第三方根据该秘密参数对该混淆局部特征进行还原,并根据还原后的真实局部特征进行整合,实现在多方数据秘密分享的情况下,综合多方特征数据训练全局图神经网络的目的。

可以理解地,每个训练终端包括多个图节点,其中第i个第一终端的每个图节点对应的节点特征为x,即mi*1的向量,即一个长度为mi的向量,真实局部特征的计算公式就是wi乘以x,wi即为n*(m0+mi)的特征矩阵,wi乘以x即为n*mi的矩阵与形状为mi*1的矩阵进行矩阵相乘,即得到n*1的矩阵,或者长度为n的向量即为真实局部特征,根据上述计算过程可计算出每一节点的真实局部特征。而由于直接将wi乘以x,容易泄露第一终端与第二终端的本地隐私数据,故需要通过秘密分享的方式,即通过秘密分享参数对真实局部特征进行混淆,以得到混淆局部特征。

s13:通过可信终端基于各训练终端发送的混淆局部特征进行聚合,获取全局特征,并基于全局特征训练全局图神经网络,以将得到的网络输出结果发送至第二终端,以使第二终端根据网络输出结果计算网络梯度并返回给可信终端。

其中,通过可信终端根据接收到的各训练终端对应的混淆局部特征进行还原聚合,即先通过对混淆局部特征还原为真实局部特征,再对该真实局部特征进行聚合,以获取聚合后的全局特征,以综合多方数据特征。该全局图神经网络即为集成了多个本地图神经网络的异构图神经网络。可以理解地是,由于训练全局图神经网络需要集合多方数据,而这些数据中可能包括敏感信息,为避免在训练过程中易被泄露的问题,本实施例中通过在不同的训练终端根据本地图数据构建对应的本地图神经网络,以通过不同训练终端训练对应的本地图神经网络,使训练终端的本地数据不会在训练过程中出现隐私泄露的问题。

本实施例中,该聚合处理包括但不限于累加、取平均值或者通过对不同的训练终端预设权重以进行加权处理等方式进行处理,此处不做限定。该全局特征可表征为多个本地特征的聚合。具体地,将全局特征输入至全局图神经网络进行训练,即可得到网络输出值,该训练过程与传统的图神经网络训练过程一致,由于全局特征可表征为多个本地特征的聚合,即每一节点的节点特征聚合了多方特征数据,故将每一节点聚合的多方特征数据作为训练样本输入至预先构建的全局图神经网络进行计算,即可得到对应的该节点对应的网络输出结果,例如感兴趣0或不感兴趣1。

具体地,由于第二终端包括训练样本所需的标签数据,例如当前训练任务为预测某用户对某个广告是否感兴趣,则第二终端则持有该用户节点的标签数据,即感兴趣或不感兴趣。故需要将网络输出结果发送至第二终端,以使第二终端根据网络输出结果计算网络梯度并返回给可信终端。其中,第二终端可调用预设的损失函数(如交叉熵损失函数),以根据该网络输出结果以及该用户节点对应标注的真实标签,计算网络损失,并根据该网络损失对网络中的网络参数(如不同本地图数据中各节点间的连接权值)求偏导,即可获取该网络参数对应的网络梯度。

s14:通过可信终端根据网络梯度更新全局图神经网络,以得到更新后的网络参数,并将更新后的网络参数发送至对应的训练终端以更新本地图神经网络。

具体地,通过计算网络参数对应的网络梯度,以根据该网络梯度反向更新全局图神经网络,例如通过bp(backpropagation,反向传播)算法根据该网络梯度反向更新全局图神经网络,该网络更新的实现过程与传统神经网络的误差反传更新过程一致,此处不再赘述。

具体地,通过可信终端根据网络梯度更新全局图神经网络,以得到更新后的网络参数,并将更新后的网络参数(即更新后的不同本地图数据中各节点间的连接权值)发送至对应的训练终端以更新本地图神经网络。

本实施例中,通过训练终端根据本地图数据计算对应的本地特征,以便基于本地特征,通过第一终端与第二终端进行秘密分享,以对第一终端与第二终端进行秘密分享后的真实局部特征进行混淆,得到本地特征对应的混淆局部特征,保障双方数据隐私。然后通过可信终端基于各训练终端发送的混淆局部特征进行聚合,获取全局特征,并基于全局特征训练全局图神经网络,以将得到的网络输出结果发送至第二终端,实现在多方数据秘密分享的情况下,综合多方特征数据训练全局图神经网络的目的。由于第二终端对应有真实标签数据,故可将网络输出结果发送至第二终端,以根据网络输出结果计算网络梯度并返回给可信终端,保障第二终端的标签数据的隐私性。可信终端根据网络梯度更新全局图神经网络,以得到更新后的网络参数,并将更新后的网络参数发送至对应的训练终端以更新本地图神经网络,以更新每一第一终端对应的本地图神经网络,使得训练过程中各个训练终端的数据不会脱离本地,在保护数据隐私的条件下实现了图神经网络的训练。

在一实施例中,如图2所示,步骤s11中,本地特征包括第一终端计算得到的第一本地特征以及第二终端计算得到的第二本地特征;即通过训练终端根据训练终端对应的本地图数据计算本地特征,具体包括如下步骤:

s21:通过第一终端构建对应的第一秘密分享矩阵;以及通过第二终端构建对应的第二秘密分享矩阵。

其中,第一秘密分享矩阵为n行m列的矩阵;n为预先设定的提取特征数;m表示第二终端对应的节点特征数量以及第一终端对应的节点特征数量的和;第一秘密分享矩阵与第二秘密分享的矩阵大小一致;

具体地,通过第一终端构建对应的第一秘密分享矩阵;以及通过第二终端构建k个对应的第二秘密分享矩阵,其中,k表示第一终端的数量。

s22:通过第一终端将第一秘密分享矩阵与第一终端对应的本地图数据相乘,得到第一本地特征;以及,通过第二终端将第二秘密分享矩阵与第二终端对应的本地图数据相乘,得到第二本地特征。

其中,不同的训练终端可在本地预先构建对应的第一秘密分享矩阵w,即第一终端根据其所持有的节点特征数量、第二终端所持有的节点特征数量以及多方协商确定的提取特征数n,构建对应的第一秘密分享矩阵w;例如,某第一终端所持有的节点特征数量为p,第二终端所持有的节点特征数量为q,则第一终端构建的特征矩阵w的大小为n*(p+q),并初始化该特征矩阵w。

对于第二终端来说需要和多个(假设为k个)第一终端进行k轮的秘密分享,故需要构建k个第二秘密分享矩阵w’,并初始化该第二秘密分享矩阵w’。其中,每一特征矩阵的大小即为n*(m0+mi),其中,mi为第i个第一终端所持有的节点特征数量,m0为第二终端所持有的节点特征数量。

具体地,通过在计算本地特征时,由于多方统一构建有大小一致的秘密分享矩阵w或w’,其中,第一秘密分享矩阵中包括第一终端本地的特征列以及第二终端对应的特征列。第二秘密分享矩阵中包括第二终端本地的特征列以及第一终端的特征列,例如第一终端对应的节点特征a,b,c,第二终端对应的节点特征为d,e,故在第一终端建立的第一秘密分享矩阵w中的前两列为第二终端对应的外部特征列,后三列为第一终端对应的本地特征列,或者后两列为第二终端对应的外部特征列,前三列为第一终端对应的本地特征列;对于第二秘密分享矩阵中的前两列为第二终端对应的本地特征列,后三列为第一终端对应的外部特征列,或者后两列为第二终端对应的本地特征列,前三列为第一终端对应的外部特征列。

具体地,通过第一终端将第一秘密分享矩阵中的本地特征列与第一终端对应的本地图数据相乘,即与本地图数据中每一图节点对应的节点特征相乘,得到每一图节点的样本特征,这多个图节点的样本特征的集合即为第一本地特征;以及,通过第二终端将第二秘密分享矩阵中的本地特征列与第二终端对应的本地图数据相乘,即与本地图数据中每一图节点对应的节点特征相乘,得到每一图节点的样本特征,这多个节点的样本特征的集合即为第二本地特征。

在一实施例中,如图3所示,第一终端计算得到的第一本地特征以及第二终端计算得到的第二本地特征;步骤s12中,即基于本地特征,通过第一终端与第二终端进行秘密分享,得到本地特征对应的混淆局部特征,并将混淆局部特征发送给可信终端,具体包括如下步骤:

s31:通过第一终端随机生成第一秘密参数对,以基于第一秘密参数对以及第一本地特征,与第二终端进行秘密分享,以得到第二终端对应的混淆局部特征。

s32:通过第二终端随机生成第二秘密参数对,以基于第二秘密参数对以及第二本地特征,与第一终端进行秘密分享,以得到第一终端对应的混淆局部特征;其中,第一秘密参数对以及第二秘密参数对均为一组绝对值相同的正负数。

其中,第一秘密参数对以及第二秘密参数对均为一组绝对值相同的正负数。具体地,通过第一终端随机生成第一秘密参数对,以基于第一秘密参数对,对第一终端的本地数据进行数据混淆,在进行数据分享时,将该第一终端对应的本地数据与第二终端对应的本地数据相乘,即可得到第二终端混淆后的混淆局部特征,实现与第一终端的秘密分享。

由于发送给可信终端的为混淆后的混淆局部特征,故需要通过第一终端将第一秘密参数对发送给可信终端,以便可信终端对第二终端发送的混淆后的混淆局部特征还原,得到该第二终端与第一终端进行分享后的真实局部特征。

进一步地,通过第二终端随机生成第二秘密参数对,以基于第二秘密参数对,对第二终端的本地数据进行数据混淆,在进行数据分享时,将该第二终端对应的本地数据与第一终端对应的本地数据相乘,即可得到第一终端混淆后的混淆局部特征,实现与第一终端的秘密分享。相应地,还需要通过第二终端将第二秘密参数对发送给可信终端,以便可信终端对第一终端发送的混淆后的混淆局部特征还原,得到真实局部特征。

在一实施例中,如图4所示,步骤s12中,即将混淆局部特征发送给可信终端,具体包括如下步骤:

s41:通过第一终端将第一秘密参数对发送给可信终端;以及,通过第二终端将第二终端对应的混淆局部特征发送给可信终端。

s42:通过第二终端将第二秘密参数对发送给可信终端;以及,通过第一终端将第一终端对应的混淆局部特征发送给可信终端。

具体地,在进行秘密分享时,若由第一终端随机生成第一秘密参数对,则通过该第一终端将第一秘密参数对发送给可信终端,并通过第二终端将秘密分享后的混淆局部特征发送给可信终端,以使可信终端根据该第一秘密参数对还原第二终端发送的混淆局部特征。若由第二终端随机生成秘密参数对,则通过该第二终端将第一秘密参数对发送给可信终端,同时通过第一终端将秘密分享后的混淆局部特征发送给可信终端,以使可信终端根据该第一秘密参数对还原第一终端发送的混淆局部特征。

在一实施例中,如图5所示,第一本地特征包括与第二终端对应的第一目标矩阵;步骤s31中,即基于第一秘密参数对以及第一本地特征,与第二终端进行秘密分享,以得到第二终端对应的混淆局部特征,具体包括如下步骤:

s51:对第一目标矩阵进行分解,得到两个矩阵加和为第一目标矩阵的第一子矩阵和第二子矩阵。

其中,对于步骤s51以及步骤s61中的矩阵分解可随机进行分解,只要保证分解得到的两个子矩阵的矩阵加和为原矩阵即可,此处不做进一步限定。

s52:基于第一秘密参数对第一子矩阵和第二子矩阵进行数据混淆,得到第一秘密矩阵和第二秘密矩阵。

s53:将第一秘密矩阵和第二秘密矩阵发送给第二终端,以使第二终端将对应的本地图数据,分别与第一秘密矩阵和第二秘密矩相乘,以得到第二终端对应的混淆局部特征。

针对步骤s51-s61的具体实现过程与步骤s61-s63保持一致。

在一实施例中,如图6所示,第二本地特征包括与第一终端对应的第二目标矩阵;步骤s32中,即基于第二秘密参数对以及第二本地特征,与第一终端进行秘密分享,以得到第一终端对应的混淆局部特征,具体包括如下步骤:

s61:对第二目标矩阵进行分解,得到两个矩阵加和为第二目标矩阵的第三子矩阵和第四子矩阵。

s62:基于第二秘密参数对第三子矩阵和第四子矩阵进行数据混淆,得到第三秘密矩阵和第四秘密矩阵。

s63:将第三秘密矩阵和第四秘密矩阵发送给第一终端,以使第一终端将对应的本地图数据,分别与第三秘密矩阵和第四秘密矩阵相乘,以得到第一终端对应的混淆局部特征。

针对步骤s51-s53以及步骤s61-s63,为便于理解,此处以一完整的第一终端与第二终端进行秘密分享的示例进行说明,例如第二终端对应的节点特征为a,b,节点特征数量为m0,第i个第一终端对应的节点特征为c,d,e,节点特征数量mi,第一终端对应的第一本地特征为w(矩阵大小为n*(m0+mi)=2*(2+3=5)),第二终端对应第二本地特征为w’(矩阵大小为n*(m0+mi)=2*(2+3=5)),其中,w’中前两列对应本地特征列,该本地特征列可与本地图数据相乘,作为第二终端对应的本地特征,后三列则对应外部特征列,即第二目标矩阵,用于与第一终端进行秘密分享。w中前两列对应外部特征列,即第一目标矩阵,用于与第二终端进行秘密分享,后三列对应本地特征列,该本地特征列可与本地图数据相乘,作为第一终端对应的本地特征。在进行该轮的秘密分享时,需要将w’中的后三列与第一终端的本地图数据相乘,即可得到第一终端对应的混淆局部特征。同时,将w中的前两列与第二终端的本地图数据相乘,即可得到第二终端对应的混淆局部特征。

由于直接将秘密分享矩阵与第一终端或第二终端对应的本地图数据相乘,容易泄露用户隐私,故本实施例中,通过随机生成的第一秘密参数对以及第二秘密参数对,以对该轮秘密分享进行数据混淆。

此处以对该轮秘密分享的得到第一终端对应的混淆局部特征的计算过程进行举例说明,假设第二终端生成的第二秘密参数对为+2和-2,w’中的后三列第二目标矩阵假设为则可将该第一目标矩阵分解为第三子矩阵即为和第四子矩阵即为第三子矩阵与第四子矩阵的矩阵加和即为第二目标矩阵,将第三子矩阵乘以-2(也可乘2,此处以乘-2为例),第四子矩矩阵乘以2(也可乘-2,此处以乘2为例),得到第三秘密矩阵为和第四秘密矩阵为并分别发送给第一终端,此时第一终端无法知道第一秘密分享矩阵中w的后三列具体内容,假设第一终端的本地图数据中某图节点的节点特征为[4,2,5],将该节点特征分别与第一秘密分享矩阵以及第二秘密分享矩阵相乘,即得到[-2*4-6*2-8*5=-60,-4*4-6*2-8*5=-68]和[6,-4]这两个向量,即为混淆局部特征。

可以理解地是,上述第一个向量[-60,68]除以-2加上第二个向量[6,-4]除以2,即得到长度为n(即2)的向量[33,32],即还原真实局部特征,而直接用w’中的后三列与第一终端的本地图数据[4,2,5]相乘结果是一致的,故由第二终端将第二秘密参数对即2,-2发送给可信终端,第一终端将得到到的这两个向量发送给可信终端,可信终端即可根据第二秘密参数对还原混淆局部特征,此时可信终端也无法得知训练终端双方的数据隐私,仅执行聚合混淆局部特征的操作。

对于第一终端的w’的前两列和第二终端的本地数据相乘,即步骤s51-s53的具体实现步骤与上述实现步骤一致,此处不再赘述。

在一实施例中,如图7所示,步骤s13中,即通过可信终端基于各训练终端发送的混淆局部特征进行聚合,获取全局特征,具体包括如下步骤:

s71:通过可信终端将第一秘密参数对第二终端对应的混淆局部特征还原为真实局部特征;以及,通过可信终端将第二秘密参数对第一终端对应的混淆局部特征还原为真实局部特征;或者,

具体地,该还原步骤即将第二终端混淆局部特征除以第一秘密参数对,即可还原为第二终端的真实局部特征。将第一终端对应的混淆局部特征除以第二秘密参数对,即可还原为第二终端的真实局部特征。

以上述示例进行描述,该混淆局部特征中的第一个向量为第三子矩阵乘-2得到,第二个向量为第四子矩阵乘2得到,故将该第一个向量[-60,68]除以-2,然后加上第二个向量[6,-4]除以2,即得到[33,32],即还原真实局部特征。

s72:对各训练终端对应的真实局部特征进行累加处理,以将得到的累加结果作为全局特征。

s73:对各训练终端对应的真实局部特征进行取平均处理,以将得到的平均值作为全局特征。

s74:对各训练终端对应的真实局部特征进行加权处理,以将得到的加权结果作为全局特征。

本实施例中,训练端对接收到的真实局部特征进行聚合,可包括但不限计算各真实局部特征的累加和或者对各真实局部特征取平均值处理,或者根据不同训练终端的预设权重,对各真实局部特征进行加权处理,以得到全局特征。

应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。

在一实施例中,提供一种图神经网络训练系统,该图神经网络训练系统与上述实施例中图神经网络训练方法一一对应。如图8所示,该图神经网络训练系统包括本地特征计算模块10、秘密分享模块20、特征还原聚合模块30以及网络更新模块40。各功能模块详细说明如下:

本地特征计算模块10,用于通过训练终端根据本地图数据计算对应的本地特征。

秘密分享模块20,用于基于本地特征,通过第一终端与第二终端进行秘密分享,得到本地特征对应的混淆局部特征,并将混淆局部特征发送给可信终端。

特征还原聚合模块30,用于通过可信终端基于各训练终端发送的混淆局部特征进行还原聚合,以获取全局特征,并基于全局特征训练全局图神经网络,以将得到的网络输出结果发送至第二终端,以使第二终端根据网络输出结果计算网络梯度并返回给可信终端。

网络更新模块40,用于通过可信终端根据网络梯度更新全局图神经网络,以得到更新后的网络参数,并将更新后的网络参数发送至对应的训练终端以更新本地图神经网络。

具体地,本地特征包括第一终端计算得到的第一本地特征以及第二终端计算得到的第二本地特征;本地特征计算模块包括秘密分享矩阵构建单元以及本地特征计算单元。

秘密分享矩阵构建单元,用于通过第一终端构建对应的第一秘密分享矩阵;以及通过第二终端构建对应的第二秘密分享矩阵。

本地特征计算单元,用于通过第一终端将第一秘密分享矩阵与第一终端对应的本地图数据相乘,得到第一本地特征;以及,通过第二终端将第二秘密分享矩阵与第二终端对应的本地图数据相乘,得到第二本地特征。

具体地,秘密分享模块包括第一秘密分享单元以及第二秘密分享单元。

第一秘密分享单元,用于通过第一终端随机生成第一秘密参数对,以基于第一秘密参数对以及第一本地特征,与第二终端进行秘密分享,得到第二终端对应的混淆局部特征。

第二秘密分享单元,用于通过第二终端随机生成第二秘密参数对,以基于第二秘密参数对以及第二本地特征,与第一终端进行秘密分享,得到第一终端对应的混淆局部特征。

其中,第一秘密参数对以及第二秘密参数对均为一组绝对值相同的正负数。

具体地,秘密分享模块包括第一发送单元和第二发送单元。

第一发送单元,用于通过第二终端将第二终端对应的混淆局部特征发送给可信终端;以及,通过第一终端将第一秘密参数对发送给可信终端,以使可信终端根据第一秘密参数对还原第一终端对应的混淆局部特征。

第二发送单元,用于通过第一终端将第一终端对应的混淆局部特征发送给可信终端;以及,通过第二终端将第二秘密参数对发送给可信终端,以使可信终端根据第二秘密参数对还原第二终端对应的混淆局部特征。

具体地,第一本地特征包括与第二终端对应的第一目标矩阵;第一秘密分享单元第一分解子单元、第一数据混淆单元和第一混淆局部特征计算子单元。

第一分解子单元,用于对第一目标矩阵进行分解,得到第一子矩阵和第二子矩阵;其中,第一子矩阵和第二子矩阵的矩阵加和为第一目标矩阵。

第一数据混淆单元,用于基于第一秘密参数对第一子矩阵和第二子矩阵进行数据混淆,得到第一秘密矩阵和第二秘密矩阵。

第一混淆局部特征计算子单元,用于将第一秘密矩阵和第二秘密矩阵发送给第二终端,以使第二终端将对应的本地图数据,分别与第一秘密矩阵和第二秘密矩相乘,得到第二终端对应的混淆局部特征。

具体地,第二本地特征包括与第一终端对应的第二目标矩阵;第二秘密分享单元第二分解子单元、第二数据混淆单元和混淆局部特征计算子单元。

第二分解子单元,用于对第二目标矩阵进行分解,得到第三子矩阵和第四子矩阵;其中,第三子矩阵和第四子矩阵的矩阵加和为第二目标矩阵。

第二数据混淆单元,用于基于第二秘密参数对第三子矩阵和第四子矩阵进行数据混淆,得到第三秘密矩阵和第四秘密矩阵。

第二混淆局部特征计算子单元,用于将第三秘密矩阵和第四秘密矩阵发送给第一终端,以使第一终端将对应的本地图数据,分别与第三秘密矩阵和第四秘密矩阵相乘,以得到第一终端对应的混淆局部特征。

具体地,特征还原聚合模块包括还原单元、第一聚合单元、第二聚合单元以及第三聚合单元。

还原单元,用于通过可信终端将第一秘密参数对第二终端对应的混淆局部特征还原为真实局部特征;以及,通过可信终端将第二秘密参数对第一终端对应的混淆局部特征还原为真实局部特征;

第一聚合单元,用于对各训练终端对应的真实局部特征进行累加处理,以将得到的累加结果作为全局特征;或者

第二聚合单元,用于对各训练终端对应的真实局部特征进行取平均处理,以将得到的平均值作为全局特征;或者,

第三聚合单元,用于对各训练终端对应的真实局部特征进行加权处理,以将得到的加权结果作为全局特征。

关于图神经网络训练系统的具体限定可以参见上文中对于图神经网络训练方法的限定,在此不再赘述。上述图神经网络训练系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括计算机存储介质、内存储器。该计算机存储介质存储有操作系统、计算机程序和数据库。该内存储器为计算机存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行图神经网络训练方法过程中生成或获取的数据,如本地图数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种图神经网络训练方法。

在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中的图神经网络训练方法的步骤,例如图2所示的步骤s11-s14,或者图3至图7中所示的步骤。或者,处理器执行计算机程序时实现图神经网络训练系统这一实施例中的各模块/单元的功能,例如图8所示的各模块/单元的功能,为避免重复,这里不再赘述。

在一实施例中,提供一计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中图神经网络训练方法的步骤,例如图2所示的步骤s11-s14,或者图3至图7中所示的步骤,为避免重复,这里不再赘述。或者,该计算机程序被处理器执行时实现上述图神经网络训练系统这一实施例中的各模块/单元的功能,例如图8所示的各模块/单元的功能,为避免重复,这里不再赘述。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。

以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1