CN107563841B - 一种基于用户评分分解的推荐系统 - Google Patents
一种基于用户评分分解的推荐系统 Download PDFInfo
- Publication number
- CN107563841B CN107563841B CN201710654392.7A CN201710654392A CN107563841B CN 107563841 B CN107563841 B CN 107563841B CN 201710654392 A CN201710654392 A CN 201710654392A CN 107563841 B CN107563841 B CN 107563841B
- Authority
- CN
- China
- Prior art keywords
- user
- matrix
- module
- commodity
- decomposition
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Abstract
本发明公开了一种基于用户评分分解的推荐系统,包括数据预处理模块、矩阵分解模块、评分预测模块,协同推荐模块,其中数据预处理模块从电子商务平台的数据库中获取不同用户对不同商品的评分信息,构建用户‑商品评分矩阵表并存储;矩阵分解模块通过对多模型同时训练的方式,获得对用户评分分解的权重值;评分预测模块利用矩阵分解模块获取的权重值对原始评分矩阵进行分解,通过再次训练的方式得到每一个部分的评分预测值,最后将每个部分的评分预测值之和作为评分预测结果存储在数据库中;协同推荐模块利用评分预测模块计算得到的评分预测结果向用户进行推荐。本发明能在用户历史数据较少的情况下,实现快速并准确地为用户提供个性化推荐服务。
Description
技术领域
本发明属于机器学习领域中的推荐系统研究领域,具体涉及一种通过分解用户评分挖掘用户兴趣偏好来进行推荐的推荐系统。
背景技术
随着现在信息化产业地不断发展,互联网技术的日新月异,人们已经进入到了一个信息爆炸的时代。每天面对着巨大的信息量,导致用户无法从中快速地寻找到自己想要的信息,即说到的信息过载现象。
正是由于信息量地迅速攀升,导致了推荐系统的诞生。推荐系统中的推荐算法通过对用户大量的历史行为(如浏览,点击,评分,评论)进行分析,为用户从浩如烟海的数据中寻找出所需要的产品,极大程度地解决了找数据难的问题。目前,推荐系统已经被广泛地应用于如淘宝,京东,亚马逊等国内外电商平台,在更加方便地服务客户的同时,也大幅度地提高了提供电商平台的公司的利润。
矩阵分解算法(MF),作为一种高效且准确的推荐算法,自2007年Netfilx推荐大赛被提出以来,就得到了国内外众多学者的关注,并在工业界得到了广泛地应用。矩阵分解算法的核心是将用户-商品评分矩阵表R分解成用户-偏好矩阵X和商品-属性矩阵Y,并用矩阵X与矩阵Y转置的乘积近似地表示用户-商品评分矩阵表R。这种方法相较于原来的最近邻推荐算法而言,优势在于计算速度快,预测准确性高,在数据稀疏的情况下也能表现出不错的效果。之后,又有学者基于矩阵分解模型提出了带有偏置的矩阵分解算法(BiasedMF),该算法在原算法的基础之上考虑了用户个体评分尺度与商品固有属性对最终结果的影响,经过实验证明,在推荐的准确性上相比于原算法有明显的提升。但是其依然存在如容易出现过拟合的问题,由于过分重视对单个训练评分的逼近,会造成模型在测试集上的泛化能力较差。同时,矩阵分解算法的解释性较差,无法将用户偏好向量和商品属性向量的每一个元素对应到现实生活中的每一个影响用户的购买因素上。
发明内容
本发明的发明目的在于:针对上述存在的问题,提供一种基于用户评分分解的推荐系统,能在用户历史数据较少的情况下,实现快速并准确地为用户提供个性化推荐服务。本发明的通用性高,可以适用于大多数的推荐场景。
本发明的一种基于用户评分分解的推荐系统,包括数据预处理模块、矩阵分解模块、评分预测模块和协同推荐模块,各模块具体如下:
数据预处理模块:电商平台的数据库是按行对用户-商品评分进行存储的,每一行存储的是用户对商品的评分。数据预处理模块的主要功能是从电商平台的数据库中按行读取用户对商品的评分信息,读取完成后,将评分信息转化成用户-商品评分矩阵表R,并存储用户-商品评分矩阵表R(可以是电商平台的数据库,也可以是本发明的推荐系统的数据库),以便于其他模块获取;另外,也可以直接将用户-商品评分矩阵表R发送给矩阵分解模块、评分预测模块。
其中用户-商品评分矩阵表R中每一行代表的是一位用户的信息,每一列代表了一件商品的信息,表中元素(数值)代表不同用户对不同商品的评分rui,下标u为用户标识符、i为商品标识符。
矩阵分解模块:矩阵分解模块基于用户-商品评分矩阵表R用户数量、商品数量随机初始化C个带有偏置项的矩阵分解模型其中α=1,…,C,用户-偏好矩阵X(α)的每一行代表一位用户的偏好特征信息,每一列代表不同用户对同一偏好的特征信息;商品-属性矩阵Y(α)的每一行代表同一商品的属性特征信息,每一列代表不同商品的同一属性的特征信息;分别表示模型Θα中各用户的偏置项,各商品的偏置项。即通过模型Θα可将用户-商品评分矩阵表R分解为C个用户-偏好矩阵X(α)和商品-属性矩阵Y(α)。
根据第一目标函数对C个矩阵分解模型Θα进行训练,得到训练后的矩阵分解模型Θα、权重数据表W(α)并存储,以便于其他模块获取;另外,也可以直接将权重数据表W(α)、训练后的矩阵分解模型Θα发送给评分预测模块。所述权重数据表W(α)为训练过程中得到的每个评分rui的最终分解权重。
评分预测模块:
根据第二目标函数对C个矩阵分解模型Θα进行再训练,得到训练后的矩阵分解模型Θα,基于当前矩阵分解模型Θα,根据得到当前预测评分并将C个当前预测评分的和作为用户对商品的最终预测评分由所有最终预测评分构成用户-商品评分预测表并存储,以便于其他模块获取;也可以直接将用户-商品评分预测表送给协同推荐模块。
协同推荐模块:基于用户-商品评分预测表在每个用户未购买的商品中,由前N个最大最终预测评分构成每个用户的用户推荐商品列表并存储(例如将各用户推荐商品列表存储到系统的推荐数据表L中,其中L的一行表示对一位用户的推荐信息,每一列表示商品被推荐的情况);在需要向用户推荐商品时,根据存储的用户推荐商品列表予以推荐。
进一步的,为了保障推荐的实时性和准确性,可以基于预设的数据刷新周期T(依据具体应用场景进行设置),每隔一段时间T就调用上述4个模块重新计算用户推荐商品列表并更新存储。
综上,本发明的基于用户评分分解的推荐系统的技术效果为:
(1)本发明在没有考虑额外信息(如评分时间,用户关系等)的情况下,相比与原算法,预测准确性得到了显著提升。
(2)本发明通过用户评分分解的方式发掘出用户评分时每一种因素对其产生的影响,因而可以更准确地向用户推荐商品,同时推荐结果相较原算法可解释性更强。
(3)本发明使用的算法在用户评分较少的稀疏矩阵中也能有非常不错的推荐效果,可以有效地解决数据稀疏性的问题。
(4)本发明的算法时间复杂度相较于矩阵分解算法为线性增长,且可采用并行计算方式对模型进行训练,计算速度较快,在海量数据的情况下也可以短时间计算出结果。
(5)系统中各个模块可彼此独立,使得整个系统具有高可扩展性。
(6)本发明方法运用领域广泛,如可用于书籍推荐,音乐推荐,电影推荐等推荐领域。
附图说明
图1是本发明基于用户评分分解的推荐系统各模块协作流程图;
图2是用户评分分解推荐算法流程图;
图3是用户评分分解推荐算法示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面结合实施方式和附图,对本发明作进一步地详细描述。
实施例
参见图1,在电商平台中设置本发明的数据预处理模块、矩阵分解模块、评分预测模块和协同推荐模块,各模块均可以访问电商平台的数据库,在数据刷新机制下,本发明各模块的以下工作流程每隔时间T将执行一次,参见图2,各模块的具体工作流程为:。
1.数据预处理模块:数据预处理模块从电商平台的数据库中按行读取用户对商品的评分信息,每读取一条信息,就将评分放入到用户-商品评分矩阵表R对应的位置中,读取信息完毕后,再将矩阵表R中未评分的元素用0值进行填充,最后将矩阵表R存入数据库中。
2.矩阵分解模块:从数据库中读取矩阵表R后,基于所包括的用户数量m、商品数量n,随机初始化C个带有偏置项的矩阵分解模型即每一个矩阵分解模型都能得到一个对矩阵表R分解后的用户-偏好矩阵X(α)和商品-属性矩阵Y(α),用k表示隐变量数目,则对应矩阵分解模型Θα的用户-偏好矩阵、商品-属性矩阵可以表示为:即k对应用户的偏好量,也对应商品的属性量。
随机初始化矩阵分解模型Θα,得到各用户的偏置项各商品的偏置项以及矩阵X(α)、矩阵Y(α)的初始值,优选的,用均值为0,方差为1的高斯分布随机初始化用户-偏好矩阵X(α)和商品-属性矩阵Y(α)中的每一个元素。
然后,根据第一目标函数对C个矩阵分解模型Θα进行训练,得到权重数据表W(α)以及训练后的矩阵分解模型Θα,并将其存入数据库中,其中权重数据表W(α)为训练过程中得到的每个评分rui的最终分解权重,如图3所示。
所述第一目标函数为:
其中,表示模型Θα中用户u对商品i的评分rui的分解权重,表示在模型Θα中预测的用户u对商品i的预测评分,表示矩阵X(α)中用户u所在行构成的用户u的偏好向量,表示矩阵Y(α)中商品i所在行构成的商品i的属性向量,λ表示正则化参数,用于防止模型过拟合。
对第一目标函数的求解过程如下:
其中,γ为学习速率,一般情况下初始化为0.01,随着迭代次数的增加,学习速率会不断衰减。
(4)判断是否满足迭代收敛条件,若是,则执行步骤(5);否则继续执行步骤(2);
3.评分预测模块:参见图3,评分预测模块从数据库中读取原始用户-商品评分矩阵表R,权重数据表W(α)和分解后的用户-偏好矩阵X(α)及商品-属性矩阵Y(α),利用下式对矩阵表R进行拆分,将R拆分成c个与矩阵R规格相同的矩阵R(α):
同样,用随机梯度下降的方式通过第二目标函数对Θα进行再训练,具体过程如下:
(3)判断是否满足迭代收敛条件,若是,则执行步骤(4);否则继续执行步骤(1);
4.协同推荐模块:协同推荐模块从数据库中读取预测评分矩阵对于用户-商品预测评分矩阵的每一行,除开用户已经购买的商品后,在剩下的商品中按预测评分从高到低对商品进行排序,选择评分最高的前N个商品作为用户推荐商品列表并存放在推荐列表L中,当需要向用户推荐时,基于各用户所对应的推荐商品列表予以推荐。
以上所述,仅为本发明的具体实施方式,本说明书中所公开的任一特征,除非特别叙述,均可被其他等效或具有类似目的的替代特征加以替换;所公开的所有特征、或所有方法或过程中的步骤,除了互相排斥的特征和/或步骤以外,均可以任何方式组合。
Claims (4)
1.基于用户评分分解的推荐系统,其特征在于,包括数据预处理模块、矩阵分解模块、评分预测模块和协同推荐模块,各模块的工作流程如下:
数据预处理模块:
获取用户对商品的评分信息,构建用户-商品评分矩阵表R并存储,其中用户-商品评分矩阵表R的每一行代表一位用户的信息,每一列代表一件商品的信息,表中元素代表各用户对各商品的评分rui,下标u为用户标识符、i为商品标识符;
矩阵分解模块:
基于用户-商品评分矩阵表R的用户数量、商品数量,随机初始化C个带有偏置项的矩阵分解模型其中α=1,…,C,用户-偏好矩阵X(α)的每一行代表一位用户的偏好特征信息,每一列代表不同用户对同一偏好的特征信息;商品-属性矩阵Y(α)的每一行代表的同一商品的属性特征信息,每一列代表不同商品的同一属性的特征信息;分别表示模型Θα中各用户的偏置项,各商品的偏置项;
根据第一目标函数对C个矩阵分解模型Θα进行训练,得到训练后的矩阵分解模型Θα、权重数据表W(α)并存储,所述权重数据表W(α)为训练过程中得到的每个评分rui的最终分解权重;
所述第一目标函数为:
其中表示在模型Θα中对评分rui的分解权重,且e为自然底数,表示在矩阵分解模型Θα中用户u对商品i的预测评分,且 表示矩阵X(α)中用户u所在行构成的用户u的偏好向量,表示矩阵Y(α)中商品i所在行构成的商品i的属性向量,λ表示正则化参数;x*,y*,b*分别表示当第一目标函数取最小值时所对应的C个参量符号(·)T表示矩阵转置;
其中,γ表示学习速率,当满足迭代收敛条件时,得到第一目标函数的求解结果;
评分预测模块:
基于权重数据表W(α)将用户-商品评分矩阵表R拆分为C个与矩阵表R规格相同的矩阵R(α);
根据第二目标函数对C个矩阵分解模型Θα进行再训练,得到训练后的矩阵分解模型Θα,基于当前矩阵分解模型Θα,根据得到当前预测评分并将C个当前预测评分的和作为用户对商品的最终预测评分由所有最终预测评分构成用户-商品评分预测表并存储;
所述第二目标函数为:
其中,当满足迭代收敛条件时,得到第二目标函数的求解结果;
协同推荐模块:
2.如权利要求1所述的系统,其特征在于,基于预设的用户推荐商品列表的更新周期T,周期调用所述数据预处理模块、矩阵分解模块、评分预测模块和协同推荐模块重新计算用户推荐商品列表并更新存储。
3.如权利要求1所述的系统,其特征在于,数据预处理模块、矩阵分解模块、评分预测模块在得到处理结果时,不进行本地存储,而直接将处理结果发送给需要的模块。
4.如权利要求1所述的系统,其特征在于,矩阵X(α)、矩阵Y(α)的初始化方式为:用均值为0,方差为1的高斯分布随机初始化矩阵X(α)和矩阵Y(α)中的每一个元素。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710654392.7A CN107563841B (zh) | 2017-08-03 | 2017-08-03 | 一种基于用户评分分解的推荐系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710654392.7A CN107563841B (zh) | 2017-08-03 | 2017-08-03 | 一种基于用户评分分解的推荐系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107563841A CN107563841A (zh) | 2018-01-09 |
CN107563841B true CN107563841B (zh) | 2021-02-05 |
Family
ID=60975073
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710654392.7A Active CN107563841B (zh) | 2017-08-03 | 2017-08-03 | 一种基于用户评分分解的推荐系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107563841B (zh) |
Families Citing this family (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108243357A (zh) * | 2018-01-25 | 2018-07-03 | 北京搜狐新媒体信息技术有限公司 | 一种视频推荐方法及装置 |
CN108492141A (zh) * | 2018-03-28 | 2018-09-04 | 联想(北京)有限公司 | 一种多模型融合的预测方法及装置 |
CN108959409A (zh) * | 2018-06-06 | 2018-12-07 | 电子科技大学 | 一种结合评论中主题与情感信息的矩阵分解推荐算法 |
CN109034941B (zh) * | 2018-06-13 | 2023-03-31 | 平安科技(深圳)有限公司 | 产品推荐方法、装置、计算机设备和存储介质 |
CN109146193B (zh) * | 2018-09-05 | 2023-04-28 | 平安科技(深圳)有限公司 | 产品智能推荐方法、装置、计算机设备及存储介质 |
CN110020883A (zh) * | 2018-12-12 | 2019-07-16 | 阿里巴巴集团控股有限公司 | 一种对评分矩阵中的未知评分进行预测的方法及装置 |
CN109785062B (zh) * | 2019-01-10 | 2021-09-24 | 电子科技大学 | 一种基于协同过滤模型的混合神经网络推荐系统 |
CN110309425B (zh) * | 2019-07-05 | 2021-08-24 | 北京字节跳动网络技术有限公司 | 用于存储数据的方法和装置 |
CN111178986B (zh) * | 2020-02-18 | 2023-04-07 | 电子科技大学 | 用户-商品偏好的预测方法及系统 |
CN111460316B (zh) * | 2020-03-20 | 2022-08-26 | 南京邮电大学 | 一种面向知识系统的个性化推荐方法及计算机存储介质 |
CN111428181A (zh) * | 2020-04-08 | 2020-07-17 | 深圳索信达数据技术有限公司 | 一种基于广义加性模型结合矩阵分解的银行理财产品推荐方法 |
CN111291417B (zh) * | 2020-05-09 | 2020-08-28 | 支付宝(杭州)信息技术有限公司 | 保护数据隐私的多方联合训练对象推荐模型的方法及装置 |
CN111652695B (zh) * | 2020-06-11 | 2023-05-30 | 扬州大学 | 一种基于并行自编码机的协同过滤推荐方法 |
CN112613953A (zh) * | 2020-12-29 | 2021-04-06 | 北京环球国广媒体科技有限公司 | 一种商品选品方法、系统及计算机可读存储介质 |
CN112765484B (zh) * | 2020-12-31 | 2024-04-30 | 北京达佳互联信息技术有限公司 | 短视频推送方法、装置、电子设备及存储介质 |
CN113032670B (zh) * | 2021-03-15 | 2022-10-25 | 清华大学 | 停车场推荐方法、装置、计算机设备和存储介质 |
CN113239265B (zh) * | 2021-04-07 | 2023-04-07 | 中国人民解放军战略支援部队信息工程大学 | 基于连接矩阵的个性化推荐方法及系统 |
CN113689266A (zh) * | 2021-08-27 | 2021-11-23 | 重庆锐云科技有限公司 | 手机选购推荐方法、装置、服务器及计算机可读存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294758A (zh) * | 2016-09-23 | 2017-01-04 | 华南师范大学 | 基于用户认知度变化的协同推荐方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104079960B (zh) * | 2013-12-05 | 2015-10-07 | 深圳市腾讯计算机系统有限公司 | 文件推荐方法和装置 |
-
2017
- 2017-08-03 CN CN201710654392.7A patent/CN107563841B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106294758A (zh) * | 2016-09-23 | 2017-01-04 | 华南师范大学 | 基于用户认知度变化的协同推荐方法 |
Non-Patent Citations (1)
Title |
---|
推荐算法与推荐网络研究;曾伟;《中国博士学位论文全文数据库 信息科技辑》;20160315;第1-6章 * |
Also Published As
Publication number | Publication date |
---|---|
CN107563841A (zh) | 2018-01-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107563841B (zh) | 一种基于用户评分分解的推荐系统 | |
Yu et al. | A cross-domain collaborative filtering algorithm with expanding user and item features via the latent factor space of auxiliary domains | |
CN111104595B (zh) | 一种基于文本信息的深度强化学习交互式推荐方法及系统 | |
Teo et al. | Adaptive, personalized diversity for visual discovery | |
CN109087178B (zh) | 商品推荐方法和装置 | |
CN110717098B (zh) | 基于元路径的上下文感知用户建模方法、序列推荐方法 | |
CN111797321B (zh) | 一种面向不同场景的个性化知识推荐方法及系统 | |
CN109785062B (zh) | 一种基于协同过滤模型的混合神经网络推荐系统 | |
CN111310063B (zh) | 基于神经网络的记忆感知门控因子分解机物品推荐方法 | |
CN109102127B (zh) | 商品推荐方法及装置 | |
CN109615452B (zh) | 一种基于矩阵分解的产品推荐方法 | |
CN107330115A (zh) | 一种信息推荐方法及装置 | |
CN110781409A (zh) | 一种基于协同过滤的物品推荐方法 | |
Navgaran et al. | Evolutionary based matrix factorization method for collaborative filtering systems | |
CN113158024B (zh) | 一种纠正推荐系统流行度偏差的因果推理方法 | |
CN110222838B (zh) | 文档排序方法、装置、电子设备及存储介质 | |
CN110727872A (zh) | 基于隐式反馈进行不明确选择行为挖掘的方法及装置 | |
CN108920647B (zh) | 基于谱聚类的低秩矩阵填充top-n推荐方法 | |
CN112800207A (zh) | 一种商品信息推荐方法、装置及存储介质 | |
CN109934681B (zh) | 用户感兴趣商品的推荐方法 | |
Yin et al. | An efficient recommendation algorithm based on heterogeneous information network | |
CN109684561B (zh) | 基于用户签到行为变化的深层语义分析的兴趣点推荐方法 | |
CN109190040B (zh) | 基于协同演化的个性化推荐方法及装置 | |
CN113988951A (zh) | 基于张量分解和协同过滤的商品推荐学习模型构建方法 | |
CN112948696A (zh) | 具有隐私保护功能的跨域医疗保健设备推荐方法及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |