CN110929886B - 模型训练、预测方法及其*** - Google Patents

模型训练、预测方法及其*** Download PDF

Info

Publication number
CN110929886B
CN110929886B CN201911248776.4A CN201911248776A CN110929886B CN 110929886 B CN110929886 B CN 110929886B CN 201911248776 A CN201911248776 A CN 201911248776A CN 110929886 B CN110929886 B CN 110929886B
Authority
CN
China
Prior art keywords
training
model
nodes
layer
output
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201911248776.4A
Other languages
English (en)
Other versions
CN110929886A (zh
Inventor
郑龙飞
陈超超
王力
周俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Alipay Hangzhou Information Technology Co Ltd
Original Assignee
Alipay Hangzhou Information Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alipay Hangzhou Information Technology Co Ltd filed Critical Alipay Hangzhou Information Technology Co Ltd
Priority to CN201911248776.4A priority Critical patent/CN110929886B/zh
Publication of CN110929886A publication Critical patent/CN110929886A/zh
Application granted granted Critical
Publication of CN110929886B publication Critical patent/CN110929886B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本说明书中的实施例提供了模型训练、预测方法及其***。模型被划分成本地模型和中心节点模型,各训练节点训练相同结构的本地模型,中心节点训练中心节点模型。训练过程中,各训练节点将训练样本的特征值拆分以获得特征值分片,互相交换特征值分片,基于交换结果及本地模型的第一模型参数通过秘密共享算法计算本地模型的第一输出分片,将第一输出分片发送给中心节点。中心节点基于同一样本ID对应的各训练节点的第一输出分片计算第一输入,基于同一样本ID对应的第一输入和样本标签训练中心节点模型,向各训练节点反馈中心节点模型输入层的目标梯度。各训练节点基于目标梯度更新本地模型参数。如此,可以保护数据隐私。

Description

模型训练、预测方法及其***
技术领域
本说明书实施例涉及信息技术领域,特别涉及模型训练、预测方法及其***。
背景技术
随着人工智能技术的发展,机器学习模型已逐渐应用于风险评估、语音识别、自然语言处理等领域。在医疗、金融等领域,不同的企业或机构拥有不同的样本数据,若将这些样本数据进行联合训练,可以有效提升模型精度,给企业带来巨大的经济效益。然而,不同的企业或机构各自拥有的样本数据包含大量的用户隐私甚至商业机密,一旦样本数据泄露,将导致一系列负面影响。
因此,目前希望提供一种能够有效保护用户数据隐私的联合训练方案。
发明内容
本说明书实施例之一提供一种模型训练方法,其中,所述方法由N个训练节点中的某一训练节点执行,N为大于1的整数;所述N个训练节点均与中心节点通信连接,N个训练节点具有训练样本的样本ID对应相同的训练集,至少一个训练节点的训练集具有与其他训练节点不同的特征项;所述方法包括:确定所述训练集的维度数据;与中心节点和/或其他N-1个训练节点交互所述维度数据,以确定待训练的本地模型的模型结构;基于所述模型结构确定第一模型参数;将训练样本的特征值拆分以获得特征值分片;与其他N-1个训练节点交换特征值分片;基于交换结果及第一模型参数通过秘密共享算法计算本地模型的第一输出分片;将所述第一输出分片发送给所述中心节点;接收所述中心节点反馈的目标梯度;基于所述目标梯度对所述本地模型的参数进行更新。
本说明书实施例之一提供一种模型训练***,其中,所述***对应于N个训练节点中的某一训练节点,N为大于1的整数;所述N个训练节点均与中心节点通信连接,N个训练节点具有训练样本的样本ID对应相同的训练集,至少一个训练节点的训练集具有与其他训练节点不同的特征项;所述***包括:维度数据确定模块,用于确定所述训练集的维度数据;本地模型结构确定模块,用于与中心节点和/或其他N-1个训练节点交互所述维度数据,确定待训练的本地模型的模型结构;第一模型参数确定模块,用于基于所述模型结构确定第一模型参数;特征值拆分模块,用于拆分训练样本的特征值,获得特征值分片;特征值分片交换模块,用于与其他N-1个训练节点交换特征值分片;第一输出分片计算模块,用于基于交换结果及第一模型参数,通过秘密共享算法计算本地模型的第一输出分片;第一输出分片发送模块,用于将所述第一输出分片发送给中心节点;目标梯度反馈模块,用于接收所述中心节点反馈的目标梯度;本地模型参数更新模块,用于基于所述目标梯度对本地模型的参数进行更新。
本说明书实施例之一提供一种模型训练装置,其中,所述装置包括处理器以及存储器,所述存储器用于存储指令;所述指令被所述处理器执行时,实现如本说明书任一实施例所述的由训练节点执行的模型训练方法。
本说明书实施例之一提供一种模型训练方法,其中,所述方法由中心节点执行,所述中心节点与N个训练节点通信连接,N为大于1的整数,所述方法包括:基于训练节点的待训练本地模型的输出层节点数,确定中心节点模型的模型结构;接收所述N个训练节点发送的第一输出分片;接收训练节点发送的训练样本的样本标签;基于所述N个训练节点发送的同一样本ID对应的第一输出分片,计算第一输入;基于同一样本ID对应的第一输入和样本标签训练中心节点模型;确定所述中心节点模型的输入层的目标梯度;向N个训练节点反馈所述目标梯度。
本说明书实施例之一提供一种模型训练***,其中,所述***对应于中心节点,所述中心节点与N个训练节点通信连接,N为大于1的整数;所述***包括:中心点模型结构确定模块,用于基于训练节点的待训练本地模型的输出层节点数,确定中心点模型的结构;第一输出分片接收模块,用于接收所述N个训练节点发送的第一输出分片;样本标签接收模块,用于接收训练节点发送的训练样本的样本标签;第一输入计算模块,用于基于所述N个训练节点发送的同一样本ID对应的第一输出分片,计算第一输入;模型训练模块,用于基于同一样本ID对应的第一输入和样本标签训练中心节点模型;目标梯度确定模块,用于确定所述中心节点模型的输入层的目标梯度;目标梯度反馈模块,向N个训练节点反馈所述目标梯度。
本说明书实施例之一提供一种模型训练装置,其中,所述装置包括处理器以及存储器,所述存储器用于存储指令;所述指令被所述处理器执行时,实现如本说明书任一实施例所述的由中心节点执行的模型训练方法。
本说明书实施例之一提供一种模型预测方法,其中,所述方法由N个训练节点中的某一训练节点执行,N为大于1的整数;所述N个训练节点均与中心节点通信连接,N个训练节点具有各自的第一模型参数,所述方法包括:获取待预测对象的特征值;将特征值拆分以获得特征值分片;与其他N-1个训练节点交换所述待预测对象的特征值分片;基于交换结果及第一模型参数通过秘密共享算法计算本地模型的第一预测分片;将所述第一预测分片发送给所述中心节点。
本说明书实施例之一提供一种模型预测***,其中,所述***对应于N个训练节点中的某一训练节点,N为大于1的整数;所述N个训练节点均与中心节点通信连接,N个训练节点具有各自的第一模型参数,所述***包括:特征值获取模块,用于获取待预测对象的特征值;特征值拆分模块,用于将特征值拆分以获得特征值分片;特征值分片交换模块,用于与其他N-1个训练节点交换所述待预测对象的特征值分片;第一预测分片计算模块,用于基于交换结果及第一模型参数通过秘密共享算法计算本地模型的第一预测分片;第一预测分片发送模块,用于将所述第一预测分片发送给所述中心节点。
本说明书实施例之一提供一种模型预测装置,其中,所述装置包括处理器以及存储器,所述存储器用于存储指令;所述指令被所述处理器执行时,实现如本说明书任一实施例所述的由训练节点执行的模型预测方法。
本说明书实施例之一提供一种模型预测方法,其中,所述方法由中心节点执行,所述中心节点与N个训练节点通信连接,N为大于1的整数,所述方法包括:接收所述N个训练节点发送的第一预测分片,所述第一预测分片对应同一个待预测对象;基于所述N个训练节点发送的第一预测分片,计算第一输入;利用中心节点模型处理第一输入,获得预测结果。
本说明书实施例之一提供一种模型预测***,其中,所述***对应于中心节点,所述中心节点与N个训练节点通信连接,N为大于1的整数,所述***包括:第一预测分片接收模块,用于接收所述N个训练节点发送的第一预测分片,所述第一预测分片对应同一个待预测对象;第一输入计算模块,用于基于所述N个训练节点发送的第一预测分片,计算第一输入;预测模块,用于利用中心节点模型处理第一输入,获得预测结果。
本说明书实施例之一提供一种模型预测装置,所述装置包括处理器以及存储器,所述存储器用于存储指令;所述指令被所述处理器执行时,实现如本说明书任一实施例所述的由中心点执行的模型预测方法。
附图说明
本说明书将以示例性实施例的方式进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1为根据本说明书一些实施例所示的机器学习***的应用场景示意图;
图2为根据本说明书一些实施例所示的多个数据提供方的交集样本ID的示意图;
图3为根据本说明书一些实施例所示的模型训练***的示例性框图;
图4为根据本说明书一些实施例所示的模型训练方法的示例性流程图;
图5为根据本说明书一些实施例所示的特征值拆分示意图;
图6为根据本说明书一些实施例所示的计算第一输出分片的示例性流程图;
图7为根据本说明书一些实施例所示的模型训练***的示例性框图;
图8为根据本说明书一些实施例所示的模型训练方法的示例性流程图;
图9为根据本说明书一些实施例所示的模型预测***的示例性框图;
图10为根据本说明书一些实施例所示的模型预测方法的示例性流程图;
图11为根据本说明书一些实施例所示的模型预测***的示例性框图;
图12为根据本说明书一些实施例所示的模型预测方法的示例性流程图;
图13为根据本说明书一些实施例所示的矩阵乘法的秘密共享算法的示例性流程图。
具体实施方式
为了更清楚地说明本说明书实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本说明书的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本说明书应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“***”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本说明书和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本说明书中使用了流程图用来说明根据本说明书的实施例的***所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些过程中,或从这些过程移除某一步或数步操作。
图1为根据本说明书一些实施例所示的机器学习***的应用场景示意图。如图1所示,机器学习***100可以包括N个训练节点110和中心节点120,N为大于1的整数。N个训练节点110均与中心节点120通信连接。
训练节点110可以指参与联合训练的任一数据提供方的计算设备。在一些实施例中,数据提供方可以指企业、机构、组织、个人等。各数据提供方拥有样本ID对应相同的至少部分样本数据(以下称为交集ID样本数据),至少一个数据提供方的交集ID样本数据具有与其他训练节点不同的特征项。需要注意的是,至少一个数据提供方拥有交集ID样本数据的样本标签,以在联合训练时提供样本标签。在一些实施例中,样本ID可以包括具有标识作用的特征项,例如,身份证号码、电话号码等。在一些实施例中,样本ID也可以是为每个样本单独生成的编号。在一些实施例中,交集ID样本数据可以被划分成训练集和测试集。其中,训练集可以用于模型调参,测试集用于可以测试调参后的模型。在一些实施例中,测试集可以进一步划分。
仅作为示例,如图2所示,数据提供方A、B、C各自的所有样本ID的交集部分(用阴影标注)即为数据提供方A、B、C的交集样本ID。数据提供方A、B、C各自的交集ID样本数据可以具有不同的特征项,例如,数据提供方A的交集ID样本数据具有特征项a1、a2...,数据提供方B的交集ID样本数据具有特征项b1、b2…,数据提供方C的交集ID样本数据具有特征项c1、c2...。应当理解,各数据提供方的交集ID样本数据的部分特征项可以相同,例如,数据提供方A和B的交集ID样本数据都可以具有特征项a1。如此,各数据提供方通过提供不同特征项的交集ID样本数据进行联合训练,可以有效提高训练出的模型的性能。
在一些实施例中,多个数据提供方的训练节点可以通过PSI协议,在确保各自数据不被公开的前提下获得各自的交集ID样本数据集。
在一些实施例中,训练节点110可以是数据提供方的一台计算设备。在一些实施例中,训练节点110可以属于数据提供方的计算集群。
中心节点120可以指联合训练中输出预测结果的平台方的服务器。在一些实施例中,平台方可以指企业、机构、组织等。完整的模型可以被划分成本地模型和中心节点模型两部分,参与联合训练的每个数据可以拥有方的训练节点获得相同结构的本地模型副本,参与联合训练的中心节点获得中心节点模型,中心节点和数据提供方的训练节点分别负责训练各自获得的模型部分。在训练阶段,各数据提供方的训练节点分别向中心节点发送本地模型输出的中间结果分片,其中,拥有样本标签的数据提供方的训练节点还需向中心节点发送样本标签。中心节点可以基于各训练节点发送的中间结果分片得到完整模型的中间结果并以该中间结果为输入对中心节点模型进行训练,以及在训练过程中向各训练节点反馈用于更新本地模型参数的目标梯度。类似地,在预测阶段,各数据提供方的训练节点分别向中心节点发送训练好的本地模型输出的中间结果分片,中心节点基于各训练节点发送的中间结果分片得到训练好的中心节点模型的输入,并获得训练好的中心节点模型输出的预测结果。如此,无论在训练阶段还是预测阶段,数据提供方的训练节点传输出去的是中间结果分片而不是样本或预测对象的原始特征,并且即使中间结果分片发生泄露也难以反推出相应的原始特征,从而实现了训练/预测数据不出域,可以有效保护用户的数据隐私。
服务器可以是独立的服务器或者服务器组,该服务器组可以是集中式的或者分布式的。在一些实施例中,该服务器可以是区域的或者远程的。在一些实施例中,服务器可在云平台上执行。例如,该云平台可包括私有云、公共云、混合云、社区云、分散式云、内部云等中的一种或其任意组合。
网络130可促进数据和/或信息的交换。在一些实施例中,机器学习***100中的训练节点110之间或训练节点110和中心节点120之间可通过网络130交换数据和/或信息(例如,维度数据、中间结果分片、样本标签、目标梯度等)。在一些实施例中,网络130可是任意类型的有线或无线网络。例如,网络130可包括缆线网络、有线网络、光纤网络、电信网络、内部网络、网际网络、区域网络(LAN)、广域网络(WAN)、无线区域网络(WLAN)、都会区域网络(MAN)、公共电话交换网络(PSTN)、蓝牙网络、ZigBee网络、近场通讯(NFC)网络等或以上任意组合。在一些实施例中,网络130可包括一个或多个网络进出点。例如,网络130可包含有线和/或无线网络进出点,如基站和/或多个网际网络交换点130-1、130-2,通过这些进出点,机器学习***100的一个或多个组件可连接到网络130上以交换数据和/或信息。
图3为根据本说明书一些实施例所示的模型训练***的示例性流程图。该***300与N个训练节点110中的某一训练节点110对应。在一些实施例中,该***300可以包括维度数据确定模块310、本地模型结构确定模块320、第一模型参数确定模块330、特征值拆分模块340、特征值分片交换模块350、第一输出分片计算模块360、第一输出分片发送模块370、目标梯度获取模块380和本地模型参数更新模块390。
在一些实施例中,维度数据确定模块310可以用于确定训练集的维度数据。关于维度数据确定模块310的具体实施方式,可以参考图4披露的步骤410的相关描述。即,步骤410可由维度数据确定模块310执行。
在一些实施例中,本地模型结构确定模块320可以用于与中心节点和/或其他N-1个训练节点交互维度数据,以确定待训练的本地模型的模型结构。关于本地模型结构确定模块320的具体实施方式,可以参考图4披露的步骤420的相关描述。即,步骤420可由本地模型结构确定模块320执行。
在一些实施例中,第一模型参数确定模块330可以基于所述模型结构确定第一模型参数。关于第一模型参数确定模块330的具体实施方式,可以参考图4披露的步骤430的相关描述。即,步骤430可由第一模型参数确定模块330执行。
在一些实施例中,特征值拆分模块340可以用于拆分训练样本的特征值,以获得特征值分片。关于特征值拆分模块340的具体实施方式,可以参考图4披露的步骤440的相关描述。即,步骤440可由特征值拆分模块340执行。
在一些实施例中,特征值分片交换模块350可以用于与其他N-1个训练节点交换特征值分片。关于特征值分片交换模块350的具体实施方式,可以参考图4披露的步骤450的相关描述。即,步骤450可由特征值分片交换模块350执行。
在一些实施例中,第一输出分片计算模块360可以用于基于交换结果及第一模型参数,通过秘密共享算法计算本地模型的第一输出分片。关于第一输出分片计算模块360的具体实施方式,可以参考图4披露的步骤460的相关描述。即,步骤460可由第一输出分片计算模块360执行。
在一些实施例中,第一输出分片发送模块370可以用于将第一输出分片发送给中心节点。关于第一输出分片发送模块370的具体实施方式,可以参考图4披露的步骤470的相关描述。即,步骤470可由第一输出分片发送模块370执行。
在一些实施例中,目标梯度获取模块380可以用于接收中心节点反馈的目标梯度。关于目标梯度获取模块380的具体实施方式,可以参考图4披露的步骤480的相关描述。即,步骤480可由目标梯度获取模块380执行。
在一些实施例中,本地模型参数更新模块390可以用于基于目标梯度对本地模型的参数进行更新。关于本地模型参数更新模块390的具体实施方式,可以参考图4披露的步骤490的相关描述。即,步骤490可由本地模型参数更新模块390执行。
图4为根据本说明书一些实施例所示的模型训练方法的示例性流程图。该流程400可以由N个训练节点110中的某一训练节点110执行。该流程400可以包括:
步骤410,确定训练集的维度数据。在一些实施例中,步骤410可以由维度数据确定模块310执行。
在一些实施例中,训练集的维度数据可以包括训练集的样本数量和/或每个样本的特征数量。
步骤420,与中心节点和/或其他N-1个训练节点交互维度数据,以确定待训练的本地模型的模型结构。在一些实施例中,步骤420可以由本地模型结构确定模块320执行。
节点可以确定本地模型的层数以及除输入层以外的层的节点数。任一训练节点110可以将自身样本的特征数量发送给其他N-1个训练节点,累加自身样本的特征数量以及来自其他N-1个训练节点110的特征数量,得到本地模型的输入层的节点数。
在一些实施例中,任一训练节点110可以将自身样本的特征数量发送给中心节点120,中心节点120累加来自N个训练中心110的特征数量得到本地模型的输入层的节点数,确定本地模型的层数以及各层的节点数,并发送给N个训练中心110。
在一些实施例中,N个训练节点110可以互相交换样本数量和/或将样本数量发送给中心节点120以确定N个训练节点的样本数量是否一致。若是,则继续执行后续流程。若否,N个训练节点110可按照求交集协议重新获取各自的交集ID样本数据,以确保样本对齐。
在一些实施例中,当模型为神经网络时,模型每一个节点还对应有激活函数,激活函数的类型可以由中心节点指定。
步骤430,基于模型结构确定第一模型参数。在一些实施例中,步骤430可以由第一模型参数确定模块330执行。
在一些实施例中,第一模型参数确定模块330可以基于模型结构对第一模型参数进行随机初始化。仅作为示例,当确定本地模型的模型结构为包括5个输入层节点,2个输出层节点,没有隐层的神经网络时,可以基于该结构确定第一模型参数为5×2维的参数矩阵。然后随机初始化该矩阵,得到第一模型参数的初始值。
在一些实施例中,每个训练节点110可以基于自身样本的特征数量以及本地模型结构生成原型模型参数,将原型模型参数拆分成N个原型模型参数分片,与其他N-1个训练节点110交换原型模型参数分片,基于交换结果生成第一模型参数。关于原型模型参数的拆分和原型模型参数分片的交换,可以参考图4披露的步骤440、步骤450及其相关描述。关于基于交换结果生成第一模型参数,可以参考图5披露的步骤510及其相关描述。仅作为示例,可以通过以下方式确定节点的原型模型参数。当确定本地模型的模型结构为包括5个输入层节点,2个输出层节点,没有隐层的神经网络,以及训练节点A自身样本的特征数量为3时,可以将模型结构中输入层的节点数(如,5)替换为所述节点自身样本的特征项数量(如,3),得到模型原型结构。进而基于此模型原型结构可以确定原型模型参数为3×2维的矩阵参数,然后随机初始化该矩阵,得到原型模型参数。
步骤440,将训练样本的特征值拆分以获得特征值分片。在一些实施例中,步骤440可以由特征值拆分模块340执行。
在一些实施例中,对于任一训练样本,特征值拆分模块340可以按以下步骤获得N个特征值分片:对该训练样本的每个特征值进行拆分,得到N个加性数值分片;将该训练样本的各特征值的其中一个加性数值分片按位拼接,得到1个特征值分片。举例说明,首先假设:训练样本的特征为x1~xM,其中正整数M表示特征数量,则可以将xi(i为整数且1≤i≤M)拆分成N个加性数值分片
Figure BDA0002307001710000091
如图5所示,若将每个特征值的N个加性分片排成一行(N个加性分片的顺序可任意调整),则M个特征值的所有加性分片组成一个M行N列的矩阵,进而可以将每1列确定为训练样本的1个特征值分片。
步骤450,与其他N-1个训练节点交换特征值分片。在一些实施例中,步骤450可以由特征值分片交换模块350执行。
在一些实施例中,对于任一训练样本的N个特征值分片,每个训练节点110可以将其中N-1个特征值分片分别发送给其他N-1个训练节点110。
步骤460,基于交换结果及第一模型参数通过秘密共享算法计算本地模型的第一输出分片。在一些实施例中,步骤460可以由第一输出分片计算模块360执行。
在一些实施例中,可以将本地剩余的特征值分片与来自其他N-1个参与方的特征值分片按位拼接,得到本训练节点的第一特征向量。在一些实施例中,本地模型的第一输出分片包括本地计算部分,以及需要与其他训练节点联合计算的部分。对于本地计算部分,基于第一特征向量与第一模型参数可以获得。对于联合计算的部分则需要通过秘密共享算法与其他训练节点联合计算。在一些实施例中,可以基于一定算法将本训练节点的第一特征向量以及第一模型参数进行处理,得到分享分片,与其他训练节点交换对应的分享分片后,基于预设运算得到联合计算结果的分片。进一步,融合本地计算部分以及联合计算结果的分片,可获得本地模型的第一输出分片。
本地模型的第一输出分片即前文所述的完整模型的中间结果分片,基于N个训练节点110的本地模型的第一输出分片可以计算各本地模型的联合等效模型的第一输出,同时该第一输出也即中心节点模型的第一输入。应当理解,基于与N个训练节点一一对应的N个第一输出分片计算出的第一输出,相当于将N个训练节点持有的同一训练样本的特征值组合成一个完整的输入特征向量,并输入到联合等效模型计算后的输出结果。
在一些实施例中,对于任一训练样本,计算第一输出分片的具体方法可以参考图6及其相关描述。
步骤470,将第一输出分片发送给中心节点。在一些实施例中,步骤470可以由第一输出分片发送模块370执行。
在一些实施例中,由于中心节点120的中心节点模型输出预测结果,因此在训练阶段中心节点需要获取样本标签以计算误差。即,对于每个训练样本,至少一个具有该训练样本的样本标签的训练节点需要向中心节点发送该样本标签。
步骤480,接收中心节点反馈的目标梯度。在一些实施例中,步骤480可以由目标梯度反馈模块380执行。
步骤490,基于目标梯度对本地模型的参数进行更新。在一些实施例中,步骤490可以由本地模型参数更新模块390执行。
在一些实施例中,可以利用反向(从模型的输出层向输入层)传播法逐层计算训练样本的损失函数的系列梯度,其中包括训练样本的损失函数相对各层参数的梯度,进而利用梯度下降法对各层参数进行更新。因此,本地模型各层的相关梯度(包括目标梯度)需要基于中心节点模型的输入层的相关梯度来逐层计算,进而利用梯度下降法对本地模型的各层参数进行更新。
在一些实施例中,本地模型参数更新模块390可以将目标梯度作为损失函数相对于本地模型输出层的梯度,利用反向传播法更新本地模型第一模型参数,其中,损失函数基于中心节点模型的输出与训练样本的样本标签确定。
关于目标梯度的更多细节,还可以参考图8中披露的步骤860、步骤870及其相关描述。
图6为根据本说明书一些实施例所示的计算第一输出分片的示例性流程示意图。该流程600可以由第一输出分片计算模块360执行。在一些实施例中,对于任一训练样本,流程600可以包括:
步骤610,基于自身剩余特征值分片以及来自其他N-1个训练节点的特征值分片,生成第一特征向量,其中,各特征值分片对应同一个样本ID。
前面提到,对于任一训练样本的N个特征值分片,每个训练节点110可以将其中N-1个特征值分片分别发送给其他N-1个训练节点110。进而,每个训练节点110可以将自身剩余特征值分片以及来自其他N-1个训练节点110的特征值分片进行拼接,得到维度与N个训练节点110对应的特征数量之和匹配的第一特征向量。
例如,若N=2,且两个训练节点110的训练样本的特征数量分别为3和2,则特征数量为3的训练节点110的训练样本的两个特征值分片均可视为3×1维的矩阵,特征数量为2的训练节点110的训练样本的两个特征值分片均可视为2×1维的矩阵,每个训练节点将其中一个特征值分片发送给另一个训练节点。如此,特征数量为3的训练节点110接收到一个可视为2×1维矩阵的特征值分片,特征数量为2的训练节点110接收到一个可视为3×1维矩阵的特征值分片。进而,特征数量为3的训练节点110将本地剩余的3×1维矩阵的特征值分片与接收到的可视为2×1维矩阵的特征值分片进行拼接,特征数量为2的训练节点110将本地剩余的2×1维矩阵的特征值分片与接收到的可视为3×1维矩阵的特征值分片进行拼接,均得到可视为5×1维矩阵的第一特征向量。
应当注意的是,生成第一特征向量的N个特征值分片对应同一个样本ID。由此,在一些实施例中,图4披露的步骤450中任一训练节点110可以与其他N-1个训练节点交换样本ID相同的N个特征值分片。在又一些实施例中,交换的特征值分片可以携带有对应的样本ID,如此第一输出分片计算模块360可以基于携带有同一个样本ID的N个特征值分片生成第一特征向量。
步骤620,基于第一模型参数以及第一特征向量,与其他N-1个训练节点通过秘密共享算法计算第一输出分片。
仅作为示例,当模型为神经网络时,其从输入特征向量到输出结果的计算过程是正向传递的。假设,本地模型为三层神经网络,输入层接收第一特征向量(输入层一般不设置激活函数,第一特征向量可看成输入层的输出),第一特征向量与输入层的权重参数进行加权求和后,传递给中间层(或称为第一隐层),作为中间层的输入,该输入经过中间层的激活函数计算后得到该输入的激活值,该激活值可作为中间层的输出。按照前述同样的流程进行迭代可以得到输出层的输出值。可以理解,对于神经网络,可以基于任一层的输出和参数按照前述同样的流程得到下一层的输出。本说明书中,将更靠近模型输出层的称为下一层。
当涉及信息安全时,则需要通过秘密分享算法来实现上述计算流程。在一些实施例中,任一训练节点110可以基于本地模型的任一层的参数(矩阵形式)和输出,与其他N-1个训练节点通过秘密共享算法计算下一层的输入分片,进而通过下一层的激活函数计算得到该输入分片的激活值,即得到下一层的输出。迭代进行上述计算过程即可基于输入层的参数和输出(即第一特征向量)计算出输出层的输出(即第一输出分片)。应当理解,基于输入层的参数矩阵和输入分片迭代计算得到第一输出分片的过程为正向传播过程。另外,根据中心节点对模型结构的划分,在一些实施例中,本地模型输出层的激活函数可以布设于中心节点,此时相当于本地模型的输出层与中心节点模型的输入结合在一起才算是一个完整的神经网络隐层。相应地,本地模型的输出层的输出分片实际等同于中心节点模型输入层的输入分片。中心节点需要集齐来自N个训练节点的第一输出分片,计算得到其输入层的输入,并利用输入层的激活函数计算得到输入层的输出,之后将这一输出正向传递直到得到中心节点模型的输出。不难理解,当本地模型只包括输入层与输出层,不含中间层时,本地模型可以不包含激活函数,中心节点将来自各训练节点的第一输出分片相加,便可得到各训练节点本地模型的联合等效模型的输出。当本地模型除了输入层与输出层还包括中间层时,本地模型还包括激活函数,当激活函数为线性函数时,前述等效关系依然成立;当激活函数为非线性函数时,可以采用近似的线性函数作为激活函数,前述等效关系近似成立,当对模型预测精度要求不高时,可以采用这一实施例。
这里不妨假设:本地模型的层数为L+1层(L为正整数),输入层为模型第1层。N个训练节点110的本地模型第i层(i为整数且1≤i≤L)的参数矩阵分别为Wi1~WiN,N个训练节点110的本地模型输入层的输出(即第一特征向量)分别为X11~X1N,N个训练节点110的本地模型第i层(i为整数且2≤i≤L+1)的输入分片分别为Xi1~XiN,N个训练节点110的本地模型第i层(i为整数且2≤i≤L+1)的输出分别为Yi1~YiN(本地模型输出层的输出分片即第一输出分片),各节点的激活函数统一用巧(x)表示。基于此,对于N个训练节点的本地模型的联合等效模型,某一层(以第2层为例)的输入为X2=∑m=n(X1mW1n)+∑m≠n(X1mW1n),其中m、n均为整数且1≤m≤N,1≤n≤N。
对于任一训练节点j(j为整数且1≤j≤N)110的本地模型,为完成联合等效模型的某一层(以第2层为例)激活函数的输入的计算,其需要完成该层的输入分片的计算,即X2j,其涉及X1jW1j、∑k≠j(X1jW1k)、∑k≠j(X1kW1j),其中k为整数且1≤k≤N。不难理解,该训练节点的第2层的输入分片中,除了第一项X1jW1j可以在本训练节点内独立计算得到外,其余项均需要与其他训练节点联合计算。
可以归纳,对于每个训练节点110的本地模型,任一层的输入分片可以涉及三类输入向量与参数矩阵组成的乘积项,其中,一类乘积项中的输入向量和参数矩阵来自训练节点110自身(或称为本地乘积项),另外一类乘积项(以下称为交叉乘积项)中的输入向量(以下称为秘密输入向量)或者参数矩阵(以下均称为私密矩阵)来自其他N-1个训练节点。因此,各训练节点可以通过矩阵乘法的秘密分享算法来计算交叉乘积项,以在对交叉乘积项中的私密矩阵或秘密输入向量进行保密的前提下协同计算交叉乘积项。
在一些实施例中,各训练节点通过矩形乘法的秘密分享算法计算交叉乘积项时,可能只获得交叉乘积项的部分,如训练节点i与训练节点j通过矩形乘法的秘密分享算法计算交叉乘积项X1jW1i时,训练节点i获得交叉乘积项X1jW1i的一个加性分片,训练节点j获得交叉乘积项X1jW1i的另一个加性分片。在一些实施例中,各训练节点可以将对应某一层的本地乘积项与各交叉乘积项的加性分片求和,得到该层下一层的输入分片。在一些实施例中,当计算到本地模型的输出层时,可以将输出层上一层的本地乘积项与各交叉乘积项的加性分片作为第一输出分片直接上传至中心节点,由中心节点直接基于各训练节点第一输出分片中的本地乘积项以及各交叉乘积项的加性分片计算得到中心节点模型的输入层激活函数的输入。关于矩阵乘法的秘密分享算法,可以参考图13披露的SMM协议及其相关描述。
待协同计算完成后,每个训练节点110可计算本地模型当前层的的输入分片的激活值,得到当前层的输出。如各训练节点第2层的输出为Y2j=σ(X2j)。依次,通过迭代计算,各训练节点的第L+1层(即输出层)的输出(即第一输出分片)XL+1j=YLjWLj+∑k≠j(YLjWLk)+∑k≠j(YLkWLj),其中k为整数且1≤k≤N。
图7为根据本说明书一些实施例所示的模型训练***的示例性框图。该***700与中心节点120对应。在一些实施例中,该***700可以包括中心节点模型结构确定模块710、第一输出分片接收模块720、样本标签接收模块730、第一输入计算模块740、模型训练模块750、目标梯度确定模块760和目标梯度反馈模块770。
在一些实施例中,中心节点模型结构确定模块710可以用于基于训练节点的待训练本地模型的输出层节点数,确定中心点模型的结构。关于中心节点模型结构确定模块710的具体实施方式,可以参考图8披露的步骤810的相关描述。即,步骤810可由中心节点模型结构确定模块710执行。
在一些实施例中,第一输出分片接收模块720可以用于接收所述N个训练节点发送的第一输出分片。关于第一输出分片接收模块720的具体实施方式,可以参考图8披露的步骤820的相关描述。即,步骤820可由第一输出分片接收模块720执行。
在一些实施例中,样本标签接收模块730可以用于接收训练节点发送的训练样本的样本标签。关于样本标签接收模块730的具体实施方式,可以参考图8披露的步骤830的相关描述。即,步骤830可由样本标签接收模块730执行。
在一些实施例中,第一输入计算模块740可以用于基于所述N个训练节点发送的同一样本ID对应的第一输出分片,计算第一输入。关于第一输入计算模块740的具体实施方式,可以参考图8披露的步骤840的相关描述。即,步骤840可由第一输入计算模块740执行。
在一些实施例中,模型训练模块750可以用于基于同一样本ID对应的第一输入和样本标签训练中心节点模型。关于模型训练模块750的具体实施方式,可以参考图8披露的步骤850的相关描述。即,步骤850可由模型训练模块750执行。
在一些实施例中,目标梯度确定模块760可以用于确定所述中心节点模型的输入层的目标梯度。关于目标梯度确定模块760的具体实施方式,可以参考图8披露的步骤860的相关描述。即,步骤860可由目标梯度确定模块760执行。
在一些实施例中,目标梯度反馈模块770可以用于向N个训练节点反馈所述目标梯度。关于目标梯度反馈模块770的具体实施方式,可以参考图8披露的步骤870的相关描述。即,步骤870可由目标梯度反馈模块770执行。
图8为根据本说明书一些实施例所示的模型训练方法的示例性流程图。该流程800由中心节点120执行。该流程800可以包括:
步骤810,确定中心节点模型的模型结构。在一些实施例中,步骤710可以由中心节点模型结构确定模块710执行。
本地模型的输出层可等效于中心节点模型的输入层,因此中心节点模型的输入层节点数等于本地模型的输出层节点数。
在一些实施例中,中心节点120可以从N个训练节点获取特征数量,累加来自N个训练节点的特征数量得到模型输入层节点数。进而,中心节点120可以先确定模型的完整结构,再将模型的完整结构划分成本地模型结构和中心节点结构,并将其中的本地模型结构发送给各训练节点110。
在一些实施例中,中心节点也可以确定本地模型的层数以及除输入层以外各层的节点数,各训练节点110可以通过彼此交互特征数量来确定本地模型输入层节点数,进而确定相同的本地模型结构。然后中心节点120可以获取该本地模型结构,将本地模型的输出层节点数确定为中心节点模型的输入层节点数,进而确定中心节点模型结构。
步骤820,接收N个训练节点发送的第一输出分片。在一些实施例中,步骤820可以由第一输出分片接收模块720执行。
步骤830,接收训练节点发送的训练样本的样本标签。在一些实施例中,步骤820可以由样本标签接收模块730执行。
在后续流程中,样本标签与中心节点模型的输出一起用于计算损失函数。
步骤840,基于N个训练节点发送的同一样本ID对应的第一输出分片,计算第一输入。在一些实施例中,步骤840可以由第一输入计算模块740执行。
联合等效模型的第一输出即中心节点模型的第一输入。中心节点可以将来自各训练节点的第一输出分片进行叠加,得到所述第一输入。应当注意的是,计算第一输入的N个第一输出分片对应的样本ID应相同。
关于第一输出分片的更多细节,可以参考图4披露的步骤460及其相关描述。
步骤850,基于同一样本ID对应的第一输入和样本标签训练中心节点模型。在一些实施例中,步骤850可以由模型训练模块750执行。
模型训练模块650可以基于第一输入通过正向传播法得到中心节点模型的输出,基于同一样本ID对应的样本标签和中心节点模型的输入可以确定损失函数,进而可以基于损失函数通过反向传播法更新中心节点模型的参数。
步骤860,确定中心节点模型的输入层的目标梯度。在一些实施例中,步骤760可以由目标梯度确定模块760执行。
在一些实施例中,目标梯度可反映损失函数相对第一输入(也即本地模型的第一输出)的梯度,损失函数可基于同一样本ID对应的中心节点模型的输出与训练样本的样本标签确定。
步骤870,向N个训练节点反馈目标梯度。在一些实施例中,步骤870可以由目标梯度反馈模块770执行。
参考图4披露的步骤480、步骤490及其相关描述,N个训练节点110接收到中心节点反馈的目标梯度后,可基于该目标梯度通过反向传播法更新各自本地模型的参数。
在一些实施例中,各训练节点110和中心节点120可以基于训练集中的每个训练样本对模型参数进行一次更新,即每次基于同一个样本ID计算梯度并基于梯度更新参数。
在一些实施例中,可以将训练集划分成若干批次,相应地各训练节点110和中心节点120可以基于每个批次的训练样本对模型参数进行一次更新。其中,任一批次对应的目标梯度可以基于该批次的所有训练样本各自对应的目标梯度得到。例如,可以将任一批次的所有训练样本各自对应的目标梯度的平均值作为该批次对应的目标梯度。在一些实施例中,可以按照预设的批次尺寸划分将训练集划分成若干批次,该预设批次尺寸可以指每个批次包括的训练样本数量。
在一些实施例中,可以先对N个训练节点的训练集中的训练样本进行统一编号,并确定每个批次的编号信息,其中,具有相同样本ID的训练样本的编号相同,编号信息用于标识对应批次的所有训练样本。在一些实施例中,样本ID本身可以作为编号。在一些实施例中,训练集中的训练样本可以具有连续编号,相应地编号信息可以包括对应批次的起始编号和终止编号。然后,中心节点120可以将待用于更新模型参数的样本批次的编号信息下发给N个训练节点110,N个训练节点110根据接收到的编号信息提取对应批次的训练样本,以确保N个训练节点110和中心节点120基于同一批次的训练样本更新模型参数。在一些实施例中,每个训练节点110可以具有当前用于更新模型参数的样本批次的标记值,N个训练节点110在接收到中心节点120下发的待用于更新模型参数的样本批次的编号信息后,将该标记值更新为接收到的编号信息。在基于提取的某一批次的训练样本执行后续流程(例如,计算第一输出分片、更新本地模型参数等)前,任一训练节点110可以与其他N-1个训练节点110交换更新后的标记值,并判断N个训练节点110更新后的标记值是否一致,若是,则可继续基于该批次的训练样本执行后续流程,否则可暂停后续流程。类似地,在基于获取的N个第一输出分片执行后续流程(例如,计算第一输入等)前,中心节点120可以获取N个训练节点110更新后的标记值,并判断N个训练节点110更新后的标记值是否一致,若是,则可继续基于接收到的N个第一输出分片执行后续流程,否则可暂停后续流程。
图9为根据本说明书一些实施例所示的模型预测***的示例性框图。该***900与N个训练节点110中的某个训练节点110对应,N个训练节点110具有各自的第一模型参数。在一些实施例中,该***900可以包括特征值获取模块910、特征值拆分模块920、特征值分片交换模块930、第一预测分片计算模块940和第一预测分片发送模块950。
在一些实施例中,第一模型参数可以按本说明书任一实施例所示的模型预测方法获得。
在一些实施例中,特征值获取模块910可以用于获取待预测对象的特征值。关于特征值获取模块910的具体实施方式,可以参考图10披露的步骤1010的相关描述。即,步骤1010可由特征值获取模块910执行。
在一些实施例中,特征值拆分模块920可以用于将特征值拆分以获得特征值分片。关于特征值拆分模块920的具体实施方式,可以参考图10披露的步骤1020的相关描述。即,步骤1020可由特征值拆分模块920执行。
在一些实施例中,特征值分片交换模块930可以用于与其他N-1个训练节点交换所述待预测对象的特征值分片。关于特征值分片交换模块930的具体实施方式,可以参考图10披露的步骤1030的相关描述。即,步骤1030可由特征值分片交换模块930执行。
在一些实施例中,第一预测分片计算模块940可以用于基于交换结果及第一模型参数通过秘密共享算法计算本地模型的第一预测分片。关于第一预测分片计算模块940的具体实施方式,可以参考图10披露的步骤1040的相关描述。即,步骤1040可由第一预测分片计算模块940执行。
在一些实施例中,第一预测分片发送模块950可以用于将所述第一预测分片发送给所述中心节点。关于第一预测分片发送模块950的具体实施方式,可以参考图10披露的步骤1050的相关描述。即,步骤1050可由第一预测分片发送模块950执行。
图10为根据本说明书一些实施例所示的模型预测方法的示例性流程图。该流程1000由N个训练节点110中的某个训练节点110执行,N个训练节点110具有各自的第一模型参数。在一些实施例中,第一模型参数可以按本说明书任一实施例所示的模型训练方法获得。该流程1000可以包括:
步骤1010,获取待预测对象的特征值。在一些实施例中,步骤1010可以由特征值获取模块910执行。
步骤1020,将特征值拆分以获得特征值分片。在一些实施例中,步骤1020可以由特征值拆分模块920执行。
步骤1030,与其他N-1个训练节点交换待预测对象的特征值分片。在一些实施例中,步骤1030可以由特征值分片交换模块930执行。
步骤1040,基于交换结果及第一模型参数通过秘密共享算法计算本地模型的第一预测分片。在一些实施例中,步骤1040可以由第一预测分片计算模块940执行。
步骤1050,将第一预测分片发送给中心节点。在一些实施例中,步骤1050可以由第一预测分片发送模块950执行。
关于流程1000的具体实施方式,可以参考流程400中步骤440~470及其相关描述,这里不再赘述。
图11为根据本说明书一些实施例所示的模型预测***的示例性框图。该***1000与中心节点120对应,N个训练节点具有各自的第一模型参数。在一些实施例中,该***1100可以包括第一预测分片接收模块1110、第一输入计算模块1120、和预测模块1130。
在一些实施例中,第一预测分片接收模块1110可以用于接收所述N个训练节点发送的第一预测分片,所述第一预测分片对应同一个待预测对象。关于第一预测分片接收模块1110的具体实施方式,可以参考图12披露的步骤1210的相关描述。即,步骤1210可由第一预测分片接收模块1110执行。
在一些实施例中,第一输入计算模块1120可以用于基于所述N个训练节点发送的第一预测分片,计算第一输入。关于第一输入计算模块1120的具体实施方式,可以参考图12披露的步骤1220的相关描述。即,步骤1220可由第一输入计算模块1120执行。
在一些实施例中,预测模块1130可以用于利用中心节点模型处理第一输入,获得预测结果。关于预测模块1130的具体实施方式,可以参考图12披露的步骤1230的相关描述。即,步骤1230可由预测模块1130执行。
图12为根据本说明书一些实施例所示的模型预测方法的示例性流程图。该流程1200由中心节点120执行,N个训练节点具有各自的第一模型参数。在一些实施例中,第一模型参数可以按本说明书任一实施例所示的模型训练方法获得。该流程1200可以包括:
步骤1210,接收所述N个训练节点发送的第一预测分片。在一些实施例中,步骤1210可以由第一预测分片接收模块1110执行。
步骤1220,基于所述N个训练节点发送的第一预测分片,计算第一输入。步骤1220可以由第一输入计算模块1120执行。
步骤1230,利用中心节点模型处理第一输入,获得预测结果。步骤1230可以由预测模块1130执行。
关于流程1200的具体实施方式,可以参考流程800中的步骤820、步骤840、步骤850及其相关描述,这里不再赘述。
在一些实施例中,预测对象可以是测试集中的测试样本。对于相同样本ID的任一测试样本,N个训练节点110可以通过流程1000获得各自的第一预测分片并将第一预测分片发送给中心节点120。中心节点120可以获取该相同样本ID对应的样本标签,以及通过流程1200基于中心节点模型和N个训练节点110的第一预测分片获得该相同样本ID对应的预测结果,进而可以基于该相同样本ID对应的样本标签和预测结果计算误差该相同样本ID对应的损失函数值。基于测试集中各样本ID对应的损失函数值,中心节点120可以评估预测模型的精度。在一些实施例中,可以设置达到预期的最大损失函数值,相应地中心节点120可以统计测试集中损失函数值达到预期的样本ID的比例,并基于统计出的比例评估预测模型是否达到所需精度。例如,当统计出的比例超过一定比例值(如,90%,92%、95%、99%等)时,可认为预测模型达到所需精度。在一些实施例中,若经评估认为预测模型未达到所需精度,可以通过增加训练集、增加迭代次数、数据正则化等中的一种或多种手段增加模型精度。
图13为根据本说明书一些实施例所示的矩阵乘法的秘密共享算法的示例性流程图。首先,假定:训练节点A有x×y维的私密矩阵X,训练节点B有y×z维的私密矩阵Y,训练节点A希望获得XY的值。则流程1300可以包括:
步骤1312,训练节点A生成x×y维的随机矩阵X′。
步骤1314,训练节点B生成y×z维的随机矩阵Y′。
步骤1322,训练节点A从随机矩阵X′中拆分出偶数列,获得矩阵X′e;从随机矩阵X′中拆分出奇数列,获得矩阵X′o
步骤1324,训练节点B从随机矩阵Y′中拆分出偶数行,获得矩阵Y′e;从随机矩阵Y′中拆分出奇数行,获得矩阵Y′o
步骤1332,训练节点A按X1=X+X′计算得到X1,按X2=X′e+X′o计算得到X2,并把X1和X2发送给训练节点B。
步骤1334,训练节点B按Y1=Y′-Y计算得到Y1,按Y2=Y′e-Y′o计算得到Y2,并把Y1和Y2发送给训练节点A。
步骤1342,训练节点A按M=(X+2X′)Y1+(X2+X′o)Y2计算得到M。
步骤1344,训练节点B按N=X1(2Y-Y′)-X2(Y2+Y′e)计算得到N。
可以证明,M+N=XY,即,M和N可看作乘积项XY的两个加性分片。不难理解,各训练节点在与其他训练节点协同计算交叉乘积项时,可以基于流程1300得到交叉乘积项的加性分片。
当本地模型只包括输入层与输出层,不含中间层时,本地模型可以不包含激活函数,其某训练节点j的本地模型第2层的输出(即第一输出分片)为X2j,X2j包括X1jW1j、各交叉乘积项X1jW1k的加性分片(数量为N-1)、各交叉乘积项X1kW1j的加性分片(数量为N-1),其中k取1~N(此处N为训练节点总数)且k≠j,当中心节点将来自各训练节点的第一输出分片相加,便可得到各训练节点本地模型的联合等效模型的输出。
应当理解,本说明书中图3、图7、图9和图11所示的***及其模块可以利用各种方式来实现。例如,在一些实施例中,***及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行***,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和***可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本说明书的***及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上对于***及其模块的描述,仅为描述方便,并不能把本说明书限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解***的原理后,可能在不背离这一原理的情况下,对各个模块进行任意组合,或者构成子***与其他模块连接。例如,在一些实施例中,图3中披露的维度数据确定模块310和本地模型确定模块320可以是一个***中的不同模块,也可以是一个模块实现这两个模块的功能。又如,在一些实施例中,图3中披露的特征值拆分模块340和图9中披露的特征值拆分模块920可以是两个模块,也可以合并为一个模块。诸如此类的变形,均在本说明书的保护范围之内。
应当注意的是,上述有关各流程的描述仅仅是为了示例和说明,而不限定本说明书的适用范围。对于本领域技术人员来说,在本说明书的指导下可以对任一流程进行各种修正和改变。然而,这些修正和改变仍在本说明书的范围之内。
本说明书实施例可能带来的有益效果包括但不限于:(1)模型被拆分成本地模型和中心节点模型两部分,分别部署在训练节点和中心节点,以及训练和预测时基于秘密共享算法计算私密数据,使得训练和预测时特征数据可以保持在训练节点本地而不用对外传输,且特征数据难以从对外传输的中间计算结果(如第一输出分片)中反推,因此能够有效保证数据安全;(2)针对同一样本ID,可以聚合多方拥有的特征项联合训练,有利于提高模型精度;(3)中心节点可以协调多个训练节点的联合训练,例如,可以统一设置及调整各训练节点的本地模型结构,又如,通过统一下发编号可以保证各训练节点当前参与训练的样本数据的样本ID的一致性。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本说明书实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本说明书实施例进行各种修改、改进和修正。该类修改、改进和修正在本说明书实施例中被建议,所以该类修改、改进、修正仍属于本说明书示范实施例的精神和范围。
同时,本说明书使用了特定词语来描述本说明书的实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本说明书至少一个实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本说明书的一个或多个实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本说明书实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本说明书实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“***”。此外,本说明书实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行***、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本说明书实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、VisualBasic、Fortran2003、Perl、COBOL2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或处理设备上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本说明书实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本说明书实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本说明书实施例实质和范围的修正和等价组合。例如,虽然以上所描述的***组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的处理设备或移动设备上安装所描述的***。
同理,应当注意的是,为了简化本说明书实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本说明书实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本说明书实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
针对本说明书引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本说明书作为参考。与本说明书内容不一致或产生冲突的申请历史文件除外,对本申请权利要求最广范围有限制的文件(当前或之后附加于本说明书中的)也除外。需要说明的是,如果本说明书附属材料中的描述、定义、和/或术语的使用与本说明书所述内容有不一致或冲突的地方,以本说明书的描述、定义和/或术语的使用为准。
最后,应当理解的是,本说明书中所述实施例仅用以说明本说明书实施例的原则。其他的变形也可能属于本说明书实施例的范围。因此,作为示例而非限制,本说明书实施例的替代配置可视为与本说明书的教导一致。相应地,本说明书的实施例不仅限于本说明书明确介绍和描述的实施例。

Claims (27)

1.一种模型训练方法,其中,所述方法由N个训练节点中的某一训练节点执行,N为大于1的整数;所述N个训练节点均与中心节点通信连接,N个训练节点具有训练样本的样本ID对应相同的训练集,至少一个训练节点的训练集具有与其他训练节点不同的特征项;所述方法包括:
确定所述训练集的维度数据;
与中心节点和/或其他N-1个训练节点交互所述维度数据,以确定待训练的本地模型的模型结构;
基于所述模型结构确定第一模型参数;
将训练样本的特征值拆分以获得特征值分片;
与其他N-1个训练节点交换特征值分片;
基于交换结果及第一模型参数通过秘密共享算法计算本地模型的第一输出分片;
将所述第一输出分片发送给所述中心节点;
接收所述中心节点反馈的目标梯度;
基于所述目标梯度对所述本地模型的参数进行更新。
2.根据权利要求1所述的方法,其中,所述模型结构包括层数以及各层的节点数。
3.根据权利要求1所述的方法,其中,将训练样本的特征值拆分以获得特征值分片,包括,对于训练集中的任一训练样本:
将训练样本的每一个特征值:进行拆分,得到N个加性数值分片;
将训练样本各特征值的其中一个加性数值分片按位拼接,得到1个特征值分片;以此,得到N个特征值分片。
4.根据权利要求1所述的方法,其中,与其他N-1个训练节点交换特征值分片,包括:
与其他N-1个训练节点交换相同样本ID对应的N-1个特征值分片。
5.根据权利要求1或4所述的方法,其中,所述基于交换结果及第一模型参数通过秘密共享算法计算本地模型的第一输出分片,包括:
对于任一训练样本:
基于自身剩余特征值分片以及来自其他N-1个训练节点的特征值分片,生成第一特征向量;其中,各特征值分片对应同一个样本ID;
基于第一模型参数以及第一特征向量,与其他N-1个训练节点通过秘密共享算法计算所述第一输出分片。
6.根据权利要求5所述的方法,其中,所述基于第一模型参数以及第一特征向量,与其他N-1个训练节点通过秘密共享算法计算得到所述第一输出分片包括:
从本地模型输入层的下一层起,基于当前层的上一层的输出以及第一模型参数中当前层的上一层对应的参数层,与其他N-1个训练节点通过秘密共享算法计算得到当前层的输入分片;依此正向传递处理,直到计算出本地模型的输出层的输入分片,将所述输出层的输入分片确定为所述第一输出分片。
7.根据权利要求6所述的方法,其中,所述基于当前层的上一层的输出以及第一模型参数中当前层的上一层对应的参数层,与其他N-1个训练节点通过秘密共享算法计算得到当前层的输入分片,包括:
设当前层为第t层,t>1:
基于第一模型参数的第t-1层以及第t-1层的输出,计算获得第t层的输入分片的第一子片;
利用第一模型参数的第t-1层,通过秘密共享算法分别与其他N-1个训练节点第t-1层的输出协同计算获得N-1个第t层的输入分片的第二子片;
利用第t-1层的输出,通过秘密共享算法分别与其他N-1个训练节点的第一模型参数的第t-1层协同计算获得N-1个第t层的输入分片的第三子片;
基于第一子片、各第二子片以及各第三子片,获得第t层的输入分片。
8.根据权利要求1所述的方法,其中,还包括将训练样本的样本标签发送给中心节点。
9.根据权利要求1所述的方法,其中,所述基于所述目标梯度对所述本地模型的参数进行更新,包括:
将所述目标梯度作为损失函数相对于本地模型输出层的梯度,利用反向传播法更新本地模型第一模型参数;所述损失函数基于中心节点模型的输出与训练样本的样本标签确定。
10.一种模型训练***,其中所述***对应于N个训练节点中的某一训练节点,N为大于1的整数;所述N个训练节点均与中心节点通信连接,N个训练节点具有训练样本的样本ID对应相同的训练集,至少一个训练节点的训练集具有与其他训练节点不同的特征项;所述***包括:
维度数据确定模块,用于确定所述训练集的维度数据;
本地模型结构确定模块,用于与中心节点和/或其他N-1个训练节点交互所述维度数据,确定待训练的本地模型的模型结构;
第一模型参数确定模块,用于基于所述模型结构确定第一模型参数;
特征值拆分模块,用于拆分训练样本的特征值,获得特征值分片;
特征值分片交换模块,用于与其他N-1个训练节点交换特征值分片;
第一输出分片计算模块,用于基于交换结果及第一模型参数,通过秘密共享算法计算本地模型的第一输出分片;
第一输出分片发送模块,用于将所述第一输出分片发送给中心节点;
目标梯度反馈模块,用于接收所述中心节点反馈的目标梯度;
本地模型参数更新模块,用于基于所述目标梯度对本地模型的参数进行更新。
11.一种模型训练装置,其中,所述装置包括处理器以及存储器,所述存储器用于存储指令;所述指令被所述处理器执行时,实现如权利要求1至9中任一项所述的模型训练方法。
12.一种模型训练方法,其中,所述方法由中心节点执行,所述中心节点与N个训练节点通信连接,N为大于1的整数,所述方法包括:
基于训练节点的待训练本地模型的输出层节点数,确定中心节点模型的模型结构;
接收所述N个训练节点发送的第一输出分片;
接收训练节点发送的训练样本的样本标签;
基于所述N个训练节点发送的同一样本ID对应的第一输出分片,计算第一输入;
基于同一样本ID对应的第一输入和样本标签训练中心节点模型;
确定所述中心节点模型的输入层的目标梯度;
向N个训练节点反馈所述目标梯度。
13.根据权利要求12所述的方法,其中,所述目标梯度反映损失函数相对第一输入的梯度;所述损失函数基于同一样本ID对应的中心节点模型的输出与训练样本的样本标签确定。
14.一种模型训练***,其中,所述***对应于中心节点,所述中心节点与N个训练节点通信连接,N为大于1的整数;所述***包括:
中心点模型结构确定模块,用于基于训练节点的待训练本地模型的输出层节点数,确定中心点模型的结构;
第一输出分片接收模块,用于接收所述N个训练节点发送的第一输出分片;
样本标签接收模块,用于接收训练节点发送的训练样本的样本标签;
第一输入计算模块,用于基于所述N个训练节点发送的同一样本ID对应的第一输出分片,计算第一输入;
模型训练模块,用于基于同一样本ID对应的第一输入和样本标签训练中心节点模型;
目标梯度确定模块,用于确定所述中心节点模型的输入层的目标梯度;
目标梯度反馈模块,向N个训练节点反馈所述目标梯度。
15.一种模型训练装置,其中,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述指令被所述处理器执行时,实现如权利要求12至13中任一项所述的模型训练方法。
16.一种模型预测方法,其中,所述方法由N个训练节点中的某一训练节点执行,N为大于1的整数;所述N个训练节点均与中心节点通信连接,N个训练节点具有各自的第一模型参数,所述方法包括:
获取待预测对象的特征值;
将特征值拆分以获得特征值分片;
与其他N-1个训练节点交换所述待预测对象的特征值分片;
基于交换结果及第一模型参数通过秘密共享算法计算本地模型的第一预测分片;
将所述第一预测分片发送给所述中心节点。
17.根据权利要求16所述的方法,其中,将特征值拆分以获得特征值分片,包括,
将所述特征值的每一个元素:进行拆分,得到N个加性数值分片;
将所述特征值各元素的其中一个加性数值分片按位拼接,得到1个特征值分片;以此,得到N个特征值分片。
18.根据权利要求16或17所述的方法,其中,所述基于交换结果及第一模型参数通过秘密共享算法计算本地模型的第一预测分片,包括:
基于自身剩余特征值分片以及来自其他N-1个训练节点的特征值分片,生成第一特征向量;其中,各特征值分片对应待预测对象;
基于第一模型参数以及第一特征向量,与其他N-1个训练节点通过秘密共享算法计算得到所述第一预测分片。
19.根据权利要求18所述的方法,其中,所述基于第一模型参数以及第一特征向量,与其他N-1个训练节点通过秘密共享算法计算得到所述第一预测分片包括:
从本地模型输入层的下一层起,基于当前层的上一层的输出以及第一模型参数中当前层的上一层对应的参数层,与其他N-1个训练节点通过秘密共享算法计算得到当前层的输入分片;依此正向传递处理,直到计算出本地模型的输出层的输入分片,将所述输出层的输入分片确定为所述第一预测分片。
20.根据权利要求16所述的方法,其中,所述第一模型参数通过如权利要求1~9中任一项或权利要求12或权利要求13所述的方法获得。
21.一种模型预测***,其中,所述***对应于N个训练节点中的某一训练节点,N为大于1的整数;所述N个训练节点均与中心节点通信连接,N个训练节点具有各自的第一模型参数,所述***包括:
特征值获取模块,用于获取待预测对象的特征值;
特征值拆分模块,用于将特征值拆分以获得特征值分片;
特征值分片交换模块,用于与其他N-1个训练节点交换所述待预测对象的特征值分片;
第一预测分片计算模块,用于基于交换结果及第一模型参数通过秘密共享算法计算本地模型的第一预测分片;
第一预测分片发送模块,用于将所述第一预测分片发送给所述中心节点。
22.一种模型预测装置,其中,所述装置包括处理器以及存储器,所述存储器用于存储指令;所述指令被所述处理器执行时,实现如权利要求16至20中任一项所述的模型预测方法。
23.一种模型预测方法,其中,所述方法由中心节点执行,所述中心节点与N个训练节点通信连接,N为大于1的整数,所述方法包括:
接收所述N个训练节点发送的第一预测分片,所述第一预测分片对应同一个待预测对象;
基于所述N个训练节点发送的第一预测分片,计算第一输入;
利用中心节点模型处理第一输入,获得预测结果。
24.如权利要求23所述的方法,其中,还包括:
将预测结果发送给N个训练节点。
25.根据权利要求23所述的方法,其中,所述中心节点模型通过如权利要求1~9中任一项或权利要求12或权利要求13所述的方法获得。
26.一种模型预测***,其中,所述***对应于中心节点,所述中心节点与N个训练节点通信连接,N为大于1的整数,所述***包括:
第一预测分片接收模块,用于接收所述N个训练节点发送的第一预测分片,所述第一预测分片对应同一个待预测对象;
第一输入计算模块,用于基于所述N个训练节点发送的第一预测分片,计算第一输入;
预测模块,用于利用中心节点模型处理第一输入,获得预测结果。
27.一种模型预测装置,其中,所述装置包括处理器以及存储器;所述存储器用于存储指令,所述指令被所述处理器执行时,实现如权利要求23至25中任一项所述模型预测方法。
CN201911248776.4A 2019-12-06 2019-12-06 模型训练、预测方法及其*** Active CN110929886B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911248776.4A CN110929886B (zh) 2019-12-06 2019-12-06 模型训练、预测方法及其***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911248776.4A CN110929886B (zh) 2019-12-06 2019-12-06 模型训练、预测方法及其***

Publications (2)

Publication Number Publication Date
CN110929886A CN110929886A (zh) 2020-03-27
CN110929886B true CN110929886B (zh) 2022-03-22

Family

ID=69857568

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911248776.4A Active CN110929886B (zh) 2019-12-06 2019-12-06 模型训练、预测方法及其***

Country Status (1)

Country Link
CN (1) CN110929886B (zh)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111460528B (zh) * 2020-04-01 2022-06-14 支付宝(杭州)信息技术有限公司 一种基于Adam优化算法的多方联合训练方法及***
CN111160573B (zh) * 2020-04-01 2020-06-30 支付宝(杭州)信息技术有限公司 保护数据隐私的双方联合训练业务预测模型的方法和装置
CN111680799B (zh) 2020-04-08 2024-02-20 北京字节跳动网络技术有限公司 用于处理模型参数的方法和装置
CN111259573B (zh) * 2020-04-08 2023-06-16 攀枝花学院 一种磁疗服装使用寿命预测方法
CN111178549B (zh) * 2020-04-10 2020-07-07 支付宝(杭州)信息技术有限公司 保护数据隐私的双方联合训练业务预测模型的方法和装置
CN111506922B (zh) * 2020-04-17 2023-03-10 支付宝(杭州)信息技术有限公司 多方联合对隐私数据进行显著性检验的方法和装置
CN112668038A (zh) * 2020-06-02 2021-04-16 华控清交信息科技(北京)有限公司 一种模型训练方法、装置和电子设备
CN113839797B (zh) * 2020-06-23 2022-11-25 华为技术有限公司 数据处理方法和装置
CN111475853B (zh) * 2020-06-24 2020-12-11 支付宝(杭州)信息技术有限公司 一种基于分布式数据的模型训练方法及***
CN111737755B (zh) * 2020-07-31 2020-11-13 支付宝(杭州)信息技术有限公司 业务模型的联合训练方法及装置
CN112819152B (zh) * 2020-08-14 2024-03-01 腾讯科技(深圳)有限公司 一种神经网络训练方法及装置
CN112200711B (zh) * 2020-10-27 2022-09-02 支付宝(杭州)信息技术有限公司 一种水印分类模型的训练方法及***
CN114548416A (zh) * 2020-11-26 2022-05-27 华为技术有限公司 数据模型训练方法及装置
CN112767129A (zh) * 2021-01-22 2021-05-07 建信金融科技有限责任公司 模型训练方法、风险预测方法及装置
CN112800467B (zh) * 2021-02-18 2022-08-26 支付宝(杭州)信息技术有限公司 基于数据隐私保护的在线模型训练方法、装置以及设备
CN113255928B (zh) * 2021-04-29 2022-07-05 支付宝(杭州)信息技术有限公司 模型的训练方法、装置和服务器
CN113242258B (zh) * 2021-05-27 2023-11-14 安天科技集团股份有限公司 一种主机集群的威胁检测方法和装置
CN113392974B (zh) * 2021-07-07 2024-04-09 北京百度网讯科技有限公司 模型训练方法、装置、电子设备以及存储介质
CN114650134A (zh) * 2022-03-31 2022-06-21 深圳前海环融联易信息科技服务有限公司 一种基于秘密共享的纵向隐私保护逻辑回归方法
CN114827308B (zh) * 2022-04-15 2023-11-17 支付宝(杭州)信息技术有限公司 一种模型训练数据传输方法、装置、设备和可读介质
CN117955732B (zh) * 2024-03-18 2024-06-25 腾讯科技(深圳)有限公司 数据处理方法和相关装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107798382A (zh) * 2017-11-21 2018-03-13 北京地平线信息技术有限公司 用于适配卷积神经网络中的特征数据的方法和装置
CN108734193A (zh) * 2018-03-27 2018-11-02 合肥麟图信息科技有限公司 一种深度学习模型的训练方法及装置
CN109671423A (zh) * 2018-05-03 2019-04-23 南京邮电大学 训练数据有限情形下的非平行文本语音转换方法
CN109919245A (zh) * 2019-03-18 2019-06-21 北京市商汤科技开发有限公司 深度学习模型训练方法及装置、训练设备及存储介质

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11423254B2 (en) * 2019-03-28 2022-08-23 Intel Corporation Technologies for distributing iterative computations in heterogeneous computing environments

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107798382A (zh) * 2017-11-21 2018-03-13 北京地平线信息技术有限公司 用于适配卷积神经网络中的特征数据的方法和装置
CN108734193A (zh) * 2018-03-27 2018-11-02 合肥麟图信息科技有限公司 一种深度学习模型的训练方法及装置
CN109671423A (zh) * 2018-05-03 2019-04-23 南京邮电大学 训练数据有限情形下的非平行文本语音转换方法
CN109919245A (zh) * 2019-03-18 2019-06-21 北京市商汤科技开发有限公司 深度学习模型训练方法及装置、训练设备及存储介质

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A Hybrid Approach to Privacy-Preserving Federated Learning;Stacey Truex 等;《arXiv:1812.03224》;20181207;1-11 *

Also Published As

Publication number Publication date
CN110929886A (zh) 2020-03-27

Similar Documents

Publication Publication Date Title
CN110929886B (zh) 模型训练、预测方法及其***
CN111931950B (zh) 一种基于联邦学习进行模型参数更新的方法及***
US20210004718A1 (en) Method and device for training a model based on federated learning
CN110110229B (zh) 一种信息推荐方法及装置
CN112733967B (zh) 联邦学习的模型训练方法、装置、设备及存储介质
CN111460528B (zh) 一种基于Adam优化算法的多方联合训练方法及***
US20220044162A1 (en) Blockchain-based secure federated learning
CN110955915B (zh) 一种隐私数据的处理方法及装置
CN113011587B (zh) 一种隐私保护的模型训练方法和***
CN111523673B (zh) 模型训练方法、装置及***
CN113221183B (zh) 实现隐私保护的多方协同更新模型的方法、装置及***
CN112347500B (zh) 分布式***的机器学习方法、装置、***、设备及存储介质
CN112529101B (zh) 分类模型的训练方法、装置、电子设备及存储介质
CN112989399B (zh) 数据处理***及方法
CN114611720A (zh) 联邦学习模型训练方法、电子设备及存储介质
CN113032835A (zh) 一种隐私保护的模型训练方法、***及装置
CN114186256A (zh) 神经网络模型的训练方法、装置、设备和存储介质
CN113361618A (zh) 一种基于联邦学习的工业数据联合建模方法及***
CN116306905A (zh) 半监督非独立同分布的联邦学习蒸馏方法及装置
CN113887740B (zh) 联合更新模型的方法、装置及***
CN112183759A (zh) 模型训练方法、装置及***
CN114021732B (zh) 一种比例风险回归模型训练方法、装置、***及存储介质
CN111931947B (zh) 一种用于分布式模型训练的训练样本重组方法及***
CN112990260B (zh) 一种基于多方安全计算的模型评估方法和***
CN114065641A (zh) 多分类梯度提升树的构建方法、装置及电子设备

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant