因子分解机模型构建方法、设备及可读存储介质与流程

文档序号:23135060发布日期:2020-12-01 13:10阅读:191来源:国知局
因子分解机模型构建方法、设备及可读存储介质与流程

本申请涉及金融科技(fintech)的人工智能领域,尤其涉及一种因子分解机模型构建方法、设备及可读存储介质。



背景技术:

随着金融科技,尤其是互联网科技金融的不断发展,越来越多的技术(如分布式、区块链blockchain、人工智能等)应用在金融领域,但金融业也对技术提出了更高的要求,如对金融业对应待办事项的分发也有更高的要求。

随着计算机软件和人工智能的不断发展,联邦学习的应用领域也越来越广泛,目前,由于联邦学习的训练数据通常为稠密矩阵,进而通常通过同态加密的方法,对稠密矩阵进行加密,即可实现在不泄露数据隐私的前提下进行联邦学习,但是,当训练数据为稀疏矩阵数据时,例如用户画像数据等,由于在存储相同的信息时,稀疏矩阵远比稠密矩阵大,进而在基于同态加密的方法,进行联邦学习时的计算量非常大,且计算复杂度非常高,进而导致基于稀疏矩阵的联邦学习的计算效率极低。



技术实现要素:

本申请的主要目的在于提供一种因子分解机模型构建方法、设备及可读存储介质,旨在解决现有技术中基于稀疏矩阵进行联邦学习时计算效率低的技术问题。

为实现上述目的,本申请提供一种因子分解机模型构建方法,所述因子分解机模型构建方法应用于因子分解机模型构建设备,所述因子分解机模型构建方法包括:

获取预设初始化模型对应的初始化模型参数和第一稀疏数据,并基于所述初始化模型参数,与第二设备进行秘密共享,获得第一方秘密共享初始模型参数,以供所述第二设备确定第二方秘密共享初始模型参数;

基于所述第一稀疏数据中的第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二设备获取的第二稀疏数据中的第二非零部分和所述第二方秘密共享初始模型参数,计算秘密共享模型误差;

基于所述秘密共享模型误差,对所述预设初始化模型进行更新,获得纵向联邦因子分解机模型。

本申请还提供一种个性化推荐方法,所述个性化推荐方法应用于个性化推荐设备,所述个性化推荐方法包括:

获取第一方待推荐用户稀疏数据,并与第二设备进行秘密共享,获得秘密共享模型参数;

基于所述第一方待推荐用户稀疏数据中的第一非零部分和所述秘密共享模型参数,与所述第二设备进行纵向联邦预测交互,以对所述第一方待推荐用户稀疏数据对应的待推荐物品进行评分,获得第一秘密共享评分结果;

基于所述第一秘密共享评分结果,与所述第二设备进行聚合交互,以联合所述第二设备确定的第二秘密共享评分结果,计算目标评分结果;

基于所述目标评分结果,生成所述待推荐物品对应的目标推荐列表。

本申请还提供一种因子分解机模型构建装置,所述因子分解机模型构建装置为虚拟装置,且所述因子分解机模型构建装置应用于因子分解机模型构建设备,所述因子分解机模型构建装置包括:

秘密共享模块,用于获取预设初始化模型对应的初始化模型参数和第一稀疏数据,并基于所述初始化模型参数,与第二设备进行秘密共享,获得第一方秘密共享初始模型参数,以供所述第二设备确定第二方秘密共享初始模型参数;

误差计算模块,用于基于所述第一稀疏数据中的第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二设备获取的第二稀疏数据中的第二非零部分和所述第二方秘密共享初始模型参数,计算秘密共享模型误差;

生成模块,用于基于所述秘密共享模型误差,对所述预设初始化模型进行更新,获得纵向联邦因子分解机模型。

本申请还提供一种个性化推荐装置,所述个性化推荐装置为虚拟装置,且所述个性化推荐装置应用于个性化推荐设备,所述个性化推荐装置包括:

秘密共享模块,用于获取第一方待推荐用户稀疏数据,并与第二设备进行秘密共享,获得秘密共享模型参数;

评分模块,用于基于所述第一方待推荐用户稀疏数据中的第一非零部分和所述秘密共享模型参数,与所述第二设备进行纵向联邦预测交互,以对所述第一方待推荐用户稀疏数据对应的待推荐物品进行评分,获得第一秘密共享评分结果;

聚合模块,用于基于所述第一秘密共享评分结果,与所述第二设备进行聚合交互,以联合所述第二设备确定的第二秘密共享评分结果,计算目标评分结果;

生成模块,用于基于所述目标评分结果,生成所述待推荐物品对应的目标推荐列表。

本申请还提供一种因子分解机模型构建设备,所述因子分解机模型构建设备为实体设备,所述因子分解机模型构建设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述因子分解机模型构建方法的程序,所述因子分解机模型构建方法的程序被处理器执行时可实现如上述的因子分解机模型构建方法的步骤。

本申请还提供一种个性化推荐设备,所述个性化推荐设备为实体设备,所述个性化推荐设备包括:存储器、处理器以及存储在所述存储器上并可在所述处理器上运行的所述个性化推荐方法的程序,所述个性化推荐方法的程序被处理器执行时可实现如上述的个性化推荐方法的步骤。

本申请还提供一种可读存储介质,所述可读存储介质上存储有实现因子分解机模型构建方法的程序,所述因子分解机模型构建方法的程序被处理器执行时实现如上述的因子分解机模型构建方法的步骤。

本申请还提供一种可读存储介质,所述可读存储介质上存储有实现个性化推荐方法的程序,所述个性化推荐方法的程序被处理器执行时实现如上述的个性化推荐方法的步骤。

本申请提供了一种因子分解机模型构建方法、设备和可读存储介质,相比于现有技术采用基于同态加密的方法进行联邦学习的技术手段,本申请在获取预设初始化模型对应的初始化模型参数和第一稀疏数据之后,与第二设备进行秘密共享,进而第一设备获得第一方秘密共享初始模型参数,第二设备获得第二方秘密共享初始模型参数,进而基于所述第一稀疏数据中的第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二设备获取的第二稀疏数据中的第二非零部分和所述第二方秘密共享初始模型参数,计算秘密共享模型误差,其中,在进行联邦交互时,仅利用了第一稀疏数据中的第一非零部分和第二稀疏数据中的第二非零部分进行计算,进而减少了第一稀疏数据和第二稀疏数据中关于零部分的计算过程,使得联邦交互过程中的计算量和计算复杂度均大幅度降低,进而基于秘密共享模型误差,对预设初始化模型进行更新,即可得到纵向联邦因子分解机模型,克服了现有技术中由于稀疏矩阵过大,通过同态加密的方法,进行基于稀疏矩阵的联邦学习时计算效率低的技术缺陷,进而提高了基于稀疏矩阵的联邦学习时的计算效率。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。

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

图1为本申请因子分解机模型构建方法第一实施例的流程示意图;

图2为本申请因子分解机模型构建方法第二实施例的流程示意图;

图3为本申请个性化推荐方法第三实施例的流程示意图;

图4为本申请实施例因子分解机回归模型构建方法涉及的硬件运行环境的设备结构示意图;

图5为本申请实施例个性化推荐方法涉及的硬件运行环境的设备结构示意图。

本申请目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。

本申请实施例提供一种因子分解机模型构建方法,在本申请因子分解机模型构建方法的第一实施例中,参照图1,所述因子分解机模型构建方法应用于第一设备,所述因子分解机模型构建方法包括:

步骤s10,获取预设初始化模型对应的初始化模型参数和第一稀疏数据,并基于所述初始化模型参数,与第二设备进行秘密共享,获得第一方秘密共享初始模型参数,以供所述第二设备确定第二方秘密共享初始模型参数;

在本实施例中,需要说明的是,所述第一设备和所述第二设备均为纵向联邦学习的参与方,所述第一设备拥有带有样本标签的第一稀疏数据,所述第一稀疏数据可用第一稀疏矩阵和样本标签进行表示,例如,假设所述第一稀疏数据为(xa,y),xa为所述第一稀疏矩阵,y为所述样本标签,另外地,所述第二设备拥有不带有样本标签的第二稀疏数据,所述第二稀疏数据可用第二稀疏矩阵进行表示,例如,假设第二稀疏矩阵为xb

另外地,在本实施例中,所述因子分解机模型为基于纵向联邦学习构建的机器学习模型,所述因子分解机模型的模型参数为第一设备和第二设备共同持有,其中,所述因子分解机模型对应的模型参数可用矩阵进行表示,在对所述因子分解进行初始化后,所述因子分解机模型对应的模型参数包括属于第一设备的初始化模型参数和属于第二设备的第二方初始化模型参数,其中,所述初始化模型参数包括第一方第一类型模型参数向量、第一方第二类型模型参数矩阵和所述第一方第二类型模型参数矩阵对应的第一方转置矩阵,所述第二方初始化模型参数包括第二方第一类型模型参数向量、第二方第二类型模型参数矩阵和所述第二方第二类型模型参数矩阵对应的第二方转置矩阵,例如,假设所述第一方第一类型模型参数向量为wa,所述第二方第一类型模型参数向量为wb,所述第一方第二类型模型参数矩阵为va,所述第二方第二类型模型参数矩阵为vb,且所述因子分解机模型的模型参数为第一类型模型参数w=[wa,wb]和第二类型模型参数v=[va,vb]。

另外地,需要说明的是,对数据进行秘密共享的过程为将数据拆分为两份子数据,且两份子数据分别由秘密共享的两方持有的过程,例如,假设秘密共享的两方为a和b,则对数据x进行秘密共享,则a持有数据x的第一份额[[x]]a,b持有数据x的第二份额[[x]]b,且x=[[x]]a+[[x]]b

另外地,需要说明的是,所述因子分解机模型的模型表达式如下所示:

z(x)=<w,x>+∑i<j<vi,vj>xixj

其中,x为模型输入数据对应的数据矩阵,其中,所述模型输入数据包括第一稀疏数据(xa,y)和第二稀疏数据xb,其中,y为所述样本标签,xa具有da个特征维度的第一稀疏矩阵,xb具有db个特征维度的第二稀疏矩阵,第一类型模型参数为w,其中,w为d维向量,第二类型模型参数为v,其中,v为d*dx的矩阵,且w=[wa,wb],也即,w是由第一方第一类型模型参数向量wa和第二方第一类型模型参数向量wb组成,其中,wa为da维向量,wb为db维向量,另外地,v=[va,vb],其中,v是由第一方第二类型模型参数矩阵va和所述第二方第二类型模型参数矩阵vb组成,其中,va为da*dx维矩阵,vb为db*dx维矩阵,<w,x>为w和x的内积,vi为v的第i列的列向量,vj为v的第j列的列向量,xi为x的第i列的列向量,xj为x的第j列的列向量。

获取预设初始化模型对应的初始化模型参数和第一稀疏数据,并基于所述初始化模型参数,与第二设备进行秘密共享,获得第一方秘密共享初始模型参数,以供所述第二设备确定第二方秘密共享初始模型参数,具体地,对所述因子分解机模型进行初始化,获得所述预设初始化模型,并获取所述预设初始化模型对应的初始化模型参数,其中,所述第二设备获得第二方初始化模型参数,并将所述第二方初始化模型参数拆分为第二方初始化模型参数第一份额和第二方初始化模型参数第二份额,进而获取第一稀疏数据,并将所述初始化模型参数拆分为初始化模型参数第一份额和初始化模型参数第二份额,其中,所述初始化模型参数第一份额包括第一方第一类型模型参数向量第一份额、第一方第二类型模型参数矩阵第一份额和所述第一方转置矩阵第一份额,所述初始化模型参数第二份额包括第一方第一类型模型参数向量第二份额、第一方第二类型模型参数矩阵第二份额和所述第一方转置矩阵第二份额,进而将所述初始化模型参数第二份额发送至所述第二设备,以供所述第二设备将所述初始化模型第二份额和所述第二方初始化模型第一份额作为所述第二方秘密共享模型参数,进而接收所述第二设备发送的第二方初始化模型参数第二份额,将所述初始化模型参数第一份额和所述第二方初始化模型参数第二份额作为所述第一方秘密共享初始模型参数,其中,所述第二方初始化模型参数第一份额包括第二方第一类型模型参数向量第一份额、第二方第二类型模型参数矩阵第一份额和所述第二方转置矩阵第一份额,所述第二方初始化模型参数第二份额包括第二方第一类型模型参数向量第二份额、第二方第二类型模型参数矩阵第二份额和所述第二方转置矩阵第二份额,例如,假设所述初始化模型参数为ga,所述第二方初始化模型参数诶gb,则进行秘密共享后,第一设备拥有初始化模型第一份额[[ga]]a和第二方初始化模型第二份额[[gb]]a,第二设备拥有初始化模型第二份额[[ga]]b和第二方初始化模型第一份额[[gb]]b,且ga=[[ga]]a+[[ga]]b,gb=[[gb]]a+[[gb]]b。

步骤s20,基于所述第一稀疏数据中的第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二设备获取的第二稀疏数据中的第二非零部分和所述第二方秘密共享初始模型参数,计算秘密共享模型误差;

在本实施例中,需要说明的是,所述第一非零部分为所述第一稀疏矩阵中的各列向量,所述第二非零部分为所述第二稀疏矩阵中的各列向量。

基于所述第一稀疏数据中的第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二设备获取的第二稀疏数据中的第二非零部分和所述第二方秘密共享初始模型参数,计算秘密共享模型误差,具体地,基于所述第一稀疏数据中的第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二设备确定的第二稀疏数据中的第二非零部分和第二方秘密共享初始模型参数,计算各秘密共享误差参数项,进而基于各所述秘密共享参数项、秘密共享样本标签和预设秘密共享模型误差计算公式,计算所述秘密共享模型误差,其中,所述秘密共享样本标签为将所述样本标签与第二设备进行秘密共享获得的,其中,所述秘密共享样本标签为所述样本标签的第一份额,所述样本标签的第二份额为第二方秘密共享样本标签,且由所述第二设备持有。

其中,所述基于所述第一稀疏数据中的第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二设备获取的第二稀疏数据中的第二非零部分和所述第二方秘密共享初始模型参数,计算秘密共享模型误差的步骤包括:

步骤s21,基于预设秘密共享乘法三元组、所述第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二非零部分和所述第二方秘密共享初始模型参数,计算稀疏矩阵安全内积和秘密共享中间参数;

在本实施例中,需要说明的是,所述秘密共享误差参数项为用于计算秘密共享误差的参数项,各所述秘密共享参数项包括系数矩阵安全内积和秘密共享中间参数。

基于预设秘密共享乘法三元组、所述第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二非零部分和所述第二方秘密共享初始模型参数,计算稀疏矩阵安全内积和秘密共享中间参数,具体地,基于所述第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二非零部分和所述第二方秘密共享初始模型参数,计算稀疏矩阵安全内积,并基于预设秘密共享乘法三元组、所述第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述预设秘密共享乘法三元组对应的预设第二方秘密共享乘法三元组、所述第二非零部分和所述第二方秘密共享初始模型参数,计算秘密共享中间参数。

其中,所述第一方秘密共享初始模型参数包括第一类型共享模型参数和第二类型共享模型参数,所述第二方秘密共享初始模型参数包括第二方第一类型共享模型参数和第二方第二类型共享模型参数,所述稀疏矩阵安全内积包括第一类型稀疏矩阵安全内积和第二类型稀疏矩阵安全内积,

所述基于预设秘密共享乘法三元组、所述第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二非零部分和所述第二方秘密共享初始模型参数,计算稀疏矩阵安全内积和秘密共享中间参数的步骤包括:

步骤s211,基于所述第一类型共享模型参数和所述第一非零部分,与所述第二设备进行联邦交互,以联合所述第二方第一类型共享模型参数和所述第二非零部分,计算所述第一类型稀疏矩阵安全内积;

在本实施例中,需要说明的是,所述第一类型共享模型参数为第一设备持有的秘密共享的第一类型模型参数,其中,所述第一类型共享模型参数包括第五共享参数和第六共享参数,其中,所述第五共享参数为第一方第一类型模型参数向量的第一份额,所述第六共享参数为第二方第一类型模型参数向量的第二份额,所述第二方第一类型共享模型参数为第二设备持有的秘密共享的第一类型模型参数,其中,所述第二方第一类型共享参数包括第七共享参数和第八共享参数,其中,所述第七共享参数为第一方第一类型模型参数向量的第二份额,所述第八共享参数为第二方第一类型模型参数向量的第一份额,所述第一类型稀疏矩阵安全内积包括第三非零特征项交叉内积和第四非零特征项交叉内积,其中,所述第三非零特征项交叉内积为第一设备中秘密共享的第一方第一类型模型参数向量和所述第一非零部分的交叉特征项内积,也即,所述第三非零特征项交叉内积为第一设备中秘密共享的第一方第一类型模型参数向量和第一非零部分中每一列向量的乘积的累加值,其中,所述第三非零特征项交叉内积可用向量进行表示,所述第四非零特征项交叉内积为第一设备中秘密共享的第二方第一类型模型参数向量和所述第二非零部分的交叉特征项内积,所述第四非零特征项交叉内积为第一设备中为秘密共享的第二方第一类型模型参数向量和第二非零部分中每一列向量的乘积的累加值,其中,所述第四非零特征项交叉内积可用向量进行表示。

基于所述第一类型共享模型参数和所述第一非零部分,与所述第二设备进行联邦交互,以联合所述第二方第一类型共享模型参数和所述第二非零部分,计算所述第一类型稀疏矩阵安全内积,具体地,第二设备生成第三公钥和第三公钥对应的第三私钥,并对基于所述第三公钥,对所述第七共享参数进行同态加密,获得加密第七共享参数,并将所述第三公钥和所述加密第七共享参数发送至所述第一设备,进而第一设备接收所述第三公钥和所述加密第七共享参数,进而基于所述第三公钥,对所述第五共享参数进行同态加密,获得加密第五共享参数,进而计算所述加密第五共享参数和所述加密第七共享参数之和,获得加密第一方第一类型模型参数向量,进而计算所述加密第一方第一类型模型参数向量和所述第一稀疏矩阵中的第一非零部分中的每一第一非零列向量的乘积,获得各所述第一非零列向量对应的第一向量乘积,其中,所述第一稀疏矩阵的每一行对应一个样本维度,所述第一稀疏矩阵的每一列对应一个特征维度,进而将各所述第一向量乘积进行累加,获得第三加密内积,进而构建均匀分布的且与所述第三加密内积的特征维度一致的第三非零特征项交叉内积,并基于所述第三公钥,对所述第三非零特征项交叉内积进行同态加密,获得加密第三非零特征项交叉内积,进而计算所述第三加密内积和所述加密第三非零特征项交叉内积的差值,获得加密第二方第三非零特征项交叉内积,并将所述加密第二方第三非零特征项交叉内积发送至所述第二设备,进而第二设备基于所述第三私钥,对应所述加密第二方第三非零特征项交叉内积进行解密,获得第二方第三非零特征项交叉内积,其中,所述第二方第三非零特征项交叉内积为第二设备中秘密共享的第一方第一类型模型参数向量和所述第一非零部分的交叉特征项内积,也即,所述第二方第三非零特征项交叉内积为第二设备中秘密共享的第一方第一类型模型参数向量和第一非零部分中每一列向量的乘积的累加值,相同地,第一设备生成第四公钥和第四公钥对应的第四私钥,并基于所述第四公钥,对所述第六共享参数进行同态加密,获得加密第六共享参数,进而将所述第四公钥和所述加密第六共享参数发送至所述第二设备,进而第二设备接收所述第四公钥和所述加密第六共享参数,并基于所述第四公钥,对所述第八共享参数进行同态加密,获得加密第八共享参数,进而计算所述加密第六共享参数和所述加密第八共享参数,获得加密第二方第一类型模型参数向量,进而计算所述加密第二方第一类型模型参数向量和所述第二稀疏矩阵中第二非零部分中的每一第二非零列向量的乘积,获得各所述第二非零列向量对应的第二向量乘积,其中,所述第二稀疏矩阵的每一行对应一个样本维度,所述第二稀疏矩阵的每一列对应一个特征维度,进而将各所述第二向量乘积进行累加,获得第四加密内积,进而构建与所述第四加密内积特征维度一致的第二方第四非零特征项交叉内积,其中,所述第二方第四非零特征项交叉内积为第二设备中秘密共享的第二方第一类型模型参数向量和所述第二非零部分的交叉特征项内积,所述第二方第四非零特征项交叉内积为第二设备中为秘密共享的第二方第一类型模型参数向量和第二非零部分中每一列向量的乘积的累加值,进而基于所述第四公钥,对所述第二方第四非零特征项交叉内积进行同态加密,获得加密第二方第四非零特征项交叉内积,进而计算所述第四加密内积和所述加密第二方第四非零特征项交叉内积的差值,获得加密第四非零特征项交叉内积,并将所述加密第四非零特征项交叉内积发送至所述第一设备,进而第一设备接收所述加密第四非零特征项交叉内积,并对所述加密第四非零特征项交叉内积进行解密,获得第四非零特征项交叉内积,其中,所述第三非零特征项交叉内积和所述第四非零特征项交叉内积可选择在同一时间进行计算,也可选择在不同时间进行计算。

另外地,所述第三非零特征项交叉内积和所述第四非零特征项交叉内积的表达式如下所示:

其中,q1为所述第三非零特征项交叉内积,q2为所述第四非零特征项交叉内积,wa为所述第一方第一类型模型参数向量,为所述第一非零列向量,xa为所述第一稀疏矩阵,da表示所述第一稀疏矩阵具有da个特征维度,wb为所述第二方第一类型模型参数向量,为所述第二非零列向量,xb为所述第二稀疏矩阵,db表示所述第一稀疏矩阵具有db个特征维度,[[]]a表示括号中的内容为秘密共享的数据,且属于第一设备,进而所述第二方第三非零特征项交叉内积和所述第二方第四非零特征项交叉内积的表达式如下所示:

其中,q3为所述第二方第三非零特征项交叉内积,q4为所述第二方第四非零特征项交叉内积,[[]]b表示括号中的内容为秘密共享的数据,且属于第二设备。

另外地,所述第三非零特征项交叉内积和所述第二方第三非零特征项交叉内积的关联关系,以及所述第四非零特征项交叉内积和第二方第四非零特征项交叉内积的关联关系如下所示:

步骤s212,基于所述第二类型共享模型参数和所述第一非零部分,与所述第二设备进行联邦交互,以联合所述第二方第二类型共享模型参数和所述第二非零部分,计算所述第二类型稀疏矩阵安全内积;

在本实施例中,需要说明的是,所述第二类型共享模型参数为第一设备持有的秘密共享的第二类型模型参数,其中,所述第二类型共享模型参数包括第一共享参数和第三共享参数,其中,所述第一共享参数为第二方第二类型模型参数矩阵的第二份额,所述第三共享参数为第一方第二类型模型参数矩阵的第一份额,所述第二方第二类型共享模型参数为第二设备持有的秘密共享的第二类型模型参数,其中,所述第二方第二类型共享参数包括第二共享参数和第四共享参数,其中,所述第二共享参数为第二方第二类型模型参数矩阵的第一份额,所述第四共享参数为第一方第二类型模型参数矩阵的第二份额,所述第二类型稀疏矩阵安全内积包括第一非零特征项交叉内积和第二非零特征项交叉内积,其中,所述第一非零特征项交叉内积为第一设备中秘密共享的第二方第二类型模型参数矩阵和所述第二非零部分的交叉特征项内积,也即,所述第一非零特征项交叉内积为第一设备中秘密共享的第二方第二类型模型参数矩阵中的每一列向量和第二非零部分中每一列向量的乘积的累加值,所述第二非零特征项交叉内积为第一设备中秘密共享的第一方第二类型模型参数矩阵和所述第一非零部分的交叉特征项内积,所述第二非零特征项交叉内积为第一设备中为秘密共享的第一方第二类型模型参数矩阵中每一列向量和第一非零部分中每一列向量的乘积的累加值,相同地,基于所述第二类型共享模型参数和所述第一非零部分,与所述第二设备进行联邦交互,以联合所述第二方第二类型共享模型参数和所述第二非零部分,计算所述第二类型稀疏矩阵安全内积,具体地,基于所述第一共享参数,与所述第二设备进行联邦交互,以联合所述第二共享参数和所述第二非零部分,计算所述第一非零特征项交叉内积,并协助所述第二设备计算所述第一非零特征项交叉内积对应的第二方第一非零特征项交叉内积,其中,所述第二方第一非零特征项交叉内积为第二设备中秘密共享的第二方第二类型模型参数矩阵和所述第二非零部分的交叉特征项内积,也即,所述第二方第一非零特征项交叉内积为第二设备中秘密共享的第二方第二类型模型参数矩阵中的每一列向量和第二非零部分中每一列向量的乘积的累加值,相同地,基于所述第三共享参数和所述第一非零部分,与所述第二设备进行联邦交互,以联合所述第四共享参数,计算第二非零特征项交叉内积,并协助所述第二设备计算第二方第二非零特征项交叉内积,其中,所述第二方第二非零特征项交叉内积为第二设备中秘密共享的第一方第二类型模型参数矩阵和所述第一非零部分的交叉特征项内积,所述第二方第二非零特征项交叉内积为第二设备中为秘密共享的第一方第二类型模型参数矩阵中每一列向量和第一非零部分中每一列向量的乘积的累加值,其中,所述第一非零特征项交叉内积和所述第二非零特征项交叉内积可选择在同一时间进行计算,也可选择在不同时间进行计算。

另外地,所述第一非零特征项交叉内积和所述第二非零特征项交叉内积的表达式如下所示:

其中,r1为所述第一非零特征项交叉内积,r2为所述第二非零特征项交叉内积,va为所述第一方第二类型模型参数向量,为所述第一非零列向量,xa为所述第一稀疏矩阵,vb为所述第二方第二类型模型参数向量,为所述第二非零列向量,xb为所述第二稀疏矩阵,[[]]a表示括号中的内容为秘密共享的数据,且属于第一设备,进而,所述第二方第一非零特征项交叉内积和所述第二方第二非零特征项交叉内积的表达式如下:

其中,r3为所述第二方第一非零特征项交叉内积,r4为所述第二方第二非零特征项交叉内积,[[]]b表示括号中的内容为秘密共享的数据,且属于第二设备。

另外地,所述第一非零特征项交叉内积和所述第二方第一非零特征项交叉内积的关联关系,以及所述第二非零特征项交叉内积和第二方第二非零特征项交叉内积的关联关系如下所示:

步骤s213,基于所述第二类型共享模型参数、所述第一非零部分和所述预设秘密共享乘法三元组,与所述第二设备进行联邦交互,以联合所述第二方第二类型共享模型参数和所述第二非零部分,计算所述秘密共享中间参数。

在本实施例中,需要说明的是,所述预设秘密共享乘法三元组为第一设备持有的秘密共享的乘法三元组,且所述第二设备持有所述预设秘密共享乘法三元组对应的第二方秘密共享乘法三元组,其中,所述预设秘密共享乘法三元组和所述第二方秘密共享乘法三元组之和为所述乘法三元组,其中,所述乘法三元组为三个具有乘积关系的参数组成的数组,例如,假设乘法三元组为(a,b,c),则具有乘积关系c=a*b。

另外地,需要说明的是,所述第二类型共享模型参数包括所述第一共享参数、所述第一共享参数对应的第一共享转置参数、所述第三共享参数和所述第三共享参数对应的第二共享转置参数,其中,所述第一共享转置参数为第一设备持有的秘密共享的所述第二方转置矩阵,所述第二共享转置参数为第一设备持有的秘密共享的所述第一方转置矩阵,所述第二方第二类型共享模型参数包括所述第二共享参数、所述第二共享参数对应的第三共享转置参数、所述第四共享参数和所述第四共享参数对应的第四共享转置参数,其中,所述第三共享转置参数为第二设备持有的秘密共享的所述第二方转置矩阵,所述第四共享转置参数为第二设备持有的秘密共享的所述第一方转置矩阵。

另外地,需要说明的是,所述秘密共享中间参数包括第一方第一秘密共享中间参数和第一方第二秘密共享中间参数,其中,所述第一方第一秘密共享中间参数为第一设备持有的秘密共享的第一中间参数,所述第一方第二秘密共享中间参数为第一设备持有的秘密共享的第二中间参数,其中,所述第一中间参数为第二方第二类型模型参数矩阵、所述第二方转置矩阵、所述第二稀疏矩阵中的第二非零部分和所述第二稀疏矩阵对应的转置矩阵中的非零部分共同组成的秘密共享非零特征项交叉内积,也即所述第一中间参数中的每一数值均为第二方第二类型模型参数矩阵的列向量、所述第二方转置矩阵的列向量、所述第二稀疏矩阵中的第二非零部分的列向量和所述第二稀疏矩阵对应的转置矩阵中的非零部分的列向量四者共同的秘密共享乘积,相同地,所述第二中间参数为第一方第二类型模型参数矩阵、所述第一方转置矩阵、所述第一稀疏矩阵中的第一非零部分和所述第一稀疏矩阵对应的转置矩阵中的非零部分共同组成的秘密共享非零特征项交叉内积,也即所述第二中间参数中的每一数值均为第一方第二类型模型参数矩阵的列向量、所述第一方转置矩阵的列向量、所述第一稀疏矩阵中的第一非零部分的列向量和所述第一稀疏矩阵对应的转置矩阵中的非零部分的列向量四者共同的秘密共享乘积。

基于所述第二类型共享模型参数、所述第一非零部分和所述预设秘密共享乘法三元组,与所述第二设备进行联邦交互,以联合所述第二方第二类型共享模型参数和所述第二非零部分,计算所述秘密共享中间参数,具体地,基于所述预设秘密共享乘法三元组、所述第一共享参数和所述第一共享转置参数,与所述第二设备进行联邦交互,以联合所述第二方秘密共享乘法三元组、所述第二共享参数和所述第三共享转置参数,计算第一方第一转置矩阵内积,且协助第二设备计算第二方第一转置矩阵内积,进而基于所述第一方第一转置矩阵内积,与所述第二设备进行联邦交互,以联合所述第二方第一转置矩阵内积和所述第二非零部分,计算第一方第一秘密共享中间参数,且协助所述第二设备计算第二方第一秘密共享中间参数,相同地,基于所述预设秘密共享乘法三元组、所述第三共享参数和所述第二共享转置参数,与所述第二设备进行联邦交互,以联合所述第二方秘密共享乘法三元组、所述第四共享参数和所述第四共享转置参数,计算第一方第二转置矩阵内积,且协助第二设备计算第二方第二转置矩阵内积,进而基于所述第一方第二转置矩阵内积和所述第一非零部分,与所述第二设备进行联邦交互,以联合所述第二方第二转置矩阵内积,计算第一方第二秘密共享中间参数,且协助所述第二设备计算第二方第二秘密共享中间参数,其中,所述第一方第一秘密共享中间参数和所述第一方第二秘密共享中间参数的表达式如下所示:

其中,t1为所述第一方第一秘密共享中间参数,t2为所述第一方第二秘密共享中间参数,vb为所述第二方第二类型模型参数矩阵,为所述第二方第二类型模型参数矩阵的列向量,xb为所述第二稀疏矩阵,为所述第二稀疏矩阵中的第二非零部分的列向量,va为所述第一方第二类型模型参数矩阵,为所述第一方第二类型模型参数矩阵的列向量,xa为所述第一稀疏矩阵,为所述第一稀疏矩阵中的第一非零部分的列向量。

其中,所述第二类型共享模型参数包括第二类型秘密共享参数矩阵和所述第二类型秘密共享参数矩阵对应的秘密共享转置参数矩阵,所述第二方第二类型共享模型参数包括第二方第二类型秘密共享参数矩阵和所述第二方第二类型共享参数矩阵对应的第二方秘密共享转置参数矩阵,

所述基于所述第二类型共享模型参数、所述第一非零部分和所述预设秘密共享乘法三元组,与所述第二设备进行联邦交互,以联合所述第二方第二类型共享模型参数和所述第二非零部分,计算所述秘密共享中间参数的步骤包括:

步骤a10,基于所述预设秘密共享乘法三元组,通过与所述第二设备进行联邦交互,计算所述第二类型秘密共享参数矩阵和所述秘密共享转置参数矩阵之间的秘密共享乘积,获得所述秘密共享矩阵内积,以供所述第二设备计算所述第二方第二类型秘密共享参数矩阵和所述第二方秘密共享转置参数矩阵之间的秘密共享乘积,获得所述第二方秘密共享矩阵内积;

在本实施例中,需要说明的是,所述秘密共享矩阵内积包括第一方第一转置矩阵内积和第一方第二转置矩阵内积,所述第二方秘密共享矩阵内积包括第二方第一转置矩阵内积和第二方第二转置矩阵内积,所述第二类型秘密共享参数矩阵包括第一共享参数矩阵和第三共享参数矩阵,其中,所述第一共享参数矩阵为第一共享参数的矩阵表示,所述第三共享参数矩阵为第三共享参数的矩阵表示,所述秘密共享转置参数矩阵包括第一共享转置参数矩阵和第二共享转置参数矩阵,其中,所述第一共享转置参数矩阵为所述第一共享转置参数的矩阵表示,所述第二共享转置参数矩阵为所述第二共享转置参数的矩阵表示,所述第二方第二类型秘密共享参数矩阵包括第二共享参数矩阵和第四共享参数矩阵,其中,所述第二共享参数矩阵为第二共享参数的矩阵表示,所述第四共享参数矩阵为所述第四共享参数的矩阵表示,所述第二方秘密共享转置参数矩阵包括第三共享转置参数矩阵和第四共享转置参数矩阵,其中,所述第三共享转置参数矩阵为所述第三共享转置参数的矩阵表示,所述第四共享转置参数矩阵为所述第四共享转置参数的矩阵表示。

基于所述预设秘密共享乘法三元组,通过与所述第二设备进行联邦交互,计算所述第二类型秘密共享参数矩阵和所述秘密共享转置参数矩阵之间的秘密共享乘积,获得所述秘密共享矩阵内积,以供所述第二设备计算所述第二方第二类型秘密共享参数矩阵和所述第二方秘密共享转置参数矩阵之间的秘密共享乘积,获得所述第二方秘密共享矩阵内积,具体地,第一设备基于所述预设秘密共享乘法三元组,分别对所述第一共享参数矩阵和所述第一共享转置参数矩阵进行盲化,获得所述第一共享参数矩阵对应的第一方第一共享盲化参数矩阵和所述第一共享转置参数矩阵对应的第一方第二共享盲化参数矩阵,相同地,所述第二设备基于所述第二方秘密共享乘法三元组,分别对所述第二共享参数矩阵和所述第三共享转置参数矩阵进行盲化,获得所述第二共享参数矩阵对应的第二方第一共享盲化参数矩阵和所述第三共享转置参数矩阵对应的第二方第二共享盲化参数矩阵,并将所述第二方第一共享盲化参数矩阵和所述第二方第二共享盲化参数矩阵发送至所述第一设备,进而第一设备计算所述第一方第一共享盲化参数矩阵和所述第二方第一共享盲化参数矩阵之和,获得第一盲化参数矩阵,计算所述第一方第二共享盲化参数矩阵和所述第二方第二共享盲化参数矩阵之和,获得第二盲化参数矩阵,并将所述第一方第一共享盲化参数矩阵和所述第一方第二共享盲化参数矩阵发送至所述第二设备,进而第二设备计算所述第一方第一共享盲化参数矩阵和所述第二方第一共享盲化参数矩阵之和,获得第一盲化参数矩阵,计算所述第一方第二共享盲化参数矩阵和所述第二方第二共享盲化参数矩阵之和,获得第二盲化参数矩阵,进一步地,第一设备基于预设第一方转置矩阵内积计算公式,计算所述预设秘密共享乘法三元组、所述第一盲化参数矩阵和所述第二盲化参数矩阵共同对应的第一方第一转置矩阵内积,相同地,第二设备基于预设第二方转置矩阵内积计算公式,计算所述第二方秘密共享乘法三元组、所述第一盲化参数矩阵和所述第二盲化参数矩阵共同对应的第二方第一转置矩阵内积。

进一步地,第一设备基于所述预设秘密共享乘法三元组,分别对所述第三共享参数矩阵和所述第二共享转置参数矩阵进行盲化,获得所述第三共享参数矩阵对应的第一方第三共享盲化参数矩阵和所述第二共享转置参数矩阵对应的第一方第四共享盲化参数矩阵,相同地,所述第二设备基于所述第二方秘密共享乘法三元组,分别对所述第四共享参数矩阵和所述第四共享转置参数矩阵进行盲化,获得所述第四共享参数矩阵对应的第二方第三共享盲化参数矩阵和所述第四共享转置参数矩阵对应的第二方第四共享盲化参数矩阵,并将所述第二方第三共享盲化参数矩阵和所述第二方第四共享盲化参数矩阵发送至所述第一设备,进而第一设备计算所述第一方第三共享盲化参数矩阵和所述第二方第三共享盲化参数矩阵之和,获得第三盲化参数矩阵,计算所述第一方第四共享盲化参数矩阵和所述第二方第四共享盲化参数矩阵之和,获得第四盲化参数矩阵,并将所述第一方第三共享盲化参数矩阵和所述第一方第四共享盲化参数矩阵发送至所述第二设备,进而第二设备计算所述第一方第三共享盲化参数矩阵和所述第二方第三共享盲化参数矩阵之和,获得第三盲化参数矩阵,计算所述第一方第四共享盲化参数矩阵和所述第二方第四共享盲化参数矩阵之和,获得第四盲化参数矩阵,进一步地,第一设备基于预设第一方转置矩阵内积计算公式,计算所述预设秘密共享乘法三元组、所述第三盲化参数矩阵和所述第四盲化参数矩阵共同对应的第一方第二转置矩阵内积,相同地,第二设备基于预设第二方转置矩阵内积计算公式,计算所述第二方秘密共享乘法三元组、所述第三盲化参数矩阵和所述第四盲化参数矩阵共同对应的第二方第二转置矩阵内积,其中,所述预设第一方第一转置矩阵内积计算公式和所述预设第二方第一转置矩阵内积公式如下所示:

[[x*y]]a=f*[[a]]a+e*[[b]]a+[[c]]a

[[x*y]]b=e*f+f*[[a]]b+e*[[b]]b+[[c]]b

其中,[[x*y]]a为所述第一方第一转置矩阵内积,[[x*y]]b为所述第二方第一转置矩阵内积,e为所述第一盲化参数矩阵,f为所述第二盲化参数矩阵,乘法三元组为(a,b,c),其中,c=a*b,所述预设秘密共享乘法三元组为([[a]]a,[[b]]a,[[c]]a),所述第二方秘密共享乘法三元组为([[a]]b,[[b]]b,[[c]]b),例如,在一种可实施的方案中,所述第一方第一转置矩阵内积和所述第二方第一转置矩阵内积的计算过程如下:

首先,假设第一设备拥有秘密共享乘法三元组([[a]]a,[[b]]a,[[c]]a),第二设备拥有第二方秘密共享乘法三元组([[a]]b,[[b]]b,[[c]]b),其中,[[a]]a+[[a]]b=a,[[b]]a+[[b]]b=b,[[c]]a+[[c]]b=c,c=a*b,且所述第一共享参数矩阵为[[x]]a,所述第一共享转置参数矩阵为[[y]]a,所述第二设备中所述第二共享参数矩阵为[[x]]b,所述第三共享转置参数矩阵为[[y]]b,其中,[[x]]a+[[x]]b=x,[[y]]a+[[y]]b=y,则第一设备需计算的所述第一方第一共享盲化参数矩阵为[[x*y]]a,所述第二设备计算第一方第一共享盲化参数矩阵为[[x*y]]b,且需满足[[x*y]]a+[[x*y]]b=x*y,具体地,计算流程如下:

首先,第一设备计算[[e]]a=[[x]]a-[[a]]a和[[f]]a=[[y]]a-[[b]]a,第二设备计算[[e]]b=[[x]]b-[[a]]b和[[f]]b=[[y]]b-[[b]]b,进而第一设备将[[e]]a和[[f]]a发送至第二设备,第二设备将[[e]]b和[[f]]b发送至第二设备,进而第一设备和第二设备均获得e=x-a和f=y-b,进而第一设备计算[[x*y]]a=f*[[a]]a+e*[[b]]a+[[c]]a,第二设备计算[[x*y]]b=e*f+f*[[a]]b+e*[[b]]b+[[c]]b,进而[[x*y]]a+[[x*y]]b=e*f+f*a+e*b+c,进而将e=x-a和f=y-b代入该计算表达式,即可获得[[x*y]]a+[[x*y]]b=x*y。

步骤a20,基于所述秘密共享矩阵内积和所述第一非零部分,与所述第二设备进行联邦交互,以联合所述第二方秘密共享矩阵内积和所述第二非零部分,计算所述秘密共享中间参数。

在本实施例中,需要说明的是,所述秘密共享中间参数包括第一方第一秘密共享中间参数矩阵和第一方第二秘密共享中间参数矩阵,其中,所述第一方第一秘密共享中间参数矩阵为所述第一方第一秘密共享中间参数的矩阵表示,所述第一方第二秘密共享中间参数矩阵为所述第一方第二秘密共享中间参数的矩阵表示,所述第二设备通过联邦交互获得第二方秘密共享中间参数,其中,所述第二方秘密共享中间参数包括第二方第一秘密共享中间参数矩阵和第二方第二秘密共享中间参数矩阵,其中,所述第二方第一秘密共享中间参数矩阵为所述第二方第一秘密共享中间参数的矩阵表示,所述第二方第二秘密共享中间参数矩阵为所述第二方第二秘密共享中间参数的矩阵表示。

基于所述秘密共享矩阵内积和所述第一非零部分,与所述第二设备进行联邦交互,以联合所述第二方秘密共享矩阵内积和所述第二非零部分,计算所述秘密共享中间参数,具体地,生成第五公钥和所述第五公钥对应的第五私钥,并基于所述第五公钥,对所述第一方第一转置矩阵内积进行同态加密,获得加密第一方第一转置矩阵内积,并将所述第五公钥和所述加密第一方第一转置矩阵内积发送至所述第二设备,进而所述第二设备基于所述第五公钥,对所述第二方第一转置矩阵内积进行同态加密,获得加密第二方第一转置矩阵内积,并计算所述加密第一方第一转置矩阵内积和所述加密第二方第一转置矩阵内积,获得加密第一转置矩阵内积,其中,所述加密第一转置矩阵内积为向量,进而第二设备生成所述第二稀疏矩阵对应的转置矩阵,获得第二稀疏转置矩阵,进而计算所述加密转置矩阵内积中的每一数值、所述第二稀疏矩阵的每一非零列向量和所述第二稀疏转置矩阵的每一非零列向量三者之间的第一中间参数乘积,获得第一加密中间参数内积,其中,所述第一中间参数内积为各所述第一中间参数乘积的累加值,所述加密转置矩阵内积中的每一数值、所述第二稀疏矩阵的每一非零列向量和所述第二稀疏转置矩阵的每一非零列向量三者一一对应,进而在预设第一向量空间中,构建与所述第二稀疏矩阵的特征维度一致的向量作为所述第二方第一转置矩阵内积,并基于所述第五公钥,对所述第二方第一转置矩阵内积进行同态加密,获得加密第二方第一转置矩阵内积,进而计算所述第一加密中间参数内积与所述加密第二方第二转置矩阵内积的差值,获得加密第一方第一转置矩阵内积,并将所述加密第一方第一转置矩阵内积发送至所述第一设备,进而第一设备基于所述第五私钥,对所述加密第一方第一转置矩阵内积进行解密,获得第一方第一转置矩阵内积,另外地,所述第二设备生成第六公钥和所述第六公钥对应的第六私钥,并基于所述第六私钥,对所述第二方第二转置矩阵内积进行同态加密,获得加密第二方第二转置矩阵内积,并将所述加密第二方第二转置矩阵内积和所述第六公钥发送至所述第一设备,进而第一设备基于所述第六公钥,对所述第一方第二转置矩阵内积进行同态加密,获得加密第一方第二转置矩阵内积,进而计算所述加密第二方第二转置矩阵内积和所述加密第一方第二转置矩阵内积之和,获得加密第二转置矩阵内积,其中,所述加密第二转置矩阵内积为向量,进而生成所述第一稀疏矩阵对应的转置矩阵,获得第一稀疏转置矩阵,并计算所述加密第二转置矩阵内积中的每一数值、所述第一稀疏矩阵中的每一非零列向量和所述第一稀疏转置矩阵中的每一非零列向量三者之间的第二中间参数乘积,获得第二加密中间参数内积,其中,所述第二加密中间参数内积为各所述第二中间参数乘积的累加值,且所述加密第二转置矩阵内积中的每一数值、所述第一稀疏矩阵中的每一非零列向量和所述第一稀疏转置矩阵中的每一非零列向量三者一一对应,进而在预设第二向量空间中,构建与所述第一稀疏矩阵的特征维度一致的向量作为所述第一方第二转置矩阵内积,并基于所述第六公钥,对所述第一方第二转置矩阵内积进行同态加密,获得加密第一方第二转置矩阵内积,进而计算所述第二加密中间参数内积和所述加密第一方第二转置矩阵内积的差值,获得加密第二方第二转置矩阵内积,并将所述加密第二方第二转置矩阵内积发送至所述第二设备,进而第二设备基于所述第六私钥,对所述加密第二方第二转置矩阵内积进行解密,获得第二方第二转置矩阵内积。

步骤s22,基于所述稀疏矩阵安全内积、所述秘密共享中间参数和预设秘密共享模型误差计算公式,计算所述秘密共享模型误差。

在本实施例中,需要说明的是,所述稀疏矩阵安全内积包括所述第一类型稀疏矩阵安全内积和所述第二类型稀疏矩阵安全内积,其中,所述第一类型稀疏矩阵安全内积包括第三非零特征项交叉内积和第四非零特征项交叉内积,所述第二类型稀疏矩阵安全内积包括第一非零特征项交叉内积和第二非零特征项交叉内积,所述秘密共享中间参数包括第一方第一秘密共享中间参数和第一方第二秘密共享中间参数。

基于所述稀疏矩阵安全内积、所述秘密共享中间参数和预设秘密共享模型误差计算公式,计算所述秘密共享模型误差,具体地,基于模型输出计算公式,计算所述第四非零特征项交叉内积、所述第一非零特征项交叉内积和所述第一方第一秘密共享中间参数共同对应的第一方第一模型输出,并计算所述第三非零特征项交叉内积、所述第二非零特征项交叉内积和所述第一方第二秘密共享中间参数对应的第一方第二模型输出,进而将第一设备基于所述第一方第一模型输出、第一方第二模型输出和己方持有的秘密共享的样本标签代入所述预设秘密共享模型误差计算公式,计算所述秘密共享模型误差,其中,所述第一方第一模型输出的计算表达式如下:

其中,[[f(xb)]]a为所述第一方第一模型输出,为所述第四非零特征项交叉内积,为所述第一非零特征项交叉内积,为所述第一方第一秘密共享中间参数,且所述第一方第二模型输出的计算表示式如下:

其中,[[f(xa)]]a为所述第一方第二模型输出,为所述第三非零特征项交叉内积,为所述第二非零特征项交叉内积,为所述第一方第二秘密共享中间参数,且所述秘密共享模型误差的计算表达式如下所示:

其中,y为所述样本标签,[[f(xa,xb)-y]]a为所述秘密共享模型误差。

相同地,所述第二设备将计算第二方第一模型输出和第二方第二模型输出,并将所述第二方第一模型输出、第二方第二模型输出和己方持有的秘密共享的样本标签代入所述预设秘密共享模型误差计算公式,计算第二方秘密共享模型误差,其中,所述第二方第一模型输出的计算表达式如下:

其中,[[f(xb)]]b为第二方第一模型输出,为第二方第四非零特征项交叉内积,为第二方第一非零特征项交叉内积,为第二方第一秘密共享中间参数,且所述第二方第二模型输出的计算表示式如下:

其中,[[f(xa)]]b为第二方第二模型输出,为第二方第三非零特征项交叉内积,为第二方第二非零特征项交叉内积,为第二方第二秘密共享中间参数,进而所述第二方秘密共享模型误差的计算表达式如下所示:

其中,y为所述样本标签,[[f(xa,xb)-y]]b为所述第二方秘密共享模型误差。

步骤s30,基于所述秘密共享模型误差,对所述预设初始化模型进行更新,获得纵向联邦因子分解机模型。

在本实施例中,需要说明的是,所述纵向联邦因子分解机模型包括属于第一设备的第一目标模型参数和属于第二设备的第二目标模型参数。

基于所述秘密共享模型误差,对所述预设初始化模型进行更新,获得纵向联邦因子分解机模型,具体地,基于所述秘密共享模型误差,对所述第一方秘密共享初始模型参数进行更新,获得第一方秘密共享初始更新参数,且第二设备基于所述第二方秘密共享模型误差,更新所述第二方秘密共享初始模型参数,获得第二方秘密共享初始更新参数,并判断所述第一方秘密共享初始更新参数是否满足预设迭代更新结束条件,若满足,则第一设备将所述第一方秘密共享初始更新参数作为秘密共享更新参数,第二设备将所述第二方秘密共享初始更新参数为第二方秘密共享更新参数,进而第一设备基于所述秘密共享更新参数,与所述第二设备进行解密交互,以联合所述第二方秘密共享更新参数,确定第一目标模型参数,并协助所述第二设备确定第二目标模型参数,其中,所述第二设备在进行解密交互时,提供第二方秘密共享更新参数,所述预设迭代更新结束条件包括损失函数收敛和达到最大迭代次数阀值等。

其中,所述基于所述秘密共享模型误差,对所述预设初始化模型进行更新,获得纵向联邦因子分解机模型的步骤包括:

步骤s31,基于所述秘密共享模型误差,对所述秘密共享初始模型参数进行更新,获得秘密共享更新参数;

在本实施例中,需要说明的是,基于所述秘密共享模型误差,对所述秘密共享初始模型参数进行更新,获得秘密共享更新参数,具体地,分别计算所述秘密共享模型误差关于所述秘密共享初始模型参数的梯度信息,进而基于所述梯度信息,对所述秘密共享初始模型参数进行迭代更新,直至迭代更新后的秘密共享初始模型参数达到预设迭代更新结束条件,获得所述秘密共享更新参数,其中,在一种可实施例的方案中,所述梯度信息包括第一类型梯度、第二类型梯度、第三类型梯度和第四类型梯度,其中,所述第一类型梯度的计算表达式如下:

其中,d1为所述第一类型梯度,α为超参数,其大小可自行设定,用于控制梯度的取值范围,wa为所述第一方第一类型模型参数向量,[[wa]]a为秘密共享的第一设备持有的第一方第一类型模型参数向量,另外地,所述第二类型梯度的计算表达式如下所示:

其中,d2为所述第二类型梯度,α为超参数,其大小可自行设定,用于控制梯度的取值范围,va为所述第一方第二类型模型参数矩阵,[[va]]a为秘密共享的第一设备持有的第一方第二类型模型参数矩阵,进一步地,所述第三类型梯度的计算表达式如下所示:

其中,d3为所述第三类型梯度,α为超参数,其大小可自行设定,用于控制梯度的取值范围,wb为所述第二方第一类型模型参数向量,[[wb]]a为秘密共享的所述第一设备持有的第二方第一类型模型参数向量,另外地,所述第四类型梯度的计算表达式如下所示:

其中,d4为所述第四类型梯度,α为超参数,其大小可自行设定,用于控制梯度的取值范围,vb为所述第二方第二类型模型参数矩阵,[[vb]]a为秘密共享的所述第二设备持有的第二方第二类型模型参数矩阵。

另外地,需要说明的是,所述第二设备可计算所述第二方秘密共享模型误差关于所述第二方秘密共享初始模型参数的梯度信息,并基于所述梯度信息,对所述第二方秘密共享初始模型参数进行迭代更新,直至达到预设迭代训练结束条件,获得第二方秘密共享更新参数。

进一步地,基于梯度信息,更新所述秘密共享初始模型参数的计算表达式如下:

其中,δ1、δ2、δ3和δ4均为预先设置好的学习率,为第一设备持有的秘密共享的第一方第一类型模型参数向量对应的更新模型参数,为第一设备持有的秘密共享的第一方第二类型模型参数矩阵对应的更新模型参数,为第一设备持有的秘密共享的第二方第一类型模型参数向量对应的更新模型参数,为第一设备持有的秘密共享的第二方第二类型模型参数矩阵对应的更新模型参数。

步骤s32,基于所述秘密共享更新参数,与所述第二设备进行解密交互,得到所述第一目标模型参数,以供所述第二设备得到所述第二目标模型参数。

在本实施例中,基于所述秘密共享更新参数,与所述第二设备进行解密交互,得到所述第一目标模型参数,以供所述第二设备得到所述第二目标模型参数,具体地,基于所述秘密共享更新参数,与所述第二设备进行解密交互,以联合所述第二设备中的第二方秘密共享更新参数,计算第一目标模型参数,其中,在进行解密交互时,所述第二设备将基于所述第二方秘密共享更新参数,联合所述第一设备中的秘密共享更新参数,计算第二目标模型参数。

其中,所述秘密共享更新参数包括第一共享第一方模型更新参数和第一共享第二方模型更新参数,

所述基于所述秘密共享更新参数,与所述第二设备进行解密交互,得到所述第一目标模型参数,以供所述第二设备得到所述第二目标模型参数的步骤包括:

步骤s321,将所述第一共享第二方模型更新参数发送至所述第二设备,以供所述第二设备基于确定的第二共享第二方模型更新参数和所述第一共享第二方模型更新参数,计算所述第二目标模型参数;

在本实施例中,需要说明的是,所述第一共享第一方模型更新参数为秘密共享的第一设备持有的第一方模型更新参数,所述第一共享第二方模型更新参数为秘密共享的第一设备持有的第二方模型更新参数,所述第二共享第二方模型更新参数为秘密共享的第二设备持有的所述第二方模型更新参数。

将所述第一共享第二方模型更新参数发送至所述第二设备,以供所述第二设备基于确定的第二共享第二方模型更新参数和所述第一共享第二方模型更新参数,计算所述第二目标模型参数,具体地,将所述第一共享第二方模型更新参数发送至所述第二设备,以供所述第二设备计算所述第二共享第二方模型更新参数和所述第一共享第二方模型更新参数之和,获得所述第二目标模型参数。

步骤s322,接收所述第二设备发送的第二共享第一方模型更新参数,并基于所述第二共享第一方模型更新参数和所述第一共享第一方模型更新参数,计算所述第一目标模型参数。

在本实施例中,需要说明的是,所述第二共享第一方模型更新参数为秘密共享的第二设备持有的第一方模型更新参数。

接收所述第二设备发送的第二共享第一方模型更新参数,并基于所述第二共享第一方模型更新参数和所述第一共享第一方模型更新参数,计算所述第一目标模型参数,具体地,接收所述第二设备发送的第二共享第一方模型更新参数,并计算所述第二共享第一方模型更新参数和所述第一共享第一方模型更新参数之和,获得所述第一目标模型参数。

所述纵向联邦因子分解机模型包括用于进行个性化推荐的推荐模型,相比于现有的纵向联邦学习方法,本申请在基于纵向联邦学习,构建纵向联邦因子分解机模型时,结合秘密共享机制和同态加密方法,进行非零特征项交叉内积的计算,减少了关于稀疏矩阵中零部分的计算过程,降低了基于稀疏矩阵的因子分解机模型构建时的计算复杂度,进而提高了构建纵向联邦因子分解机模型时的计算效率,且由于纵向联邦因子分解机模型为基于纵向联邦学习建模构建的,进而构建所述纵向联邦因子分解机模型时的训练样本的特征丰富度更高,进而所述纵向联邦因子分解机模型的模型性能将更佳,进而所述纵向联邦因子分解机模型作为推荐模型的个性化推荐效果将更好。

本申请实施例提供了一种因子分解机模型构建方法,相比于现有技术采用基于同态加密的方法进行联邦学习的技术手段,本申请实施例在获取预设初始化模型对应的初始化模型参数和第一稀疏数据之后,与第二设备进行秘密共享,进而第一设备获得第一方秘密共享初始模型参数,第二设备获得第二方秘密共享初始模型参数,进而基于所述第一稀疏数据中的第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二设备获取的第二稀疏数据中的第二非零部分和所述第二方秘密共享初始模型参数,计算秘密共享模型误差,其中,在进行联邦交互时,仅利用了第一稀疏数据中的第一非零部分和第二稀疏数据中的第二非零部分进行计算,进而减少了第一稀疏数据和第二稀疏数据中关于零部分的计算过程,使得联邦交互过程中的计算量和计算复杂度均大幅度降低,进而基于秘密共享模型误差,对预设初始化模型进行更新,即可得到纵向联邦因子分解机模型,克服了现有技术中由于稀疏矩阵过大,通过同态加密的方法,进行基于稀疏矩阵的联邦学习时计算效率低的技术缺陷,进而提高了基于稀疏矩阵的联邦学习时的计算效率。

进一步地,参照图2,基于本申请中第一实施例,在本申请的另一实施例中,所述第二类型稀疏矩阵安全内积包括第一非零特征项交叉内积和第二非零特征项交叉内积,

所述基于所述第二类型共享模型参数和所述第一非零部分,与所述第二设备进行联邦交互,以联合所述第二方第二类型共享模型参数和所述第二非零部分,计算第二类型稀疏矩阵安全内积的步骤包括:

步骤b10,基于所述第二类型共享模型参数,与所述第二设备进行联邦交互,以计算所述第二类型共享模型参数和所述第二非零部分之间的交叉内积,获得所述第一非零特征项交叉内积;

在本实施例中,需要说明的是,所述第二类型共享模型参数包括第一共享参数,其中,所述第一共享参数为秘密共享的第一设备持有的第二方第二类型模型参数矩阵,也即,所述第一共享参数为所述第二方第二类型模型参数矩阵的第二份额,所述第二方第二类型共享模型参数包括第二共享参数,其中,所述第二共享参数为秘密共享的第二设备持有的第二方第二类型模型参数矩阵,也即,所述第二共享参数为所述第二方第二类型模型参数矩阵的第一份额,例如,假设所述第二方第二类型共享模型参数为vb,构建vb=[[vb]]a+[[vb]]b,则[[vb]]a为第一共享参数,[[vb]]b为第二共享参数。

基于所述第二类型共享模型参数,与所述第二设备进行联邦交互,以计算所述第二类型共享模型参数和所述第二非零部分之间的交叉内积,获得所述第一非零特征项交叉内积,具体地,生成同态加密的第一公私密钥对,其中,所述第一公私密钥对包括第一公钥和第一私钥,进而基于所述第一公钥,对所述第一共享参数进行同态加密,获得加密第一共享参数,进而将所述加密第一共享参数和所述第一公钥发送至所述第二设备,进而第二设备即可基于所述第一公钥,对所述第二共享参数进行同态加密,获得加密第二共享参数,进而计算第一加密共享参数与第二加密共享参数之和,即可获得本轮迭代的加密第二方第二类型模型参数矩阵,进而将所述加密第二方第二类型模型参数矩阵和所述第二非零部分的非零特征项交叉内积,获得第二加密内积,进而基于所述第二方第二类型模型参数矩阵的第一目标特征维度,生成均匀分布的处于第一目标特征维度的第二方第一非零特征项交叉内积,并基于所述第一公钥,对所述第二方第一非零特征项交叉内积进行同态加密,获得加密第二方第一非零特征项交叉内积,并基于所述第二加密内积和所述第二方第一非零特征项交叉内积,计算加密第一非零特征项交叉内积,并将所述加密第一非零特征项交叉内积发送至所述第一设备,第一设备即可基于所述第一私钥,对所述加密第一非零特征项交叉内积进行解密,获得所述第一非零特征项交叉内积。

其中,所述第二类型共享模型参数包括第一共享参数,所述第二方第二类型共享模型参数包括第二共享参数,

所述基于所述第二类型共享模型参数,与所述第二设备进行联邦交互,以计算所述第二类型共享模型参数和所述第二非零部分之间的交叉内积,获得所述第一非零特征项交叉内积的步骤包括:

步骤b11,生成第一公钥,并基于所述第一公钥,对所述第一共享参数进行加密,获得加密第一共享参数;

在本实施例中,需要说明的是,加密的方法包括同态加密。

步骤b12,将所述第一公钥和所述加密第一共享参数发送至第二设备,以供所述第二设备基于所述第一公钥、所述加密第一共享参数、第二共享参数和所述第二非零部分,确定第二方第一非零特征项交叉内积和加密第一非零特征项交叉内积;

在本实施例中,将所述第一公钥和所述加密第一共享参数发送至第二设备,以供所述第二设备基于所述第一公钥、所述加密第一共享参数、第二共享参数和所述第二非零部分,确定第二方第一非零特征项交叉内积和加密第一非零特征项交叉内积,具体地,将所述加密第一共享参数和所述第一公钥发送至所述第二设备,进而第二设备即可基于所述第一公钥,对所述第二共享参数进行同态加密,获得加密第二共享参数,进而计算第一加密共享参数与第二加密共享参数之和,即可获得本轮迭代的加密第二方第二类型模型参数矩阵,进一步地,计算所述加密第二方第二类型模型参数矩阵中的每一列向量和所述第二非零部分中每一列向量两两之间的乘积,获得各第一向量乘积,进而对各所述第一向量乘积进行累加,获得第二加密内积,进而生成与所述第二方第二类型模型参数矩阵特征维度一致且均匀分布的向量作为所述第二方第一非零特征项交叉内积,并基于所述第一公钥,对所述第二方第一非零特征项交叉内积进行同态加密,获得加密第二方第一非零特征项交叉内积,进而计算所述第二加密内积和所述加密第二方第一非零特征项交叉内积的差值,获得加密第一非零特征项交叉内积。

步骤b13,接收所述第二设备发送的所述加密第一非零特征项交叉内积,并基于所述第一公钥对应的第一私钥,对所述加密第一非零特征项交叉内积进行解密,获得所述第一非零特征项交叉内积。

步骤b20,基于所述第一非零部分,与所述第二设备进行联邦交互,以计算所述第一非零部分和所述第二方第二类型共享模型参数之间的交叉内积,获得所述第二非零特征项交叉内积。

在本实施例中,需要说明的是,所述第三共享参数为秘密共享的第一设备持有的第一方第二类型模型参数矩阵,也即,所述第三共享参数为所述第一方第二类型模型参数矩阵的第一份额,所述第四共享参数为秘密共享的第二设备持有的第一方第二类型参数矩阵,也即,所述第四共享参数为秘密共享的第二份额,例如,假设所述第一方第二类型共享模型参数为va,构建va=[[va]]a+[[va]]b,则[[va]]a为第三共享参数,[[va]]b为第四共享参数。

基于所述第一非零部分,与所述第二设备进行联邦交互,以计算所述第一非零部分和所述第二方第二类型共享模型参数之间的交叉内积,获得所述第二非零特征项交叉内积,具体地,第二设备生成第二公私密钥对,其中,所述公私密钥对包括第二私钥和第二公钥,进而基于所述第二公钥,对所述第四共享参数进行加密,获得加密第四共享参数,并将所述第二公钥和所述加密第四共享参数发送至所述第一设备,进而第一设备基于所述第二公钥,对所述第三共享参数进行加密,获得加密第三共享参数,进而基于所述加密第三共享参数和所述加密第四共享参数,计算加密第一方第二类型模型参数矩阵,进而计算所述加密第一方第二类型模型参数矩阵和所述第一非零部分的非零特征项交叉内积,获得第一加密内积,进一步地,基于所述加密第一方第二类型模型参数矩阵的第二目标特征维度,构建均匀分布的且处于所述第二目标特征维度的第二非零特征项交叉内积,并基于所述第二公钥,对所诉第二非零特征项交叉内积进行加密,获得加密第二非零特征项交叉内积,进而基于所述第一加密内积和所述加密第二非零特征项交叉内积,获得加密第二方第二非零特征项交叉内积,并将所述加密第二方第二非零特征项交叉内积发送至所述第二设备,进而第二设备基于所述第二私钥,对所述加密第二方第二非零特征项交叉内积进行解密,获得第二方第二非零特征项交叉内积。

其中,所述第二类型共享模型参数包括第三共享参数,所述第二方第二类型共享模型参数包括第四共享参数,

所述基于所述第一非零部分,与所述第二设备进行联邦交互,以计算所述第一非零部分和所述第二方第二类型共享模型参数之间的交叉内积,获得所述第二非零特征项交叉内积的步骤包括:

步骤b21,接收所述第二设备发送的第二公钥和发送的加密第四共享参数,其中,所述加密第四共享参数为所述第二设备基于所述第二公钥加密的所述第四共享参数;

在本实施例中,所述第二设备加密所述第四共享参数的方法包括同态加密。

步骤b22,基于所述第二公钥、所述加密第四共享参数、所述第一非零部分和所述第三共享参数,计算第二非零特征项交叉内积和加密第二方第二非零特征项交叉内积;

在本实施例中,基于所述第二公钥、所述加密第四共享参数、所述第一非零部分和所述第三共享参数,计算第二非零特征项交叉内积和加密第二方第二非零特征项交叉内积,具体地,基于所述第二公钥,对所述第三共享参数进行同态加密,获得加密第三共享参数,进而基于所述加密第三共享参数和所述加密第四共享参数,计算加密第一方第二类型模型参数矩阵,进而计算所述加密第一方第二类型模型参数矩阵和所述第一非零部分的非零特征项交叉内积,获得第一加密内积,进一步地,基于所述加密第一方第二类型模型参数矩阵的第二目标特征维度,构建均匀分布的且处于所述第二目标特征维度的第二非零特征项交叉内积,并基于所述第二公钥,对所诉第二非零特征项交叉内积进行加密,获得加密第二非零特征项交叉内积,进而基于所述第一加密内积和所述加密第二非零特征项交叉内积,获得加密第二方第二非零特征项交叉内积。

其中,所述基于所述第二公钥、所述加密第四共享参数、所述第一非零部分和所述第三共享参数,计算第二非零特征项交叉内积和加密第二方第二非零特征项交叉内积的步骤包括:

步骤b221,基于所述第二公钥,对所述第三共享参数进行加密,获得加密第三共享参数,并计算所述加密第三共享参数和所述加密第四共享参数共同对应的加密模型参数;

在本实施例中,需要说明的是,所述加密模型参数为所述加密第三共享参数和所述加密第四共享参数之和,所述加密模型参数即为所述加密第一方第二类型模型参数矩阵。

步骤b222,计算所述加密模型参数中各列向量和所述第一非零部分中各列向量两两之间的交叉内积,获得所述第一加密内积;

在本实施例中,计算所述加密模型参数中各列向量和所述第一非零部分中各列向量两两之间的交叉内积,获得所述第一加密内积,具体地,计算所述加密模型参数中每一列向量和所述第一非零部分中每一列向量两两之间的乘积,获得各第二向量乘积,进而对各所述第二向量乘积进行累加,获得所述第一加密内积,在另一种可实施的方案中,可将各所述第二向量乘积聚合为向量,获得所述第一加密内积。

步骤b223,基于所述加密模型参数的特征维度,构建所述第二非零特征项交叉内积,并计算所述第二非零特征项交叉内积和所述第一加密内积共同对应的所述加密第二方第二非零特征项交叉内积;

在本实施例中,基于所述加密模型参数的特征维度,构建所述第二非零特征项交叉内积,并计算所述第二非零特征项交叉内积和所述第一加密内积共同对应的所述加密第二方第二非零特征项交叉内积,具体地,构建均匀分布的且与所述加密模型参数特征维度一致的向量作为第二非零特征项交叉内积,进而基于所述第二公钥,对所述第二非零特征项交叉内积进行同态加密,获得加密第二非零特征项交叉内积,并基于所述第一加密内积和所述加密第二非零特征项交叉内积的差值,获得加密第二方第二非零特征项交叉内积。

步骤b23,将所述加密第二方第二非零特征项交叉内积发送至所述第二设备,以供所述第二设备基于所述第二公钥对应的第二私钥,对所述加密第二方第二非零特征项交叉内积进行解密,获得第二方第二非零特征项交叉内积。

在本实施例,需要说明的是,所述第二公钥和所述第二私钥为同态加密的公私密钥对。

本实施例提供了一种基于秘密共享和同态加密相结合的方法计算秘密共享的第二类型稀疏矩阵安全内积的方法,也即基于所述第二类型共享模型参数,与所述第二设备进行联邦交互,以计算所述第二类型共享模型参数和所述第二非零部分之间的交叉内积,获得所述第一非零特征项交叉内积,并基于所述第一非零部分,与所述第二设备进行联邦交互,以计算所述第一非零部分和所述第二方第二类型共享模型参数之间的交叉内积,获得所述第二非零特征项交叉内积,其中,在整个过程中仅利用了第一稀疏数据中的第一非零部分和第二稀疏数据中的第二非零部分进行计算,进而减少了第一稀疏数据和第二稀疏数据中关于零部分的计算过程,而稀疏数据中的零部分的占比通常远大于非零部分,进而使得联邦交互过程中的计算量和计算复杂度均大幅度降低,相比于现有技术采用基于同态加密的方法进行联邦学习的技术手段,克服了现有技术中由于稀疏矩阵中的零部分过多而导致稀疏矩阵过大,进而通过同态加密的方法,进行基于稀疏矩阵的联邦学习时计算效率低的技术缺陷,进而提高了基于稀疏矩阵的联邦学习时的计算效率。

进一步地,参照图3,基于本申请中第一实施例和第二实施例,在本申请的另一实施例中,所述个性化推荐方法应用于第一设备,所述个性化推荐方法包括:

步骤c10,获取第一方待推荐用户稀疏数据,并与第二设备进行秘密共享,获得秘密共享模型参数;

在本实施例中,需要说明的是,所述第二设备包括第二方待推荐用户稀疏数据,所述第二方待推荐用户稀疏数据为多个用户数据对应的第二稀疏矩阵,所述第一方待推荐用户稀疏数据为多个用户数据对应的第一稀疏矩阵,其中,所述第一稀疏矩阵的每一向量和所述第二方稀疏矩阵中的每一向量均为一个用户的待推荐用户数据对应的编码向量,且所述第一稀疏矩阵的中的编码值和所述第二稀疏矩阵中的编码值均大部分为0,例如,所述第一稀疏矩阵为表示不同用户对不同物品的点击结果,编码值1表示用户点击了物品,编码值0表示用户未点击物品,而由于用户通常只对小部分物品进行点击,进而第一稀疏矩阵中的编码值大部分为0,进一步地,需要说明的是,所述第一设备和所述第二设备均为纵向联邦学习的参与方,且在进行秘密共享之前,第一设备和第二设备基于秘密共享和纵向联邦学习训练好了预设个性化推荐模型,其中,所述预设个性化推荐模型为训练好了的因子分解机回归模型,用于预测用户对应物品的评分,进而所述预设个性化推荐模型的模型表达式如下所示:

其中,x为模型输入数据,w和v为模型参数,f(x)为模型输出,也即为预设个性化推荐模型输出的评分或者为预设个性化推荐模型输出的评分组成的向量。

获取第一方待推荐用户稀疏数据,并与第二设备进行秘密共享,获得秘密共享模型参数,具体地,获取预设个性化推荐模型的第一方模型参数和第一方待推荐用户稀疏数据,同时第二设备获取预设个性化推荐模型的第二方模型参数和第二方待推荐用户稀疏数据,其中,由于预设个性化推荐模型为基于纵向联邦学习构建的,所以第一设备持有的预设个性化推荐模型的一部分模型参数为第一方模型参数,第二设备持有的预设个性化推荐模型的一部分模型参数为第二方模型参数,所述第一方待推荐用户稀疏数据为第一设备收集的用户的关联数据,所述第二方待推荐用户稀疏数据为第二设备收集的用户的关联数据,其中,用户的关联数据包括用户兴趣爱好数据和用户对物品的历史评分数据等,且在纵向联邦场景中,所述第一方待推荐用户稀疏数据和所述第二方待推荐用户稀疏数据对应的相同的待推荐用户群体,且所述第一方待推荐用户稀疏数据和所述第二方待推荐用户稀疏数据均可用向量或者矩阵进行表示,例如,假设所述第一方待推荐用户稀疏数据为向量(1,0,1,0),其中,编码1表示用户点击了对应的物品,编码0表示用户未点击对应的物品,则向量(1,0,1,0)表示用户点击了物品a和物品c,未点击物品b和物品d,进一步地,基于所述第一方模型参数,与所述第二设备进行秘密共享,其中,所述第二设备在秘密共享中提供所述第二方模型参数,进而第一设备获得秘密共享模型参数,第二设备获得第二方秘密共享模型参数,其中,所述秘密共享模型参数包括第一共享第一方模型参数和第一共享第二方模型参数,所述第二方秘密共享模型参数包括第二共享第一方模型参数和第二共享第二方模型参数,其中,所述第一共享第一方模型参数为所述第一方模型参数的第一份额,所述第二共享第一方模型参数为所述第一方模型参数的第二份额,所述第一共享第二方模型参数为所述第二模型参数的第一份额,所述第二共享第二方模型参数为所述第二模型参数的第二份额。

步骤c20,基于所述第一方待推荐用户稀疏数据中的第一非零部分和所述秘密共享模型参数,与所述第二设备进行纵向联邦预测交互,以对所述第一方待推荐用户稀疏数据对应的待推荐物品进行评分,获得第一秘密共享评分结果;

在本实施例中,需要说明的是,所述第一非零部分为所述第一稀疏矩阵中除去零向量之外的剩余部分。

基于所述第一方待推荐用户稀疏数据中的第一非零部分和所述秘密共享模型参数,与所述第二设备进行纵向联邦预测交互,以对所述第一方待推荐用户稀疏数据对应的待推荐物品进行评分,获得第一秘密共享评分结果,具体地,基于所述第一方待推荐用户稀疏数据中的第一非零部分和所述秘密共享模型参数,与所述第二设备进行纵向联邦预测交互,以联合所述第二方待推荐用户稀疏数据中的第二非零部分和所述第二方秘密共享模型参数,通过预设秘密共享乘法和预设同态加密算法,计算所述第一秘密共享评分结果。

其中,所述秘密共享模型参数包括第一方第一共享类型模型参数和第一方第二类型共享模型参数,所述第二设备包括第二方待推荐用户稀疏数据和第二方秘密共享模型参数,其中,所述第二方秘密共享模型参数包括第二方第一共享类型模型参数和第二方第二共享类型模型参数,所述第一秘密共享评分结果包括第一类型共享评分结果和第二类型共享评分结果,

所述基于所述第一方待推荐用户稀疏数据中的第一非零部分和所述秘密共享模型参数,与所述第二设备进行纵向联邦预测交互,以对所述第一方待推荐用户稀疏数据对应的待推荐物品进行评分,获得第一秘密共享评分结果的步骤包括:

步骤c21,基于所述第一非零部分和所述第一方第一共享类型模型参数,与所述第二设备进行纵向联邦预测交互,以联合所述第二方第一共享类型模型参数,计算所述第一类型共享评分结果;

在本实施例中,需要说明的是,所述第一方第一共享类型模型参数为第一设备持有的秘密共享的第一方模型参数,所述第二方第一共享类型模型参数为第二设备持有的秘密共享的第一方模型参数,所述第一类型共享评分结果至少包括一第一共享第一方评分,一所述第一共享第一方评分对应一用户,其中,所述第一共享第一方评分对应的第一秘密共享评分计算公式如下:

其中,[[f(xa)]]a为所述第一共享第一方评分,xa为所述第一方待推荐用户稀疏数据,wa和va均为所述第一方模型参数,为与模型训练过程中的所述第三非零特征项交叉内积的计算方式相同的第一安全内积,为与模型训练过程中的所述第二非零特征项交叉内积的计算方式相同的第二安全内积,为与模型训练过程中所述第一方第二秘密共享中间参数的计算方式相同的第三安全内积,[[]]为表示秘密共享的符号,[[]]a为表示秘密共享的数据属于第一设备的秘密共享符号。

基于所述第一非零部分和所述第一方第一共享类型模型参数,与所述第二设备进行纵向联邦预测交互,以联合所述第二方第一共享类型模型参数,计算所述第一类型共享评分结果,具体地,基于所述第一非零部分和所述第一方第一共享类型模型参数,与所述第二设备进行纵向联邦预测交互,以联合所述第二方第一共享类型模型参数,分别计算第一安全内积、第二安全内积和第三安全内积,并将第一安全内积、第二安全内积和第三安全内积代入所述第一秘密共享评分计算公式,获得所述第一类型共享评分结果。

另外地,需要说明的是,所述第二设备可基于第二方第一秘密共享评分计算公式,计算第二方第一类型共享评分结果,且所述第二方第一类型共享评分结果至少包括一第二共享第一方评分,一所述第二共享第一方评分对应一用户,其中,所述第二方第一秘密共享评分计算公式如下所示:

其中,[[f(xa)]]b为所述第二共享第一方评分,xa为所述第一方待推荐用户稀疏数据,wa和va均为所述第一方模型参数,为与模型训练过程中的所述第二方第三非零特征项交叉内积的计算方式相同的第二方第一安全内积,为与模型训练过程中的所述第二方第二非零特征项交叉内积的计算方式相同的第二方第二安全内积,为与模型训练过程中的所述第二方第二秘密共享中间参数的计算方式相同的第二方第三安全内积,[[]]为表示秘密共享的符号,[[]]b为表示秘密共享的数据属于第一设备的秘密共享符号。

步骤c22,基于所述第一方第二共享类型模型参数,与所述第二设备进行纵向联邦预测交互,以联合所述第二方第二共享类型模型参数和所述第二方待推荐用户稀疏数据的第二非零部分,计算所述第二类型共享评分结果。

在本实施例中,需要说明的是,所述第一方第二共享类型模型参数为第一设备持有的秘密共享的第二方模型参数,所述第二方第二共享类型模型参数为第二设备持有的秘密共享的第二方模型参数,所述第二类型共享评分结果至少包括一第一共享第二方评分,一所述第一共享第二方评分对应一用户,其中,所述第一共享第二方评分对应的第二秘密共享评分计算公式如下:

其中,[[f(xb)]]a为第一共享第二方评分,xb为所述第二方待预测用户稀疏数据,wb和vb均为所述第二方模型参数,为与所述第四非零特征项交叉内积的计算方式相同的第四安全内积,为与所述第一非零特征项交叉内积的计算方式相同的第五安全内积,为与所述第一方第一秘密共享中间参数的计算方式相同的第六安全内积,[[]]为表示秘密共享的符号,[[]]a为表示秘密共享的数据属于第一设备的秘密共享符号。

基于所述第一方第二共享类型模型参数,与所述第二设备进行纵向联邦预测交互,以联合所述第二方第二共享类型模型参数和所述第二方待推荐用户稀疏数据的第二非零部分,计算所述第二类型共享评分结果,具体地,基于所述第一方第二共享类型模型参数,与所述第二设备进行纵向联邦预测交互,以联合所述第二方第二共享类型模型参数和所述第二方待预测用户稀疏数据的第二非零部分,分别计算第四安全内积、第五安全内积和第六安全内积,并将第四安全内积、第五安全内积和第六安全内积代入所述第二秘密共享评分计算公式,获得所述第二类型共享评分结果。

另外地,需要说明的是,所述第二设备可基于第二方第二秘密共享评分计算公式,计算第二方第二类型共享评分结果,且所述第二方第二类型共享评分结果至少包括一第二共享第二方评分,一所述第二共享第二方评分对应一用户,其中,所述第二方第二秘密共享评分计算公式如下所示:

其中,[[f(xb)]]b为第二共享第二方评分,xb为所述第二方待预测用户稀疏数据,wb和vb均为所述第二方模型参数,为与模型训练过程中的所述第二方第四非零特征项交叉内积的计算方式相同的第二方第四安全内积,为与模型训练过程中的所述第二方第一非零特征项交叉内积的计算方式相同的第二方第五安全内积,为与模型训练过程中的所述第二方第一秘密共享中间参数的计算方式相同的第二方第六安全内积,[[]]为表示秘密共享的符号,[[]]b为表示秘密共享的数据属于第二设备的秘密共享符号。

步骤c30,基于所述第一秘密共享评分结果,与所述第二设备进行聚合交互,以联合所述第二设备确定的第二秘密共享评分结果,计算目标评分结果;

在本实施例中,基于所述第一秘密共享评分结果,与所述第二设备进行聚合交互,以联合所述第二设备确定的第二秘密共享评分结果,计算目标评分结果,具体地,基于所述第一秘密共享评分结果,与所述第二设备进行聚合交互,以聚合所述第一秘密共享评分结果和所述第二秘密共享评分结果,获得所述目标评分结果

其中,所述第一秘密共享评分结果至少包括一第一共享第一方评分和一第一共享第二方评分,所述第二秘密共享评分结果至少包括一第二共享第一方评分和一第二共享第二方评分,所述目标评分结果至少包括一目标评分,

所述基于所述第一秘密共享评分结果,与所述第二设备进行聚合交互,以联合所述第二设备确定的第二秘密共享评分结果,计算目标评分结果的步骤包括:

步骤c31,接收所述第二设备发送的所述第二共享第一方评分和所述第二共享第二方评分;

步骤c32,基于所述第一共享第一方评分和所述第二共享第二方评分,计算第一方评分;

在本实施例中,基于所述第一共享第一方评分和所述第二共享第二方评分,计算第一方评分,具体地,计算所述第一共享第一方评分和所述第二共享第二方评分的和,获得第一方评分。

步骤c33,基于所述第一共享第二方评分和所述第二共享第二方评分,计算第二方评分;

在本实施例中,基于所述第一共享第二方评分和所述第二共享第二方评分,计算第二方评分,具体地,计算所述第一共享第二方评分和所述第二共享第二方评分的和,获得第二方评分。

步骤c34,对所述第一方评分和所述第二方评分进行聚合,获得所述目标评分;

在本实施例中,对所述第一方评分和所述第二方评分进行聚合,获得所述目标评分,具体地,基于预设聚合规则,对所述第一方评分和所述第二方评分进行聚合,获得所述目标评分,其中,所述预设聚合规则包括求和以及加权求平均等。

步骤c40,基于所述目标评分结果,生成所述待推荐物品对应的目标推荐列表。

在本实施例中,基于所述目标评分结果,生成所述待推荐物品对应的目标推荐列表,具体地,基于所述目标评分结果中各所述目标评分的大小,其,对各目标用户进行排序,生成所述待推荐物品的推荐用户列表,其中,各所述目标评分为不同目标用户对同一待推荐物品的评分,进而将所述推荐用户列表作为所述目标推荐列表。

在另一种可实施的方案中,基于所述目标评分结果,生成所述待推荐用户对应的目标推荐列表,具体地,基于所述目标评分结果中的各目标评分,其中,各所述目标评分为同一目标用户对不同待推荐物品的评分,进而基于各所述目标评分的大小,对各待推荐物品进行排序,生成所述待推荐用户的推荐物品列表,并将所述推荐物品列表作为所述目标推荐列表。

本实施例提供了一种基于秘密共享和纵向联邦学习预测点击率的方法,通过获取第一方待推荐用户稀疏数据,并与第二设备进行秘密共享,获得秘密共享模型参数,进而基于所述第一方待推荐用户稀疏数据中的第一非零部分和所述秘密共享模型参数,与所述第二设备进行纵向联邦预测交互,以对所述第一方待推荐用户稀疏数据对应的待推荐物品进行评分,获得第一秘密共享评分结果,进而基于所述第一秘密共享评分结果,与所述第二设备进行聚合交互,以联合所述第二设备确定的第二秘密共享评分结果,计算目标评分结果,进而基于所述目标评分结果,生成所述待推荐物品对应的目标推荐列表,其中,第一设备与第二设备在进行交互时,发送或者接收的数据均为秘密共享数据,无需第三方生成的公私密钥进行数据的加密,所有的数据传输过程均在参与纵向联邦学习的两方之间进行,保护了数据的隐私性的同时,减少了对数据进行复杂的加密和解密的计算过程,且由于进行秘密共享和进行秘密共享对应的解密时,均只需进行简单的数学运算过程,降低了计算复杂度,且当用户数据为稀疏数据时,本申请只基于用户数据的非零部分,即可完成目标推荐列表的生成,进而减少了关于用户数据的零部分的计算量,进而进一步降低了计算复杂度,所以提高了因子分解机回归模型进行的个性化推荐时的计算效率。

参照图4,图4是本申请实施例方案涉及的硬件运行环境的设备结构示意图。

如图4所示,该因子分解机模型构建设备可以包括:处理器1001,例如cpu,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。

可选地,该因子分解机模型构建设备还可以包括矩形用户接口、网络接口、摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。矩形用户接口可以包括显示屏(display)、输入子模块比如键盘(keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。

本领域技术人员可以理解,图4中示出的因子分解机模型构建设备结构并不构成对因子分解机模型构建设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图4所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及因子分解机模型构建程序。操作系统是管理和控制因子分解机模型构建设备硬件和软件资源的程序,支持因子分解机模型构建程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与因子分解机模型构建系统中其它硬件和软件之间通信。

在图4所示的因子分解机模型构建设备中,处理器1001用于执行存储器1005中存储的因子分解机模型构建程序,实现上述任一项所述的因子分解机模型构建方法的步骤。

本申请因子分解机模型构建设备具体实施方式与上述因子分解机模型构建方法各实施例基本相同,在此不再赘述。

参照图5,图5是本申请实施例方案涉及的硬件运行环境的设备结构示意图。

如图5所示,该个性化推荐设备可以包括:处理器1001,例如cpu,存储器1005,通信总线1002。其中,通信总线1002用于实现处理器1001和存储器1005之间的连接通信。存储器1005可以是高速ram存储器,也可以是稳定的存储器(non-volatilememory),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储设备。

可选地,该个性化推荐设备还可以包括矩形用户接口、网络接口、摄像头、rf(radiofrequency,射频)电路,传感器、音频电路、wifi模块等等。矩形用户接口可以包括显示屏(display)、输入子模块比如键盘(keyboard),可选矩形用户接口还可以包括标准的有线接口、无线接口。网络接口可选的可以包括标准的有线接口、无线接口(如wi-fi接口)。

本领域技术人员可以理解,图5中示出的个性化推荐设备结构并不构成对个性化推荐设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

如图5所示,作为一种计算机存储介质的存储器1005中可以包括操作系统、网络通信模块以及个性化推荐程序。操作系统是管理和控制个性化推荐设备硬件和软件资源的程序,支持个性化推荐程序以及其它软件和/或程序的运行。网络通信模块用于实现存储器1005内部各组件之间的通信,以及与个性化推荐系统中其它硬件和软件之间通信。

在图5所示的个性化推荐设备中,处理器1001用于执行存储器1005中存储的个性化推荐程序,实现上述任一项所述的个性化推荐方法的步骤。

本申请个性化推荐设备具体实施方式与上述个性化推荐方法各实施例基本相同,在此不再赘述。

本申请实施例还提供一种因子分解机模型构建装置,所述因子分解机模型构建装置应用于因子分解机模型构建设备,所述因子分解机模型构建装置包括:

秘密共享模块,用于获取预设初始化模型对应的初始化模型参数和第一稀疏数据,并基于所述初始化模型参数,与第二设备进行秘密共享,获得第一方秘密共享初始模型参数,以供所述第二设备确定第二方秘密共享初始模型参数;

误差计算模块,用于基于所述第一稀疏数据中的第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二设备获取的第二稀疏数据中的第二非零部分和所述第二方秘密共享初始模型参数,计算秘密共享模型误差;

生成模块,用于基于所述秘密共享模型误差,对所述预设初始化模型进行更新,获得纵向联邦因子分解机模型。

可选地,所述误差计算模块包括:

第一计算子模块,用于基于预设秘密共享乘法三元组、所述第一非零部分和所述第一方秘密共享初始模型参数,与所述第二设备进行联邦交互,以联合所述第二非零部分和所述第二方秘密共享初始模型参数,计算稀疏矩阵安全内积和秘密共享中间参数;

第二计算子模块,用于基于所述稀疏矩阵安全内积、所述秘密共享中间参数和预设秘密共享模型误差计算公式,计算所述秘密共享模型误差。

可选地,所述第一计算模块包括:

第一计算单元,用于基于所述第一类型共享模型参数和所述第一非零部分,与所述第二设备进行联邦交互,以联合所述第二方第一类型共享模型参数和所述第二非零部分,计算所述第一类型稀疏矩阵安全内积;

第二计算单元,用于基于所述第二类型共享模型参数和所述第一非零部分,与所述第二设备进行联邦交互,以联合所述第二方第二类型共享模型参数和所述第二非零部分,计算所述第二类型稀疏矩阵安全内积;

第三计算单元,用于基于所述第二类型共享模型参数、所述第一非零部分和所述预设秘密共享乘法三元组,与所述第二设备进行联邦交互,以联合所述第二方第二类型共享模型参数和所述第二非零部分,计算所述秘密共享中间参数。

可选地,所述第二计算单元包括:

第一交互计算子单元,用于基于所述第二类型共享模型参数,与所述第二设备进行联邦交互,以计算所述第二类型共享模型参数和所述第二非零部分之间的交叉内积,获得所述第一非零特征项交叉内积;

第二交互计算子单元,用于基于所述第一非零部分,与所述第二设备进行联邦交互,以计算所述第一非零部分和所述第二方第二类型共享模型参数之间的交叉内积,获得所述第二非零特征项交叉内积。

可选地,所述第一交互计算子单元还用于以下步骤:

生成第一公钥,并基于所述第一公钥,对所述第一共享参数进行加密,获得加密第一共享参数;

将所述第一公钥和所述加密第一共享参数发送至第二设备,以供所述第二设备基于所述第一公钥、所述加密第一共享参数、第二共享参数和所述第二非零部分,确定第二方第一非零特征项交叉内积和加密第一非零特征项交叉内积;

接收所述第二设备发送的所述加密第一非零特征项交叉内积,并基于所述第一公钥对应的第一私钥,对所述加密第一非零特征项交叉内积进行解密,获得所述第一非零特征项交叉内积。

可选地,所述第二交互计算子单元还用于以下步骤:

接收所述第二设备发送的第二公钥和发送的加密第四共享参数,其中,所述加密第四共享参数为所述第二设备基于所述第二公钥加密的所述第四共享参数;

基于所述第二公钥、所述加密第四共享参数、所述第一非零部分和所述第三共享参数,计算第二非零特征项交叉内积和加密第二方第二非零特征项交叉内积;

将所述加密第二方第二非零特征项交叉内积发送至所述第二设备,以供所述第二设备基于所述第二公钥对应的第二私钥,对所述加密第二方第二非零特征项交叉内积进行解密,获得第二方第二非零特征项交叉内积。

可选地,所述第二交互计算子单元还用于以下步骤:

基于所述第二公钥,对所述第三共享参数进行加密,获得加密第三共享参数,并计算所述加密第三共享参数和所述加密第四共享参数共同对应的加密模型参数;

计算所述加密模型参数中各列向量和所述第一非零部分中各列向量两两之间的交叉内积,获得所述第一加密内积;

基于所述加密模型参数的特征维度,构建所述第二非零特征项交叉内积,并计算所述第二非零特征项交叉内积和所述第一加密内积共同对应的所述加密第二方第二非零特征项交叉内积。

可选地,所述第三计算单元还包括:

第三交互计算子单元,用于基于所述预设秘密共享乘法三元组,通过与所述第二设备进行联邦交互,计算所述第二类型秘密共享参数矩阵和所述秘密共享转置参数矩阵之间的秘密共享乘积,获得所述秘密共享矩阵内积,以供所述第二设备计算所述第二方第二类型秘密共享参数矩阵和所述第二方秘密共享转置参数矩阵之间的秘密共享乘积,获得所述第二方秘密共享矩阵内积;

第四交互计算子单元,用于基于所述秘密共享矩阵内积和所述第一非零部分,与所述第二设备进行联邦交互,以联合所述第二方秘密共享矩阵内积和所述第二非零部分,计算所述秘密共享中间参数。

可选地,所述生成模块包括:

更新子模块,用于基于所述秘密共享模型误差,对所述秘密共享初始模型参数进行更新,获得秘密共享更新参数;

解密子模块,用于基于所述秘密共享更新参数,与所述第二设备进行解密交互,得到所述第一目标模型参数,以供所述第二设备得到所述第二目标模型参数。

可选地,所述解密子模块包括:

第一交互计算单元,用于将所述第一共享第二方模型更新参数发送至所述第二设备,以供所述第二设备基于确定的第二共享第二方模型更新参数和所述第一共享第二方模型更新参数,计算所述第二目标模型参数;

第二交互计算单元,用于接收所述第二设备发送的第二共享第一方模型更新参数,并基于所述第二共享第一方模型更新参数和所述第一共享第一方模型更新参数,计算所述第一目标模型参数。

本申请因子分解机模型构建装置的具体实施方式与上述因子分解机模型构建方法各实施例基本相同,在此不再赘述。

本申请实施例还提供一种个性化推荐装置,所述个性化推荐装置应用于个性化推荐设备,所述个性化推荐装置包括:

秘密共享模块,用于获取第一方待推荐用户稀疏数据,并与第二设备进行秘密共享,获得秘密共享模型参数;

评分模块,用于基于所述第一方待推荐用户稀疏数据中的第一非零部分和所述秘密共享模型参数,与所述第二设备进行纵向联邦预测交互,以对所述第一方待推荐用户稀疏数据对应的待推荐物品进行评分,获得第一秘密共享评分结果;

聚合模块,用于基于所述第一秘密共享评分结果,与所述第二设备进行聚合交互,以联合所述第二设备确定的第二秘密共享评分结果,计算目标评分结果;

生成模块,用于基于所述目标评分结果,生成所述待推荐物品对应的目标推荐列表。

可选地,所述聚合模块包括:

接收单元,用于接收所述第二设备发送的所述第二共享第一方评分和所述第二共享第二方评分;

第一计算单元,用于基于所述第一共享第一方评分和所述第二共享第二方评分,计算第一方评分;

第二计算单元,用于基于所述第一共享第二方评分和所述第二共享第二方评分,计算第二方评分;

聚合单元,用于对所述第一方评分和所述第二方评分进行聚合,获得所述目标评分。

可选地,所述评分模块包括:

第一联合计算单元,用于基于所述第一非零部分和所述第一方第一共享类型模型参数,与所述第二设备进行纵向联邦预测交互,以联合所述第二方第一共享类型模型参数,计算所述第一类型共享评分结果;

第二联合计算单元,用于基于所述第一方第二共享类型模型参数,与所述第二设备进行纵向联邦预测交互,以联合所述第二方第二共享类型模型参数和所述第二方待推荐用户稀疏数据的第二非零部分,计算所述第二类型共享评分结果。

本申请个性化推荐装置的具体实施方式与上述个性化推荐方法各实施例基本相同,在此不再赘述。

本申请实施例提供了一种可读存储介质,且所述可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的因子分解机模型构建方法的步骤。

本申请可读存储介质具体实施方式与上述因子分解机模型构建方法各实施例基本相同,在此不再赘述。

本申请实施例提供了一种可读存储介质,且所述可读存储介质存储有一个或者一个以上程序,所述一个或者一个以上程序还可被一个或者一个以上的处理器执行以用于实现上述任一项所述的个性化推荐方法的步骤。

本申请可读存储介质具体实施方式与上述个性化推荐方法各实施例基本相同,在此不再赘述。

以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利处理范围内。

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