掌桥专利:专业的专利平台
掌桥专利
首页

多方联合训练图神经网络的方法及装置

文献发布时间:2024-04-18 19:58:53


多方联合训练图神经网络的方法及装置

技术领域

本说明书一个或多个实施例涉及机器学习技术领域,尤其涉及一种保护数据隐私的多方联合训练图神经网络的方法及装置、一种计算机可读存储介质,以及一种计算设备。

背景技术

关系网络图是对现实世界中实体之间的关系的描述,一般包含一个节点集合和一个边集合,节点表示现实世界中的实体,边表示现实世界中实体之间的联系。例如,在社交网络中,人就是实体,人和人之间的关系或联系就是边。

关系网络图的拓扑结构能反映现实世界中的复杂关系,因而在社交平台、推荐系统应用中有着举足轻重的作用。如图1所示,在推荐、欺诈检测和疾病传播等业务场景中,不同服务方各自持有相应场景的样本特征和标签数据,如果能够进一步引入丰富的社交网络数据训练机器学习模型,将极大提高对应业务场景下的预测准确率和业务质量。

联邦学习(Federated Learning,简称FL)提供了一种可行的数据合作方案,FL是一种保护数据隐私的机器学习框架,可以让多个数据方在不暴露各自原始数据隐私的情况下,共同训练一个机器学习模型。示例性的,在引入图数据的FL场景下,图数据方持有实体节点的连接关系特征,例如用户节点与哪些用户节点具有社交关系等,其他数据方持有实体节点的其他特征或标签数据,例如用户节点的兴趣爱好或在电商平台中的点击数据等。

但是,目前缺乏针对大型图谱进行FL学习的研究。由此,本说明书实施例提出了一种多方联合训练图神经网络(Graph Neural Network,简称GNN)的方案,其中GNN可以用于直接处理图结构数据,该方案在图结构数据量级较大的情况下优势尤为突出。

发明内容

本说明书实施例描述一种多方联合训练图神经网络的方法及装置,可以满足实际应用中的更高要求。

根据第一方面,提供一种多方联合训练图神经网络的方法,其中供图方持有包含多个节点的关系网络图,样本方持有至少部分节点特征或至少部分节点标签,中立方部署有图神经网络;所述方法涉及针对所述多个节点的多轮遍历训练。其中任一轮遍历训练包括:

所述供图方和样本方各自根据当前批次的节点标识对应的本地数据,与所述中立方进行交互;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一,该交互使得所述中立方利用所述图神经网络得到对应当前批次节点的本轮表征向量。所述中立方在所述本轮表征向量中融合上一轮遍历训练得到的对应当前批次节点的历史表征向量,作为目标表征向量,以及,将所述历史表征向量更新为所述目标表征向量。所述中立方基于所述目标表征向量和所述当前批次对应的标签数据,完成所述图神经网络针对所述当前批次的迭代更新。

在一个实施例中,所述样本方为多个样本方,所述多个节点对应的特征和至少部分节点的标签数据垂直分布于所述多个样本方。

根据第二方面,提供一种多方联合训练图神经网络的方法,其中供图方持有包含多个节点的关系网络图,样本方持有至少部分节点特征或至少部分节点标签,中立方部署有图神经网络;所述方法涉及针对所述多个节点的多轮遍历训练。在任一轮遍历训练中所述中立方执行以下步骤:

通过与所述供图方和样本方进行针对当前批次的节点标识的交互,利用所述图神经网络得到对应当前批次节点的本轮表征向量;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一;其中供图方和样本方各自根据所述当前批次的节点标识对应的本地数据参与交互。在所述本轮表征向量中融合上一轮遍历训练得到的对应当前批次节点的历史表征向量,作为目标表征向量,以及,将所述历史表征向量更新为所述目标表征向量。基于所述目标表征向量和所述当前批次对应的标签数据,完成所述图神经网络针对所述当前批次的迭代更新。

在一个实施例中,其中在任一轮遍历训练中所述中立方还执行以下步骤:在本轮遍历训练中,将所述多个节点进行随机划分得到多批次节点标识;将所述多批次节点标识逐批次作为当前批次的节点标识,发送至所述供图方和样本方。

在一个实施例中,所述中立方还执行以下步骤:将首个训练轮次的上一训练轮次对应的各个历史表征向量分别初始化为零向量。

根据第三方面,提供一种多方联合训练图神经网络的方法,其中供图方持有包含多个节点的关系网络图,样本方持有至少部分节点特征或至少部分节点标签,中立方部署有图神经网络;所述方法涉及针对所述多个节点的多轮遍历训练。在任一轮遍历训练中所述供图方执行以下步骤:

根据当前批次的节点标识,从所述关系网络图中提取包含该批次节点的子图;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一。基于所述子图与所述样本方和中立方进行交互,使得所述中立方利用所述图神经网络得到对应当前批次节点的本轮表征向量;其中样本方根据所述当前批次的节点标识对应的本地特征数据参与交互。其中,所述本轮表征向量用于融合上一训练轮次得到的对应当前批次节点的历史表征向量,作为目标表征向量;所述目标表征向量用于更新所述历史表征向量,还用于结合所述当前批次对应的标签数据完成所述图神经网络针对所述当前批次的迭代更新。

在一个实施例中,在根据当前批次的节点标识,从所述关系网络图中提取对应的子图之前,所述方法还包括:获取所述关系网络图的原始版本。基于所述原始版本,在其中各个节点与对应的k阶邻居节点之间添加连接边,得到所述关系网络图的更新版本,用于提取所述子图;其中k为大于1的整数。

在一个实施例中,基于所述子图与所述样本方和中立方进行交互,包括:在所述子图中随机地添加和/或删除连接边,作为更新后的子图;利用所述更新后的子图参与所述交互。

在一个实施例中基于所述子图与所述样本方和中立方进行交互,包括:将所述子图的结构数据从稀疏数据形式转换为非稀疏的预定数据形式;采用所述预定数据形式支持的同态加密算法,对转换后的子图结构数据进行同态加密;利用所述同态加密得到的密文参与所述交互。

根据第四方面,提供一种多方联合训练图神经网络的方法,其中供图方持有包含多个节点的关系网络图,样本方持有至少部分节点特征或至少部分节点标签,中立方部署有图神经网络;所述方法涉及针对所述多个节点的多轮遍历训练。在任一轮遍历训练中所述样本方执行以下步骤:

根据当前批次的节点标识,从所述多个节点对应的特征中提取当前批次特征;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一。基于所述当前批次特征与所述中立方和供图方进行交互,使得所述中立方利用所述图神经网络得到对应当前批次节点的本轮表征向量;其中供图方根据所述当前批次的节点标识对应的本地子图数据参与交互。其中,所述本轮表征向量用于融合上一训练轮次得到的对应当前批次节点的历史表征向量,作为目标表征向量;所述目标表征向量用于更新所述历史表征向量,还用于结合所述当前批次对应的标签数据完成所述图神经网络针对所述当前批次的迭代更新。

在一个实施例中,基于所述当前批次特征与所述中立方和供图方进行交互,包括:利用本地部署的嵌入模型处理所述当前批次特征,得到当前批次的节点嵌入向量;利用所述节点嵌入向量参与所述交互。

在一个具体的实施例中,还包括:利用基于所述目标特征向量和所述当前批次对应的标签而确定的回传梯度,完成所述嵌入模型针对所述当前批次的迭代更新。

在一个实施例中,所述样本方为多个样本方,所述多个节点对应的特征和至少部分节点的标签数据垂直分布于所述多个样本方。

根据第五方面,提供一种多方联合训练图神经网络的方法,其中供图方持有包含多个节点的关系网络图,若干样本方持有至少部分节点特征或至少部分节点标签,所述若干样本方中的指定方部署有图神经网络;所述方法涉及针对所述多个节点的多轮遍历训练。其中任一轮遍历训练包括:

所述供图方和若干样本方各自根据当前批次的节点标识对应的本地数据进行交互;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一,该交互使得所述指定方利用所述图神经网络得到对应当前批次节点的本轮表征向量。所述指定方在所述本轮表征向量中融合上一轮遍历训练得到的对应当前批次节点的历史表征向量,作为目标表征向量,以及,将所述历史表征向量更新为所述目标表征向量。所述指定方基于所述目标表征向量和所述当前批次对应的标签数据,完成所述图神经网络针对所述当前批次的迭代更新。

根据第六方面,提供一种多方联合训练图神经网络的方法,其中供图方持有包含多个节点的关系网络图,若干样本方持有至少部分节点特征或至少部分节点标签,所述若干样本方中的指定方部署有图神经网络;所述方法涉及针对所述多个节点的多轮遍历训练。在任一轮遍历训练中所述指定方执行以下步骤:

根据所述当前批次的节点标识对应的本地数据,与其他方进行交互,从而利用所述图神经网络得到对应当前批次节点的本轮表征向量;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一;所述其他方各自根据所述当前批次的节点标识对应的本地数据参与交互。在所述本轮表征向量中融合上一轮遍历训练得到的对应当前批次节点的历史表征向量,作为目标表征向量,以及,将所述历史表征向量更新为所述目标表征向量。基于所述目标表征向量和所述当前批次对应的标签数据,完成所述图神经网络针对所述当前批次的迭代更新。

根据第七方面,提供一种多方联合训练图神经网络的方法,其中供图方持有包含多个节点的关系网络图,若干样本方持有至少部分节点特征或至少部分节点标签,所述若干样本方中的指定方部署有图神经网络;所述方法涉及针对所述多个节点的多轮遍历训练。在任一轮遍历训练中所述供图方执行以下步骤:

根据当前批次的节点标识,从所述关系网络图中提取包含该批次节点的子图;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一。基于所述子图与所述若干样本方进行交互,使得所述指定方利用所述图神经网络得到对应当前批次节点的本轮表征向量;其中若干样本方各自根据所述当前批次的节点标识对应的本地特征数据参与交互。其中,所述本轮表征向量用于融合上一训练轮次得到的对应当前批次节点的历史表征向量,作为目标表征向量;所述目标表征向量用于更新所述历史表征向量,还用于结合当前批次对应的标签数据完成所述图神经网络针对所述当前批次的迭代更新。

根据第八方面,提供一种多方联合训练图神经网络的装置,其中供图方持有包含多个节点的关系网络图,样本方持有至少部分节点特征或至少部分节点标签,中立方部署有图神经网络;所述联合训练涉及针对所述多个节点的多轮遍历训练。所述装置集成于所述中立方,通过以下单元参与其中任一轮遍历训练:

交互单元,配置为通过与所述供图方和样本方进行针对当前批次的节点标识的交互,利用所述图神经网络得到对应当前批次节点的本轮表征向量;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一;其中供图方和样本方各自根据所述当前批次的节点标识对应的本地数据参与交互。向量处理单元,配置为在所述本轮表征向量中融合上一轮遍历训练得到的对应当前批次节点的历史表征向量,作为目标表征向量,以及,将所述历史表征向量更新为所述目标表征向量。模型更新单元,配置为基于所述目标表征向量和所述当前批次对应的标签数据,完成所述图神经网络针对所述当前批次的迭代更新。

根据第九方面,提供一种多方联合训练图神经网络的装置,其中供图方持有包含多个节点的关系网络图,样本方持有至少部分节点特征或至少部分节点标签,中立方部署有图神经网络;所述联合训练涉及针对所述多个节点的多轮遍历训练。所述装置集成于所述供图方,通过以下单元参与其中任一轮遍历训练:

子图提取单元,配置为根据当前批次的节点标识,从所述关系网络图中提取包含该批次节点的子图;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一。交互单元,配置为基于所述子图与所述样本方和中立方进行交互,使得所述中立方利用所述图神经网络得到对应当前批次节点的本轮表征向量;其中样本方根据所述当前批次的节点标识对应的本地特征数据参与交互。其中,所述本轮表征向量用于融合上一训练轮次得到的对应当前批次节点的历史表征向量,作为目标表征向量;所述目标表征向量用于更新所述历史表征向量,还用于结合所述当前批次对应的标签数据完成所述图神经网络针对所述当前批次的迭代更新。

根据第十方面,提供一种多方联合训练图神经网络的装置,其中供图方持有包含多个节点的关系网络图,样本方持有至少部分节点特征或至少部分节点标签,中立方部署有图神经网络;所述联合训练涉及针对所述多个节点的多轮遍历训练。所述装置集成于所述样本方,通过以下单元参与其中任一轮遍历训练:

特征提取单元,配置为根据当前批次的节点标识,从所述多个节点对应的特征中提取当前批次特征;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一。交互单元,配置为基于所述当前批次特征与所述中立方和供图方进行交互,使得所述中立方利用所述图神经网络得到对应当前批次节点的本轮表征向量;其中供图方根据所述当前批次的节点标识对应的本地子图数据参与交互。其中,所述本轮表征向量用于融合上一训练轮次得到的对应当前批次节点的历史表征向量,作为目标表征向量;所述目标表征向量用于更新所述历史表征向量,还用于结合所述当前批次对应的标签数据完成所述图神经网络针对所述当前批次的迭代更新。

根据第十一方面,提供一种多方联合训练图神经网络的装置,其中供图方持有包含多个节点的关系网络图,若干样本方持有至少部分节点特征或至少部分节点标签,所述若干样本方中的指定方部署有图神经网络;所述联合训练涉及针对所述多个节点的多轮遍历训练。所述装置集成于所述指定方,通过以下单元参与其中任一轮遍历训练:

交互单元,配置为根据所述当前批次的节点标识对应的本地数据,与其他方进行交互,从而利用所述图神经网络得到对应当前批次节点的本轮表征向量;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一;所述其他方各自根据所述当前批次的节点标识对应的本地数据参与交互。向量处理单元,配置为在所述本轮表征向量中融合上一轮遍历训练得到的对应当前批次节点的历史表征向量,作为目标表征向量,以及,将所述历史表征向量更新为所述目标表征向量。模型更新单元,配置为基于所述目标表征向量和所述当前批次对应的标签数据,完成所述图神经网络针对所述当前批次的迭代更新。

根据第十二方面,提供一种多方联合训练图神经网络的装置,其中供图方持有包含多个节点的关系网络图,若干样本方持有至少部分节点特征或至少部分节点标签,所述若干样本方中的指定方部署有图神经网络;所述联合训练涉及针对所述多个节点的多轮遍历训练。所述装置集成于供图方,通过以下单元参与其中在任一轮遍历训练:

子图提取单元,配置为根据当前批次的节点标识,从所述关系网络图中提取包含该批次节点的子图;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一。交互单元,配置为基于所述子图与所述若干样本方进行交互,使得所述指定方利用所述图神经网络得到对应当前批次节点的本轮表征向量;其中若干样本方各自根据所述当前批次的节点标识对应的本地特征数据参与交互。其中,所述本轮表征向量用于融合上一训练轮次得到的对应当前批次节点的历史表征向量,作为目标表征向量;所述目标表征向量用于更新所述历史表征向量,还用于结合所述当前批次对应的标签数据完成所述图神经网络针对所述当前批次的迭代更新。

根据第十三方面,提供了一种计算机可读存储介质,其上存储有计算机程序,当上述计算机程序在计算机中执行时,令计算机执行第一方面至第七方面中任一方面提供的方法。

根据第十四方面,提供了一种计算设备,包括存储器和处理器,上述存储器中存储有可执行代码,该处理器执行上述可执行代码时,实现第一方面至第七方面中任一方面提供的方法。

在本说明书实施例提供的上述方法和装置中,提出了基于随机子图的图联邦学习框架,在兼容现有的FL学习框架下,以随机采样不同批次节点的方式进行图神经网络GNN的训练,通过小批多次的方式降低数据传输瓶颈,同时,随机子图放松了对子图的采样要求,不会在子图结构中暴露节点的邻居结构,有效降低了隐私泄露风险。

附图说明

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

图1为针对图结构数据的应用场景示意图;

图2为本说明书实施例披露的多方联合训练图神经网络的实施架构示意图;

图3为本说明书实施例披露的本方案和GAS方案在前向传播过程中的数据流动对比示意图;

图4为本说明书实施例披露的多方联合训练图神经网络的交互流程示意图;

图5为本说明书实施例披露的集成于参与多方联合训练图神经网络的中立方的装置结构示意图;

图6为本说明书实施例披露的集成于参与多方联合训练图神经网络的供图方的装置结构示意图;

图7为本说明书实施例披露的集成于参与多方联合训练图神经网络的样本方的装置结构示意图;

图8为本说明书实施例披露的集成于参与多方联合训练图神经网络的指定方的装置结构示意图;

图9为本说明书实施例披露的集成于参与多方联合训练图神经网络的供图方的另一装置结构示意图。

具体实施方式

下面结合附图,对本说明书提供的方案进行描述。

承前所述,目前缺乏针对大型图谱进行FL学习的研究。其中的主要困难包括:

1)数据传输瓶颈。大规模图拓扑的量级(亿级)使得整图传输并不现实。

2)隐私保护冲突。现有的大规模图学习方案采用子图采样的方式进行图模型的训练,但是这些子图通常是以个位数的节点为核心,采样其邻居节点形成的,这对于特定节点而言,存在极大的身份泄漏风险。举例来说,假定持有图结构数据的A方与持有节点特征和标签数据的B方联合训练GNN模型,在其中的第t次迭代训练,B方要求A方提供以节点01和节点02为核心,采样其邻居节点而形成的子图信息,其中01和02指代节点标识;于是,A方在采样出对应的目标子图后,将该目标子图的密文以及核心节点的邻居节点标识提供给B方,从而B方根据目标子图包含的节点标识(包括核心节点和其邻居节点的标识)提取对应的特征和标签数据,用于完成第t次迭代训练。之后,在第t+1次迭代训练中,B方要求A方提供以节点01和节点03为核心的子图信息,同理,B方会得到节点01和节点03的邻居节点标识,进一步,B方通过比对第t次和第t+1次迭代训练中得到的邻居节点标识,可以推断出节点02或节点03的至少一部分邻居节点,这就导致A方的图结构数据发生了泄露。

本说明书实施例针对以上问题提出了基于随机子图的纵向图联邦学习框架,在兼容现有的FL学习框架下,以随机采样不同批次节点的方式进行图神经网络GNN的训练,通过小批多次的方式降低数据传输瓶颈,同时,随机子图放松了对子图的采样要求,不会在子图结构中暴露节点的邻居结构,有效降低了隐私泄露风险。

图2为本说明书实施例披露的多方联合训练图神经网络的实施架构示意图,其中示意多个参与方(或简称多方)包括供图方、样本方和中立方。为便于理解,先对训练数据和模型在多个参与方中的分布和部署情况进行简要介绍。

联合训练涉及的完整训练数据包括关系网络图、关系网络图中的多个节点对应的特征数据,以及至少一部分节点对应的标签数据。需理解,可能存在一些节点缺少标签数据。训练数据的具体内容与具体的业务场景相适应。比如说,在推荐场景下,关系网络图可以是用户关系网络图,具有社交关系、转账关系等预定关系的用户节点之间具有连接边,用户节点的特征数据可以包括静态属性特征,如出生年月、兴趣爱好、常驻地等,还可以包括动态行为特征或者说网络行为特征,如消费类目、消费金额、消费频次、网页浏览记录等,用户节点的标签数据可以用户是否做出预定行为,如购买某件商品、点击某个广告、关注某个公众号等。

上述关系网络图的图结构数据,主要包括反映节点之间连接关系的邻接数据(或称邻接信息),由供图方提供。至于节点的特征数据和标签数据,图1示意由样本方提供,但实际上,特征数据和标签数据也可以在样本方和供图方中灵活分布,比如,样本方维护节点特征数据,供图方维护节点标签数据;又比如,样本方维护多数节点的标签和特征数据,供图方维护少数节点的标签和特征数据,再比如,样本方维护多个节点的标签和一部分特征,供图方维护多个节点的另一部分特征。中立方不负责训练数据的提供,但其中部署有图神经网络,中立方为可信第三方,一般是权威机构。

多方基于上述数据分布和模型部署,共同参与GNN模型的联合训练。联合训练包括多轮遍历训练,每轮遍历训练会对上述完整训练数据进行一次遍历,或者说对上述多个节点进行一次遍历,一次遍历可以称为1个epoch。

每轮遍历训练中采用基于上述多个节点进行随机划分而得到的多批次节点,对GNN模型对应进行多次迭代更新。需说明,在本申请中,针对不同轮的遍历训练会对多个节点重新进行随机划分,并且,在每轮遍历训练中会用到上一轮遍历训练中针对各个节点输出的历史表征向量,从而减少因为随机划分而造成的图结构信息的损失,保证方案的可用性。

具体而言,每次迭代更新中用到的一批次节点是随机采样得到的,相应,与一批次节点对应的子图是随机的,区别于传统的子图采样中以数个节点为核心,采样其邻居节点而形成子图的方式,可以避免特定节点因其邻居结构而暴露身份隐私。

进一步,考虑到每批次节点都是随机采样的,这样会造成邻接信息的损失,对此可参见图3,对于图3的(a)中示意的关系网络结构,假定在首轮遍历训练中,节点V

由此,为了在加强隐私保护的同时保证方案的可用性,提出在每轮遍历训练中都对多个节点重新进行随机划分,使得互为邻居的节点尽可能至少一次被分到同一批次,例如,节点V

以上介绍本说明书实施例披露的针对联合训练提出的主要训练策略,包括随机子图采样策略和节点的历史表征融合策略。

回到图2,其中示意m*n个节点批次(batch),m指代遍历训练的轮次,n指代每轮遍历训练中的节点批次数,或者说对GNN进行迭代更新的次数。需理解,图2中仅示意每轮遍历训练中的节点批次数相同,均为n的情况,实际上不同轮遍历训练中的节点批次数也可以不同。

如图2所示,在任意的第i轮遍历训练的第j次迭代更新中,首先,在步骤S210,供图方和样本方各自根据当前批次的节点标识对应的本地数据,与中立方进行交互,使得中立方利用GNN模型得到对应当前批次节点

需理解,图2中的交互步骤不只适用于其中示出的典型数据分布场景,即,供图方维护图数据且样本方维护节点标签和特征数据,还可以是文中提及的其他数据分布情况。为便于理解,接下来,主要以该典型数据分布场景为例,对图2中的各个交互步骤进行更详细的介绍。需理解,参与交互的多方均可以实现为任何具有计算、处理能力的装置、服务器或设备集群等。

首先,对于上述步骤S210,可以将其拆分为以下子步骤S212、S214和S216:

步骤S212,供图方根据当前批次的节点标识

从上述步骤S212和S214可以观察到,供图方和样本方需要预先获取到当前批次的节点标识

需说明,关于随机划分的执行方、划分方式和划分时机,有许多变种。在一种典型情况下,在每轮遍历训练中,中立方先对关系网络图中的所有节点标识进行随机划分,得到多批次节点标识,然后在该轮遍历训练中,将多批次节点标识逐批次作为当前批次的节点标识,用于当前次迭代更新。可以理解,当随机划分的执行方为中立方时,可以借助其可信、权威的特性进一步强化数据安全,但实际上,执行方也可以是样本方。

随机划分的时机除了在每轮遍历训练中执行多次迭代更新之前,还可以是在多轮遍历训练之前,将各轮遍历训练中需要用到的节点批次都预先划分好,又或者,在每次迭代更新中实时进行随机采样,得到当前批次的节点标识。

随机划分的方式可以采用逐批次的无放回随机采样。或者,可以先将待分批的多个节点标识进行随机打乱,再根据打乱后的顺序,按照预定的节点数量取出各个批次的节点标识,对此可以借助Python中自带的list、range和shuffle函数实现,相关的伪代码可记作:

indices=list(range(n))

shuffle(indices)

for i in range(n/bs) do

batch_ indices

... ...

其中,n表示所有节点的数量,bs表示每批次节点的数量。

以上对节点批次的随机划分进行介绍。若随机划分由中立方执行,则中立方可以当前批次的节点标识

由上,供图方和样本方可以预先获取到当前批次的节点标识集合

于是,供图方可以基于当前批次的节点标识集

对于本步骤中子图

在另一个实施例中,关系网络图

另一方面,考虑到本方案中保护关系网络

需理解,上述k阶邻居节点中的k为大于1的整数,例如,设定k=2。另外,k阶邻居节点间加边的操作只需执行一次,之后各次迭代更新中的子图提取操作都基于加边后的同一关系网络图

根据又一方面的实施例,对于上述任一实施例中提取出的子图

由上,供图方通过执行步骤S212,可以采样得到对应当前批次节点

类似地,样本方也需要提取与当前批次节点

可以理解,样本方中存储节点标识与特征之间的映射关系,根据此映射关系,可以从全量的特征数据

在一个实施例中,本步骤中还可以包括:样本方从其持有的标签数据

由上,通过步骤S212、S214的执行,供图方和样本方各自准备好了参与本次迭代更新的训练数据。进一步地,在步骤S216,供图方利用当前批次对应的子图

需理解,图2示意的典型数据分布场景属于纵向分布,即,不同数据方拥有相同的样本空间和不同的特征空间,相应地,本步骤可以兼容已有的纵向联邦学习(Vertical Federated Learning,简称VFL)框架实现。具体而言,在已有的VFL框架下,各方参与训练的私有数据明确后,即可在保护各方私有数据不出域的情况下,实现对多方共同约定的模型的训练,训练中涉及中间结果的计算或传输。相应地,本方案中的中间结果包括上述本轮表征向量

一般地,现有的VFL框架通常采用同态加密(Homomorphic Encryption,简称HE)技术进行中间结果的加密传输和运算。简单来说,HE技术支持密文间或明密文间的特定类型计算,计算结果解密得到的内容与直接进行明文间计算是一致的。

在采用HE技术实现的VFL框架下,给出本步骤的一个执行示例:中立方从供图方和样本方对应接收子图

另一方面,在一个实施例中,考虑到对稀疏向量进行HE计算将耗费大量的计算资源,由此提出在本步骤中,供图方还可以先将子图

又一方面,在一个实施例中,样本方中还部署有嵌入模型,相应,样本方先利用本方部署的嵌入模型处理当前批次的特征

以上介绍步骤S210的各个子步骤,通过执行步骤S210,供图方基于当前批次节点对应的子图

继续看图2中示出的下一步骤S220,中立方在本轮表征向量

对本轮表征向量

(1)

在上式(1)中,

需说明,历史表征向量由中立方维护,中立方可以在首个训练轮次中将各个节点标识对应的历史表征向量都初始化为零向量,由此,若本轮训练为首轮训练,则其上一轮遍历训练得到的对应当前批次节点的历史表征向量

由此,在步骤S220,中立方可以得到融合历史表征向量

之后,在步骤S230,中立方基于目标表征向量

具体地,中立方基于目标表征向量

进一步,中立方可以基于当前批次对应的预测结果

另一方面,在一个实施例中,若样本方中部署有嵌入模型,本步骤中还包括:基于目标表征向量

由上,通过执行图2中示意的交互步骤,可以实现联合训练中对GNN模型的任一次迭代更新,依次类推,通过执行针对关系网络图中多个节点的多轮次遍历,在每轮次遍历中分别执行多次迭代更新,最终可以得到训练好的GNN模型。

接下来结合下表1,对利用一批次节点进行GNN模型的单次迭代更新的流程进行更加直观地示例性描述。

表1 利用一批次节点更新GNN模型的流程

如表1所示,对GNN模型进行单次迭代更新包括以下环节:

第0个环节:供图方创建密钥对,并将密钥对中的公钥分别发送给样本方和中立方。示例性的,供图方可以基于同态加密HE技术生成密钥对。

样本方对其中部署的嵌入模型的模型参数

中立方对其中部署的GNN模型的模型参数

需说明,第0个环节可以换称为预备环节,其并非在每次迭代更新中都执行,而是在首轮训练遍历中的首次迭代更新中执行即可。

第1个环节:中立方将当前批次的节点标识

第2个环节:供图方从关系网络

样本方利用本地部署的嵌入模型

第3个环节:中立方先利用GNN模型处理邻接矩阵密文

(2)

接着,中立方采用下式(3),在本轮表征向量的密文

(3)

显然,将公式(2)代入公式(3),可以得到表1中计算

中立方还计算

第4个环节:供图方利用私钥解密

中立方利用

样本方生成随机数

第5个环节:中立方利用下式计算GNN模型的参数

(4)

在式(4)中,

中立方利用式(4)的计算结果更新GNN的参数

中立方还采用下式(5)计算回传至嵌入模型的梯度的密文:

(5)

之后,中立方将

第6个环节:供图方利用私钥解密

第7个环节:样本方利用

(6)

然后,利用公式(6)的计算结果更新本地嵌入模型的参数

以上结合表1,对联合训练过程中利用一批次节点更新GNN模型的流程进行示例性介绍。需理解,表1中仅示意GNN模型包含一个隐藏层的情况,若有多个隐藏层,则需要多次重复第3和第4个环节中供图方和中立方之间的交互步骤。

需要说明的是,以上对联合训练方案的介绍中主要以1个样本方为例,实际上,样本方可以有多个,多个样本方共同维护关系网络图对应的至少部分节点特征或至少一部分节点的标签,其中至少部分节点特征可以指代至少一部分节点的特征,也可以指代多个节点的至少一部分特征,总之可以指代拥有节点相关的全部特征或其中任意一部分的所有场景。比如说,关系网络图中多个节点对应的特征和标签数据垂直分布或者说纵向分布于多个样本方,具体例如,多个参与方中包括2个样本方,其中之一持有节点特征,另一个持有节点标签。由此,包含多个样本方、供图方和中立方在内的多个参与方,仍然可以利用已有的FL框架实现对GNN模型的联合训练。

另外,以上对联合训练方案的介绍中多个参与方包括中立方,实际上,也可以不包括中立方,此时,上述实施例中提及的由中立方执行的步骤可以由样本方执行,GNN模型也可以部署在样本方中。当样本方的数量为多个时,可以指定其中的一个样本方(文中或将此样本方称为指定方),额外地执行上述提及的由中立方执行的步骤。

对于多个参与方中没有中立方,而是只有供图方和若干(文中若干指代一个或多个)样本方的情况,图4示出相应的多方交互流程示意图,其中供图方持有包含多个节点的关系网络图,若干样本方持有至少部分节点特征或至少部分节点标签,所述若干样本方中的指定方部署有图神经网络。所述方法涉及针对所述多个节点的多轮遍历训练,如图4所示,其中任一轮遍历训练包括以下步骤:

步骤S410,所述供图方和若干样本方各自根据当前批次的节点标识对应的本地数据进行交互;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一,该交互使得所述指定方利用所述图神经网络得到对应当前批次节点的本轮表征向量。

步骤S420,所述指定方在所述本轮表征向量中融合上一轮遍历训练得到的对应当前批次节点的历史表征向量,作为目标表征向量,以及,将所述历史表征向量更新为所述目标表征向量。

步骤S430,所述指定方基于所述目标表征向量和所述当前批次对应的标签数据,完成所述图神经网络针对所述当前批次的迭代更新。

需说明,对以上步骤的描述,可以参见前述实施例中的相关描述,不作赘述。

与上述联合训练的方法相对应的,本说明书实施例还披露集成在各个参与方中的装置。

图5为本说明书实施例披露的集成于参与多方联合训练图神经网络的中立方的装置结构示意图。其中供图方持有包含多个节点的关系网络图,样本方持有至少部分节点特征或至少部分节点标签,中立方部署有图神经网络;所述联合训练涉及针对所述多个节点的多轮遍历训练。如图5所示,集成于中立方的装置500通过以下单元参与其中任一轮遍历训练:

交互单元510,配置为通过与所述供图方和样本方进行针对当前批次的节点标识的交互,利用所述图神经网络得到对应当前批次节点的本轮表征向量;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一;其中供图方和样本方各自根据所述当前批次的节点标识对应的本地数据参与交互。向量处理单元520,配置为在所述本轮表征向量中融合上一轮遍历训练得到的对应当前批次节点的历史表征向量,作为目标表征向量,以及,将所述历史表征向量更新为所述目标表征向量。模型更新单元530,配置为基于所述目标表征向量和所述当前批次对应的标签数据,完成所述图神经网络针对所述当前批次的迭代更新。

在一个实施例中,所述装置500还包括随机划分单元540,配置为在本轮遍历训练中,将所述多个节点进行随机划分得到多批次节点标识;发送单元550,配置为将所述多批次节点标识逐批次作为当前批次的节点标识,发送至所述供图方和样本方。

在一个实施例中,所述装置500还包括向量初始化单元560,配置为将首个训练轮次的上一训练轮次对应的各个历史表征向量分别初始化为零向量。

图6为本说明书实施例披露的集成于参与多方联合训练图神经网络的供图方的装置结构示意图。其中供图方持有包含多个节点的关系网络图,样本方持有至少部分节点特征或至少部分节点标签,中立方部署有图神经网络;所述联合训练涉及针对所述多个节点的多轮遍历训练。如图6所示,集成于供图方的装置600通过以下单元参与其中任一轮遍历训练:

子图提取单元610,配置为根据当前批次的节点标识,从所述关系网络图中提取包含该批次节点的子图;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一。交互单元620,配置为基于所述子图与所述样本方和中立方进行交互,使得所述中立方利用所述图神经网络得到对应当前批次节点的本轮表征向量;其中样本方根据所述当前批次的节点标识对应的本地特征数据参与交互。其中,所述本轮表征向量用于融合上一训练轮次得到的对应当前批次节点的历史表征向量,作为目标表征向量;所述目标表征向量用于更新所述历史表征向量,还用于结合所述当前批次对应的标签数据完成所述图神经网络针对所述当前批次的迭代更新。

在一个实施例中,所示装置600还包括加边单元630,配置为获取所述关系网络图的原始版本;基于所述原始版本,在其中各个节点与对应的k阶邻居节点之间添加连接边,得到所述关系网络图的更新版本,用于提取所述子图;其中k为大于1的整数。

在一个实施例中,所述交互单元620具体配置为:在所述子图中随机地添加和/或删除连接边,作为更新后的子图;利用所述更新后的子图参与所述交互。

在一个实施例中,所述交互单元620具体配置为:将所述子图的结构数据从稀疏数据形式转换为非稀疏的预定数据形式;采用所述预定数据形式支持的同态加密算法,对转换后的子图结构数据进行同态加密;利用所述同态加密得到的密文参与所述交互。

图7为本说明书实施例披露的集成于参与多方联合训练图神经网络的样本方的装置结构示意图。其中供图方持有包含多个节点的关系网络图,样本方持有至少部分节点特征或至少部分节点标签,中立方部署有图神经网络;所述联合训练涉及针对所述多个节点的多轮遍历训练。如图7所示,集成于样本方的装置700通过以下单元参与其中任一轮遍历训练:

特征提取单元710,配置为根据当前批次的节点标识,从所述多个节点对应的特征中提取当前批次特征;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一。交互单元720,配置为基于所述当前批次特征与所述中立方和供图方进行交互,使得所述中立方利用所述图神经网络得到对应当前批次节点的本轮表征向量;其中供图方根据所述当前批次的节点标识对应的本地子图数据参与交互。其中,所述本轮表征向量用于融合上一训练轮次得到的对应当前批次节点的历史表征向量,作为目标表征向量;所述目标表征向量用于更新所述历史表征向量,还用于结合所述当前批次对应的标签数据完成所述图神经网络针对所述当前批次的迭代更新。

在一个实施例中,交互单元720具体配置为利用本地部署的嵌入模型处理所述当前批次特征,得到当前批次的节点嵌入向量;利用所述节点嵌入向量参与所述交互。

在一个实施例中,所述装置700还包括嵌入模型更新单元730,配置为利用基于所述目标特征向量和所述当前批次对应的标签而确定的回传梯度,完成所述嵌入模型针对所述当前批次的迭代更新。

在一个实施例中,所述样本方为多个样本方,所述多个节点对应的特征和至少部分节点的标签数据垂直分布于所述多个样本方。

图8为本说明书实施例披露的集成于参与多方联合训练图神经网络的指定方的装置结构示意图。其中供图方持有包含多个节点的关系网络图,若干样本方持有至少部分节点特征或至少部分节点标签,所述若干样本方中的指定方部署有图神经网络;所述联合训练涉及针对所述多个节点的多轮遍历训练。如图8所示,集成于指定方的装置800通过以下单元参与其中任一轮遍历训练:

交互单元810,配置为根据所述当前批次的节点标识对应的本地数据,与其他方进行交互,从而利用所述图神经网络得到对应当前批次节点的本轮表征向量;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一;所述其他方各自根据所述当前批次的节点标识对应的本地数据参与交互。向量处理单元820,配置为在所述本轮表征向量中融合上一轮遍历训练得到的对应当前批次节点的历史表征向量,作为目标表征向量,以及,将所述历史表征向量更新为所述目标表征向量。模型更新单元830,配置为基于所述目标表征向量和所述当前批次对应的标签数据,完成所述图神经网络针对所述当前批次的迭代更新。

图9为本说明书实施例披露的集成于参与多方联合训练图神经网络的供图方的另一装置结构示意图。其中供图方持有包含多个节点的关系网络图,若干样本方持有至少部分节点特征或至少部分节点标签,所述若干样本方中的指定方部署有图神经网络;所述联合训练涉及针对所述多个节点的多轮遍历训练。如图9所示,集成于供图方的装置900通过以下单元参与其中在任一轮遍历训练:

子图提取单元910,配置为根据当前批次的节点标识,从所述关系网络图中提取包含该批次节点的子图;所述当前批次是针对本轮遍历训练将所述多个节点进行随机划分得到的多个批次之一。交互单元920,配置为基于所述子图与所述若干样本方进行交互,使得所述指定方利用所述图神经网络得到对应当前批次节点的本轮表征向量;其中若干样本方各自根据所述当前批次的节点标识对应的本地特征数据参与交互。其中,所述本轮表征向量用于融合上一训练轮次得到的对应当前批次节点的历史表征向量,作为目标表征向量;所述目标表征向量用于更新所述历史表征向量,还用于结合所述当前批次对应的标签数据完成所述图神经网络针对所述当前批次的迭代更新。

根据另一方面的实施例,还提供一种计算机可读存储介质,其上存储有计算机程序,当所述计算机程序在计算机中执行时,令计算机执行结合图2或图4所描述的方法。

根据再一方面的实施例,还提供一种计算设备,包括存储器和处理器,所述存储器中存储有可执行代码,所述处理器执行所述可执行代码时,实现结合图2或图4所描述的方法。本领域技术人员应该可以意识到,在上述一个或多个示例中,本发明所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。

以上所述的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。

技术分类

06120116513370