CN113205388A - 一种基于矩阵分解的协同过滤推荐优化算法和装置 - Google Patents
一种基于矩阵分解的协同过滤推荐优化算法和装置 Download PDFInfo
- Publication number
- CN113205388A CN113205388A CN202110516942.5A CN202110516942A CN113205388A CN 113205388 A CN113205388 A CN 113205388A CN 202110516942 A CN202110516942 A CN 202110516942A CN 113205388 A CN113205388 A CN 113205388A
- Authority
- CN
- China
- Prior art keywords
- user
- matrix
- recommendation
- feature
- tourist
- 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.)
- Pending
Links
- 239000011159 matrix material Substances 0.000 title claims abstract description 235
- 238000004422 calculation algorithm Methods 0.000 title claims abstract description 94
- 238000005457 optimization Methods 0.000 title claims abstract description 62
- 238000001914 filtration Methods 0.000 title claims abstract description 55
- 238000000354 decomposition reaction Methods 0.000 title claims abstract description 40
- 239000013598 vector Substances 0.000 claims abstract description 89
- 238000000034 method Methods 0.000 claims abstract description 36
- 230000003044 adaptive effect Effects 0.000 claims abstract description 12
- 238000004364 calculation method Methods 0.000 claims description 16
- 238000012937 correction Methods 0.000 claims description 11
- 238000013500 data storage Methods 0.000 claims description 9
- 238000007726 management method Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 6
- 238000012163 sequencing technique Methods 0.000 claims description 5
- 238000010606 normalization Methods 0.000 abstract description 3
- 230000006870 function Effects 0.000 description 29
- 238000010586 diagram Methods 0.000 description 7
- 230000000875 corresponding effect Effects 0.000 description 6
- ORILYTVJVMAKLC-UHFFFAOYSA-N Adamantane Natural products C1C(C2)CC3CC1CC2C3 ORILYTVJVMAKLC-UHFFFAOYSA-N 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 238000002474 experimental method Methods 0.000 description 3
- 238000012417 linear regression Methods 0.000 description 3
- 230000015556 catabolic process Effects 0.000 description 2
- 238000006731 degradation reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000010355 oscillation Effects 0.000 description 2
- OAICVXFJPJFONN-UHFFFAOYSA-N Phosphorus Chemical compound [P] OAICVXFJPJFONN-UHFFFAOYSA-N 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002596 correlated effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000004880 explosion Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012887 quadratic function Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/06—Buying, selling or leasing transactions
- G06Q30/0601—Electronic shopping [e-shopping]
- G06Q30/0631—Item recommendations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/14—Travel agencies
Landscapes
- Business, Economics & Management (AREA)
- Tourism & Hospitality (AREA)
- Economics (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Development Economics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Human Resources & Organizations (AREA)
- Primary Health Care (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于矩阵分解的协同过滤推荐优化算法和装置,包括基于归一化最小均方的矩阵分解协同过滤推荐算法、基于最大相关熵准则的矩阵分解协同过滤推荐算法和基于自适应矩估计优化的矩阵分解协同过滤算法;本发明将归一化方法应用于FunkSVD算法分别对其用户特征向量和项目特征向量进行归一化,具有更优的推荐性能,具有比传统基于MSE损失函数的推荐算法更优的推荐性能和更好的应对干扰的鲁棒性,且拥有比FunkSVD更快的收敛速度与更好的优化性能。
Description
技术领域
本发明涉及大数据技术领域,尤其涉及一种基于矩阵分解的协同过滤推荐优化算法和装置。
背景技术
近年来,大数据技术已经被广泛应用于电子商务、金融证券、交通旅游和医疗教育等行业。在这个数据爆发的时代,如何从海量数据中甄选出感兴趣的部分,是大数据技术研究的热门话题。协同过滤(CF,collaborative filtering)推荐技术正是在这样的背景下产生的。典型的基于模型的CF推荐是基于矩阵分解的推荐算法,其中最典型的是基于奇异值分解(SVD,singular value decomposition)的推荐算法。
然而,传统的SVD推荐算法是基于最小化均方误差(MSE,mean square error)损失函数和利用随机梯度下降(SGD,stochastic gradient descend)法建立的。不同用户特征向量或项目特征向量的能量将会影响这些SVD推荐算法的性能和稳定性。此外,当***遭遇异常干扰时,传统的基于MSE损失函数的SVD推荐算法不能保证鲁棒性。再者,利用最传统的SGD方法对用户特征向量和项目特征向量进行更新不能保证推荐性能。
发明内容
本发明的目的就在于为了解决上述问题而提供一种基于矩阵分解的协同过滤推荐优化算法和装置。
本发明通过以下技术方案来实现上述目的:
本发明一种基于矩阵分解的协同过滤推荐优化算法,包括基于归一化最小均方的矩阵分解协同过滤推荐算法、基于最大相关熵准则的矩阵分解协同过滤推荐算法和基于自适应矩估计优化的矩阵分解协同过滤算法;
所述基于归一化最小均方的矩阵分解协同过滤推荐算法包括以下步骤:
S1.1:用户对旅游景点的评分数据获取并存储;
S1.2:生成用户-旅游景点评分矩阵;
S1.3:生成随机的用户特征矩阵;
S1.4:生成随机的旅游景点特征矩阵;
S1.5:输入学习率参数;
S1.6:输入正则化参数;
S1.7:迭代计算用户的特征矩阵和项目特征矩阵;
所述基于最大相关熵准则的矩阵分解协同过滤推荐算法包括以下步骤:
S2.1:用户对旅游景点的评分数据获取并存储;
S2.2:生成用户-旅游景点评分矩阵;
S2.3:生成随机的用户特征矩阵;
S2.4:生成随机的旅游景点特征矩阵;
S2.5:输入学习率参数;
S2.6:输入正则化参数;
S2.7:输入核参数;
S2.8:迭代计算用户的特征矩阵和项目特征矩阵;
所述基于自适应矩估计优化的矩阵分解协同过滤算法包括以下步骤:
S3.1:用户对旅游景点的评分数据获取并存储;
S3.2:生成用户-旅游景点评分矩阵;
S3.3:生成随机的用户特征矩阵;
S3.4:生成随机的旅游景点特征矩阵;
S3.5:输入学习率参数;
S3.6:输入正则化参数;
S3.7:输入遗忘因子1;
S3.8:输入遗忘因子2;
S3.9:初始化用户特征向量梯度的一阶/二阶矩及其偏置校正量;
S3.10:初始化旅游景点特征向量梯度的一阶/二阶矩及其偏置校正量;
S3.11:迭代计算用户的特征矩阵和项目特征矩阵。
所述步骤S1.7的具体算法为:
S1.7.1当前用户的特征矩阵下标小于或等于评分矩阵的维度时,循环;否则结束循环;
S1.7.2当前旅游景点的特征矩阵下标小于或等于评分矩阵的维度时,循环;否则结束循环;
S1.7.3如果评分矩阵当前元素不为0时,计算该元素与预测元素的误差
S1.7.4利用S1.7.3中的误差更新用户特征矩阵的值;
S1.7.5利用S1.7.3中的误差更新旅游景点特征矩阵的值;
S1.7.6旅游景点的特征矩阵下标自增1,跳转至S1.7.2;
S1.7.7用户的特征矩阵下标自增1,跳转至S1.7.1。
所述步骤S2.8的具体算法为:
S2.8.1:当前用户的特征矩阵下标小于或等于评分矩阵的维度时,循环;否则结束循环;
S2.8.2:当前旅游景点的特征矩阵下标小于或等于评分矩阵的维度时,循环;否则结束循环;
S2.8.3:如果评分矩阵当前元素不为0时,计算该元素与预测元素的误差
S2.8.4:利用S2.8.3中的误差更新用户特征矩阵的值;
S2.8.5:利用S2.8.3中的误差更新旅游景点特征矩阵的值;
S2.8.6:旅游景点的特征矩阵下标自增1,跳转至S2.8.2;
S2.8.7:用户的特征矩阵下标自增1,跳转至S2.8.1。
所述步骤S3.11的具体算法为:
S3.11.1:当前用户的特征矩阵下标小于或等于评分矩阵的维度时,循环;否则结束循环;
S3.11.2:当前旅游景点的特征矩阵下标小于或等于评分矩阵的维度时,循环;否则结束循环;
S3.11.3:计算该元素与预测元素的误差
S3.11.4:计算用户特征向量的梯度
S3.11.5:计算旅游景点特征向量的梯度
S3.11.6:利用S3.11.3中的误差更新用户特征矩阵的值;
S3.11.7:利用S3.11.3中的误差更新旅游景点特征矩阵的值;
S3.11.8:利用S3.11.4计算用户特征向量的梯度的一阶矩和二阶矩的估计量S3.11.9:利用S3.11.5计算旅游景点特征向量的梯度的一阶矩和二阶矩的估计量
S3.11.10:利用S3.11.8计算用户特征向量的梯度的一阶矩和二阶矩的估计量的偏置校正量
S3.11.11:利用S3.11.9计算旅游景点特征向量的梯度的一阶矩和二阶矩的估计量的偏置校正量
S3.11.12:如果评分矩阵当前元素不为0时,跳转至S3.11.3;否则结束循环;
S3.11.13:旅游景点的特征矩阵下标自增1,跳转至S3.11.2;
S3.11.14:用户的特征矩阵下标自增1,跳转至S3.11.1。
本发明一种基于矩阵分解的协同过滤推荐优化装置,包括用户-旅游景点的评分数据存储模块(11)、用户推荐信息综合管理模块(12)和计算模块(13),用户-旅游景点的评分数据存储模块(11)用于存储用户对于旅游景点的评分数据,生成用户-旅游景点的评分矩阵,以及存储预测后的用户-旅游景点的评分矩阵;
用户推荐信息综合管理模块(12)用于接收目标用户的旅游景点推荐申请,并判断用户是否进行过推荐或者是否更新了旅游景点评分,如果用户未进行过推荐或者更新了旅游景点评分,则转发目标用户的旅游景点推荐申请到计算模块(13);否则,从用户-旅游景点的评分数据存储模块(11)中获取用户的推荐列表,推送给用户;
计算模块(13)用于离线计算用户的推荐列表,对用户未进行评分的景点进行预测,对预测的景点评分进行排序,作为用户的推荐备选列表,将计算好的推荐列表存储到用户-旅游景点的评分数据存储模块(11),并转发至用户推荐信息综合管理模块(12)。
本发明的有益效果在于:
本发明是一种基于矩阵分解的协同过滤推荐优化算法和装置,与现有技术相比,本发明具有如下技术效果:
(1)为解决传统FunkSVD算法在应对不同能量用户特征向量与项目特征向量更新时的性能不佳甚至大能量时的稳定性问题,本发明将归一化方法应用于FunkSVD算法分别对其用户特征向量和项目特征向量进行归一化,提出了新的基于归一化最小均方矩阵分解(NLMS-MF,normalized least mean square based matrix factorization)推荐算法。使用北京地区的景点评分数据做仿真验证,实验表明:NLMS-MF算法具有比FunkSVD算法更优的推荐性能。
(2)传统的矩阵分解CF推荐算法都是基于MSE损失函数建立的,不具有对抗异常干扰的鲁棒性,本发明提出了基于最大相关熵准则的矩阵分解(MCC-MF,maximumcorrentropy criterionbased matrix factorization)推荐算法以解决这一问题。使用α稳态噪声来模拟带有异常干扰的推荐***环境,对MCC-MF算法的鲁棒性做验证。实验表明:在北京地区的景点评分数据集上,MCC-MF算法都具有比传统基于MSE损失函数的推荐算法更优的推荐性能和更好的应对干扰的鲁棒性。
(3)利用机器学习中对SGD进行优化的常用方法Adam,本发明提出了基于自适应矩估计优化的矩阵分解(Adam-MF,adaptive moment estimation matrix factorization)协同过滤算法。该算法利用用户特征向量和项目特征向量的梯度的一阶矩和二阶矩分别对用户特征向量和项目特征向量进行更新,避免了在最优解附近的振荡。实验表明:在测试集上,Adam-MF拥有比FunkSVD更快的收敛速度与更好的优化性能。
附图说明
图1为本发明实施例的一种基于归一化最小均方的矩阵分解协同过滤推荐算法;
图2为本发明实施例的基础旅游景点库的存储结构示意图;
图3为本发明实施例的用户-旅游景点的评分矩阵、用户特征矩阵、旅游景点特征矩阵的示意图;
图4为本发明实施例采用协同过滤算法预测后的基础旅游景点库的存储结构示意图;
图5为本发明实施例的一种基于最大相关熵准则的矩阵分解协同过滤推荐算法;
图6为本发明实施例的一种基于自适应矩估计优化的矩阵分解协同过滤算法;
图7为发明实施例一种基于协同过滤优化的推荐装置的结构示意图。
具体实施方式
下面结合附图对本发明作进一步说明:
本发明的第一个目的是提供一种基于协同过滤优化的推荐算法,克服了现有的协同过滤算法应对不同能量(通常指方差)用户特征向量和项目特征向量引起的性能退化和稳定性问题,保证推荐***的性能。
基于上述目的本发明提供的一种基于归一化最小均方的矩阵分解协同过滤推荐算法,应用于旅游景点库。所述旅游景点库包括用户曾经去过并且做出评价的景点以及用户从未去过的景点;所述推荐算法包括:
接收用户的景点推荐申请,根据用户的历史行为数据,构建用户对旅游景点的评分矩阵,利用用户已有的评分数据,对用户未进行评分的旅游景点进行预测,最终根据预测结果,选取用户评分较高的10个地点进行推荐。
第一步,接收用户的景点推荐申请,从旅游景点库中获取用户对景点的评分矩阵R,并随机生成用户的特征矩阵P,相应的用户u的特征向量为pu;旅游景点的特征矩阵Q,相应的景点i的特征向量为qi。
第二步,为了对用户特征向量pu进行迭代更新,因此利用线性回归的方法将用户-项目评分矩阵R分解为用户特征矩阵P与项目特征矩阵Q的乘积的形式,且使得它们之间的误差最小化,该优化问题可以表示如下:
这里||·||F为矩阵的F范数。对上式优化问题的求解需要考虑损失函数。在传统的推荐算法中,通常使用均方误差损失函数,并且为了防止过拟合,上式优化问题需要引入用户特征向量pu和项目特征向量qi的L2正则化项。均方误差(MSE,mean square error)损失函数,其表示如下
因此,分别求上式中MSE损失函数关于用户特征向量pu和景点特征向量qi的梯度如下:
从而根据pu和qi的梯度,利用随机梯度下降(SGD,stochastic gradient descend)方法,可对pu和qi进行迭代更新,式中η>0为学习率,其可以控制算法的收敛速度和稳态误差。如下:
然而当用户特征向量pu或旅游景点特征向量qi的能量(通常指它们的方差)不同时,固定的学习率将会导致算法的性能恶化甚至不稳定性。为了解决该问题,本发明引入了归一化方法,具体如下:
首先,为了对用户特征向量pu进行迭代更新,考虑如下的优化模型:
这里δ>0为很小的自然数以防止分母为零,通常取δ=10-8。在上述优化模型中,损失函数可以表示为
为了防止过拟合,在上式损失函数中引入L2正则化项可得:
这里λ>0为正则化参数。因此,利用上述损失函数,可求其关于用户特征向量pu的梯度如下所示
从而,利用SGD优化方法,可得用户特征向量pu的迭代更新方程如下所示,其中η>0为学习率:
接下来,利用与求解用户特征向量pu相似的方法求解旅游景点特征向量qi。因此,首先考虑如下带有L2正则化项的求解项目特征向量的优化模型:
上式所示的优化模型中的损失函数可以表示为:
可求解该损失函数关于项目特征向量qi的梯度如下所示:
从而,利用SGD优化方法,可得项目特征向量qi的迭代更新方程如下所示:
本发明的第二个目的是提供一种基于协同过滤优化的推荐算法,克服了现有的协同过滤算法应对***异常干扰引起的算法无法收敛的问题,保证推荐***的鲁棒性。
基于上述目的本发明提供的一种基于最大相关熵准则的矩阵分解协同过滤推荐算法,应用于旅游景点库。所述推荐算法包括:
接收用户的景点推荐申请,根据用户的历史行为数据,构建用户对旅游景点的评分矩阵,利用用户已有的评分数据,对用户未进行评分的旅游景点进行预测,最终根据预测结果,选取用户评分较高的10个地点进行推荐。
第一步,接收用户的景点推荐申请,从旅游景点库中获取用户对景点的评分矩阵R,并随机生成用户的特征矩阵P,相应的用户u的特征向量为pu;旅游景点的特征矩阵Q,相应的景点i的特征向量为qi。
第二步,为了对用户特征向量pu进行迭代更新,因此利用线性回归的方法将用户-项目评分矩阵R分解为用户特征矩阵P与项目特征矩阵Q的乘积的形式,且使得它们之间的误差最小化,该优化问题可以表示如下:
第三步,对上式优化问题的求解需要考虑损失函数。在传统的推荐算法中,通常使用MSE损失函数,利用SGD优化方法对用户特征向量pu和项目特征向量qi进行迭代更新。然而,由于MSE损失函数是一个二次函数,当误差eu,i很大时,其一阶导数也很大,从而利用SGD方法求解的算法不能保证鲁棒性。为了解决该问题,本发明引入了相关熵损失(Closs,correntropy loss)函数来替代传统的MSE损失函数,并使用随机梯度上升(SGA,stochastic gradient ascend)来进行迭代求解。其具体如下:
首先,定义Closs损失函数如下:
上式中σ>0为高斯核的核宽。利用上式中定义的Closs函数替换传统推荐算法的优化模型中的MSE损失函数,可得如下的最小化模型:
该优化模型可以等价为以下优化问题:
当数据量较大或数据维度高时,该优化算法将遭遇过拟合的风险,因此,引入L2正则化项可得如下的优化模型:
这里λ>0为正则化参数,通常取较小值,||·||为向量的欧几里得范数。
由于上式中所示的是最大化优化模型,因此不能用传统的SGD优化方法对其进行求解,而需要用到随机梯度上升(SGA,stochastic gradient ascend)优化方法,也就是利用正梯度方向迭代更新参数以获得损失函数的最大值。
上式对应的损失函数如下:
分别求上式中l(eu,i)关于用户特征向量pu和项目特征向量qi的梯度为:
这里的η>0为学习率,其可以控制算法的收敛速度和稳态误差,即当η较大时收敛速度快但稳态误差大,而小的η可导致相反的结果。通过不断迭代更新用户特征向量pu和项目特征向量qi,直到用户特征矩阵P和旅游景点特征矩阵Q不再发生改变,从而得到用户-评分矩阵R的预测矩阵
本发明的第三个目的是提供一种基于协同过滤优化的推荐算法,克服了现有的协同过滤算法在最优解附近的振荡,保证推荐***的性能。
基于上述目的本发明提供的一种基于自适应矩估计优化的矩阵分解协同过滤算法,应用于旅游景点库。所述推荐算法包括:
接收用户的景点推荐申请,根据用户的历史行为数据,构建用户对旅游景点的评分矩阵,利用用户已有的评分数据,对用户未进行评分的旅游景点进行预测,最终根据预测结果,选取用户评分较高的10个地点进行推荐。
第一步,接收用户的景点推荐申请,从旅游景点库中获取用户对景点的评分矩阵R,并随机生成用户的特征矩阵P,相应的用户u的特征向量为pu;旅游景点的特征矩阵Q,相应的景点i的特征向量为qi。
第二步,为了对用户特征向量pu进行迭代更新,因此利用线性回归的方法将用户-项目评分矩阵R分解为用户特征矩阵P与项目特征矩阵Q的乘积的形式,且使得它们之间的误差最小化,该优化问题可以表示如下:
对上式优化问题的求解需要考虑损失函数。在传统的推荐算法中,通常使用均方误差损失函数,并且为了防止过拟合,上式优化问题需要引入用户特征向量pu和项目特征向量qi的L2正则化项。均方误差(MSE,mean square error)损失函数,其表示如下
传统推荐算法中,对于MSE损失函数的求解采用了SGD的方法,然而SGD优化方法利用固定学习率η对参数进行更新,当数据相当稀疏或者特征具有显著不同的出现频率时,固定的η得不到良好的优化性能。为了解决该问题,本发明引入了自适应矩估计(Adam,adaptive moment estimation)优化方法,以加快算法收敛速度和提高推荐性能。具体如下:
首先对用户特征向量pu进行优化,求得其关于pu的梯度如下所示:
这里的和分别为pu的梯度的一阶矩和二阶矩的估计量(上标p表示用户特征向量),它们的初始值是与用户特征向量具有相同维度的零向量,β1>0和β2>0为遗忘因子。进一步,对和进行偏置校正可得其偏置校正量分别为:
联合上式,利用Adam优化参数更新方式,可得用户特征向量pu的迭代更新方程如下所示:
这里的ε>0为很小的常数,通常取ε=10-8,η>0为固定学习率,通常取η=0.01。
联合上式,利用Adam优化参数更新方式,可得旅游景点特征向量pu的迭代更新方程如下所示:
实施例1:
图1为本发明实施例一种基于协同过滤优化的推荐算法的流程图。本发明实施例提出了一种基于协同过滤优化的推荐算法,应用于旅游景点库。所述旅游景点库包括用户曾经去过并且做出评价的景点以及用户从未去过的景点;所述推荐算法包括:
第一步,接收目标用户的旅游景点推荐申请,并从数据库中获取用户-旅游景点的评分矩阵。对于用户曾经到访且做出过评分的地点,按照实际评分进行存储,其余未到访地点记为0分。如图2所示。
第二步,随机生成用户的特征矩阵和旅游景点的特征矩阵,此时,用户-旅游景点的评分矩阵、用户特征矩阵、旅游景点特征矩阵的示意图如图3所示。
第三步,根据所述的用户特征矩阵和旅游景点特征矩阵,采用本发明提出的一种基于归一化最小均方的矩阵分解协同过滤推荐算法,对用户特征矩阵和旅游景点特征矩阵进行迭代更新。其中,用户特征矩阵的迭代更新计算公式为:
旅游景点特征矩阵的迭代更新计算公式为:
上式中,η>0为学习率,λ>0为正则化参数,δ>0为一个很小的数,避免分母为0,pu为用户u的特征向量,qi为旅游景点i的特征向量,eu,i为用户对旅游景点的评分预测值和实际值之间的差。
第四步,根据停止迭代的用户特征矩阵和旅游景点特征矩阵,计算得到用户-旅游景点的预测评分矩阵,该步骤的计算公式为:
第五步,根据目标用户的唯一识别码,获取目标用户的旅游景点评分预测向量,根据评分结果,对旅游景点进行降序排序。得到的列表作为候选推荐列表。
第六步,对于上述候选推荐列表,根据业务需要,选取前n个旅游景点,对目标用户进行推送。
实施例2:
图5为本发明实施例一种基于最大相关熵准则的矩阵分解协同过滤推荐算法的流程图。本发明实施例提出了一种基于协同过滤优化的推荐算法,应用于旅游景点库。所述旅游景点库包括用户曾经去过并且做出评价的景点以及用户从未去过的景点;所述推荐算法包括:
第一步,接收目标用户的旅游景点推荐申请,并从数据库中获取用户-旅游景点的评分矩阵。对于用户曾经到访且做出过评分的地点,按照实际评分进行存储,其余未到访地点记为0分。如图2所示。
第二步,随机生成用户的特征矩阵和旅游景点的特征矩阵,此时,用户-旅游景点的评分矩阵、用户特征矩阵、旅游景点特征矩阵的示意图如图3所示。
第三步,根据所述的用户特征矩阵和旅游景点特征矩阵,采用本发明提出的一种基于最大相关熵准则的矩阵分解协同过滤推荐算法,对用户特征矩阵和旅游景点特征矩阵进行迭代更新。其中,用户特征矩阵的迭代更新计算公式为:
旅游景点特征矩阵的迭代更新计算公式为:
上式中,η>0为学习率,λ>0为正则化参数,δ>0为一个很小的数,避免分母为0,σ>0为高斯核的核宽,pu为用户u的特征向量,qi为旅游景点i的特征向量,eu,i为用户对旅游景点的评分预测值和实际值之间的差。
第四步,根据停止迭代的用户特征矩阵和旅游景点特征矩阵,计算得到用户-旅游景点的预测评分矩阵,该步骤的计算公式为:
第五步,根据目标用户的唯一识别码,获取目标用户的旅游景点评分预测向量,根据评分结果,对旅游景点进行降序排序。得到的列表作为候选推荐列表。
第六步,对于上述候选推荐列表,根据业务需要,选取前n个旅游景点,对目标用户进行推送。
实施例3:
图6为本发明实施例一种基于自适应矩估计优化的矩阵分解协同过滤算法的流程图。本发明实施例提出了一种基于协同过滤优化的推荐算法,应用于旅游景点库。所述旅游景点库包括用户曾经去过并且做出评价的景点以及用户从未去过的景点;所述推荐算法包括:
第一步,接收目标用户的旅游景点推荐申请,并从数据库中获取用户-旅游景点的评分矩阵。对于用户曾经到访且做出过评分的地点,按照实际评分进行存储,其余未到访地点记为0分。如图2所示。
第二步,随机生成用户的特征矩阵和旅游景点的特征矩阵,此时,用户-旅游景点的评分矩阵、用户特征矩阵、旅游景点特征矩阵的示意图如图3所示。
第三步,根据所述的用户特征矩阵和旅游景点特征矩阵,采用本发明提出的一种基于自适应矩估计优化的矩阵分解协同过滤算法,对用户特征矩阵和旅游景点特征矩阵进行迭代更新。其中,用户特征矩阵的迭代更新计算公式为:
旅游景点特征矩阵的迭代更新计算公式为:
上式中,pu为用户u的特征向量,qi为旅游景点i的特征向量,和分别为pu的梯度的一阶矩和二阶矩的估计量,和分别为qi的梯度的一阶矩和二阶矩的估计量,ε>0为很小的常数,通常取ε=10-8,η>0为固定学习率,通常取η=0.01
第四步,根据停止迭代的用户特征矩阵和旅游景点特征矩阵,计算得到用户-旅游景点的预测评分矩阵,该步骤的计算公式为:
第五步,根据目标用户的唯一识别码,获取目标用户的旅游景点评分预测向量,根据评分结果,对旅游景点进行降序排序。得到的列表作为候选推荐列表。
第六步,对于上述候选推荐列表,根据业务需要,选取前n个旅游景点,对目标用户进行推送。
实施例4:
本发明实施例还提供一种基于协同过滤优化的推荐装置,参照图7所示。所述推荐装置应用于旅游景点库。所述旅游景点库包括用户曾经去过并且做出评价的景点以及用户从未去过的景点;所述推荐装置包括:
用户-旅游景点的评分数据存储模块11,用于存储用户对于旅游景点的评分数据,生成用户-旅游景点的评分矩阵,以及存储预测后的用户-旅游景点的评分矩阵。
用户推荐信息综合管理模块12,用于接收目标用户的旅游景点推荐申请,并判断用户是否进行过推荐或者是否更新了旅游景点评分,如果用户未进行过推荐或者更新了旅游景点评分,则转发目标用户的旅游景点推荐申请到计算模块13;否则,从模块11中获取用户的推荐列表,推送给用户。
计算模块13,用于离线计算用户的推荐列表,对用户未进行评分的景点进行预测,对预测的景点评分进行排序,作为用户的推荐备选列表,将计算好的推荐列表存储到模块11,并转发至模块12。
以上显示和描述了本发明的基本原理和主要特征及本发明的优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (5)
1.一种基于矩阵分解的协同过滤推荐优化算法,其特征在于:包括基于归一化最小均方的矩阵分解协同过滤推荐算法、基于最大相关熵准则的矩阵分解协同过滤推荐算法和基于自适应矩估计优化的矩阵分解协同过滤算法;
所述基于归一化最小均方的矩阵分解协同过滤推荐算法包括以下步骤:
S1.1:用户对旅游景点的评分数据获取并存储;
S1.2:生成用户-旅游景点评分矩阵;
S1.3:生成随机的用户特征矩阵;
S1.4:生成随机的旅游景点特征矩阵;
S1.5:输入学习率参数;
S1.6:输入正则化参数;
S1.7:迭代计算用户的特征矩阵和项目特征矩阵;
所述基于最大相关熵准则的矩阵分解协同过滤推荐算法包括以下步骤:
S2.1:用户对旅游景点的评分数据获取并存储;
S2.2:生成用户-旅游景点评分矩阵;
S2.3:生成随机的用户特征矩阵;
S2.4:生成随机的旅游景点特征矩阵;
S2.5:输入学习率参数;
S2.6:输入正则化参数;
S2.7:输入核参数;
S2.8:迭代计算用户的特征矩阵和项目特征矩阵;
所述基于自适应矩估计优化的矩阵分解协同过滤算法包括以下步骤:
S3.1:用户对旅游景点的评分数据获取并存储;
S3.2:生成用户-旅游景点评分矩阵;
S3.3:生成随机的用户特征矩阵;
S3.4:生成随机的旅游景点特征矩阵;
S3.5:输入学习率参数;
S3.6:输入正则化参数;
S3.7:输入遗忘因子1;
S3.8:输入遗忘因子2;
S3.9:初始化用户特征向量梯度的一阶/二阶矩及其偏置校正量;
S3.10:初始化旅游景点特征向量梯度的一阶/二阶矩及其偏置校正量;
S3.11:迭代计算用户的特征矩阵和项目特征矩阵。
2.根据权利要求1所述的基于矩阵分解的协同过滤推荐优化算法,其特征在于:所述步骤S1.7的具体算法为:
S1.7.1当前用户的特征矩阵下标小于或等于评分矩阵的维度时,循环;否则结束循环;
S1.7.2当前旅游景点的特征矩阵下标小于或等于评分矩阵的维度时,循环;否则结束循环;
S1.7.3如果评分矩阵当前元素不为0时,计算该元素与预测元素的误差
S1.7.4利用S1.7.3中的误差更新用户特征矩阵的值;
S1.7.5利用S1.7.3中的误差更新旅游景点特征矩阵的值;
S1.7.6旅游景点的特征矩阵下标自增1,跳转至S1.7.2;
S1.7.7用户的特征矩阵下标自增1,跳转至S1.7.1。
3.根据权利要求1所述的基于矩阵分解的协同过滤推荐优化算法,其特征在于:所述步骤S2.8的具体算法为:
S2.8.1:当前用户的特征矩阵下标小于或等于评分矩阵的维度时,循环;否则结束循环;
S2.8.2:当前旅游景点的特征矩阵下标小于或等于评分矩阵的维度时,循环;否则结束循环;
S2.8.3:如果评分矩阵当前元素不为0时,计算该元素与预测元素的误差
S2.8.4:利用S2.8.3中的误差更新用户特征矩阵的值;
S2.8.5:利用S2.8.3中的误差更新旅游景点特征矩阵的值;
S2.8.6:旅游景点的特征矩阵下标自增1,跳转至S2.8.2;
S2.8.7:用户的特征矩阵下标自增1,跳转至S2.8.1。
4.根据权利要求1所述的基于矩阵分解的协同过滤推荐优化算法,其特征在于:所述步骤S3.11的具体算法为:
S3.11.1:当前用户的特征矩阵下标小于或等于评分矩阵的维度时,循环;否则结束循环;
S3.11.2:当前旅游景点的特征矩阵下标小于或等于评分矩阵的维度时,循环;否则结束循环;
S3.11.3:计算该元素与预测元素的误差
S3.11.4:计算用户特征向量的梯度
S3.11.5:计算旅游景点特征向量的梯度
S3.11.6:利用S3.11.3中的误差更新用户特征矩阵的值;
S3.11.7:利用S3.11.3中的误差更新旅游景点特征矩阵的值;
S3.11.8:利用S3.11.4计算用户特征向量的梯度的一阶矩和二阶矩的估计量
S3.11.9:利用S3.11.5计算旅游景点特征向量的梯度的一阶矩和二阶矩的估计量
S3.11.10:利用S3.11.8计算用户特征向量的梯度的一阶矩和二阶矩的估计量的偏置校正量
S3.11.11:利用S3.11.9计算旅游景点特征向量的梯度的一阶矩和二阶矩的估计量的偏置校正量
S3.11.12:如果评分矩阵当前元素不为0时,跳转至S3.11.3;否则结束循环;
S3.11.13:旅游景点的特征矩阵下标自增1,跳转至S3.11.2;
S3.11.14:用户的特征矩阵下标自增1,跳转至S3.11.1。
5.一种基于矩阵分解的协同过滤推荐优化装置,其特征在于:包括用户-旅游景点的评分数据存储模块(11)、用户推荐信息综合管理模块(12)和计算模块(13),用户-旅游景点的评分数据存储模块(11)用于存储用户对于旅游景点的评分数据,生成用户-旅游景点的评分矩阵,以及存储预测后的用户-旅游景点的评分矩阵;
用户推荐信息综合管理模块(12)用于接收目标用户的旅游景点推荐申请,并判断用户是否进行过推荐或者是否更新了旅游景点评分,如果用户未进行过推荐或者更新了旅游景点评分,则转发目标用户的旅游景点推荐申请到计算模块(13);否则,从用户-旅游景点的评分数据存储模块(11)中获取用户的推荐列表,推送给用户;
计算模块(13)用于离线计算用户的推荐列表,对用户未进行评分的景点进行预测,对预测的景点评分进行排序,作为用户的推荐备选列表,将计算好的推荐列表存储到用户-旅游景点的评分数据存储模块(11),并转发至用户推荐信息综合管理模块(12)。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110516942.5A CN113205388A (zh) | 2021-05-12 | 2021-05-12 | 一种基于矩阵分解的协同过滤推荐优化算法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110516942.5A CN113205388A (zh) | 2021-05-12 | 2021-05-12 | 一种基于矩阵分解的协同过滤推荐优化算法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113205388A true CN113205388A (zh) | 2021-08-03 |
Family
ID=77031979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110516942.5A Pending CN113205388A (zh) | 2021-05-12 | 2021-05-12 | 一种基于矩阵分解的协同过滤推荐优化算法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113205388A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113987742A (zh) * | 2021-09-14 | 2022-01-28 | 东华大学 | 基于svd算法实现优化梯度下降过程的建模方法 |
CN116952887A (zh) * | 2023-07-27 | 2023-10-27 | 中国计量科学研究院 | 基于特征吸收峰的特征谱段确定方法和甲醇含量检测*** |
Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060193374A1 (en) * | 2005-02-25 | 2006-08-31 | Yuanbin Guo | System, apparatus, and method for adaptive weighted interference cancellation using parallel residue compensation |
CN101242381A (zh) * | 2008-03-13 | 2008-08-13 | 上海交通大学 | 多用户多输入多输出***的线性预编码方法 |
US20090290571A1 (en) * | 2008-05-20 | 2009-11-26 | Michael Margolis | Method and system for calculating a local time for a user equipment in an intelligent network |
CN101989966A (zh) * | 2010-11-02 | 2011-03-23 | 东南大学 | 基于ldlh矩阵分解的“限带”块mmse均衡方法 |
US20130260898A1 (en) * | 2012-03-27 | 2013-10-03 | James Pepe | Fantasy sports game |
US20160284003A1 (en) * | 2015-03-26 | 2016-09-29 | Xerox Corporation | Time-sensitive collaborative filtering through adaptive matrix completion |
CN108304556A (zh) * | 2018-02-06 | 2018-07-20 | 中国传媒大学 | 基于内容与协同过滤相结合的个性化推荐方法 |
CN108874960A (zh) * | 2018-06-06 | 2018-11-23 | 电子科技大学 | 一种在线学习中基于降噪自编码器混合模型的课程视频推荐算法 |
CN109743086A (zh) * | 2019-03-06 | 2019-05-10 | 江南大学 | 一种大规模mimo***的信道估计方法 |
CN109740924A (zh) * | 2018-12-29 | 2019-05-10 | 西安电子科技大学 | 融合属性信息网络和矩阵分解的物品评分预测方法 |
CN110532471A (zh) * | 2019-08-27 | 2019-12-03 | 华侨大学 | 基于门控循环单元神经网络的主动学习协同过滤方法 |
CN111723285A (zh) * | 2020-05-14 | 2020-09-29 | 天津大学 | 一种基于评分的深度谱卷积协同过滤推荐方法 |
CN111983927A (zh) * | 2020-08-31 | 2020-11-24 | 郑州轻工业大学 | 一种新型的最大协熵椭球集员滤波方法 |
-
2021
- 2021-05-12 CN CN202110516942.5A patent/CN113205388A/zh active Pending
Patent Citations (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060193374A1 (en) * | 2005-02-25 | 2006-08-31 | Yuanbin Guo | System, apparatus, and method for adaptive weighted interference cancellation using parallel residue compensation |
CN101242381A (zh) * | 2008-03-13 | 2008-08-13 | 上海交通大学 | 多用户多输入多输出***的线性预编码方法 |
US20090290571A1 (en) * | 2008-05-20 | 2009-11-26 | Michael Margolis | Method and system for calculating a local time for a user equipment in an intelligent network |
CN101989966A (zh) * | 2010-11-02 | 2011-03-23 | 东南大学 | 基于ldlh矩阵分解的“限带”块mmse均衡方法 |
US20130260898A1 (en) * | 2012-03-27 | 2013-10-03 | James Pepe | Fantasy sports game |
US20160284003A1 (en) * | 2015-03-26 | 2016-09-29 | Xerox Corporation | Time-sensitive collaborative filtering through adaptive matrix completion |
CN108304556A (zh) * | 2018-02-06 | 2018-07-20 | 中国传媒大学 | 基于内容与协同过滤相结合的个性化推荐方法 |
CN108874960A (zh) * | 2018-06-06 | 2018-11-23 | 电子科技大学 | 一种在线学习中基于降噪自编码器混合模型的课程视频推荐算法 |
CN109740924A (zh) * | 2018-12-29 | 2019-05-10 | 西安电子科技大学 | 融合属性信息网络和矩阵分解的物品评分预测方法 |
CN109743086A (zh) * | 2019-03-06 | 2019-05-10 | 江南大学 | 一种大规模mimo***的信道估计方法 |
CN110532471A (zh) * | 2019-08-27 | 2019-12-03 | 华侨大学 | 基于门控循环单元神经网络的主动学习协同过滤方法 |
CN111723285A (zh) * | 2020-05-14 | 2020-09-29 | 天津大学 | 一种基于评分的深度谱卷积协同过滤推荐方法 |
CN111983927A (zh) * | 2020-08-31 | 2020-11-24 | 郑州轻工业大学 | 一种新型的最大协熵椭球集员滤波方法 |
Non-Patent Citations (3)
Title |
---|
WENYOU FAN: "Pavement Evaluation with AHP Based on Expert’s Assessment", 《2015 23RD INTERNATIONAL CONFERENCE ON GEOINFORMATICS》 * |
冯莉: "基于Tukey 怀疑度模型旅游线路M 估计协同推荐", 《湖南工业大学学报》 * |
李双其等: "《大数据侦查实践》", 30 September 2019 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113987742A (zh) * | 2021-09-14 | 2022-01-28 | 东华大学 | 基于svd算法实现优化梯度下降过程的建模方法 |
CN116952887A (zh) * | 2023-07-27 | 2023-10-27 | 中国计量科学研究院 | 基于特征吸收峰的特征谱段确定方法和甲醇含量检测*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10387768B2 (en) | Enhanced restricted boltzmann machine with prognosibility regularization for prognostics and health assessment | |
CN109740064B (zh) | 一种融合矩阵分解和挖掘用户项目信息的cf推荐方法 | |
Wang et al. | Unified relevance models for rating prediction in collaborative filtering | |
US9092739B2 (en) | Recommender system with training function based on non-random missing data | |
US20170206551A1 (en) | Personalized Recommendation Computation in Real Time using Incremental Matrix Factorization and User Factor Clustering | |
CN113205388A (zh) | 一种基于矩阵分解的协同过滤推荐优化算法和装置 | |
US20100100516A1 (en) | Predicting User-Item Ratings | |
US20220114643A1 (en) | Simultaneous learning of inputs and parameters in machine learning-based recommender systems | |
CN112184391A (zh) | 一种推荐模型的训练方法、介质、电子设备和推荐模型 | |
US20220253722A1 (en) | Recommendation system with adaptive thresholds for neighborhood selection | |
Navgaran et al. | Evolutionary based matrix factorization method for collaborative filtering systems | |
Vellaichamy et al. | Hybrid Collaborative Movie Recommender System Using Clustering and Bat Optimization. | |
Karimi et al. | Non-myopic active learning for recommender systems based on matrix factorization | |
CN104766219B (zh) | 基于以列表为单位的用户推荐列表生成方法及*** | |
Lim et al. | Inverse multi-objective robust evolutionary design | |
CN114925270B (zh) | 一种会话推荐方法和模型 | |
Khan et al. | A New Efficient Redescending M‐Estimator for Robust Fitting of Linear Regression Models in the Presence of Outliers | |
CN110717116B (zh) | 关系网络的链接预测方法及***、设备、存储介质 | |
US20220019878A1 (en) | Video recommendation with multi-gate mixture of experts soft actor critic | |
Sykulski et al. | On-Line adaptation of exploration in the One-Armed bandit with covariates problem | |
CN116611731A (zh) | 一种评分模型训练方法、用户推送方法及装置 | |
CN115102868A (zh) | 一种基于SOM聚类与深度自编码器的web服务QoS预测方法 | |
Wu et al. | Sim-to-real interactive recommendation via off-dynamics reinforcement learning | |
AT&T | ||
Manchala et al. | Ensembling teaching-learning-based optimization algorithm with analogy-based estimation to predict software development effort |
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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20210803 |