在携程网等流行的在线旅游平台上,用户对旅游景点的评分数据中不仅有用户对景点的总体评分,还有用户对景点在景色、趣味性、性价比这些方面的评分。利用这些评分是否能够更准确地表达用户对景点的喜好针对该问题,本文提出了一种基于多方面评分的景点协同推荐算法。该方法综合利用用户对景点在景色、趣味性、性价比方面的评分改进了用户和景点相似性的计算,再根据用户或者景点间的相似性预测目标用户对目标景点的总体评分。
利用用户对景点的总体评分、景色方面评分、趣味性方面评分、性价比方面评分信息可以构建用户-景点评分矩阵
式中:m为用户数;n为景点数;ri,j,1为用户i对景点j的总体评分,ri,j,2、ri,j,3、ri,j,4分别为用户i对景点j在景色、趣味性、性价比方面的评分。如果用户i对景点j没有评分,将ri,j,1、ri,j,2、ri,j,3、ri,j,4的值赋为0。
基于用户相似性的评分预测,如式(2):
式中:ru,1为用户u对其已评分景点总体评分的平均值;Usim(u)为与用户u相似性大于0的用户集合;u′为其中的一个用户;sim(u,u′)为用户u与用户u′的相似性;pred(u,s)给出目标用户u对目标景点s的总体评分的预测。
基于物品相似性的评分预测,如式(3):
式中:Ssim(s)为与景点s相似性大于0的景点集合;s′为其中的一个景点;sim(s,s′)为景点s与景点s′的相似性。
由于用户对景点不再只有一个总体评分,还有对景点多个方面的评分,利用这些评分可设计多种计算用户或物品间相似性的方法。
式中:s、t为景点;U为景点s和景点t共同评分的用户集合;u为其中的一个用户;rs,1、rt,1分别为用户集U中的用户对景点s和景点t总体评分的平均值;rs,k、rt,k分别为用户集U中的用户对景点s和景点t在第k个方面评分的平均值;rs、rt分别为用户集U中的用户对景点s和景点t在景色、趣味性、性价比方面所有评分的平均值。式(11)利用总体评分计算物品间的相似性;式(12)分别利用景色、趣味性、性价比评分计算物品间的相似性;式(13)和式(14)综合利用用户对景点在景色、趣味性、性价比三个方面的评分计算物品间的相似性。
为了方便试验,对数据进行以下处理:
(1)删除重复的用户评分记录,选择用户对景点的最近评分作为该用户对该景点的评分;
(2)删除只有1~2条评分记录的用户;
(3)删除没有用户评分的景点。
经过预处理后,桂林旅游数据集最终包括162个景点、2189个用户、用户对景点的11143条评分记录;杭州旅游数据集最终包括210个景点、3009个用户、用户对景点的17927条评分记录;上海旅游数据集最终包括270个景点、7074个用户、用户对景点的46962条评分记录。
为了检验提出的基于多方面评分的相似性计算方法的效果,采用了最常见的5个指标对试验结果进行评估:均方根误差、平均绝对误差、覆盖率、准确率和F-度量。
(1)均方根误差(root-mean-squareerror,RMSE)
(2)平均绝对误差(mean-absoluteerror,MAE)
式中:E为测试集;|E|为集合中元素的个数;(ui,sj)表示一个用户-景点对;rij为用户ui对景点sj的真实评分;rij为用户ui对景点sj的预测评分。均方根误差和平均绝对误差越小,预测评分与真实评分的差距也越小,推荐效果就越好。
(3)覆盖率(coverage)
式中:k为能够计算预测评分的用户-景点对数,M为用户对景点有总体评分的数量。在本研究中,如果预测评分不为0,则认为用户对景点的评分能够预测;如果预测评分为0,则认为用户对景点的评分不能够预测。覆盖率描述的就是预测评分不为0的样本数占总样本数的比例,覆盖率越高,推荐效果就越好。
(4)准确率(precision):
(5)F-度量(F-measure):
有时准确率和覆盖率二者会相互矛盾,如有时准确率的提升是以减小覆盖率为代价,或者提高覆盖率时准确率却下降。因此本研究采用了F-度量这一综合评价指标来权衡准确率和覆盖率。F-度量越大,推荐效果也就越好。
第一组和第二组对比试验基于用户间的相似性,预测目标用户对目标物品的总体评分:
Ucf_global:利用式(4)计算用户间相似性;
Ucf_scenery:利用式(5)(k=2)计算用户间相似性;
Ucf_interest:利用式(5)(k=3)计算用户间相似性;
Ucf_price:利用式(5)(k=4)计算用户间相似性;
Ucf_sip1:利用式(6)计算用户间相似性;
Ucf_sip2:利用式(7)计算用户间相似性。
第二组对比试验为:
Ucf_itempop:利用式(8)计算用户间相似性;
Ucf_itempop_sip1:利用式(9)计算用户间相似性。
第三组试验基于物品间相似性,预测目标用户对目标物品的总体评分: