CN113205388A - 一种基于矩阵分解的协同过滤推荐优化算法和装置 - Google Patents

一种基于矩阵分解的协同过滤推荐优化算法和装置 Download PDF

Info

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
Application number
CN202110516942.5A
Other languages
English (en)
Inventor
樊文有
文兴丽
王蜀越
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
China University of Geosciences
Original Assignee
China University of Geosciences
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by China University of Geosciences filed Critical China University of Geosciences
Priority to CN202110516942.5A priority Critical patent/CN113205388A/zh
Publication of CN113205388A publication Critical patent/CN113205388A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0631Item recommendations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • G06Q50/14Travel 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的乘积的形式,且使得它们之间的误差最小化,该优化问题可以表示如下:
Figure BDA0003062672860000071
这里||·||F为矩阵的F范数。对上式优化问题的求解需要考虑损失函数。在传统的推荐算法中,通常使用均方误差损失函数,并且为了防止过拟合,上式优化问题需要引入用户特征向量pu和项目特征向量qi的L2正则化项。均方误差(MSE,mean square error)损失函数,其表示如下
Figure BDA0003062672860000081
上式中,λ>0为正则化参数,||·||为欧几里得范数。
Figure BDA0003062672860000082
为实际评分与预测评分之间的误差,l(eu,i)=l(pu,qi,ru,i)为损失函数,即是关于误差eu,i的函数。
因此,分别求上式中MSE损失函数关于用户特征向量pu和景点特征向量qi的梯度如下:
Figure BDA0003062672860000083
Figure BDA0003062672860000084
从而根据pu和qi的梯度,利用随机梯度下降(SGD,stochastic gradient descend)方法,可对pu和qi进行迭代更新,式中η>0为学习率,其可以控制算法的收敛速度和稳态误差。如下:
Figure BDA0003062672860000085
Figure BDA0003062672860000086
然而当用户特征向量pu或旅游景点特征向量qi的能量(通常指它们的方差)不同时,固定的学习率将会导致算法的性能恶化甚至不稳定性。为了解决该问题,本发明引入了归一化方法,具体如下:
首先,为了对用户特征向量pu进行迭代更新,考虑如下的优化模型:
Figure BDA0003062672860000091
这里δ>0为很小的自然数以防止分母为零,通常取δ=10-8。在上述优化模型中,损失函数可以表示为
Figure BDA0003062672860000092
为了防止过拟合,在上式损失函数中引入L2正则化项可得:
Figure BDA0003062672860000093
这里λ>0为正则化参数。因此,利用上述损失函数,可求其关于用户特征向量pu的梯度如下所示
Figure BDA0003062672860000094
从而,利用SGD优化方法,可得用户特征向量pu的迭代更新方程如下所示,其中η>0为学习率:
Figure BDA0003062672860000095
接下来,利用与求解用户特征向量pu相似的方法求解旅游景点特征向量qi。因此,首先考虑如下带有L2正则化项的求解项目特征向量的优化模型:
Figure BDA0003062672860000096
上式所示的优化模型中的损失函数可以表示为:
Figure BDA0003062672860000097
可求解该损失函数关于项目特征向量qi的梯度如下所示:
Figure BDA0003062672860000098
从而,利用SGD优化方法,可得项目特征向量qi的迭代更新方程如下所示:
Figure BDA0003062672860000101
通过不断迭代更新用户特征向量pu和项目特征向量qi,直到用户特征矩阵P和旅游景点特征矩阵Q不再发生改变,从而得到用户-评分矩阵R的预测矩阵
Figure BDA0003062672860000102
本发明的第二个目的是提供一种基于协同过滤优化的推荐算法,克服了现有的协同过滤算法应对***异常干扰引起的算法无法收敛的问题,保证推荐***的鲁棒性。
基于上述目的本发明提供的一种基于最大相关熵准则的矩阵分解协同过滤推荐算法,应用于旅游景点库。所述推荐算法包括:
接收用户的景点推荐申请,根据用户的历史行为数据,构建用户对旅游景点的评分矩阵,利用用户已有的评分数据,对用户未进行评分的旅游景点进行预测,最终根据预测结果,选取用户评分较高的10个地点进行推荐。
第一步,接收用户的景点推荐申请,从旅游景点库中获取用户对景点的评分矩阵R,并随机生成用户的特征矩阵P,相应的用户u的特征向量为pu;旅游景点的特征矩阵Q,相应的景点i的特征向量为qi
第二步,为了对用户特征向量pu进行迭代更新,因此利用线性回归的方法将用户-项目评分矩阵R分解为用户特征矩阵P与项目特征矩阵Q的乘积的形式,且使得它们之间的误差最小化,该优化问题可以表示如下:
Figure BDA0003062672860000103
第三步,对上式优化问题的求解需要考虑损失函数。在传统的推荐算法中,通常使用MSE损失函数,利用SGD优化方法对用户特征向量pu和项目特征向量qi进行迭代更新。然而,由于MSE损失函数是一个二次函数,当误差eu,i很大时,其一阶导数也很大,从而利用SGD方法求解的算法不能保证鲁棒性。为了解决该问题,本发明引入了相关熵损失(Closs,correntropy loss)函数来替代传统的MSE损失函数,并使用随机梯度上升(SGA,stochastic gradient ascend)来进行迭代求解。其具体如下:
首先,定义Closs损失函数如下:
Figure BDA0003062672860000111
上式中σ>0为高斯核的核宽。利用上式中定义的Closs函数替换传统推荐算法的优化模型中的MSE损失函数,可得如下的最小化模型:
Figure BDA0003062672860000112
该优化模型可以等价为以下优化问题:
Figure BDA0003062672860000113
当数据量较大或数据维度高时,该优化算法将遭遇过拟合的风险,因此,引入L2正则化项可得如下的优化模型:
Figure BDA0003062672860000114
这里λ>0为正则化参数,通常取较小值,||·||为向量的欧几里得范数。
由于上式中所示的是最大化优化模型,因此不能用传统的SGD优化方法对其进行求解,而需要用到随机梯度上升(SGA,stochastic gradient ascend)优化方法,也就是利用正梯度方向迭代更新参数以获得损失函数的最大值。
上式对应的损失函数如下:
Figure BDA0003062672860000121
分别求上式中l(eu,i)关于用户特征向量pu和项目特征向量qi的梯度为:
Figure BDA0003062672860000122
Figure BDA0003062672860000123
这里
Figure BDA0003062672860000124
为预测误差。因此,利用SGA优化方法,可得用户特征向量pu和项目特征向量qi的更新方程分别如下:
Figure BDA0003062672860000125
Figure BDA0003062672860000126
这里的η>0为学习率,其可以控制算法的收敛速度和稳态误差,即当η较大时收敛速度快但稳态误差大,而小的η可导致相反的结果。通过不断迭代更新用户特征向量pu和项目特征向量qi,直到用户特征矩阵P和旅游景点特征矩阵Q不再发生改变,从而得到用户-评分矩阵R的预测矩阵
Figure BDA0003062672860000127
本发明的第三个目的是提供一种基于协同过滤优化的推荐算法,克服了现有的协同过滤算法在最优解附近的振荡,保证推荐***的性能。
基于上述目的本发明提供的一种基于自适应矩估计优化的矩阵分解协同过滤算法,应用于旅游景点库。所述推荐算法包括:
接收用户的景点推荐申请,根据用户的历史行为数据,构建用户对旅游景点的评分矩阵,利用用户已有的评分数据,对用户未进行评分的旅游景点进行预测,最终根据预测结果,选取用户评分较高的10个地点进行推荐。
第一步,接收用户的景点推荐申请,从旅游景点库中获取用户对景点的评分矩阵R,并随机生成用户的特征矩阵P,相应的用户u的特征向量为pu;旅游景点的特征矩阵Q,相应的景点i的特征向量为qi
第二步,为了对用户特征向量pu进行迭代更新,因此利用线性回归的方法将用户-项目评分矩阵R分解为用户特征矩阵P与项目特征矩阵Q的乘积的形式,且使得它们之间的误差最小化,该优化问题可以表示如下:
Figure BDA0003062672860000131
对上式优化问题的求解需要考虑损失函数。在传统的推荐算法中,通常使用均方误差损失函数,并且为了防止过拟合,上式优化问题需要引入用户特征向量pu和项目特征向量qi的L2正则化项。均方误差(MSE,mean square error)损失函数,其表示如下
Figure BDA0003062672860000132
传统推荐算法中,对于MSE损失函数的求解采用了SGD的方法,然而SGD优化方法利用固定学习率η对参数进行更新,当数据相当稀疏或者特征具有显著不同的出现频率时,固定的η得不到良好的优化性能。为了解决该问题,本发明引入了自适应矩估计(Adam,adaptive moment estimation)优化方法,以加快算法收敛速度和提高推荐性能。具体如下:
首先对用户特征向量pu进行优化,求得其关于pu的梯度如下所示:
Figure BDA0003062672860000133
将该梯度表示为
Figure BDA0003062672860000134
从而分别对
Figure BDA0003062672860000135
的梯度的一阶矩和二阶矩进行估计如下:
Figure BDA0003062672860000136
Figure BDA0003062672860000137
这里的
Figure BDA0003062672860000138
Figure BDA0003062672860000139
分别为pu的梯度
Figure BDA00030626728600001310
的一阶矩和二阶矩的估计量(上标p表示用户特征向量),它们的初始值是与用户特征向量具有相同维度的零向量,β1>0和β2>0为遗忘因子。进一步,对
Figure BDA0003062672860000141
Figure BDA0003062672860000142
进行偏置校正可得其偏置校正量分别为:
Figure BDA0003062672860000143
Figure BDA0003062672860000144
联合上式,利用Adam优化参数更新方式,可得用户特征向量pu的迭代更新方程如下所示:
Figure BDA0003062672860000145
这里的ε>0为很小的常数,通常取ε=10-8,η>0为固定学习率,通常取η=0.01。
接下来利用Adam优化方法对项目特征向量qi进行优化。将项目特征向量qi的梯度表示为
Figure BDA0003062672860000146
则可得
Figure BDA0003062672860000147
的一阶矩和二阶矩的估计如下所示:
Figure BDA0003062672860000148
Figure BDA0003062672860000149
这里的
Figure BDA00030626728600001410
Figure BDA00030626728600001411
分别为qi的梯度
Figure BDA00030626728600001412
的一阶矩和二阶矩的估计量(上标q表示旅游景点特征向量),它们的初始值是与旅游景点特征向量具有相同维度的零向量。同样地,可得
Figure BDA00030626728600001413
Figure BDA00030626728600001414
的偏置校正量分别如下所示:
Figure BDA00030626728600001415
Figure BDA00030626728600001416
联合上式,利用Adam优化参数更新方式,可得旅游景点特征向量pu的迭代更新方程如下所示:
Figure BDA0003062672860000151
通过不断迭代更新用户特征向量pu和项目特征向量qi,直到用户特征矩阵P和旅游景点特征矩阵Q不再发生改变,从而得到用户-评分矩阵R的预测矩阵
Figure BDA0003062672860000152
实施例1:
图1为本发明实施例一种基于协同过滤优化的推荐算法的流程图。本发明实施例提出了一种基于协同过滤优化的推荐算法,应用于旅游景点库。所述旅游景点库包括用户曾经去过并且做出评价的景点以及用户从未去过的景点;所述推荐算法包括:
第一步,接收目标用户的旅游景点推荐申请,并从数据库中获取用户-旅游景点的评分矩阵。对于用户曾经到访且做出过评分的地点,按照实际评分进行存储,其余未到访地点记为0分。如图2所示。
第二步,随机生成用户的特征矩阵和旅游景点的特征矩阵,此时,用户-旅游景点的评分矩阵、用户特征矩阵、旅游景点特征矩阵的示意图如图3所示。
第三步,根据所述的用户特征矩阵和旅游景点特征矩阵,采用本发明提出的一种基于归一化最小均方的矩阵分解协同过滤推荐算法,对用户特征矩阵和旅游景点特征矩阵进行迭代更新。其中,用户特征矩阵的迭代更新计算公式为:
Figure BDA0003062672860000153
旅游景点特征矩阵的迭代更新计算公式为:
Figure BDA0003062672860000154
上式中,η>0为学习率,λ>0为正则化参数,δ>0为一个很小的数,避免分母为0,pu为用户u的特征向量,qi为旅游景点i的特征向量,eu,i为用户对旅游景点的评分预测值和实际值之间的差。
第四步,根据停止迭代的用户特征矩阵和旅游景点特征矩阵,计算得到用户-旅游景点的预测评分矩阵,该步骤的计算公式为:
Figure BDA0003062672860000161
上式中
Figure BDA0003062672860000162
为用户-旅游景点的预测评分矩阵,PT为迭代更新后的用户特征矩阵,Q为迭代更新后的旅游景点特征矩阵,用户-旅游景点的预测评分矩阵的结构示意如图4所示。
第五步,根据目标用户的唯一识别码,获取目标用户的旅游景点评分预测向量,根据评分结果,对旅游景点进行降序排序。得到的列表作为候选推荐列表。
第六步,对于上述候选推荐列表,根据业务需要,选取前n个旅游景点,对目标用户进行推送。
实施例2:
图5为本发明实施例一种基于最大相关熵准则的矩阵分解协同过滤推荐算法的流程图。本发明实施例提出了一种基于协同过滤优化的推荐算法,应用于旅游景点库。所述旅游景点库包括用户曾经去过并且做出评价的景点以及用户从未去过的景点;所述推荐算法包括:
第一步,接收目标用户的旅游景点推荐申请,并从数据库中获取用户-旅游景点的评分矩阵。对于用户曾经到访且做出过评分的地点,按照实际评分进行存储,其余未到访地点记为0分。如图2所示。
第二步,随机生成用户的特征矩阵和旅游景点的特征矩阵,此时,用户-旅游景点的评分矩阵、用户特征矩阵、旅游景点特征矩阵的示意图如图3所示。
第三步,根据所述的用户特征矩阵和旅游景点特征矩阵,采用本发明提出的一种基于最大相关熵准则的矩阵分解协同过滤推荐算法,对用户特征矩阵和旅游景点特征矩阵进行迭代更新。其中,用户特征矩阵的迭代更新计算公式为:
Figure BDA0003062672860000171
旅游景点特征矩阵的迭代更新计算公式为:
Figure BDA0003062672860000172
上式中,η>0为学习率,λ>0为正则化参数,δ>0为一个很小的数,避免分母为0,σ>0为高斯核的核宽,pu为用户u的特征向量,qi为旅游景点i的特征向量,eu,i为用户对旅游景点的评分预测值和实际值之间的差。
第四步,根据停止迭代的用户特征矩阵和旅游景点特征矩阵,计算得到用户-旅游景点的预测评分矩阵,该步骤的计算公式为:
Figure BDA0003062672860000173
上式中
Figure BDA0003062672860000174
为用户-旅游景点的预测评分矩阵,PT为迭代更新后的用户特征矩阵,Q为迭代更新后的旅游景点特征矩阵,用户-旅游景点的预测评分矩阵的结构示意如图4所示。
第五步,根据目标用户的唯一识别码,获取目标用户的旅游景点评分预测向量,根据评分结果,对旅游景点进行降序排序。得到的列表作为候选推荐列表。
第六步,对于上述候选推荐列表,根据业务需要,选取前n个旅游景点,对目标用户进行推送。
实施例3:
图6为本发明实施例一种基于自适应矩估计优化的矩阵分解协同过滤算法的流程图。本发明实施例提出了一种基于协同过滤优化的推荐算法,应用于旅游景点库。所述旅游景点库包括用户曾经去过并且做出评价的景点以及用户从未去过的景点;所述推荐算法包括:
第一步,接收目标用户的旅游景点推荐申请,并从数据库中获取用户-旅游景点的评分矩阵。对于用户曾经到访且做出过评分的地点,按照实际评分进行存储,其余未到访地点记为0分。如图2所示。
第二步,随机生成用户的特征矩阵和旅游景点的特征矩阵,此时,用户-旅游景点的评分矩阵、用户特征矩阵、旅游景点特征矩阵的示意图如图3所示。
第三步,根据所述的用户特征矩阵和旅游景点特征矩阵,采用本发明提出的一种基于自适应矩估计优化的矩阵分解协同过滤算法,对用户特征矩阵和旅游景点特征矩阵进行迭代更新。其中,用户特征矩阵的迭代更新计算公式为:
Figure BDA0003062672860000181
旅游景点特征矩阵的迭代更新计算公式为:
Figure BDA0003062672860000182
上式中,pu为用户u的特征向量,qi为旅游景点i的特征向量,
Figure BDA0003062672860000183
Figure BDA0003062672860000184
分别为pu的梯度
Figure BDA0003062672860000185
的一阶矩和二阶矩的估计量,
Figure BDA0003062672860000186
Figure BDA0003062672860000187
分别为qi的梯度
Figure BDA0003062672860000188
的一阶矩和二阶矩的估计量,ε>0为很小的常数,通常取ε=10-8,η>0为固定学习率,通常取η=0.01
第四步,根据停止迭代的用户特征矩阵和旅游景点特征矩阵,计算得到用户-旅游景点的预测评分矩阵,该步骤的计算公式为:
Figure BDA0003062672860000191
上式中
Figure BDA0003062672860000192
为用户-旅游景点的预测评分矩阵,PT为迭代更新后的用户特征矩阵,Q为迭代更新后的旅游景点特征矩阵,用户-旅游景点的预测评分矩阵的结构示意如图4所示。
第五步,根据目标用户的唯一识别码,获取目标用户的旅游景点评分预测向量,根据评分结果,对旅游景点进行降序排序。得到的列表作为候选推荐列表。
第六步,对于上述候选推荐列表,根据业务需要,选取前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)。
CN202110516942.5A 2021-05-12 2021-05-12 一种基于矩阵分解的协同过滤推荐优化算法和装置 Pending CN113205388A (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 郑州轻工业大学 一种新型的最大协熵椭球集员滤波方法

Patent Citations (13)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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