基于改进用户相似度的协同过滤推荐算法研究
2019-07-25张利
张利
(安徽工业大学管理科学与工程学院,马鞍山243032)
0 引言
互联网的普及和快速发展,使其已经成为用户获取、处理、传播、开发以及利用信息的一体化平台,改变了人们传统的生活方式。例如,现在用户不仅足不出户就可以通过淘宝网和京东商城等电商平台购买生活所需要的产品,而且还可以通过Last.fm 和网易云音乐等音乐平台收听歌曲,以及通过Netflix 和YouTube 等网站观看电影和视频。然而,随着网络信息量的快速增长,用户很难从网站和平台发布的海量信息中搜索到自己感兴趣的产品,运用传统的搜索方法也只能得到与所有用户一样的搜索结果,无法根据每个用户不同的兴趣来推荐不同的搜索结果。因此,用户在搜索符合自己产品需求的过程中就会消耗更多的时间和精力,而且很难能达到满意的效果。而作为平台和网站的信息发布者,也很难从众多用户中挖掘出满足产品定位的更多潜在用户,从而调整自身的服务来满足更多不同的用户。互联网信息量的大幅度增长使得在面对大量信息时,用户不能及时有效的获取想要的那部分信息,这就出现了“信息过载”(Information Overlord)[1-3]问题。针对这种信息过载问题,通过帮助用户过滤不相关信息并将相关信息传递给需要它的用户的信息过滤技术应运而生。以个性化推荐系统(Recommender System,RS)[4-5]为代表的信息过滤技术,将用户在系统中产生的历史行为活动建立模型并分析用户的真实需求,进而使用户之前在系统中以搜索关键词的方式变为系统主动通过学习用户的兴趣偏好来给用户推荐相关的信息。因此,推荐系统在互联网领域,特别是在电子商务网站和一些其他网络平台,如淘宝网、亚马逊、苏宁易购、豆瓣电影、YouTube[6]等得到了成功的应用;有效帮助缓解了“信息过载”问题,大大提高了用户浏览网站的效率,使用户能够更快更准确地获得自己想要的信息;同时,也为使用推荐系统的网站和平台带来了巨大的商业利润。
1 基于用户的协同过滤推荐算法
基于用户的协同过滤推荐算法[7]的基本原理是:通过对目标用户的兴趣偏好分析,搜索与其拥有一样(或者类似)喜好程度的相关用户,并向其计算未看过项目的评分值以及产生推荐;也就是说,若目标用户与其他用户都对一些项目评过分,就说明他们之间存在共同的相似行为,那么目标用户也就可能喜欢其他用户看过的项目,因此就可以在其他用户看过的所有项目中,从中计算其未看过但可能感兴趣项目的评分值以及产生推荐。基于用户的协同过滤算法流程图主要是由以下3 个步骤组成。
步骤1:建立用户关系数据模型
将获取的评分数据集处理为可以表示为如表1 所示的评分矩阵的形式,其中User 表示用户,Item 为项目,n 表示为系统中用户的数量,m 为系统中项目的数量,√为用户对项目的评分值。
表1 用户-项目评分矩阵表
步骤2:计算相似度值以及寻找最近邻
在基于用户的协同过滤算法中,最重要的部分便是为用户寻找近邻集合,即为其寻找兴趣偏好最为相似的邻居集合。首先运用上一步处理后的数据矩阵来得到用户间的相似度值;之后根据值的大小选取前k个邻居,记为N(k)。获取用户间相似度的方式很多,其中基本的方法有皮尔逊相似度、Jaccard 相似度、余弦相似度等;也有其他研究者在相似度方面的改进,例如NHSM、JMSD 等相似度方法。
步骤3:为用户推荐项目
通过步骤二,得到目标用户的近邻集合N(k),首先依据N(k)中的其他用户看过的所有项目以及评分值,使用公式来计算其未看过的所有的项目预测值,生成项目集合,预测值公式如公式(1)和(2)所示。然后根据生成的项目集合为目标用户推荐预测值最高的Top-N 项。
公式(1)是通过将近邻用户与目标用户的相似度值作为权值,然后将邻居对项目i 的评分值与该邻居用户所有评分的平均值的差值进行加权取平均。公式(2)是将目标用户的近邻用户的所有评分取平均值。通常在学术研究中使用公式(1),而在本文中同样使用了该公式。
2 协同过滤算法中的相似度度量
在获得用户相似度值的过程中需要用到相似度公式。重要的是,在基于用户协同过滤推荐算法中最为关键的部分是相似度值的获得。相似度值代表了用户与用户之间的相似度的大小,即两者之间兴趣偏好的相似,相似度方法的选择往往对下一步进行预测值计算以及推荐系统的推荐质量有着重要的影响作用。因此,在这部分中,主要介绍本文中用到的两种相似度计算方法。
(1)余弦相似度(Cosine Similarity,COS)
余弦相似度是将向量空间中的两个向量之间夹角的余弦值作为度量两者间的差异[8-9];将得到的两者之间的夹角来度量两个向量间的相似度,角度越小说明相似度越高。例如在推荐系统中,将用户的标签看作是一个1×n 的n 维向量,如果有一标签未被用户使用过,那么值应为0;然后使用余弦相似度对每个用户的向量进行计算,若计算出的值越大,这说明这两个用户之间的相似性就越高。其计算公式如(3)所示。
(2)皮尔逊相关系数(Pearson Correlation Coefficient,PCC)
皮尔森相关系数是用来度量两个变量之间相似程度的统计量[7,10]。PCC 相似度的公式如(4)所示,可知PCC 相似度的取值范围为[-1,1],当值为负时,用户u和用户v 之间的兴趣偏好为负相关;当值为正时,为正相关;绝对值越大,则正/负相关的程度越大。
式中,Iuv表示用户u 和用户v 之间的共同评分项目集合。
3 改进的相似性度量方法
在数据稀疏性情况下,为了提高给目标用户推荐项目的精确度以及推荐质量,本文通过同时考虑不同用户对于标签信息以及项目评分偏好差异提出一种改进的相似度度量方法。该方法首先通过数据评分矩阵计算不同用户间的评分差异相似度;然后通过利用标签信息计算用户间的标签信息偏好相似度;最后通过加权获得综合考虑两者的用户相似度值。改进的新相似度计算公式如公式(5)所示。
其中,sim(u,v)I为利用标签数据根据公式(3)计算得出的用户间相似度值;sim(u,v)T为利用评分数据根据公式(4)计算得出的用户间相似度值;式中,参数α表示权重,且α∈[0,1],步长为0.1。其中,当取α=0 时,用户相似度sim(u,v)为sim(u,v)T,当取α=1 时,用户相似度sim(u,v)为sim(u,v)I。
4 实验设置以及结果分析
4.1 实验数据
实验所使用的数据集是MovieLens-latest-small,是由1996 年3 月29 日至2018 年9 月24 日期间的用户组成的,且生成于2018 年9 月26 日,包括610 名用户对9742 部电影的100836 条评分数据,以及3683 个标签。在本实验中,采用五折交叉实验进行验证。首先将MovieLens-latest-small 数据集分别随机分成五份,每一份都是不相交的数据集;其次分别选取数据集中的一份数据集作为测试集,剩余的四份作为训练集,对不同相似度方法的评价指标进行计算;最后将五次实验的结果求取平均值进行对比。
4.2 评价指标
(1)精确度(Precision)
精确度是指在给用户推荐的项目中,用户所感兴趣的项目数与推荐项目数的比例值[11-12]。因此,精确度值越大,说明系统推荐的项目中用户感兴趣的项目越多,推荐性能越好;反之则表示推荐效果不好。精确度计算公式如下:
式中,ls表示推荐系统中的用户感兴趣且出现在系统推荐项目列表N 中的项目数目。
(2)召回率(Recall)
召回率是指在给用户推荐的项目中,用户所感兴趣的项目数目与系统中用户所有感兴趣的项目数目的比例值[11-12]。因此,召回率值越大,推荐性能越好;反之则不好。召回率计算公式如下:
式中,NT表示在推荐系统中,用户感兴趣的项目总数。
(3)F-Measure
F-Measure 表示精确度和召回率两个指标的加权调和平均值,当使用精确度和召回率产生相互矛盾的结果时通常会绘制F-Measure 曲线来综合考虑它们之间的关系[12-13]。当F-Measure 值越高时,则说明系统的推荐性能越好。F-Measure 的计算公式如下:
当参数a=1 时,就是通常使用的F1-Measure,其公式如下:
4.3 实验结果及分析
(1)参数α的确定
通过将公式(9)作为评价指标,测试参数α对公式(5)产生的影响。在本实验中设置参Top-N 取[1,2,3,4,5,10,15,20,25,30]。那么综合评价指标F1-Measure 的在参数α的变化下的计算结果如表2 所示,变化曲线如图1 所示。
表2 取不同参数α下的F1-Measure 值
图1 F1-Measure的变化曲线图
从表2 中可以看出,随着参数α值的变化,F1-Measure 值也在不断的变化,其中在α=0.7 时,F1-Measure取的最大值,值为0.05802。从图1 能直观地可以看出随着参数α值的变化,评价指标F1-Measure 的变化趋势。随着参数α从0 到1 变化,F1-Measure 是先是曲线上升后到达最高值,然后曲线下降。当值F1-Measure越大表示推荐质量越好,因此,在本实验中最优参数α的值取为0.7 时,改进的推荐算法的F1-Measure 取得最大值。此时也说明sim(u,v)I计算的相似度值占用户相似度的70%,而sim(u,v)T计算的相似度值占用户相似度的30%。在此后的实验中,改进推荐算法与传统协同过滤算法做对比时,参数α的取值均为0.7。
(2)结果及分析
推荐项目个数Top-N 是影响精确度以及召回率最重要的因素,因此在本小节中,通过对比并分析三种不同的推荐算法分别在Top-N 值变化情况下的准确率和召回率均值的值的变化曲线如图2 所示。
从图2 中可以看出,随着Top-N 个数的增加,三种算法的精确度和召回值的均值都呈现下降的趋势;这是因为随着推荐项目的增加,有些可能用户不喜欢的项目就会被推荐给目标用户,因而造成精确度的降低。另外,改进的算法一直位于另外两者曲线的上方,则说明通过添加标签信息来计算用户相似度能够帮助目标用户找到感兴趣的项目,有助于提高推荐准确性。
图2 准确率和召回率的均值的变化曲线图
5 结语
本文通过将标签与用户评分信息联系起来,提出一种新改进的相似度度量方法。通过实验在评价指标精确度和召回率的均值对比结果可知,新的相似度方法均在一定程度上优于其他两种相似度方法。另外,相比于其他两种算法,改进的相似度方法算法更能区分用户与用户间的相似度,从而提高推荐系统的推荐质量。