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)。