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

基于联邦学习的模型训练方法、装置、设备及存储介质

文献发布时间:2023-06-19 18:37:28


基于联邦学习的模型训练方法、装置、设备及存储介质

技术领域

本申请涉及机器学习技术领域,特别涉及一种基于联邦学习的模型训练方法、装置、设备及存储介质。

背景技术

为了提升用户数据安全减少用户数据泄露,可以使用联邦学习的方法对模型进行训练。

相关技术中,第一设备和第二设备基于联邦学习的方法对逻辑回归模型进行训练。在根据用户数据调整模型参数的过程中,第一设备和第二设备每进行一次矩阵向量乘法都需要以加密的形式发送数据秘密分片和参数秘密分片;第一设备和第二设备分别根据数据秘密分片和参数秘密分片确定计算结果,并根据计算结果对模型进行调整。

然而,相关技术中,第一设备和第二设备之间进行交互的次数较多,模型训练过程的通信开销较大。

发明内容

本申请提供了一种基于联邦学习的模型训练方法、装置、设备及存储介质。所述技术方案如下文所示。

根据本申请实施例的一个方面,提供了一种基于联邦学习的模型训练方法,所述方法由第一设备执行,所述第一设备和第二设备基于联邦学习对机器学习模型进行训练,所述方法包括:

基于所述第一设备拥有的第一原始秘密分片,与所述第二设备进行交互,获得第一新型秘密分片;其中,第一数据的原始秘密分片包括:由所述第一设备所持有的所述第一原始秘密分片,和由所述第二设备所持有的第二原始秘密分片;所述第一数据的新型秘密分片包括:由所述第一设备所持有的所述第一新型秘密分片,和由所述第二设备所持有的第二新型秘密分片;所述第一原始秘密分片和所述第二原始秘密分片之和等于所述第一数据;所述第一新型秘密分片包括:所述第一数据与第一混淆数据之和,以及第一子数据;所述第二新型秘密分片包括:所述第一数据与第一混淆数据之和,以及第二子数据;所述第一子数据与所述第二子数据之和等于所述第一混淆数据;

基于所述第一设备已存储的第二数据与第二混淆数据之和,以及第三子数据和所述第一新型秘密分片,计算得到第一运算结果;其中,所述第二数据的原始秘密分片包括:由所述第一设备所持有的第三原始秘密分片,和由所述第二设备所持有的第四原始秘密分片;所述第二数据的新型秘密分片包括:由所述第一设备所持有的第三新型秘密分片,和由所述第二设备所持有的第四新型秘密分片;所述第三原始秘密分片和所述第四原始秘密分片之和等于所述第二数据;所述第三新型秘密分片包括:所述第二数据与第二混淆数据之和,以及所述第三子数据;所述第四新型秘密分片包括:所述第二数据与第二混淆数据之和,以及第四子数据;所述第三子数据与所述第四子数据之和等于所述第二混淆数据;

根据所述第一运算结果,对所述第一设备拥有的所述机器学习模型的部分模型参数进行调整;其中,所述模型参数包括至少一个所述第一原始秘密分片。

根据本申请实施例的一个方面,提供了一种基于联邦学习的模型训练装置,所述装置包括:

分片生成模块,用于基于第一设备拥有的第一原始秘密分片,与第二设备进行交互,获得第一新型秘密分片;其中,第一数据的原始秘密分片包括:由所述第一设备所持有的所述第一原始秘密分片,和由所述第二设备所持有的第二原始秘密分片;所述第一数据的新型秘密分片包括:由所述第一设备所持有的所述第一新型秘密分片,和由所述第二设备所持有的第二新型秘密分片;所述第一原始秘密分片和所述第二原始秘密分片之和等于所述第一数据;所述第一新型秘密分片包括:所述第一数据与第一混淆数据之和,以及第一子数据;所述第二新型秘密分片包括:所述第一数据与第一混淆数据之和,以及第二子数据;所述第一子数据与所述第二子数据之和等于所述第一混淆数据;

结果运算模块,用于基于所述第一设备已存储的第二数据与第二混淆数据之和,以及第三子数据和所述第一新型秘密分片,计算得到第一运算结果;其中,所述第二数据的原始秘密分片包括:由所述第一设备所持有的第三原始秘密分片,和由所述第二设备所持有的第四原始秘密分片;所述第二数据的新型秘密分片包括:由所述第一设备所持有的第三新型秘密分片,和由所述第二设备所持有的第四新型秘密分片;所述第三原始秘密分片和所述第四原始秘密分片之和等于所述第二数据;所述第三新型秘密分片包括:所述第二数据与第二混淆数据之和,以及所述第三子数据;所述第四新型秘密分片包括:所述第二数据与第二混淆数据之和,以及第四子数据;所述第三子数据与所述第四子数据之和等于所述第二混淆数据;

参数调整模块,用于根据所述第一运算结果,对所述第一设备拥有的机器学习模型的部分模型参数进行调整;其中,所述部分模型参数包括至少一个所述第一原始秘密分片。

根据本申请实施例的一个方面,提供了一种计算机设备,所述计算机设备包括:处理器和存储器,所述存储器中存储有计算机程序,所述计算机程序由所述处理器加载并执行以实现如上所述的基于联邦学习的模型训练方法。

根据本申请实施例的一个方面,提供了一种计算机可读存储介质,所述存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现如上所述的基于联邦学习的模型训练方法。

根据本申请实施例的一个方面,提供了一种计算机程序产品,所述计算机程序产品包括计算机程序,所述计算机程序存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机指令,以实现如上所述的基于联邦学习的模型训练方法。

本申请实施例提供的技术方案带来的有益效果至少包括:

相比于每轮数据运算过程中,进行联邦学习的两个设备都需要进行交互生成特征数据对应的秘密分片,本方法中使用了新型秘密分片参与数据运算,参与数据运算的部分数据对应的新型数据分片,无需在每轮数据运算通过两个设备进行交互重新生成。通过这种方法,减轻了模型训练过程中两方设备的交互次数,减少了模型训练方法消耗的通信量。另外,由于部分数据对应的新型数据分片可以多次使用,因此本方法还有助于减少模型训练过程中的计算量,有助于缩短模型训练耗时,提升模型训练方法的性能。

附图说明

图1是本申请一个示例性实施例提供的方案实施环境的示意图;

图2是本申请一个示例性实施例提供的基于联邦学习的模型训练方法的流程图;

图3是本申请的一个示例性实施例提供的新型秘密分片生成过程的示意图;

图4是本申请一个示例性实施例提供的预计算过程的示意图;

图5是本申请一个示例性实施例提供的矩阵向量乘法运算过程的示意图;

图6是本申请一个示例性实施例提供的基于联邦学习的模型训练生成装置的框图;

图7是本申请一个示例性实施例提供的计算机设备的结构框图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。

首先,对本申请涉及到的名词进行介绍说明。

1.AI(Artificial Intelligence,人工智能)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。换句话说,人工智能是计算机科学的一个综合技术,它企图了解智能的实质,并生产出一种新的能以人类智能相似的方式做出反应的智能机器。人工智能也就是研究各种智能机器的设计原理与实现方法,使机器具有感知、推理与决策的功能。

人工智能技术是一门综合学科,涉及领域广泛,既有硬件层面的技术也有软件层面的技术。人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。

2.ML(Machine Learning,机器学习)是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。机器学习是人工智能的核心,是使计算机具有智能的根本途径,其应用遍及人工智能的各个领域。机器学习和深度学习通常包括人工神经网络、置信网络、强化学习、迁移学习、归纳学习、式教学习等技术。

随着人工智能技术研究和进步,人工智能技术在多个领域展开研究和应用,例如常见的智能家居、智能穿戴设备、虚拟助理等,相信随着技术的发展,人工智能技术将在更多的领域得到应用,并发挥越来越重要的价值。

3.云技术(Cloud technology)基于云计算商业模式应用的网络技术、信息技术、整合技术、管理平台技术、应用技术等的总称,可以组成资源池,按需所用,灵活便利。云计算技术将变成重要支撑。技术网络系统的后台服务需要大量的计算、存储资源,如视频网站、图片类网站和更多的门户网站。伴随着互联网行业的高度发展和应用,将来每个物品都有可能存在自己的识别标志,都需要传输到后台系统进行逻辑处理,不同程度级别的数据将会分开处理,各类行业数据皆需要强大的系统后盾支撑,只能通过云计算来实现。

4.云安全(Cloud Security)是指基于云计算商业模式应用的安全软件、硬件、用户、机构、安全云平台的总称。云安全融合了并行处理、网格计算、未知病毒行为判断等新兴技术和概念,通过网状的大量客户端对网络中软件行为的异常监测,获取互联网中木马、恶意程序的最新信息,并发送到服务端进行自动分析和处理,再把病毒和木马的解决方案分发到每一个客户端。

云安全主要研究方向包括:1)云计算安全,主要研究如何保障云自身及云上各种应用的安全,包括云计算机系统安全、用户数据的安全存储与隔离、用户接入认证、信息传输安全、网络攻击防护、合规审计等;2)安全基础设施的云化,主要研究如何采用云计算新建与整合安全基础设施资源,优化安全防护机制,包括通过云计算技术构建超大规模安全事件、信息采集与处理平台,实现对海量信息的采集与关联分析,提升全网安全事件把控能力及风险控制能力;3)云安全服务,主要研究各种基于云计算平台为用户提供的安全服务,如防病毒服务等。

5.秘密分享是指计算双方各自拥有秘密值,这两个秘密值的异或/算术加法为真实值,即真实值以异或/算术加法的方式秘密分享给参与双方。

6.秘密分片是指真实值采用异或的方式秘密分享,则计算方得到的随机数称为布尔分片;采用算术加法的方式秘密分享,则计算方得到的随机数称为算术分片。本发明中算术加法是指

7.PSI-Circuit(Private set intersection Circuit,电路隐私集合求交)是指参与双方输入ID(Identification,身份信息)集合,最终双方只能得到关于交集的分片信息,即PSI-Circuit的发起方ID是否在交集里的布尔分片,既得不到交集ID,也得不到非交集ID。在PSI-Circuit执行过程中,可将参与双方ID对应的数据进行秘密分享,则当ID在交集里时,双方秘密分享的数据为该ID分别对应的数据;否则双方秘密分享的数据为0。最终计算双方得到Q的布尔分片和X的算术分片,其中Q表示发起方的ID是否在交集里,X表示发起方ID对应的计算双方的数据。

8.参与方包括Guest和Host,数据

9.VOLE(Vector Oblivious Linear Evaluation,向量不经意线性计算)是指参与双方经过交互后得到随机的

10.两方分片矩阵向量乘法是指参与双方分别输入矩阵A(n行m列)的算术分片

图1是本申请一个示例性实施例提供的方案实施环境的示意图。该方案实施环境可以实现成为一个计算机系统。该方案实施环境可以包括:第一设备10和第二设备20。

第一设备10和第二设备20可以是诸如PC(Personal Computer,个人计算机)、手机、平板电脑、多媒体播放设备、可穿戴设备、智能语音交互设备、智能家电、车载终端等电子设备。第一设备10和第二设备20具有运算和存储功能,通过运算和存储功能进行基于联邦学习的模型训练。

可选地,第一设备10和第二设备20基于联邦学习进行模型训练。

在基于多方安全计算的纵向联邦学习算法中,根据特征数据的ID进行安全求交后的样本用于训练模型,在执行训练开始,多个样本的特征数据作为矩阵秘密分享,每次第一设备和第二设备执行矩阵向量乘法用于更新模型参数时,需要用到两方分片矩阵向量乘法,保证特征数据和迭代更新的模型参数的隐私。

在匿踪纵向联邦学习算法中,第一步可以通过PSI-Circuit将ID进行求交并将ID匹配的特征数据进行秘密分享,该过程既不暴露匹配的ID,也不暴露特征数据。此时特征数据作为矩阵秘密分享给参与双方。两个参与方P0和P1在执行PSI-Circuit之后得到Q的布尔分片、X的算术分片和Y的算术分片,其中Q表示ID是否在交集里的布尔值;X表示根据发起方P0的ID,对应P0和P1的特征数据,Y表示标签数据。后续的纵向联邦逻辑回归训练均以秘密分片的形式执行计算,每轮迭代涉及两方分片矩阵向量乘法运算。

无论是基于多方安全计算的联邦学习,还是匿踪纵向联邦学习,在后续多轮迭代过程中,涉及矩阵向量乘法中的矩阵是输入的特征数据,该矩阵是固定的,仅向量(用于模型参数更新)是变化的。目前两方分片矩阵向量乘法的通信开销与矩阵的规模(即行数乘列数)相关,导致实际性能较差。值得一提的是,匿踪纵向联邦学习算法使用PSI-Circuit后,用于联邦学习训练的输入是以发起方ID集为顺序的无差别双方特征数据的秘密分片(模型参数矩阵

基于上述问题,本申请提供一种基于联邦学习的模型训练方法,可用于多方安全计算的联邦学习,以及匿踪纵向联邦学习中,通过使用新型秘密分片进行矩阵向量乘法,减少了模型训练过程中设备之间的通信开销,有助于提升模型的训练效率。

图2是本申请一个示例性实施例提供的基于联邦学习的模型训练方法的流程图。示例性地,该方法的执行主体可以是图1所述方案实施环境中第一设备10,第一设备和第二设备基于联邦学习对机器学习模型进行训练。如图2所示,该方法可以包括步骤(210~230)。

步骤210,基于第一设备拥有的第一原始秘密分片,与第二设备进行交互,获得第一新型秘密分片;其中,第一数据的原始秘密分片包括:由第一设备所持有的第一原始秘密分片,和由第二设备所持有的第二原始秘密分片;第一数密分片包括:由第一设备所持有的第一新型秘密分片,和由第二设备所持有的第二新型秘密分片;第一原始秘密分片和第二原始秘密分片之和等于第一数据;第一新型秘密分片包括:第一数据与第一混淆数据之和,以及第一子数据;第二新型秘密分片包括:第一数据与第一混淆数据之和,以及第二子数据;第一子数据与第二子数据之和等于第一混淆数据。

在一些实施例中,第一数据是指联邦学习过程中,机器学习模型中的模型参数。例如,第一数据为机器学习模型中的某个模型参数。可选地,第一数据在模型训练过程是动态变化的,第一设备在训练过程中的第一数据的第一原始秘密分片进行调整。

在一些实施例中,第一数据的原始秘密分片是对第一数据进行秘密分片后得到的。对第一数据进行秘密分片包括但不限于算数分片和布尔分片。第一数据的原始秘密分片包括第一原始秘密分片和第二原始秘密分片。

可选地,对第一原始秘密分片和第二原始秘密分片进行二进制运算能够得到第一数据。例如,对第一原始秘密分片和第二原始秘密分片进行加法运算(如二进制加法),得到第一数据。假设,第一数据为x,第一设备所持有的第一原始秘密分片为

在一些实施例中,第一子数据用于在生成新型秘密分片的过程中,对第一设备具备的第一原始秘密分片进行加密。在一些实施例中,第二子数据用于在生成新型秘密分片的过程中,对第二设备具备的第二原始秘密分片进行加密。

可选地,第一子数据由第一设备随机生成,第二子数据由第二设备随机生成。且第一子数据和第二子数据互为秘密分片,通过第一子数据和第二子数据能够计算得到第一混淆数据。第一子数据和第二子数据的生成过程请参考下文实施例。

例如,对第一子数据和第二子数据进行加法计算,能够得到第一混淆数据,例如,第一子数据为

在一些实施例中,第一设备基于第一设备拥有的第一原始秘密分片,与第二设备进行交互,获得第一新型秘密分片,包括:第一设备接收第二设备发送的第二子数据和第二原始秘密分片之和;第一设备根据第一原始秘密分片、第一子数据、第二子数据和第二原始秘密分片进行加法运算,得到第一新型秘密分片。

以第二新型秘密分片的生成过程为例,第一设备根据第一子数据和第一原始秘密分片进行运算,得到加密后的第一原始秘密分片;第一设备向第二设备发送加密后的第一原始秘密分片;第二设备在得到加密后的第一原始秘密分片之后,根据加密后的第一原始秘密分片、第二原始秘密分片和第二子数据,确定第一数据与第一混淆数据之和,并根据第一数据与第一混淆数据之和,生成第二新型秘密分片。

第一设备随机选择第一子数据

同理,在第一新型秘密分片的生成过程中,第二设备根据第二子数据和第二原始秘密分片进行运算,得到加密后的第二原始秘密分片;第二设备向第一设备发送加密后的第二原始秘密分片;第二设备在得到加密后的第二原始秘密分片之后,根据加密后的第二原始秘密分片、第一原始秘密分片和第一子数据,确定第一数据与第一混淆数据之和,并根据第一数据与第一混淆数据之和,生成第一新型秘密分片。

第二设备随机选择第二子数据

步骤220,基于第一设备已存储的第二数据与第二混淆数据之和,以及第三子数据和第一新型秘密分片,计算得到第一运算结果;其中,第二数据的原始秘密分片包括:由第一设备所持有的第三原始秘密分片,和由第二设备所持有的第四原始秘密分片;第二数据的新型秘密分片包括:由第一设备所持有的第三新型秘密分片,和由第二设备所持有的第四新型秘密分片;第三原始秘密分片和第四原始秘密分片之和等于第二数据;第三新型秘密分片包括:第二数据与第二混淆数据之和,以及第三子数据;第四新型秘密分片包括:第二数据与第二混淆数据之和,以及第四子数据;第三子数据与第四子数据之和等于第二混淆数据。

在一些实施例中,第二数据属于模型训练使用的特征数据。例如,第二数据是指模型训练过程中,特征数据矩阵中的任一列向量。又例如,第二数据是指模型训练过程中,特征数据矩阵中的任一行向量。

可选地,第二数据包括用户数据。例如,第二数据中包括用户的性别、年龄等。为了避免用户数据泄露,在模型训练过程开始之前,从候选的特征数据中挑选第二数据之后,需要对第二数据进行分片,生成第二数据的原始秘密分片。

在一些实施例中,第二数据的原始秘密分片中包括由第一设备所持有的第三原始秘密分片,和由第二设备所持有的第四原始秘密分片。

可选地,确定模型训练需要使用的第二数据后,第一设备获取到第三原始秘密分片,第二设备获取到第四原始秘密分片。根据第三原始秘密分片和第四原始秘密分片进行计算,能够得到第二数据。例如,第三原始秘密分片为

在一些实施例中,第一设备和第二设备进行PCI-Curcuit,从第一设备提供的ID集合和第二设备提供的ID集合,确定ID交集,并从ID交集中包括的ID对应的用户数据作为特征数据,使用这些特征数据进行基于联邦学习的模型训练。

可选地,特征数据包括:ID交集的第一ID在第一设备中对应的用户数据,以及,第一ID在第二设备中对应的用户数据。例如,第一设备具有第一ID的名称、年龄;第二设备具有第一ID除名称、年龄之外的用户信息,则特征数据包括第一ID的名称、年龄信息、除名称、年龄之外的用户信息。

在一些实施例中,第三子数据用于生成新型秘密分片的过程中,对第三原始秘密分片进行加密处理。在一些实施例中,第四子数据用于在生成新型秘密分片的过程中,对第四原始秘密分片进行加密处理。

可选地,第二数据与第二混淆数据之和的确定过程,在模型训练过程只进行一次。也即第三子数据和第四子数据在模型训练过程中不发生改变,第三子数据和第四子数据的确定方法,请参考下文实施例。

第二数据与第二混淆数据之和的确定方式和第一数据与第一混淆数据之和的确定过程相似。图3是本申请的一个示例性实施例提供的新型秘密分片生成过程的示意图。

第二设备随机选择第四子数据

可选地,在生成第三新型秘密分片后,第一设备存储第三新型秘密分片,在进行矩阵向量乘法的过程中,第一设备从存储空间中读取第三新型秘密分片,确定第二数据与第二混淆数据之和,以及第三子数据。

第二设备生成第四新型秘密分片的过程与第一设备是生成第三新型秘密分片的过程相似,具体请参考上文实施例,在此不进行赘述。

在一些实施例中,第一运算结果用于表征机器学习模型对第二数据的秘密分片的处理结果。在一些实施例中,第一运算结果称为结果分片。

有关第一设备基于已存储的第二数据与第二混淆数据之和,以及第三子数据和第一新型秘密分片,计算得到第一运算结果的具体过程请参考下文实施例。

步骤230,根据第一运算结果,对第一设备拥有的机器学习模型的部分模型参数进行调整;其中,部分模型参数包括至少一个第一原始秘密分片。

在一些实施例中,在生成第一运算结果后,第一设备根据第一运算结果对第一设备拥有的机器学习模型的部分模型参数进行调整。

可选地,第二数据是特征数据对应的特征矩阵中的一个列向量,在确定出该特征矩阵中的至少一个列向量分别对应的第一运算结果后,第一设备根据列向量对应的第一运算结果,计算机器学习模型的训练损失,并根据训练损失,对机器学习模型的模型参数进行调整。

在一些实施例中,上文出现第一原始秘密分片为第一设备具有的机器学习模型中的模型参数。也即,第一设备根据训练损失,对至少一个第一原始秘密分片进行处理,完成一次训练过程。

在一些实施例中,在第一设备对机器学习模型进行的训练过程的次数小于阈值的情况下(也即计算第一运算结果的次数小于或者等于阈值),第一设备在对模型参数进行调整后,基于调整后的第一原始秘密分片,重新计算第一运算结果,并根据第一运算结果再次对模型参数进行调整。直到第一设备对机器学习模型进行的训练过程的次数等于阈值,第一设备停止对机器学习模型进行训练。阈值的具体数值根据实际需要进行确定,本申请在此不进行设定。

需要说明,第一设备可以是发起方(Guest),也可以是主机方(Host)。

综上所述,相比于每轮数据运算过程中,进行联邦学习的两个设备都需要进行交互生成特征数据对应的秘密分片,本方法中使用了新型秘密分片参与数据运算,参与数据运算的部分数据对应的新型数据分片,无需再每轮数据运算通过两个设备进行交互重新生成。通过这种方法,减轻了模型训练过程中两方设备的交互次数,减少了模型训练方法消耗的通信量。另外,由于部分数据对应的新型数据分片可以多次使用,因此本方法还有助于减少模型训练过程中的计算量,有助于缩短模型训练耗时。

下面通过几个实施例对第一运算结果的计算方法进行介绍说明。

在一些实施例中,第一设备基于第一设备已存储的第二数据与第二混淆数据之和,以及第三子数据和第一新型秘密分片,计算得到第一运算结果,包括:第一设备计算第一数据与第一混淆数据之和,与第三子数据的乘积,得到第一乘积结果;第一设备计算第二数据与第二混淆数据之和,与第一子数据的乘积,得到第二乘积结果;第一设备根据第一乘积结果、第二乘积结果和第一预计算结果,计算得到第一运算结果;其中,第一预计算结果是基于第一子数据和第三子数据预计算得到的。

有关第一数据、第一混淆数据和第三子数据详细内容请参考上文实施例。在一些实施例中,第一预计算结果是第一设备在预计算过程中,根据第一子数据和第三子数据进行运算得到的。

由上述内容可知,第一设备在模型训练过程中需要确定一次第二数据与第二混淆数据之和,也即在模型训练过程中,第一设备和第二设备在确定第二数据与第二混淆数据之和时只需要进行两次交互过程,此后,第一设备和第二设备分别存储第二数据与第二混淆数据,在需要使用第二数据与第二混淆数据时直接调用,通过这种方法减少了第一设备和第二设备之间通信开销,有助提升模型的训练效率。

下面通过一个实施例对第一运算结果的确定方法进行介绍说明。

假设第一设备为主机方设备,第一数据与第一混淆数据之和表示为

主机方设备对应的第一运算结果

通过上述方法单侧计算第一运算结果,有助于减少机器学习模型训练过程中,第一设备和第二设备之间进行通信的次数,有助于提升机器学习模型的训练效率。

在一些实施例中,方法还包括:第一设备计算第一数据与第一混淆数据之和,与第二数据与第二混淆数据之和的乘积,得到目标乘积结果;第一设备根据第一乘积结果、第二乘积结果和第一预计算结果,计算得到第一运算结果,包括:根据目标乘积结果、第一乘积结果、第二乘积结果和第一预计算结果,计算得到第一运算结果。

在一些实施例中,第一数据与第一混淆数据之和表示为

第一数据与第一混淆数据之和与第二数据与第二混淆数据之和的确定过程,请参考上文实施例,在此不进行赘述。

在一些实施例中,第一设备计算目标乘积结果减去第一乘积结果加上第二乘积结果减去第一预计算结果的运算结果,并将该运算结果作为第一运算结果。

下面通过一个实施例对第一运算结果的确定方法进行介绍说明。

假设第一设备为发起方设备,第一数据与第一混淆数据之和表示为

则发起方设备对应的第一运算结果

通过上述方法单侧计算第一运算结果,有助于减少机器学习模型训练过程中,第一设备和第二设备之间进行通信的次数,有助于提升机器学习模型的训练效率。

通过上文两个实施例中提供的第一运算结果的运算方法,提供了主机方设备、发起方设备在进行基于联邦学习的模型训练过程中进行两方分片矩阵向量乘法运算的方法,在模型学习过程减少了两方设备的通信开销。

在概率分布预测中,通常需要使用模型参数对特征数据进行特征提取,生成特征数据。在此过程中,模型参数可以以向量的形式表示x,特征数据可以矩阵形式表示A,模型参数x对特征矩阵A进行特征提取的处理结果可以表示成为A*x。在一些情况下,发起方设备具有得到数据类型有限,需要使用其他设备如主机设备中的数据,对机器学习模型进行训练。为了保证用户隐私,发起方设备不能直接使用主机设备中的用户数据。通过进行联邦学习,使得发起方设备无需确切地得到主机设备中的用户数据,能够进行机器学习模型的训练。具体地,在模型训练过程中,发起方设备计算得到的第一运算结果和主机设备计算得到的第一运算结果能够得到A*x。

下面通过几个实施例对进行矩阵向量运算的预计算阶段进行介绍说明。

在一些实施例中,基于第一设备拥有的第一原始秘密分片,与第二设备进行交互,获得第一新型秘密分片之前,还包括:第一设备与第二设备进行交互,基于不经意线性评估方式得到第一随机参数集和第二随机参数集;其中,第一随机参数集包括:由第一设备所持有的第一随机参数和第二随机参数,以及由第二设备所持有的第三随机参数和第四随机参数,且第一随机参数、第二随机参数、第三随机参数和第四随机参数之间满足第一等式条件;第二随机参数集包括:由第二设备所持有的第五随机参数和第六随机参数,以及由第一设备所持有的第七随机参数和第八随机参数,且第五随机参数、第六随机参数、第七随机参数和第八随机参数之间满足第二等式条件;第一设备将第一随机参数确定为第三子数据,以及将第七随机参数确定为第一子数据;第一设备将根据第一随机参数、第二随机参数、第七随机参数和第八随机参数,计算得到第一预计算结果。

在一些实施例中,第一设备与第二设备进行交互,基于不经意线性评估方式得到第一随机参数集和第二随机参数集,包括:第一设备发起不经意线性评估,生成第一随机参数集,第一设备根据由第二设备发起的不经意线性评估方式,生成第二随机参数集。

第一随机参数以向量形式表示、第二随机参数以向量形式表示、第三随机参数为标量数值和第四随机参数以向量形式表示。

下面,以第一设备发起不经意线性评估,生成第一随机参数集为例,对该过程进行介绍说明。

在一些实施例中,第一设备随机生成第一随机参数,第一设备将第一随机参数进行加密后,将加密后的第一随机参数向第二设备发送。第二设备对加密后的第一随机参数进行解密,根据第一随机参数生成第三随机参数和第四随机参数。第二设备向第一设备发送加密后的第三随机参数和第四随机参数;第一设备对加密后的第三随机参数和第四随机参数进行解密,并根据第一随机参数、第三随机参数和第四随机参数和第一等式条件,生成第二随机参数。

可选地,不经意线性评估称为向量不经意线性评估。

在一个示例中,第一设备发起向量不经意线性评估,则第一设备得到

在一个示例中,第二设备发起向量不经意线性评估,则第一设备得到

在一些实施例中,预计算阶段在确定新型秘密分片之前进行。可选地,在模型训练过程中,第一设备需要使用包括第一子数据和第三子数据在内的多组参数数据。第一设备和第二设备在预计算阶段中确定,模型训练过程中需要使用的全部随机参数。

通过进行预计算,使得在设备进行矩阵向量乘法的过程中能够直接使用随机参数,有助于提升模型训练过程的效率。

在一些实施例中,第一等式条件为:第一随机参数与第三随机参数之积,与第二随机参数的和,等于第四随机参数。

可选地,第一等式条件通过以下公式表示:

在一些实施例中,第二等式条件为:第五随机参数与第七随机参数之积,与第六随机参数的和,等于第八随机参数。

可选地,第二等式条件通过以下公式表示:

在一些实施例中,第一设备根据第一随机参数、第二随机参数、第七随机参数和第八随机参数,计算得到第一预计算结果,包括:第一设备将第一随机参数与第七随机参数之积,减去第二随机参数,加上第八随机参数,得到第一预计算结果。

可选地,第一预计算结果通过以下公式表示:

其中,

在一些实施例中,第一设备与第二设备进行交互,基于不经意线性评估方式得到第一随机参数集和第二随机参数集,包括:第一设备随机生成第一随机参数;第一设备向第二设备发送加密后的第一随机参数,并接收第二设备发送的第一加密数据;其中,第一加密数据用于表征

在一些实施例中,第一设备与第二设备基于不经意线性评估方式进行交互的过程中,只生成一个第一随机参数,并生成

第一数据在模型迭代过程中会发生变化,因此每次矩阵向量乘法最好只对x的秘密分片进行新型秘密分片的转换,特征数据A的每个第二数据

通过上述方法通过预计算随机向量将矩阵分片预先处理后,分片矩阵向量乘法的通信开销仅与矩阵的列数相关,有助于提升模型训练的效率。

在一些实施例中,第一数据为第一向量中的一个元素,第二数据为第一矩阵中的一个向量;方法还包括:第一设备根据第一向量中的各个元素与第一矩阵中的各个列向量的乘积运算结果,得到第一向量和第一矩阵的乘积运算结果。

在一些实施例中,第一数据为第二矩阵中的一个元素,第二数据为第一矩阵中的一个向量;方法还包括:第一设备根据第二矩阵中包括的各个向量中的各个元素与第一矩阵中的各个列向量的乘积运算结果,得到第一矩阵和第二矩阵的乘积运算结果。也即,本方法不仅能应用在需要进行矩阵向量乘法的模型训练过程中,也能用于进行矩阵和矩阵的乘法的模型训练过程中。

在一些实施例中,第一设备根据第一运算结果,对第一设备拥有的机器学习模型的部分模型参数进行调整,包括:第一设备对至少一个第一运算结果进行结果预测,得到针对第二数据的预测结果;第一设备根据第二数据的预测结果和第二数据的标签分片,确定机器学习模型的训练损失;第一设备根据训练损失,对第一设备拥有的机器学习模型的部分模型参数进行调整。

有关该过程的具体内容请请参考上文实施例,在此不进行赘述。

在一些实施例中,第一数据为机器学习模型的模型参数;第二数据为机器学习模型的训练数据;其中,第二数据包括:来自第一设备对应的数据源的训练数据,以及来自第二设备对应的数据源的训练数据,且第一设备对应的数据源和第二设备对应的数据源各自均不对外公开。

可选地,训练数据称为特征数据。

在一些实施例中,来自第一设备对应的数据源的训练数据,包括:至少一个对象在支付应用中的交易数据;来自第二设备对应的数据源的训练数据,包括:至少一个对象在支付应用之外的其他应用中的属性数据和行为数据。

在一些实施例中,交易数据用于表征对象的交易新型,支付应用用于进行移动支付活动。属性数据用于对象的属性信息,属性数据包括对象的年龄等。行为数据用于表征对象进行的行为,如行为数据中包括对象的用户数据等。可选地,第一设备对应的数据源包括第一应用程序中的数据,第二设备对应的数据源包括第二应用程序中的数据,第一应用程序和第二应用程序不相同,且两个应用程序中的用户不共享。

机器学习模型用于根据对象的交易数据、属性数据和行为数据,确定对象的风险评估结果。

图5是本申请一个示例性实施例提供的矩阵向量乘法运算过程的示意图。图5中第一设备Guest,第二设备为Host。

第二数据

1、预计算:Guest和Host执行两次VOLE,分别得到

a)Guest和Host执行VOLE,则Guest得到

b)Host和Guest执行VOLE,则Guest得到

c)Guest令

d)Host令

2、Guest和Host交互,将 的原始秘密分片

3、Guest计算

4、Host计算

5、Guest令

该流程需要将

下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。

图6示出了本申请一个示例性实施例提供的基于联邦学习的模型训练装置的框图。该装置可以通过软件、硬件或者两者的结合实现成为第一设备的全部或一部分,所述第一设备和第二设备基于联邦学习对机器学习模型进行训练。该装置600可以包括:分片生成模块610、结果运算模块620和参数调整模块630。

分片生成模块610,用于基于所述第一设备拥有的第一原始秘密分片,与所述第二设备进行交互,获得第一新型秘密分片;其中,第一数据的原始秘密分片包括:由所述第一设备所持有的所述第一原始秘密分片,和由所述第二设备所持有的第二原始秘密分片;所述第一数据的新型秘密分片包括:由所述第一设备所持有的所述第一新型秘密分片,和由所述第二设备所持有的第二新型秘密分片;所述第一原始秘密分片和所述第二原始秘密分片之和等于所述第一数据;所述第一新型秘密分片包括:所述第一数据与第一混淆数据之和,以及第一子数据;所述第二新型秘密分片包括:所述第一数据与第一混淆数据之和,以及第二子数据;所述第一子数据与所述第二子数据之和等于所述第一混淆数据。

结果运算模块620,用于基于所述第一设备已存储的第二数据与第二混淆数据之和,以及第三子数据和所述第一新型秘密分片,计算得到第一运算结果;其中,所述第二数据的原始秘密分片包括:由所述第一设备所持有的第三原始秘密分片,和由所述第二设备所持有的第四原始秘密分片;所述第二数据的新型秘密分片包括:由所述第一设备所持有的第三新型秘密分片,和由所述第二设备所持有的第四新型秘密分片;所述第三原始秘密分片和所述第四原始秘密分片之和等于所述第二数据;所述第三新型秘密分片包括:所述第二数据与第二混淆数据之和,以及所述第三子数据;所述第四新型秘密分片包括:所述第二数据与第二混淆数据之和,以及第四子数据;所述第三子数据与所述第四子数据之和等于所述第二混淆数据。

参数调整模块630,用于根据所述第一运算结果,对所述第一设备拥有的所述机器学习模型的部分模型参数进行调整;其中,所述部分模型参数包括至少一个所述第一原始秘密分片。

在一些实施例中,所述结果运算模块620,用于计算所述第一数据与第一混淆数据之和,与所述第三子数据的乘积,得到第一乘积结果;计算所述第二数据与第二混淆数据之和,与所述第一子数据的乘积,得到第二乘积结果;根据所述第一乘积结果、所述第二乘积结果和第一预计算结果,计算得到所述第一运算结果;其中,所述第一预计算结果是基于所述第一子数据和所述第三子数据预计算得到的。

在一些实施例中,所述结果运算模块620,用于计算所述第一数据与第一混淆数据之和,与所述第二数据与第二混淆数据之和的乘积,得到目标乘积结果;所述根据所述第一乘积结果、所述第二乘积结果和第一预计算结果,计算得到所述第一运算结果,包括:根据所述目标乘积结果、所述第一乘积结果、所述第二乘积结果和所述第一预计算结果,计算得到所述第一运算结果。

在一些实施例中,所述装置600还包括:参数交互模块,用于与所述第二设备进行交互,基于不经意线性评估方式得到第一随机参数集和第二随机参数集;其中,所述第一随机参数集包括:由所述第一设备所持有的第一随机参数和第二随机参数,以及由所述第二设备所持有的第三随机参数和第四随机参数,且所述第一随机参数、所述第二随机参数、所述第三随机参数和所述第四随机参数之间满足第一等式条件;所述第二随机参数集包括:由所述第二设备所持有的第五随机参数和第六随机参数,以及由所述第一设备所持有的第七随机参数和第八随机参数,且所述第五随机参数、所述第六随机参数、所述第七随机参数和所述第八随机参数之间满足第二等式条件;数据确定模块,用于将所述第一随机参数确定为所述第三子数据,以及将所述第七随机参数确定为所述第一子数据;预计算模块,用于根据所述第一随机参数、所述第二随机参数、所述第七随机参数和所述第八随机参数,计算得到第一预计算结果。

在一些实施例中,所述第一等式条件为:所述第一随机参数与所述第三随机参数之积,与所述第二随机参数的和,等于所述第四随机参数;所述第二等式条件为:所述第五随机参数与所述第七随机参数之积,与所述第六随机参数的和,等于所述第八随机参数。

在一些实施例中,所述预计算模块,用于将所述第一随机参数与所述第七随机参数之积,减去所述第二随机参数,加上所述第八随机参数,得到所述第一预计算结果。

在一些实施例中,所述参数交互模块,用于:随机生成所述第一随机参数;向所述第二设备发送加密后的第一随机参数,并接收所述第二设备发送的第一加密数据;其中,所述第一加密数据用于表征

根据所述加密后的第五随机数据,生成

在一些实施例中,所述第一数据为第一向量中的一个元素,所述第二数据为第一矩阵中的一个向量;所述装置600还包括:乘积运算模块,用于根据所述第一向量中的各个元素与所述第一矩阵中的各个列向量的乘积运算结果,得到所述第一向量和所述第一矩阵的乘积运算结果。

在一些实施例中,所述参数调整模块630,用于:至少一个所述第一运算结果进行结果预测,得到针对所述第二数据的预测结果;根据所述第二数据的预测结果和所述第二数据的标签分片,确定所述机器学习模型的训练损失;根据所述训练损失,对所述第一设备拥有的所述机器学习模型的部分模型参数进行调整。

在一些实施例中,所述第一数据为所述机器学习模型的模型参数;所述第二数据为所述机器学习模型的训练数据;其中,所述第二数据包括:来自所述第一设备对应的数据源的训练数据,以及来自所述第二设备对应的数据源的训练数据,且所述第一设备对应的数据源和所述第二设备对应的数据源各自均不对外公开。

在一些实施例中,来自所述第一设备对应的数据源的训练数据,包括:至少一个对象在支付应用中的交易数据;来自所述第二设备对应的数据源的训练数据,包括:至少一个对象在所述支付应用之外的其他应用中的属性数据和行为数据;所述机器学习模型用于根据所述对象的交易数据、属性数据和行为数据,确定所述对象的风险评估结果。

需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内容结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。上述实施例提供的装置的有益效果请参考方法侧实施例的描述,这里也不再赘述。

图7示出了本申请一个示例性实施例提供的计算机设备的结构框图。该计算机设备700可以是上文介绍的第一设备,也可以是上文介绍的第二设备。

通常,计算机设备700包括有:处理器701和存储器702。

处理器701可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器701可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(FieldProgrammable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器701也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器701可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器701还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。

存储器702可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是有形的和非暂态的。存储器702还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器702中的非暂态的计算机可读存储介质存储有至少一条指令、至少一段程序、代码集或指令集,该至少一条指令、至少一段程序、代码集或指令集由处理器701加载并执行以实现上述各方法实施例提供的基于联邦学习的模型训练方法。

本申请实施例还提供一种计算机可读存储介质,该存储介质中存储有计算机程序,所述计算机程序由处理器加载并执行以实现上述各方法实施例提供的基于联邦学习的模型训练方法。

该计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。计算机存储介质包括RAM、ROM、EPROM(Erasable Programmable Read-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically Erasable Programmable Read-Only Memory,电可擦写可编程只读存储器)、闪存或其他固态存储技术,CD-ROM、DVD(Digital Video Disc,高密度数字视频光盘)或其他光学存储、磁带盒、磁带、磁盘存储或其他磁性存储设备。当然,本领域技术人员可知该计算机存储介质不局限于上述几种。

本申请实施例还提供一种计算机程序产品,所述计算机程序产品包括计算机指令,所述计算机指令存储在计算机可读存储介质中,处理器从所述计算机可读存储介质读取并执行所述计算机指令,以实现上述各方法实施例提供的基于联邦学习的模型训练方法。

应当理解的是,在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。

需要说明的是,本申请所涉及的用户数据,以及信号,均为经用户授权或者经过各方充分授权的,且相关数据的收集、使用和处理需要遵守相关国家和地区的相关法律法规和标准。例如,本申请中涉及到的用户数据都是在充分授权的情况下获取的。

以上所述仅为本申请的可选实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同切换、改进等,均应包含在本申请的保护范围之内。

技术分类

06120115638268