一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种算力自适应的模型异构联邦推荐方法及系统

2022-09-07 21:39:50 来源:中国专利 TAG:


1.本发明涉及推荐系统领域和联邦学习领域,尤其涉及一种算力自适应的模型异构联邦推荐方法及系统。


背景技术:

2.推荐系统是一种基于机器学习的信息过滤系统,通过学习用户的历史行为(即用户与项目之间产生的历史交互),来预测用户的偏好,并据此向用户推荐合适的项目。目前,推荐系统在电子商务、在线观影和社交网络等许多领域中得到了广泛的应用,并为许多行业带来了巨大的效益。然而,由于推荐系统需要以用户的历史交互记录作为训练数据,给用户的隐私带来了潜在的风险。
3.联邦学习技术在一定程度上能消除这一风险。在联邦学习场景中,多个客户端在中央服务器的协调下训练同一个模型。在每一轮训练中,中央服务器随机挑选部分客户端参与训练,并将当前的模型参数共享给这些参与训练的客户端。随后,参与训练的客户端依据自己本地的训练数据,对收到的模型参数进行训练并将梯度回传至中央服务器。最后,中央服务器将所有参与训练的客户端回传的梯度进行聚合,并根据聚合后的梯度更新模型参数。在联邦学习的全过程中,每个客户端的数据都一直保存在本地,也不会共享给其他人(包括中央服务器)。因此联邦学习能在完成模型训练的同时有效保护各客户端的隐私数据。
4.将联邦学习技术与推荐系统结合,能在为用户提供推荐服务的同时有效保护用户的隐私数据。在联邦推荐中,每个用户将自己与项目之间的历史交互数据存储于自己的用户端设备上(可能是电脑、平板电脑、手机或其他物联网设备),并让自己的用户端设备参与推荐模型的联邦训练。目前,大多数与联邦推荐相关的研究或应用尚停留于同构的推荐模型,即所有用户端设备共同训练、使用同一个推荐模型。然而,不同的用户端设备拥有着不同的计算能力。如果我们一方面为了低算力设备而使用较简单的推荐模型,就会限制模型的表达能力,而另一方面如果只考虑高算力设备而使用较复杂的模型,就会导致低算力设备计算时间过长,影响整体推荐系统的训练及运行。
5.针对如上所述的模型异构问题,尽管现在已有部分研究,但这些研究的场景往往是:1)每个训练参与者有属于自己的训练任务,不同参与者的训练任务不同;2)这些参与者所对应的模型,有一部分是全体共用的,一部分是针对自己的训练任务设计的、私有的。该方式需要针对训练参与者的不同算力设计不同的私有部分的训练任务,方案复杂,不具备通用性。


技术实现要素:

6.为了解决上述技术问题,本发明提出了一种算力自适应的模型异构联邦推荐方法及系统,其能根据参与训练的设备算力自适应地挑选合适尺寸的模型,可以在模型推荐效果和模型复杂程度上达到完美平衡。本发明所述的模型异构是指同一模型的不同尺寸,与
现有的不同模型之间的异构方式不同。
7.为了实现上述目的,本发明采用如下技术方案:
8.本发明的一个目的在于提供一种算力自适应的模型异构联邦推荐方法,包括以下步骤:
9.步骤1:中央服务器随机初始化由全体项目潜特征向量构成的项目矩阵,用户端随机初始化由与自身项目相关的本地用户潜特征向量构成的用户矩阵;
10.步骤2:中央服务器随机抽选若干用户端参与联邦训练,并将项目矩阵发送至各个选中的用户端;
11.步骤3:每个用户端依据自身算力条件,确定参与训练的全体项目潜特征向量的维度ki,之后从中央服务器发送的项目矩阵中随机抽取ki维度的所有与自身项目相关的项目潜特征向量,以及从本地用户潜特征向量中随机抽取ki维度的所有本地用户的用户潜特征向量,根据抽取出的项目潜特征向量和用户潜特征向量训练本地模型;
12.步骤4:每个参与训练的用户端利用训练得到的用户潜特征向量更新梯度,直接更新至本地维护的用户矩阵中,同时将训练得到的项目潜特征向量更新梯度上传至中央服务器;中央服务器聚合所有参与训练的用户端上传的项目潜特征向量更新梯度,对项目矩阵进行更新;
13.步骤5:循环步骤2至步骤4,直至训练结束,各个用户端根据本地维护的用户矩阵和中央服务器发送的项目矩阵,预估各个项目的推荐程度评分,选取排名靠前的项目作为推荐结果。
14.进一步的,所述的步骤3中,从中央服务器发送的项目矩阵中随机抽取ki维度的所有与自身项目相关的项目潜特征向量,具体为:
15.每个用户端依据自身算力条件,确定参与训练的全体项目潜特征向量的维度ki,从中央服务器发送的项目矩阵中随机选择[0,k
i-1]中的ki个索引值组成特征过滤层参数ind,所述的特征过滤层表示如下:
[0016][0017]
其中,f(v)表示从中央服务器发送的项目矩阵v中抽取的参数训练的项目矩阵v

,ki表示第i个用户端依据自身算力条件确定的参与训练的维度,kv表示中央服务器发送的项目矩阵v中每一个项目潜特征向量的维度,select_index(v,ind,dim=1)表示根据特征过滤层参数ind从项目矩阵v的列向量中抽取项目潜特征向量,dim=1用于表示kv维度的列向量。
[0018]
进一步的,循环步骤2至步骤5进行迭代训练时,每一轮训练均随机抽取项目潜特征向量和用户潜特征向量。
[0019]
进一步的,索引值的数量ki是根据中心服务器端规定的训练截止时间得到的最优值,具体为:
[0020]
当前客户端根据服务器端规定的训练截止时间,生成m
×ki
维度的项目矩阵与n
×ki
的用户矩阵(ki《kv),模拟训练情况进行矩阵乘法,得到能在规定训练截止时间内完成矩阵乘法计算的最大ki值,记为k
i_max
;从中央服务器发送的项目矩阵中随机选择[0,k
v-1]中的k
i_max
个索引值组成特征过滤层参数ind。
[0021]
进一步的,所述的步骤4具体为:
[0022]
在本地用户端,根据训练前从本地用户潜特征向量中随机抽取的ki维度的所有本地用户的用户潜特征向量,训练后生成ki维度的用户特征矩阵梯度u
grad
,所述的用户特征矩阵梯度u
grad
与抽取出的用户潜特征向量的维度一一对应,直接在本地用户端对用户矩阵进行优化更新参数;
[0023]
同时,将训练前从中央服务器发送的项目矩阵中随机抽取的ki个维度的索引值与训练得到的项目潜特征向量更新梯度v
grad
一起上传至中央服务器,在中央服务器中对缺失的索引值处对应的更新梯度补0,表示为:
[0024][0025]
其中,scatter(.)函数表示按照索引值分布还原,其余空白部分填充0;r(v
grad
)表示根据特征过滤层参数ind将项目潜特征向量更新梯度v
grad
恢复至原始维度kv;
[0026]
中央服务器聚合所有补齐维度后的项目潜特征向量更新梯度,对项目矩阵进行更新。
[0027]
进一步的,每个用户端根据本地存储的用户历史交互数据生成偏序关系三元组,用于每一轮的训练过程。
[0028]
进一步的,中央服务器采用平均聚合的方式聚合所有参与训练的用户端上传的项目潜特征向量更新梯度。
[0029]
进一步的,步骤5中得到预估后的各个项目的推荐程度评分后,将已交互的项目剔除,再选取排名靠前的若干个项目作为推荐结果。
[0030]
本发明的另一个目的在于提供一种算力自适应的模型异构联邦推荐系统,用于实现上述的模型异构联邦推荐方法。
[0031]
本发明具备的有益效果是:
[0032]
传统的联邦推荐系统中往往所有参与训练的用户端都使用结构完全相同的推荐模型。本发明考虑到参与联邦推荐的设备之间的算力差异,在传统的联邦推荐的基础上引入了“维度提取”这一操作,使得各参与联邦推荐训练的用户端能够依据自身设备计算能力自由选择使用的模型的维度。本发明相比于传统方法,能在降低用户设备计算能力要求的情况下,达到相似水平的推荐效果,方案简单,通用性强。
附图说明
[0033]
图1为本发明示出的一种算力自适应的模型异构联邦推荐方法的整体工作流程示意图。
[0034]
图2为本发明示出的一种算力自适应的模型异构联邦推荐方法的客户端工作流程示意图。
[0035]
图3为本发明示出的一种算力自适应的模型异构联邦推荐方法的特征过滤流程示意图。
具体实施方式
[0036]
下面结合附图和实施例对本发明作进一步详细描述,需要指出的是,以下所述实
施例旨在便于对本发明的理解,而对其不起任何限定作用。
[0037]
此外,附图仅为本发明的示意性图解,附图中所示的一些方框图是功能实体,不一定必须与物理或逻辑上独立的实体相对应,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
[0038]
本发明的整体工作流程示意图如图1所示,适用于使用矩阵分解算法进行联邦推荐的场景,下面首先简要描述矩阵分解算法,对下文需要的符号和公式进行定义和说明。
[0039]
假设共有n个用户,m个项目,每个用户对每个项目的预测评分构成n行m列的矩阵rn×m,其中第i行,第j列的值r
ij
表示用户i对项目j的预测评分,根据每个用户对所有项目的预测评分进行排序,即可将评分值较高的项目推荐给对应用户。矩阵分解算法旨在将评分矩阵rn×m分解为两个矩阵的乘积:
[0040]rn
×m=un×k×
(vm×k)
t
[0041]
其中u表示用户特征矩阵,v表示项目特征矩阵,k表示用户和项目潜特征向量的维数,用户i对项目j的评分就可以转化为用户i的潜特征向量与项目j潜特征向量的乘积,即r
ij
=u1×k×
(v1×k)
t
得到对应的项目评分,最终根据真实值(ground truth)与预测值代入损失函数,利用反向传播求解用户特征矩阵梯度u
grad
和项目特征矩阵梯度v
grad
,对矩阵特征值进行优化,逐步收敛得到结果。
[0042]
在联邦推荐的实际场景中,参与联邦训练的用户端设备有多种,如:电脑、平板电脑、手机或其他物联网设备等。不同种类设备的计算能力往往具有较大差异,这导致现有的联邦推荐系统往往为了兼顾低算力设备而无法充分发挥其性能。针对这一不足,本发明提供了一种算力自适应的模型异构联邦推荐方法及系统。
[0043]
本发明以联邦推荐为应用场景,在联邦推荐场景中,因各用户端设备性能存在差异,导致一些低算力用户在训练模型的时候普遍存在训练时间长,模型训练度低的问题,本发明提供了一种基于特征提取以适用于不同设备性能的联邦推荐方法及系统,适用于基于矩阵分解的多数算法,并对损失函数和优化方式无特别要求,具有较强的适应能力,能够做到在维持原训练效果的前提下,提高训练效率,降低用户端设备负载。下面对基于贝叶斯个性化排序算法、随机梯度下降优化算法,并附加特征提取的联邦推荐训练模型进行详细叙述,相同符号表示沿用上文矩阵分解算法部分描述。
[0044]
如图2所示,算力自适应的模型异构联邦推荐方法主要包括以下步骤:
[0045]
(1)中心服务器维护项目特征矩阵v,每个用户端维护和自身数据相关的用户特征矩阵u。中心服务器根据任务需要规定一轮训练的平均训练时间,并发送到所有用户端,同时发送中心服务器规定的项目潜特征向量维度kv。每个用户端根据自身算力和模型数据规模,判断是否能在规定时间内完成前向传播损失计算和反向传播梯度计算过程。若无法达到,则在kv维基础上,适当降低本用户端的用户潜特征向量到维度ki,并随机选择[0,k
v-1]中的ki个索引值组成特征过滤层参数ind,特征过滤层表示如下:
[0046][0047]
表示从输入矩阵v中按特征过滤层参数ind在列维度提取对应索引值重新组成新的输入矩阵f(v)。算力较高的用户端可保持特征过滤层为同等映射函数。
[0048]
本实施例中,每个用户端依据自身算力条件确定所使用的模型维数(即就是自己的用户潜特征向量的维数)后,从原始项目矩阵中抽取的每个项目潜特征向量仅在维度上与原始矩阵不同,项目数量是相同的,上述公式中的select_index(v,ind,dim=1)表示根据特征过滤层参数ind从项目矩阵v的列向量中抽取项目潜特征向量,dim=1用于表示kv维度的列向量,dim=0用于表示不同项目的行向量。另外,用户潜特征向量的维度需要与抽取后的项目潜特征向量的维度相同,每一轮训练时可以随机根据不同的索引值抽取。
[0049]
如图3所示,对于中心服务器维护的m
×
k维的项目特征矩阵v,m表示项目数,k表示项目潜特征向量的维数;针对由ki=3个索引值组成特征过滤层参数ind={1,x,y},通过公式f(v)=select_index(v,ind,dim=1)从原始项目特征矩阵v中提取出第1,x,y三列数据构成新的输入矩阵f(v)。本实施例中,ki的取值是根据中心服务器端规定的训练截止时间得到的最优值,具体为:当前客户端根据服务器端规定的训练截止时间,生成m
×ki
维度的项目矩阵与n
×ki
的用户矩阵(ki《kv),模拟训练情况进行矩阵乘法,得到能在规定训练截止时间内完成矩阵乘法计算的最大ki值,记为k
i_max
,作为当前客户端特征过滤层参数。
[0050]
(2)在每个用户端初始化用户特征矩阵参数,并生成偏序关系三元组;在中心服务器端初始化项目特征矩阵参数。
[0051]
(3)中央服务器随机抽取若干用户端参与训练,发送完整的项目特征矩阵v到每个被选择的用户端。用户端将收到的项目特征矩阵输入特征过滤层,生成新项目特征矩阵v

=f(v)。利用偏序关系三元组计算预测值,并带入损失函数得到损失值loss。
[0052]
(4)利用loss反向传播,得到用户特征矩阵梯度u
grad
和项目特征矩阵梯度v
grad
,u
grad
直接在用户端对用户特征矩阵进行优化更新参数,v
grad
需按照特征过滤层中参数还原为初始维数:
[0053][0054]
scatter_函数表示按照原列索引值分布还原,其余空白部分填充0。将还原后的项目特征矩阵梯度传回中心服务器。
[0055]
本实施例中,根据本地用户特征矩阵梯度u
grad
更新用户矩阵时,由于用户特征矩阵梯度u
grad
与抽取出的用户潜特征向量的维度是一一对应,可以直接在本地用户端对用户矩阵进行优化更新参数。
[0056]
本发明可用于对不同类型的用户端进行项目推荐,例如,用户端a和b所包含的推荐项目不同,但中央服务器包含了a和b自身项目相关的全体项目潜特征向量,在本地训练中,用户端a和b可以从全体项目潜特征向量中抽取出自身项目相关的项目潜特征向量参与训练,与自身项目不相关的项目潜特征向量的梯度即为0。
[0057]
(5)中心服务器端收集整合所有参与训练的用户端上传的项目特征矩阵梯度,对恢复出来的全体项目潜特征向量的梯度采用平均聚合,并更新项目特征矩阵参数。
[0058]
重复步骤上述训练过程若干轮,直至模型收敛。待模型收敛后,即可依据该模型向某一用户推荐项目。
[0059]
本实施例中,推荐项目的方式为:
[0060]
i.中央服务器将全体项目的潜特征向量发送给用户端;
[0061]
ii.该用户端在接收到中央服务器发送的全体项目潜特征向量后,依据全体项目
潜特征向量,以及本地维护的用户潜特征向量,预估得到用户对每个项目的喜好程度得分;
[0062]
iii.依据用户与项目之间的历史交互记录,将已交互的项目剔除,找出预估的喜好程度得分最高的若干个项目,并最终将这些项目推荐给该用户。
[0063]
在本发明实施模拟测试时,按照数据用户数目构造同等数目的模拟用户端,每个用户端包含一个用户的数据,并按照隐式交互过的项目数目构造同等数目的偏序关系三元组作为模拟训练数据。联邦训练时每轮训练包含所有用户分为数个批次,每个批次包含256个模拟用户端,每个用户端使用各自模拟训练数据中的所有偏序关系三元组进行训练。
[0064]
在推荐系统研究领域,movielens数据集是一个关于电影评分的数据集,较为有名,该数据集中包含用户对电影的评分记录。除去该数据集用户对电影的评分,即可将该数据集看做一个隐式反馈数据集。
[0065]
在movielens数据上进行实验后发现,在对项目矩阵进行适应性调整相较于原始维数性能几乎没有下降,反而在第一轮训练中的平均准确率高于原始训练方式,从6%上升到8%,上升了两个百分点,在后续测试中,在130轮训练后,两种方法均达到收敛,本发明方法最终准确率稳定在56%左右,原始方法最终准确率稳定在57%左右,相差很小,在可接受范围内。
[0066]
与前述的一种算力自适应的模型异构联邦推荐方法的实施例相对应,本技术还提供了一种算力自适应的模型异构联邦推荐系统的实施例,完成从数据获取、本地训练、中心服务器参数更新等任务,实现推荐系统的全自动化。
[0067]
所述的模型异构联邦推荐系统包括:
[0068]
用户模型,其位于每一个本地用户端,用于根据上传的项目潜特征向量更新梯度维护本地用户矩阵;
[0069]
项目模型,其位于中心服务器端,用于根据训练得到的用户潜特征向量更新梯度维护项目矩阵;
[0070]
数据模块,其位于每一个用户端上,用于依据当前用户交互过的项目与未交互过的项目生成偏序关系三元组;
[0071]
性能测算模块,其用于根据用户端自身算力条件,确定参与训练的全体项目潜特征向量的维度ki;
[0072]
数据提取与恢复模块,其用于从中央服务器发送的项目矩阵中随机抽取ki维度的所有与自身项目相关的项目潜特征向量,以及从本地用户潜特征向量中随机抽取ki维度的所有本地用户的用户潜特征向量;以及,用于将训练得到的用户潜特征向量更新梯度和项目潜特征向量更新梯度恢复至原始维度;
[0073]
训练模块,其位于每一个用户端上,用于根据抽取出的项目潜特征向量和用户潜特征向量训练本地模型,得到用户潜特征向量更新梯度和项目潜特征向量更新梯度;
[0074]
在发明的一项具体实施中,性能测算模块生的索引值的数量ki是根据中心服务器端规定的训练截止时间得到的最优值,具体为:当前客户端根据服务器端规定的训练截止时间,生成m
×ki
矩阵与n
×ki
矩阵(ki《k,矩阵中值随机),模拟训练情况进行矩阵乘法,得到能在规定训练截止时间内完成矩阵乘法计算的最大ki值,记为k
i_max
,作为当前客户端特征过滤层参数;
[0075]
查询模块,其用于根据本地维护的用户矩阵和中央服务器发送的项目矩阵,预估
各个项目的推荐程度评分,选取排名靠前的项目作为推荐结果。
[0076]
关于上述实施例中的系统,其中各个单元或模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0077]
对于系统实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的系统实施例仅仅是示意性的,其中的各个模块都可以是或者也可以不是物理上分开的。另外,在本发明中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的模块或单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现,以根据实际的需要选择其中的部分或者全部模块来实现本技术方案的目的。
[0078]
以上所述的实施例对本发明的技术方案和有益效果进行了详细说明,应理解的是以上所述仅为本发明的具体实施例,并不用于限制本发明,凡在本发明的原则范围内所做的任何修改、补充和等同替换等,均应包含在本发明的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献