基于纵向联邦学习的数据预测方法、装置和计算机设备与流程

文档序号:29704467发布日期:2022-04-16 15:20阅读:427来源:国知局
基于纵向联邦学习的数据预测方法、装置和计算机设备与流程

1.本技术涉及联邦学习技术领域,特别是涉及一种基于纵向联邦学习的数据预测方法、装置和计算机设备。


背景技术:

2.随着人工智能技术的发展,人们为解决数据孤岛的问题,提出了“联邦学习”的概念,联邦学习中的发起方和参与方作为成员方,在不用给出己方数据的情况下,也可进行模型训练得到模型参数,并且可以避免数据隐私泄露的问题。由于联邦学习过程需要大量的数据来支持,而数据又大都分布于不同的数据持有方,所以需要联合各个数据持有方来进行模型构建。其中,纵向联邦学习是在参与者的数据特征重叠较小,而用户重叠较多的情况下,取出参与者用户相同而用户数据特征不同的那部分用户及数据进行联合训练机器学习模型。
3.然而,在纵向联邦学习过程中,通常基于同态加密、混淆电路(garbled circuits,简称为cg)算法或者秘密分享(secret-sharing,简称为ss)算法的方式进行数据计算,上述算法由于需要第三方支持,所以参与纵向联邦学习的各成员方的本地数据的安全性无法保证。
4.针对相关技术中纵向联邦学习依赖于第三方实现导致成员方本地数据的安全性较低的问题,目前还没有提出有效的解决方案。


技术实现要素:

5.基于此,有必要针对上述技术问题,提供一种能够提高成员方本地数据的安全性的基于纵向联邦学习的数据预测方法、装置、计算机设备和计算机可读存储介质。
6.在本实施例中提供了一种基于纵向联邦学习的数据预测方法,所述方法包括:
7.根据总模型在上一时间步的全局损失对各成员方本地模型的第一模型参数的参数值进行更新,其中,所述本地模型为循环时间网络模型,所述第一模型参数的类型根据所述循环时间网络模型的输出结果确定;
8.将时序性的标签数据输入所述成员方的本地模型,根据更新后的第一模型参数确定所述本地模型在当前时间步的输出结果,对所述输出结果进行加密,并将加密后的所述输出结果上传至区块链;
9.通过所述区块链的智能合约在多个成员方中确定在当前时间步进行上层模型训练的执行方,将所有本地模型在当前时间步的加密后的输出结果传递至每个所述执行方,其中,所述上层模型和所述本地模型构成所述总模型;
10.根据所述总模型在上一时间步的全局损失对所述上层模型的第二模型参数的参数值进行更新,其中,所述第二模型参数的类型根据所述上层模型的类型和输出结果确定;
11.对于每个所述执行方,将所有本地模型在当前时间步的加密后的输出结果作为所述上层模型的输入,对所述上层模型进行当前时间步的训练,根据更新后的所述第二模型
参数值得到所述标签数据的当前预测值。
12.上述基于纵向联邦学习的数据预测方法、装置、计算机设备和存储介质,通过将总模型划分为本地模型和上层模型,本地模型由成员方在本地进行训练,上层模型的训练通过区块链的智能合约实现,且各个成员方之间的数据传输通过区块链实现,解决了相关技术中纵向联邦学习依赖于第三方实现导致成员方本地数据的安全性较低的问题,提高了纵向联邦学习过程中各成员方本地数据的安全性。
附图说明
13.图1为一个实施例中基于纵向联邦学习的数据预测方法的应用环境图;
14.图2为一个实施例中纵向联邦学习的示意图;
15.图3为一个实施例中基于纵向联邦学习的数据预测方法的流程示意图;
16.图4为一个实施例中一种逻辑回归模型的示意图;
17.图5为一个实施例中再一种逻辑回归模型的示意图;
18.图6为一个实施例中又一种逻辑回归模型的示意图;
19.图7为一个实施例中分类模型的示意图;
20.图8为一个实施例中本地模型更新和训练的方法的流程图;
21.图9为一个实施例中第二模型参数更新方法的流程图;
22.图10为一个优选实施例的基于纵向联邦学习的数据预测方法的流程图;
23.图11为一个实施例中基于纵向联邦学习的数据预测装置的结构框图;
24.图12为一个实施例中的计算机设备的内部结构图。
具体实施方式
25.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本技术,并不用于限定本技术。
26.本技术实施例提供的基于纵向联邦学习的数据预测方法,可以打破数据壁垒,解决数据孤岛的难题,具体地,可以应用于如图1所示的应用环境中。其中,发起方102和参与方104均为纵向联邦学习的成员方,且发起方102和参与方104之间的数据传输需要将各自的本地数据进行加密后通过区块链106实现。在对时序性数据进行处理的过程中,发起方102与参与方104分别对各自本地模型的参数进行更新,通过更新后的本地模型得到当前时间步的输出结果,发起方102和参与方104将各自的输出结果加密后上传至区块链106,由区块链106的智能合约在发起方102和参与方104中选择上层模型的执行方,并向各个执行方传递所有成员方加密后的本地模型的输出结果,各个执行方根据所有成员方本地模型加密后的输出结果进行上层模型的训练。
27.其中,发起方102和参与方104可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑、物联网设备和便携式可穿戴设备。
28.在纵向联邦学习中,各成员方的数据特征重叠较小,而用户重叠较多,如图2所示,标签数据可以分为用户维度为和特征维度,例如,在标签数据分别来自于银行和一个电商平台的情况下,银行和电商平台的用户可能会有较大程度的重叠,但是银行获取到的用户
数据和电商平台获取到的用户数据会有不同,例如,银行可以获取到用户的月收入、家庭成员、年纪等数据特征,电商平台可以获取到用户的商品消费情况等数据特征,在银行需要对用户数据特征进行分析时,可以作为发起方在区块链中发布纵向联邦学习任务,电商平台可以作为参与方加入学习任务,二者共同搭建并训练数据预测模型。在有多个电商平台加入学习任务中的情况下,为了鼓励各个参与方提供真实有效的数据,银行作为发起方需要在纵向联邦学习中确定各个参与方的激励,以保证纵向联邦学习可以得到准确的结果。
29.具体地,发起纵向联邦学习的一方为发起方,任何有联邦学习需求的机构或者平台都可以作为发起方来发布一个纵向联邦学习任务,参与方为接受发起方邀请或者主动进入纵向联邦学习的参与者,本技术中,发起方和参与方均看做纵向联邦学习的成员方。若将纵向联邦学习的训练目的看做需要得到一个和对标签数据进行预测的总模型,则该总模型包括至少一个本地模型和至少一个上层模型,其中,本地模型为各个成员方根据自身的标签数据在成员方本地进行训练和更新的模型,上层模型为一个成员方可以通过区块链获取其他成员方的本地模型的训练结果,从而根据多个成员方的本地模型的训练结果再次进行训练的模型。需要说明的是,本技术中上层模型的训练通过智能合约选择的执行方实现,且执行方在进行上层模型的训练过程中,仅对和自身相关的上层模型的第二模型参数进行更新,并根据更新后的第二模型参数对和自身相关的上层模型进行训练。可以理解的,在本地模型和上层模型的训练过程中,均需要基于上一时间步的模型参数或者模型输出对当前时间步的模型参数进行更新,同时计算得到当前时间步的输出结果。
30.如图3所示,提供了一种基于纵向联邦学习的数据预测方法,包括以下步骤:
31.步骤302,根据总模型在上一时间步的全局损失对各成员方本地模型的第一模型参数的参数值进行更新,其中,本地模型为循环时间网络模型,第一模型参数的类型根据循环时间网络模型的输出结果确定。
32.可以理解的,总模型的训练需要通过迭代完成,因此不同的时间步代表不同的训练轮次,全局损失为总模型的实际值与预测值之间的距离。对当前时间步的第一模型参数的值进行更新的过程,可以通过梯度下降法根据总模型在上一时间步的全局损失实现。
33.本技术中需要对时序性的标签数据进行处理,因此各个成员方的本地模型被设置为循环时间网络模型,以保持良好的时序属性,具体地,本地模型可以为门控循环单元(gated recurrent unit,简称为gru)模型,也可以为长短期记忆网络(long short-term memory,简称为lstm)模型。优选地,纵向联邦学习中的gru模型训练是指在各成员方的标签数据异构的情况下,在保护本地标签数据安全性的前提下完成纵向联邦学习训练。
34.作为本地模型的循环时间网络模型的输出结果可以为本地模型的隐藏状态和/或本地模型对标签数据的预测值,在输出结果不同的情况下,需要更新的第一模型参数的类型也会相应变化。
35.步骤304,将时序性的标签数据输入成员方的本地模型,根据更新后的第一模型参数确定本地模型在当前时间步的输出结果,对输出结果进行加密,并将加密后的输出结果上传至区块链。
36.其中,时序性的标签数据为按时间顺序记录的数据,可以是温度变化、工厂的传感器参数等等。
37.由于各成员方的输出结果需要上传至区块链并可能传递至其他成员方,因此在传
输至区块链之前,为了保证本地标签数据的安全性,各成员方需要先将本地模型在当前时间步的输出结果加密,例如,可以通过公钥实现加密。其中,本地模型在当前时间步的输出结果可以为本地模型的隐藏状态,也可以为本地模型对标签数据的初始预测值。
38.步骤306,通过区块链的智能合约在多个成员方中确定在当前时间步进行上层模型训练的执行方,将所有本地模型在当前时间步的加密后的输出结果传递至每个执行方,其中,上层模型和本地模型构成总模型。
39.优选地,智能合约在多个成员方中随机挑选执行方进行上层模型的训练,在确定执行方之后,智能合约会将所有成员方在当前时间步的本地模型的输出结果发送至每个执行方,需要说明的是,执行方得到的输出结果为加密状态的输出结果。
40.步骤s308,根据总模型在上一时间步的全局损失对上层模型的第二模型参数的参数值进行更新,其中,第二模型参数的类型根据上层模型的类型和输出结果确定。
41.本技术中,上层模型根据实际的场景需求进行选择,可以为线性模型,也可以为循环时间模型,还可以为多个不同类型模型的集合,因此,在上层模型的类型不同的情况下,需要更新的第二模型参数的类型也会不同。具体地,在当前时间步对第二模型参数的参数值进行更新的过程也可以通过梯度下降法实现。
42.步骤s310,对于每个执行方,将所有本地模型在当前时间步的加密后的输出结果作为上层模型的输入,对上层模型进行当前时间步的训练,根据更新后的第二模型参数值得到标签数据的当前预测值。
43.其中,对标签数据的预测根据实际的场景需求确定,具体地,在当前时间步得到的当前预测值可以为根据标签数据进行计算得到相应的输出数据,也可以对输入的标签数据进行分类得到分类结果。
44.上述基于纵向联邦学习的数据预测方法中,将总模型划分为本地模型和上层模型,本地模型为循环时间网络模型,由成员方在本地进行训练,上层模型的训练通过区块链的智能合约选择执行方进行训练,且各个成员方之间的数据传输通过区块链实现,解决了相关技术中纵向联邦学习依赖于第三方实现导致成员方本地数据的安全性较低的问题,提高了纵向联邦学习过程中各成员方本地数据的安全性。每个模型的参数都在不断执行更新。
45.在其中的一些实施例中,对本地模型在当前时间步的输出结果进行加密包括:根据与标签数据对应的成员方的掩码,对本地模型的输出结果进行加密。其中,掩码为各个成员方之间一对一确定的加密参数,可以根据各成员方的物理地址得到,也可以根据预设的安全位数得到。通过掩码对本地模型的输出结果进行加密,可以提高各成员方的标签数据的安全性。
46.本技术中的基于纵向联邦学习的数据预测方法可以用于逻辑回归模型的训练,也可以用于分类模型的训练。具体地,对于逻辑回归模型,所有的成员方拥有相同的用户维度与不同的特征空间,其中,标签数据为连续数据。参与方与发起方需在不暴露本地标签数据,以及训练过程的中间值,例如梯度等信息的情况下,共同完成纵向逻辑回归模型训练。对于分类模型,所有的成员方拥有相同的用户维度与不同的特征空间,其中,标签数据为二分类标签值或者多分类标签值,记为{-1,+1},-1代表的是负分类,+1代表的是正分类。参与方与发起方需在不暴露本地标签数据,以及训练过程的中间值,例如梯度等信息的情况下,
完成共同的纵向分类模型训练。
47.对于逻辑回归模型的训练,存在以下三种方案。
48.图4为一个实施例中一种逻辑回归模型的示意图,如图4所示,a、b、

、n表示不同的成员方,各成员方的本地模型优选为gru模型,此时,为了快速整合多个成员方的隐藏状态,上层模型选定为线性模型。具体地,h
t-1
为总模型在上一时间步的隐藏状态,其中,隐藏状态为网络模型中隐藏层的输出信息。相应的,表示各成员方在上一时间步下本地模型的隐藏状态,表示当前时间步各成员方本地模型的标签数据,的标签数据,表示当前时间步各成员方本地模型的隐藏状态,本实施例中,将隐藏状态作为本地模型的输出结果,且需要将输出结果加密后上传至区块链以进行上层模型的训练。
49.在上层模型为线性模型的情况下,对于每个执行方,可以通过智能合约在加密后的输出结果中确定多个成员方的加密状态的隐藏状态,并将多个隐藏状态进行拼接得到上层模型的输入执行方根据进行相应的上层模型的训练,得到与自身对应的上层模型在当前时间步的隐藏状态并基于该隐藏状态得到当前预测值同时将当前时间步下本地模型和上层模型的隐藏状态输出,作为下一个时间步的输入。
50.本实施例中,将上层模型设置为线性模型,基于线性模型得到多方统一的融合的隐藏信息并依托于最终对当前时间步的预测值进行判断,由于线性模型的计算复杂度较低,因此可以提高总模型的训练速度。
51.图5为一个实施例中再一种逻辑回归模型的示意图,如图5所示,a、b、

、n表示不同的成员方,且各成员方的本地模型优选为gru模型,h
t-1
为总模型在上一时间步的隐藏状态,表示各参与方在上一时间步本地模型的隐藏状态,表示当前时间步各成员方本地模型的标签数据,表示当前时间步各成员方本地模型的隐藏状态,本实施例中,各成员方在得到本地模型的隐藏状态之后,还需要计算标签数据在当前时间步的初始预测值且将初始预测值作为本地模型的输出结果,同时将输出结果加密后上传至区块链以进行上层模型的训练。
52.在上层模型为循环时间网络模型的情况下,对于每个执行方,可以通过智能合约在加密后的输出结果中确定多个成员方的加密状态的初始预测值,并将多个初始预测值进行拼接得到拼接结果另一方面,由于上层模型为循环时间网络模型,因此在训练过程中,除了拼接结果,还需要总模型在上一时间步的隐藏状态作为输入。执行方根据和进行相应的上层模型的训练,得到与自身对应的上层模型在当前时间步的隐藏状态并基于该隐藏状态得到当前预测值同时将当前时间步
下本地模型和上层模型的隐藏状态输出,作为下一个时间步的输入。优选地,上层模型同样为gru模型。
53.由于上层模型同样为循环时间网络模型,所以,对每方的初始预测值再次整合为上层gru模型的输入执行进一步的训练,可以更好地保证标签数据的时序性,以得到最终全局的当前预测值
54.图6为一个实施例中又一种逻辑回归模型的示意图,如图6所示,同样的,a、b、

、n表示不同的成员方,各成员方的本地模型优选为gru模型,h
t-1
为总模型在上一时间步的隐藏状态,表示各参与方在上一时间步本地模型的隐藏状态,表示当前时间步各成员方本地模型的标签数据,表示当前时间步各成员方本地模型的隐藏状态。本实施例中,各成员方在得到本地模型的隐藏状态之后,直接将隐藏状态作为本地模型的输出结果,同时将输出结果加密后上传至区块链以进行上层模型的训练。
55.在上层模型为循环时间网络模型的情况下,对于每个执行方,可以通过智能合约在加密后的输出结果中确定多个成员方的加密状态的隐藏状态,并将多个隐藏状态进行拼接得到拼接结果另一方面,由于上层模型为循环时间网络模型,因此在训练过程中,除了拼接结果,还需要总模型在上一时间步的隐藏状态作为输入。执行方根据和进行相应的上层模型的训练,得到与自身对应的上层模型在当前时间步的隐藏状态并基于该隐藏状态得到当前预测值同时将当前时间步下本地模型和上层模型的隐藏状态输出,作为下一个时间步的输入。优选地,上层模型同样为gru模型。
56.由于每个成员方本地模型的初始预测值在执行完本方模型的激活函数之后会损失大量有效信息,因此将本地模型提供至上层模型的输入设置为信息量更多的隐藏状态,以提高数据预测的准确性。
57.对于分类模型,训练方案如下。
58.图7为一个实施例中分类模型的示意图,如图7所示,同样的,a、b、

、n表示不同的成员方,各成员方的本地模型优选为gru模型,h
t-1
为总模型在上一时间步的隐藏状态,表示各参与方在上一时间步本地模型的隐藏状态,表示当前时间步各成员方本地模型的标签数据,表示当前时间步各成员方本地模型的隐藏状态。本实施例中,各成员方在得到本地模型的隐藏状态之后,将隐藏状态作为本地模型的输出结果,同时将该输出结果加密后上传至区块链以进行上层模型的训练。
59.在上层模型包括循环时间网络模型和分类模型的情况下,对于每个执行方,可以先通过智能合约在加密后的输出结果中确定多个成员方的加密状态的隐藏状态,并将多个隐藏状态进行拼接得到拼接结果另一方面,由于上层模型包括循环时间网络模
型,因此在训练过程中,除了拼接结果还需要总模型在上一时间步的隐藏状态共同作为输入。执行方根据和进行相应的上层模型的训练,通过执行上层模型中的循环时间网络模型得到与和对应的输出,接着,将循环时间网络模型的输出作为分类模型的输入,执行分类模型得到标签数据的当前预测值最后,将当前时间步下本地模型和上层模型的隐藏状态输出,作为下一个时间步的输入。优选地,上层模型中的循环时间网络模型为gru模型,分类模型可以为支持向量机(support vector machines,简称为svm)和/或softmax。
60.本实施例中,通过循环时间网络模型和分类模型搭建上层模型,能够将得到的逻辑回归结果进行分类,提高了基于纵向联邦学习的数据预测方法的场景适应性。
61.在其中一些实施例中,也可以通过线性模型和分类模型搭建上层模型以实现分类。对于具有分类功能的上层模型,若逻辑回归模型为线性模型,其输入可以为各本地模型的隐藏状态的拼接结果,若逻辑回归模型为循环时间网络模型,其输入还可以为各本地模型对标签数据的初始预测值的拼接结果和总模型在上一时间步的隐藏状态。
62.以下对各类模型的参数更新过程进行说明。具体地,总模型中需要更新的参数包括本地模型的第一模型参数和上层模型的第二模型参数,需要进行更新的第一模型参数的类型依赖于本地模型的输出结果类型,需要更新的第二模型参数的类型依赖于上层模型的类型。其中,各成员方均需要对本地模型的第一模型参数的值进行更新,执行方对和自身相关的上层模型的第二模型参数值进行更新。以本地模型选择gru模型为例,在时序性场景中,每个成员方需要对本地gru模型中的参数{w
xz,i
,w
xr,i
,
xs,i
,w
hz,i
,w
hr,i
,w
hs,i
,w
hy,i
}部分更新或者全部更新,其中,i为各成员方的序号。而上层模型,因为选择的模型不同,故模型需要更新的参数也不相同。
63.优选地,图8为一个实施例中本地模型更新和训练的方法的流程图,如图8所示,包括如下步骤:
64.步骤s802,根据本地模型更新后的权重参数、本地模型在上一时间步的隐藏状态、当前时间步的标签数据以及激活函数,确定当前时间步下本地模型的当前更新门和当前重置门,其中,本地模型在当前时间步的权重参数根据总模型在上一时间步的全局损失进行更新。
65.步骤s804,根据更新后的权重参数、当前时间步的标签数据、当前重置门、当前更新门以及本地模型在上一时间步的隐藏状态确定本地模型的当前隐藏状态。
66.具体地,根据本地模型更新后的权重参数、当前时间步的标签数据、当前重置门以及总模型在上一时间步的隐藏状态得到当前时间步的候选隐藏状态,然后根据当前更新门、总模型在上一时间步的隐藏状态、当前时间步的候选隐藏状态计算本地模型在当前时间步的当前隐藏状态。
67.步骤s806,根据时序性的标签数据确定第一模型参数矩阵,其中,第一模型参数矩阵包括重置门矩阵、更新门矩阵和当前隐藏状态矩阵中的至少一个。
68.对于时序性的标签数据,可以理解的,在不同的时刻会有不同的标签数据,在当前时间步中,可以根据某一时间段的多组标签数据得到多个重置门、更新门和/或隐藏状态,
因此,可以根据多个同类型的第一模型参数得到该类型下的第一模型参数矩阵。
69.步骤s808,对第一模型参数矩阵进行加密得到成员方本地模型的输出结果。
70.具体地,可以通过psa对第一模型参数矩阵加密。
71.需要说明的是,本实施例中本地模型的第一模型参数的更新是通过反向传播实现的,通过上述步骤s802至步骤s808,对第一模型参数进行更新,可以提高纵向联邦学习中数据预测的效率和准确率。
72.优选地,在上层模型包括循环时间网络模型的情况下,图9为一个实施例中第二模型参数更新方法的流程图,如图9所示,包括如下步骤:
73.步骤s902,根据上层模型更新后的权重参数、上层模型的输入、总模型在上一时间步的隐藏状态以及激活函数,确定执行方的上层模型的当前重置门和当前更新门,其中,上层模型的权重参数根据总模型在上一时间步的全局损失进行更新。
74.步骤s904,根据上层模型更新后的权重参数、当前重置门、当前更新门、上层模型的输入以及总模型在上一时间步的隐藏状态确定上层模型的当前隐藏状态。
75.具体地,根据上层模型更新后的权重参数、上层模型的输入、上层模型在当前时间步的重置门、总模型在上一时间步的隐藏状态以及激活函数确定上层模型在当前时间步的候选隐藏状态,然后根据上层模型在当前时间步的更新门、总模型在上一时间步的隐藏状态以及候选隐藏状态计算上层模型在当前时间步的隐藏状态。
76.通过上述步骤s902和步骤s904,对第二模型参数进行更新,可以提高纵向联邦学习中数据预测的效率和准确率。
77.对于图4中的逻辑回归模型,如果各成员方是第一次进行本地模型的训练,则需要对本地gru模型的第一模型参数进行初始化,如果不是第一次进行本地模型的训练,则需执行一次随机梯度下降法对本地gru模型的第一模型参数进行更新,本地gru模型更新通过如下公式1至公式6实现:
[0078][0079][0080][0081][0082][0083][0084]
在公式1至公式6中,{w
xz,i
,w
xr,i
,w
xs,i
,w
hz,i
,w
hr,i
,w
hs,i
}为本地gru模型的各个权重参数,η为可调节的预先设置的系数,eg为总模型的全局损失。
[0085]
在将各权重参数更新之后,各成员方可以执行本地gru模型,通过以下公式7至公式10对参数进行更新:
[0086][0087][0088][0089][0090]
公式7至公式10中,为当前时间步本地gru模型的更新门,为当前时间步本地gru模型的重置门,为当前时间步本地gru模型的候选隐藏状态,为当前时间步本地gru模型的隐藏状态,σ表示激活函数,x
t
表示当前时间步的标签数据,表示上一时间步本地gru模型的隐藏状态。
[0091]
然后,各成员方需要将本地gru模型的隐藏状态进行整合,如公式11所示:
[0092][0093]
在公式11中,可以将多个隐藏状态进行整合,得到当前时间步的隐藏状态的矩阵便于计算。其中,下标1至t表示对应于不同时间的标签数据,t为时序性标签数据的时间上限,上标global,i表示和第i方相关的上层模型参数。
[0094]
接着,各成员方需要对本地的进行实用安全聚合(practical secure aggregation,简称为psa)加密,具体如公式12所示:
[0095][0096]
在公式12中,表示加密后的隐藏状态的矩阵,mask
i,j
表示成员方i与成员方j之间共同确定的掩码,i为单位矩阵,u为所有成员方的集合{1,2,

,n}。
[0097]
在各成员方更新完本地模型之后,通过智能合约选择的执行方进行上层模型的第二模型参数的更新,具体地,在上层模型为线性模型的情况下,通过如下公式13进行参数更新:
[0098][0099]
在公式13中,wi为线性模型的权重参数。
[0100]
最后,执行方通过如下公式14和公式15实现上层线性模型的训练和输出:
[0101][0102][0103]
在公式14和公式15中,为上层模型在当前时间步的隐藏状态,为上层模型在当前时间步对标签数据的预测值,为调节参数,是的第t列的张量值。
[0104]
对于图5,如果各成员方是第一次进行本地模型的训练,则需要对本地gru模型的第一模型参数进行初始化,如果不是第一次进行本地模型的训练,则需执行一次随机梯度
下降法对本地gru模型的第一模型参数进行更新,本地gru模型更新通过公式1至公式6,以及如下的公式16实现:
[0105][0106]
在将各权重参数更新之后,各成员方可以执行本地gru模型,通过公式7至公式10,以及如下的公式17对本地gru模型的更新门,重置门,候选隐藏状态以、前时间步本地gru模型的隐藏状态以及本地模型的初始预测值进行更新。
[0107][0108]
在上述公式17中,y
t
为成员方本地模型的初始预测值。
[0109]
需要说明的是,与图5对应的逻辑回归模型,将本地模型当前时间步的初始预测值拼接后作为上层模型的输入,因此需要基于公式16和公式17分别对w
hy,i
和y
t
进行更新。
[0110]
然后,各成员方需要将本地gru模型的更新门、重置门和隐藏状态进行整合,且仅整合成员方拥有的上层模型中的第二模型参数,如公式18至公式20所示:
[0111][0112][0113][0114]
其中,为整合后的当前时间步的重置门矩阵,为整合后的当前时间步的更新门矩阵,为整合后的当前时间步的隐藏状态矩阵。
[0115]
具体地,其中,下标i表示第i方,下标t表示当前时间步,上标global,i表示和第i方相关的上层模型参数。
[0116]
接着,各成员方需要对各矩阵进行psa加密,具体如公式21至公式23所示:
[0117][0118][0119][0120]
同样的,在公式21至公式23中,表示加密后的重置门矩阵,表示加密后的更新门矩阵,表示加密后的隐藏状态矩阵,mask
i,j
表示成员方i与成员方j之间共同确定的掩码,i为单位矩阵。
[0121]
在各成员方更新完本地模型之后,通过智能合约选择的执行方进行上层模型的第二模型参数的更新,具体地,在上层模型为循环时间网络模型的情况下,通过如下公式24至公式30进行参数更新:
[0122]
[0123][0124][0125][0126][0127][0128][0129]
在公式24至公式30中,{w
xz,g
,w
xr,g
,w
xs,g
,w
hz,g
,w
hr,g
,w
hs,g
,w
hy,g
}为循环时间网络模型的权重参数,上标g表示和执行方相关的上层模型的第二模型参数,eg表示总模型的全局损失。
[0130]
最后,执行方通过如下公式31至公式35实现上层gru模型的训练和输出:
[0131][0132][0133][0134][0135][0136][0137]
在公式31至公式35中,均对当前时间步下的第二模型参数进行计算,上标global表示和执行方相关的上层模型的第二模型参数,具体地,为和执行方相关的上层模型的重置门,为和执行方相关的上层模型的更新门,为和执行方相关的上层模型的隐藏状态,表示上层模型对当前时间步标签数据的预测值。
[0138]
对于图6,类似的,如果各成员方是第一次进行本地模型的训练,则需要对本地gru模型的第一模型参数进行初始化,如果不是第一次进行本地模型的训练,则需执行一次随机梯度下降法对本地gru模型的第一模型参数进行更新,本地gru模型更新通过公式1至公式6实现。
[0139]
在将各权重参数更新之后,各成员方可以执行本地gru模型,同样通过公式7至公式10对本地gru模型的更新门,重置门,候选隐藏状态以及当前时间步本地gru模型的隐藏状态进行更新。
[0140]
然后,各成员方需要根据公式18至公式20将本地gru模型的更新门、重置门和隐藏状态进行整合,以得到当前时间步的重置门矩阵,当前时间步的更新门矩阵,当前时间步的隐藏状态矩阵。
[0141]
接着,各成员方需要根据公式21至公式23对本地的各矩阵进行psa加密,以得到加密后的重置门矩阵,加密后的更新门矩阵,加密后的隐藏状态矩阵。
[0142]
在各成员方更新完本地模型之后,通过智能合约选择的执行方进行上层模型的第二模型参数的更新,具体地,在上层模型为循环时间网络模型的情况下,通过公式24至公式30进行第二模型参数更新。
[0143]
最后,执行方通过公式31至公式35实现上层gru模型的训练和输出。
[0144]
对于图7中第一模型参数和第二模型参数的更新,可以参照与图6对应的方法实现。
[0145]
下面通过优选实施例对本实施例进行描述和说明。
[0146]
图10为一个优选实施例的基于纵向联邦学习的数据预测方法的流程图,如图10所示,该方法包括如下步骤:
[0147]
步骤s1002,各成员方之间通过区块链协调,两两点对点执行psa协议,生成专属psa掩码;
[0148]
步骤s1004,所述成员方初始化或者更新本地gru模型的第一模型参数,然后执行本地gru模型,得到本地gru模型在当前时间步的输出结果,该输出结果包括隐藏状态h
t
和/或预测值y
t
,并通过psa掩码对输出结果进行加密;
[0149]
步骤s1006,所有的成员方将本地模型的输出结果,以及本地模型的状态信息记录上链,触发并执行上层模型gru训练的智能合约,其中,状态信息包括本地模型的收敛情况和/或训练轮次;
[0150]
步骤s1008,上层模型智能合约随机选取执行方,上层模型智能合约向各执行方传递所有成员方加密后的本地模型的输出结果;
[0151]
步骤s1010,各执行方进行上层模型的训练,同时执行半模型激励模型,并更新上层模型中gru模型的第二模型参数;其中,半激励模型具体为计算半激励的方法,可以为一个函数或者一种算法,由发起方确定或者由发起方和参与方共同确定,半激励是指发起方和每个参与方在训练过程中分别对总模型的贡献,即各个成员方的单独贡献。通过对总模型和半激励模型的训练,最终可以获取到总模型参数和半激励参数;
[0152]
步骤s1012,执行方将与自身相关的上层模型的训练结果和半模型激励模型的执行结果上链;
[0153]
步骤s1014,触发并执行模型激励算法智能合约,模型激励算法智能合约随机选取模型激励算法的执行方,并将模型半激励数据传递至模型激励执行方,优选的,模型激励算法为shapley value激励算法;
[0154]
步骤s1016,模型激励算法的执行方运行shapley value激励算法,并将模型激励参数共识上链;
[0155]
步骤s1018,当上链完成后,区块链返回信号给发起方和所有参与方,本迭代训练结束,并判断是否开始下一迭代训练,其中,迭代终止的条件可以为迭代次数或者损失函数是否收敛。
[0156]
上述步骤s1002至步骤s1018,提供了一种处理时间序列数据或者时间序列场景的数据预测方法,解决了所有时序性数据的模拟与训练问题,提供了多种方式可以将多个成员方的标签数据进行组合。同时结合区块链技术统一协调多方执行本地模型和上层模型,去除第三方参与方的参与,能够减少数据的泄露。成员方无法直接破解其他任何成员方的中间数据与原始标签数据,同时保护了本地标签数据、本地模型以及上层模型的安全性。
[0157]
应该理解的是,虽然如上所述的各实施例所涉及的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,如上所述的各实施例所涉及的流程图中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
[0158]
基于同样的发明构思,本技术实施例还提供了一种用于实现上述所涉及的基于纵向联邦学习的数据预测方法的基于纵向联邦学习的数据预测装置。该装置所提供的解决问题的实现方案与上述方法中所记载的实现方案相似,故下面所提供的一个或多个基于纵向联邦学习的数据预测装置实施例中的具体限定可以参见上文中对于基于纵向联邦学习的数据预测方法的限定,在此不再赘述。
[0159]
在一个实施例中,如图11所示,提供了一种基于纵向联邦学习的数据预测装置,包括第一更新模块1102、第一输出模块1104、确定模块1106、第二更新模块1108和第二输出模块1110:
[0160]
第一更新模块1102,用于根据总模型在上一时间步的全局损失对各成员方本地模型的第一模型参数的参数值进行更新,其中,本地模型为循环时间网络模型,第一模型参数的类型根据循环时间网络模型的输出结果确定;
[0161]
第一输出模块1104,用于将时序性的标签数据输入成员方的本地模型,根据更新后的第一模型参数确定本地模型在当前时间步的输出结果,对输出结果进行加密,并将加密后的输出结果上传至区块链;具体地,根据与标签数据对应的成员方的掩码,对本地模型的输出结果进行加密;
[0162]
确定模块1106,用于通过区块链的智能合约在多个成员方中确定在当前时间步进行上层模型训练的执行方,将所有本地模型在当前时间步的加密后的输出结果传递至每个执行方,其中,上层模型和本地模型构成总模型;
[0163]
第二更新模块1108,用于根据总模型在上一时间步的全局损失对上层模型的第二模型参数的参数值进行更新,其中,第二模型参数的类型根据上层模型的类型和输出结果确定;
[0164]
第二输出模块1110,用于对于每个执行方,将所有本地模型在当前时间步的加密后的输出结果作为上层模型的输入,对上层模型进行当前时间步的训练,根据更新后的第二模型参数值得到标签数据的当前预测值。
[0165]
上述基于纵向联邦学习的数据预测装置,将总模型划分为本地模型和上层模型,本地模型为循环时间网络模型,由成员方在本地进行训练,上层模型的训练通过区块链的智能合约选择执行方进行训练,且各个成员方之间的数据传输通过区块链实现,解决了相关技术中纵向联邦学习依赖于第三方实现导致成员方本地数据的安全性较低的问题,提高了纵向联邦学习过程中各成员方本地数据的安全性。每个模型的参数都在不断执行更新。
[0166]
上述基于纵向联邦学习的数据预测装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0167]
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图12所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过wifi、移动蜂窝网络、nfc(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种基于纵向联邦学习的数据预测方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
[0168]
本领域技术人员可以理解,图12中示出的结构,仅仅是与本技术方案相关的部分结构的框图,并不构成对本技术方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
[0169]
在一个实施例中,还提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现上述各方法实施例中的步骤。
[0170]
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述各方法实施例中的步骤
[0171]
需要说明的是,本技术所涉及的用户信息(包括但不限于用户设备信息、用户个人信息等)和数据(包括但不限于用于分析的数据、存储的数据、展示的数据等),均为经用户授权或者经过各方充分授权的信息和数据。
[0172]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。
[0173]
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
[0174]
以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本技术专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术的保护范围应以所附权利要求为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1