[发明专利]一种基于矩阵分解的产品推荐方法有效
| 申请号: | 201811268374.6 | 申请日: | 2018-10-29 |
| 公开(公告)号: | CN109615452B | 公开(公告)日: | 2020-07-10 |
| 发明(设计)人: | 路松峰;吴旭;王穆 | 申请(专利权)人: | 华中科技大学 |
| 主分类号: | G06F17/16 | 分类号: | G06F17/16 |
| 代理公司: | 华中科技大学专利中心 42201 | 代理人: | 曹葆青;李智 |
| 地址: | 430074 湖北*** | 国省代码: | 湖北;42 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 基于 矩阵 分解 产品 推荐 方法 | ||
1.一种基于矩阵分解的产品推荐方法,其特征在于,包括如下步骤:
(1)对历史评分数据进行预处理,得到用户对产品的评分矩阵;
(2)对所述评分矩阵中同一用户对不同产品的喜好程度进行排序,并根据排序结果确定对所述评分矩阵进行分解的损失函数;
所述步骤(2)包括:
对于所述评分矩阵中的任意一个用户,若根据排序规则,该用户对第一产品的喜好程度大于该用户对第二产品的喜好程度,则由该用户、所述第一产品和所述第二产品构成一个有序三元组;
计算每一个有序三元组中,用户对两个产品的评分差值,并对所述评分差值进行归一化后取其对数;将所有归一化评分差值的对数相加求和,作为迭代项;
根据分解所得两个矩阵的矩阵范数构建第一正则化项;
根据所述迭代项和所述第一正则化项确定所述损失函数;或者,获得任意两个用户之间的用户相似度以及任意两个产品之间的产品相似度,以构建第二正则化项,并根据所述迭代项、所述第一正则化项以及所述第二正则化项确定所述损失函数;
根据所述迭代项和所述第一正则化项所确定的损失函数,其表达式为:
根据所述迭代项、所述第一正则化项以及所述第二正则化项确定的损失函数的表达式为:
其中,C1和C2为损失函数,S为由所有有序三元组构成的集合,u和u1均为用户编号,i、j和i1均为产品编号,P和Q分别表示由所述评分矩阵分解所得的用户矩阵和产品矩阵,pu和分别表示所述用户矩阵中与用户u和用户u1相对应的特征向量,qi、qj和分别表示所述产品矩阵中与产品i、产品j和产品i1相对应的特征向量,sim1()和sim2()分别表示用户相似度函数和产品相似度函数,U1表示与用户u的用户相似度大于预设的用户相似度阈值的用户集合,I1表示与产品i的产品相似度大于预设的产品相似阈值的产品集合,λ、β和γ均为正则化系数,F表示Frobenius范数;
(3)对所述评分矩阵进行分解,并根据所述损失函数对分解结果进行调整,从而得到使得所述损失函数取值最小的第一特征向量和第二特征向量,由此完成矩阵分解并得到向用户推荐产品的推荐列表;
其中,所述第一特征向量用于表示用户与隐藏特征的关系,所述第二特征向量用于表示产品与隐藏特征的关系;所述第一正则化项和所述第二正则化项均用于防止过拟合,所述排序规则为:对于所述评分矩阵中的任意一个用户u',所述用户u'对于其评分过的所有产品喜好程度均相同,所述u'用户对于其未评分过的所有产品喜好程度均相同,并且所述用户u'对于其评分过的任意一个产品的喜好程度大于其未评分过的所有产品的喜好程度。
2.如权利要求1所述的基于矩阵分解的产品推荐方法,其特征在于,所述步骤(1)包括:
利用所述历史评分数据生成用户对产品的第一评分矩阵;
若所述第一评分矩阵的规模大于预设的数据集阈值,则对所述第一评分矩阵进行降维操作,从而得到第二评分矩阵,并将所述第二评分矩阵作为所述评分矩阵;否则,将所述第一评分矩阵作为所述评分矩阵。
3.如权利要求1所述的基于矩阵分解的产品推荐方法,其特征在于,获得任意两个用户之间的用户相似度以及任意两个产品之间的产品相似度的方法包括:
以所述评分矩阵中的用户和产品为顶点,构建一个有向图;若用户对产品进行过评分,则在所述有向图中生成一条从该用户指向该产品的有向边;
根据所述有向图分别获得用户对应的顶点的出度集合和产品对应的顶点的入度集合;
任意两个用户的用户相似度为所述两个用户对应顶点的出度集合的交集与并集之比;任意两个产品的产品相似度为所述两个产品对应顶点的入度集合的交集与并集之比。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华中科技大学,未经华中科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201811268374.6/1.html,转载请声明来源钻瓜专利网。





