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

一种物品推荐方法及系统与流程

2022-02-22 04:25:18 来源:中国专利 TAG:


1.本发明涉及机器学习技术领域,特别是涉及一种物品推荐方法及系统。


背景技术:

2.近年来,随着移动互联网和大数据技术的发展,用户很难在海量的数据中获取到有用的信息,也很难获取在这些海量数据中的潜在价值,从而很难合理的利用各种用户需要的资源。为了解决以上的问题,推荐系统相关技术应运而生。推荐方法可以为用户过滤掉价值低的信息,从而可以达到节省用户时间的效果;比如,推荐方法能够为具有特定爱好的用户找到他们喜欢的产品,提供定制化推荐。然而,在现有的推荐系统中仍然有许多的问题没有解决。例如:用户数据隐私无法得到保障,推荐系统运算时间长,以及因安装推荐系统而造成的app冷启动的问题。


技术实现要素:

3.本发明的目的是提供一种物品推荐方法及系统,在保护用户隐私的同时,提高了物品推荐的速率。
4.为实现上述目的,本发明提供了如下方案:
5.一种物品推荐方法,包括:
6.对所有用户进行预训练,得到每个所述用户的模型权重;
7.根据所述模型权重,利用k-means 算法对所有用户进行分簇处理,得到多个簇;
8.分别利用每个所述簇中的用户的本地数据,对全局物品因子初始矩阵进行训练,得到多个簇的簇全局物品因子矩阵。
9.可选的,在所述分别利用每个所述簇中的用户的本地数据,对全局物品因子初始矩阵进行训练,得到多个簇的簇全局物品因子矩阵之后,还包括:
10.根据所述簇全局物品因子矩阵,向对应簇中的用户推荐物品。
11.可选的,所述对所有用户进行预训练,得到每个所述用户的模型权重,具体包括:
12.联邦服务器向所有所述用户发送全局物品因子初始矩阵;
13.多个所述用户分别利用本地数据对所述全局物品因子初始矩阵进行训练,得到多个本地模型;
14.确定多个所述本地模型的模型权重。
15.可选的,所述根据所述模型权重,利用k-means 算法对所有用户进行分簇处理,得到多个簇,具体包括:
16.根据多个所述用户的模型权重,分别两两计算多个所述用户之间的余弦相似度;
17.根据多个所述余弦相似度,构建余弦相似度矩阵;
18.根据所述余弦相似度矩阵,利用k-means 算法对所有所述用户进行分簇处理,得
到多个簇;
19.其中,s(i,j)表示用户i的模型权重和用户j的模型权重之间的余弦相似度;wi表示用户i的模型权重;wj表示用户j的模型权重。
20.可选的,所述分别利用每个所述簇中的用户的本地数据,对全局物品因子初始矩阵进行训练,得到多个簇的簇全局物品因子矩阵,具体包括:
21.确定任一簇为当前簇;
22.所述当前簇中的多个用户分别获取所述联邦服务器发送的所述全局物品因子初始矩阵;
23.将所述全局物品因子初始矩阵输入矩阵补全模型中,得到全局物品因子补全矩阵;所述矩阵补全模型是利用全局物品因子历史初始矩阵,对lfm模型进行训练得到的;
24.将所述全局物品因子补全矩阵确定为簇全局物品因子初始矩阵;
25.所述当前簇中的多个用户分别将所述簇全局物品因子初始矩阵作为本地模型的参数,利用用户的本地数据对所述本地模型进行训练;
26.根据训练后的本地模型的参数,确定所述当前簇中的每个用户的物品因子向量;
27.所述联邦服务器将所述当前簇中多个用户对应的物品因子向量进行聚合,得到当前簇的聚合物品因子矩阵;
28.判断迭代次数是否达到预设迭代次数,得到判断结果;
29.若所述判断结果为否,则将所述当前簇的聚合物品因子矩阵作为所述簇全局物品因子初始矩阵,并返回步骤“所述当前簇中的多个用户分别将所述簇全局物品因子初始矩阵作为本地模型的参数,利用用户的本地数据对所述本地模型进行训练”;
30.若所述第一判断结果为是,则确定当前簇的聚合物品因子矩阵为所述当前簇的簇全局物品因子矩阵。
31.可选的,在所述当前簇中的多个用户分别获取所述联邦服务器发送的所述全局物品因子初始矩阵之前,还包括:
32.获取全局物品因子历史初始矩阵和全局物品因子历史补全矩阵;
33.以所述全局物品因子历史初始矩阵为输入,以所述全局物品因子历史补全矩阵为输出,对lfm模型进行训练,得到矩阵补全模型。
34.一种物品推荐系统,包括:
35.预训练模块,用于对所有用户进行预训练,得到每个所述用户的模型权重;
36.分簇处理模块,用于根据所述模型权重,利用k-means 算法对所有用户进行分簇处理,得到多个簇;
37.簇全局物品因子矩阵确定模块,用于分别利用每个所述簇中的用户的本地数据,对全局物品因子初始矩阵进行训练,得到多个簇的簇全局物品因子矩阵。
38.可选的,所述系统,还包括:
39.物品推荐模块,用于根据所述簇全局物品因子矩阵,向对应簇中的用户推荐物品。
40.可选的,所述簇全局物品因子矩阵确定模块,具体包括:
41.当前簇确定单元,用于确定任一簇为当前簇;
42.全局物品因子初始矩阵获取单元,用于使所述当前簇中的多个用户分别获取所述联邦服务器发送的全局物品因子初始矩阵;
43.补全单元,用于将所述全局物品因子初始矩阵输入矩阵补全模型中,得到全局物品因子补全矩阵;所述矩阵补全模型是利用全局物品因子历史初始矩阵,对lfm模型进行训练得到的;
44.簇全局物品因子初始矩阵确定单元,用于将所述全局物品因子补全矩阵确定为簇全局物品因子初始矩阵;
45.本地模型训练单元,用于所述当前簇中的多个用户分别将所述簇全局物品因子初始矩阵作为本地模型的参数,利用用户的本地数据对所述本地模型进行训练;
46.物品因子向量确定单元,用于根据训练后的本地模型的参数,确定所述当前簇中的每个用户的物品因子向量;
47.聚合物品因子矩阵确定单元,用于使所述联邦服务器将所述当前簇中多个用户对应的物品因子向量进行聚合,得到当前簇的聚合物品因子矩阵;
48.判断单元,用于判断迭代次数是否达到预设迭代次数,得到判断结果;若所述判断结果为否,则调用簇全局物品因子初始矩阵更新单元;若所述判断结果为是,则调用簇全局物品因子矩阵确定单元;
49.簇全局物品因子初始矩阵更新单元,用于将所述当前簇的聚合物品因子矩阵作为所述簇全局物品因子初始矩阵,并调用所述本地模型训练单元;
50.簇全局物品因子矩阵确定单元,用于确定当前簇的聚合物品因子矩阵为所述当前簇的簇全局物品因子矩阵。
51.可选的,所述簇全局物品因子矩阵确定模块,还包括:
52.历史数据获取单元,用于获取全局物品因子历史初始矩阵和全局物品因子历史补全矩阵;
53.矩阵补全模型确定单元,用于以所述全局物品因子历史初始矩阵为输入,以所述全局物品因子历史补全矩阵为输出,对lfm模型进行训练,得到矩阵补全模型。
54.根据本发明提供的具体实施例,本发明公开了以下技术效果:
55.本发明提高了一种物品推荐方法及系统,其中方法包括:对所有用户进行预训练,得到每个用户的模型权重;根据模型权重,利用k-means 算法对所有用户进行分簇处理,得到多个簇;分别利用每个簇中的用户的本地数据,对全局物品因子初始矩阵进行训练,得到多个簇的簇全局物品因子矩阵。本发明通过利用每个簇中的用户的本地数据,对全局物品因子初始矩阵进行训练在保护用户隐私的同时,能够提高物品推荐算法的运行速率。
附图说明
56.为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
57.图1为本发明实施例中物品推荐方法流程图;
58.图2为本发明实施例中用户分簇流程图;
59.图3为本发明实施例中的训练流程图。
具体实施方式
60.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
61.本发明的目的是提供一种物品推荐方法及系统,在保护用户隐私的同时,提高了物品推荐的速率。
62.为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
63.图1为本发明实施例中物品推荐方法流程图,如图1,本发明提供了一种物品推荐方法,包括:
64.步骤101:对所有用户进行预训练,得到每个用户的模型权重;
65.步骤102:根据模型权重,利用k-means 算法对所有用户进行分簇处理,得到多个簇;
66.步骤103:分别利用每个簇中的用户的本地数据,对全局物品因子初始矩阵进行训练,得到多个簇的簇全局物品因子矩阵。
67.在步骤103之后,还包括:
68.根据簇全局物品因子矩阵,向对应簇中的用户推荐物品。
69.步骤101,具体包括:
70.联邦服务器向所有用户发送全局物品因子初始矩阵;
71.多个用户分别利用本地数据对全局物品因子初始矩阵进行训练,得到多个本地模型;
72.确定多个本地模型的模型权重。
73.步骤102,具体包括:
74.根据多个所述用户的模型权重,分别两两计算多个所述用户之间的余弦相似度;
75.根据多个所述余弦相似度,构建余弦相似度矩阵;
76.根据所述余弦相似度矩阵,利用k-means 算法对所有所述用户进行分簇处理,得到多个簇;
77.其中,s(i,j)表示用户i的模型权重和用户j的模型权重之间的余弦相似度;wi表示用户i的模型权重;wj表示用户j的模型权重。
78.步骤103,具体包括:
79.确定任一簇为当前簇;
80.当前簇中的多个用户分别获取联邦服务器发送的全局物品因子初始矩阵;
81.将全局物品因子初始矩阵输入矩阵补全模型中,得到全局物品因子补全矩阵;矩阵补全模型是利用全局物品因子历史初始矩阵,对lfm模型进行训练得到的;
82.将全局物品因子补全矩阵确定为簇全局物品因子初始矩阵;
83.当前簇中的多个用户分别将簇全局物品因子初始矩阵作为本地模型的参数,利用
用户的本地数据对本地模型进行训练;
84.根据训练后的本地模型的参数,确定当前簇中的每个用户的物品因子向量;
85.联邦服务器将当前簇中多个用户对应的物品因子向量进行聚合,得到当前簇的聚合物品因子矩阵;
86.判断迭代次数是否达到预设迭代次数,得到判断结果;
87.若判断结果为否,则将当前簇的聚合物品因子矩阵作为簇全局物品因子初始矩阵,并返回步骤“当前簇中的多个用户分别将簇全局物品因子初始矩阵作为本地模型的参数,利用用户的本地数据对本地模型进行训练”;
88.若第一判断结果为是,则确定当前簇的聚合物品因子矩阵为当前簇的簇全局物品因子矩阵。
89.在当前簇中的多个用户分别获取联邦服务器发送的全局物品因子初始矩阵之前,还包括:
90.获取全局物品因子历史初始矩阵和全局物品因子历史补全矩阵;
91.以全局物品因子历史初始矩阵为输入,以全局物品因子历史补全矩阵为输出,对lfm模型进行训练,得到矩阵补全模型。
92.本技术提出了一种基于分簇的联邦学习推荐方法。本方法中主要基于现有技术隐语义模型(latent factor model,lfm)来得到推荐物品的潜在特征和用户潜在特征,然后基于联邦学习算法更新预测评分矩阵。通过迭代训练,使模型得到收敛状态,从而对每个用户进行精确个性化推荐。
93.本发明的目的是通过以下技术方案来实现对每个用户进行准确的个性化推荐。本方法的具体方案为:
94.step 1:对用户进行分簇。
95.在该部分中,我们需要对所有用户进行一个分簇,将具有相似特征的用户放在一个簇中,从而在推荐过程中,能够达到更加精确推荐的目的。
96.1.1首先,每个用户在联邦学习服务器中下载全局物品评分矩阵r,该矩阵是每个用户对某些物品的评分,如表1举例所示。其中“?”表示该用户对某物品没有评分记录。该矩阵可以是由服务器随机初始化的模型或是已经进行预训练的模型。
97.1.2之后,每个用户通过本地数据与该全局物品评分矩阵进行一次本地训练,得到该用户的本地模型更新权重信息。并将该本地模型更新权重参数上传至服务器中。
98.1.3最后,服务器得到每个参与训练的用户的本地模型更新权重参数,并使用这些本地更新权重参数基于k-means 算法对每个用户进行分簇,使具有相似特征的用户放在同一个簇内。簇的数量由k-means 算法中的k值而定。全局物品因子初始矩阵如表1。
99.表1全局物品因子初始矩阵
100.[0101][0102]
在k-means 算法中,本方法采用余弦距离来度量每个用户之间的相似性,余弦相似度计算公式为:
[0103]
其中,s(i,j)表示用户i的模型权重和用户j的模型权重之间的余弦相似度;wi表示用户i的模型权重;wj表示用户j的模型权重。
[0104]
假设共有n个用户使用该推荐方法及分为了k个簇。经过k-means 算法之后,可以得到用户簇c1,c2,

,ck,有n={c1∪c2∪

∪ck}。我们对该步骤进行了总结,流程图如图2所示.
[0105]
step 2:用户进行lfm。
[0106]
隐语义模型属于机器学习算法,其中包含隐含因子,类似于神经网络中的隐藏层,我们只需要根据现有的本地数据训练出合适的隐含因子,使得目标函数最优化,那么该模型就是可用的。通过隐语义模型lfm训练出一个合适的隐含因子将用户的爱好与物品之间的关系联系起来。假设r是一个u
×
i大小的物品评分矩阵,通过lfm寻找用户的推荐物品的潜在特征矩阵p和用户爱好矩阵q,这两个矩阵是通过矩阵分解得到的。并通过联邦学习算法得到新的预测评分矩阵r=p
×
q(该步骤为step 3,预测评分矩阵是为了补全表1所示的“?”的内容。推荐系统的预测评分可看做是一个矩阵补全的小游戏,矩阵补全是推荐系统的任务,矩阵分解是其达到目的的手段)。矩阵p、矩阵q、r的表达式和损失函数如下:
[0107]
p=u
×k[0108]
q=i
×k[0109][0110][0111]
其中,为损失函数;r
ui
为用户u对物品i的真实评分矩阵,p
ukqki
为预测值,k为隐含因子的个数,λ1||pu||2和λ2||qi||2为防止过拟合而引入的正则化项,λ1和λ2为正则化参数。pu为行数为u的潜在特征矩阵;为pu的转置矩阵;qi为行数为i的用户爱好矩阵。
[0112]
step 3:基于分簇的联邦学习对用户进行推荐
[0113]
通过step 2,每个用户都会得到推荐物品的潜在特征矩阵p和用户爱好矩阵q。之后,将基于联邦学习进行推荐。联邦学习的训练流程如图3所示。
[0114]
3.1在第一个通信轮次中,每个簇中的用户得到的全局物品因子矩阵是相同的。每个簇中的用户从服务器中下载全新的全局物品因子矩阵,该矩阵表示形式如表1中所示。
[0115]
3.2在每个簇中的用户基于step 2得到推荐物品的潜在特征矩阵p和用户爱好矩
阵q。
[0116]
3.3在每个簇的用户中,把全局物品因子矩阵作为训练模型的输入参数,并与用户自身所持有的本地数据进行e个epoch的训练,得到新的本地用户因子向量,并将该本地用户因子向量上传至服务器中,等待服务器的聚合操作。
[0117]
3.4服务器等待每个簇中的用户上传完毕后,通过联邦平均算法(fedavg)聚合每个簇的本地物品因子矩阵,得到新的全局物品因子矩阵。
[0118]
3.5服务器将聚合完成的全局物品因子矩阵继续发送给每个簇中的客户端。直到所有通信轮次训练完成或者系统设置的整体运行时间结束为止。
[0119]
此外,本发明还提高了一种物品推荐系统,包括:
[0120]
预训练模块,用于对所有用户进行预训练,得到每个用户的模型权重;
[0121]
分簇处理模块,用于根据模型权重,利用k-means 算法对所有用户进行分簇处理,得到多个簇;
[0122]
簇全局物品因子矩阵确定模块,用于分别利用每个簇中的用户的本地数据,对全局物品因子初始矩阵进行训练,得到多个簇的簇全局物品因子矩阵。
[0123]
本发明提供的物品推荐系统,还包括:
[0124]
物品推荐模块,用于根据簇全局物品因子矩阵,向对应簇中的用户推荐物品。
[0125]
其中,簇全局物品因子矩阵确定模块,具体包括:
[0126]
当前簇确定单元,用于确定任一簇为当前簇;
[0127]
全局物品因子初始矩阵获取单元,用于使当前簇中的多个用户分别获取联邦服务器发送的全局物品因子初始矩阵;
[0128]
补全单元,用于将全局物品因子初始矩阵输入矩阵补全模型中,得到全局物品因子补全矩阵;矩阵补全模型是利用全局物品因子历史初始矩阵,对lfm模型进行训练得到的;
[0129]
簇全局物品因子初始矩阵确定单元,用于将全局物品因子补全矩阵确定为簇全局物品因子初始矩阵;
[0130]
本地模型训练单元,用于当前簇中的多个用户分别将簇全局物品因子初始矩阵作为本地模型的参数,利用用户的本地数据对本地模型进行训练;
[0131]
物品因子向量确定单元,用于根据训练后的本地模型的参数,确定当前簇中的每个用户的物品因子向量;
[0132]
聚合物品因子矩阵确定单元,用于使联邦服务器将当前簇中多个用户对应的物品因子向量进行聚合,得到当前簇的聚合物品因子矩阵;
[0133]
判断单元,用于判断迭代次数是否达到预设迭代次数,得到判断结果;若判断结果为否,则调用簇全局物品因子初始矩阵更新单元;若判断结果为是,则调用簇全局物品因子矩阵确定单元;
[0134]
簇全局物品因子初始矩阵更新单元,用于将当前簇的聚合物品因子矩阵作为簇全局物品因子初始矩阵,并调用本地模型训练单元;
[0135]
簇全局物品因子矩阵确定单元,用于确定当前簇的聚合物品因子矩阵为当前簇的簇全局物品因子矩阵。
[0136]
此外,簇全局物品因子矩阵确定模块,还包括:
[0137]
历史数据获取单元,用于获取全局物品因子历史初始矩阵和全局物品因子历史补全矩阵;
[0138]
矩阵补全模型确定单元,用于以全局物品因子历史初始矩阵为输入,以全局物品因子历史补全矩阵为输出,对lfm模型进行训练,得到矩阵补全模型。
[0139]
本发明在分簇的基础上,把具有相同或相似爱好程度的用户放在同一簇中,可以提高对每个用户的推荐精确度。基于联邦学习进行训练,在保证了用户隐私不被泄露的前提下,达到对用户的精准推荐。联邦学习将推荐模型的学习过程都分布在每个用户的设备中,大大降低了联邦服务器的运算压力。
[0140]
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0141]
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
再多了解一些

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

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

相关文献