王婵
摘要:为改进传统协同过滤算法的准确率问题,该文提出一种基于加权因子的混合协同过滤算法。该算法核心是将传统的用户和物品协同过滤算法预测集合进行交集运算,并对其评分进行加权混合得到推荐结果。通过在MovieLens-100k数据集上与传统协同过滤算法进行比较,结果表明,该文的混合协同过滤算法在平均绝对误差和均方根误差两个评价指标上都优于传统协同过滤算法。
关键字:协同过滤;混合协同过滤;MovieLens-100k数据集
中图分类号:TP31 文献标识码:A 文章编号:1009-3044(2018)09-0014-03
Abstract: In order to improve the accuracy of traditional collaborative filtering algorithm, this paper proposes a hybrid collaborative filtering algorithm based on weighting factors. The core of this algorithm is to combine the traditional user and item collaborative filtering algorithm to get the recommended result. Compared with the traditional collaborative filtering algorithm on MovieLens-100k data set, the results show that the hybrid collaborative filtering algorithm is superior to the traditional collaborative filtering algorithm in both average absolute error and root mean square error.
Key words: Collaborative filtering; Hybrid collaborative filtering; MovieLens-100k data set
协同过滤算法是通过用户和网页的互动过滤掉用户不喜欢的商品,从而对用户进行推荐。最早于1992年被应用于邮件过滤系统,之后又被GroupLens应用于新闻过滤系统,直至今日,仍被各大电商网站,如淘宝、京东所应用。然而经过大量学者研究发现,协同过滤算法存在几个不足之处:冷启动性,数据稀疏性,可扩展性和准确性问题。其中,端德坤和傅秀芬针对冷启动性问题进行了研究,通过引入用户信任机制和人口统计学信息对其进行改进,在一定程度上对冷启动性问题进行了缓解[1]。何佳知是将基于内容和协同过滤算法相结合,并融入了k-means算法,有效地解决数据稀疏性这一问题[2]。但准确率仍然是推荐算法最核心的问题。本文则针对准确性问题,提出了一种混合协同过滤算法,该算法通过加权因子将基于用户的和基于物品的协同过滤算法相结合。并在MovieLens-100k数据集上进行测试比较,结果表明本文的混合协同过滤算法在准确率方面有显著提高。
1传统的协同过滤算法概述
协同过滤算法被分为两大类:基于内存的协同过滤算法和基于模型的协同过滤算法。其中基于内存的协同过滤算法由分析目标的差异被分为:基于用户的协同过滤算法(UCF,user-based collaborative filtering)和基于物品的協同过滤算法(ICF,item-based collaborative filtering)。本文算法主要将基于内存下的两类算法进行混合,下面详细介绍基于用户和基于物品的协同过滤算法。
1.1 基于用户的协同过滤算法
基于用户的协同过滤算法核心思想是给用户推荐与其兴趣相似的用户所喜欢的物品,主要根据用户相似度和用户行为数据信息进行预测推荐。该算法实现需要两个步骤:
(1)找到和目标用户相似的用户群体。用户之间的相似度通常使用皮尔逊相关系数、余弦相似度或修正的余弦相似度公式来度量[3],公式定义分别如下所示:
其中,[Rui]和[Rvi]分别表示用户u和用户v对物品i的评分值,[Iuv]表示用户u和用户v有过评分物品集合的交集,[R_u]和[R_v]分别表示用户u和用户v有过物品评分的平均值。
(2)根据用户之间的相似度,通过公式(1.4)计算目标用户u对物品i的预测评分:
其中,[Rui]表示用户u对物品i的预测评分,[NUu]表示与用户u相似的用户集合。
1.2 基于物品的协同过滤算法
基于物品的协同过滤算法是根据物品相似度和用户的历史行为对用户进行推荐。算法的步骤包括两步:第一是计算物品之间的相似度。物品相似度同样可以用皮尔逊相关系数、余弦相似度或修正的余弦相似度公式来度量。
皮尔逊相关系数定义如下:
其中,[Rui]和[Ruj]分别表示用户u对物品i和物品j的评分值,[R_i]和[R_j]分别表示物品i和物品j的平均评分,U表示对物品i和物品j共同有过评分的用户集合。
第二是通过用户历史行为和物品相似度生成推荐列表。其中对物品进行预测评分公式定义如下:
其中,[Rui]表示用户u对物品i的预测评分值,[Nu]表示用户u评分的物品集合。
2本文算法
传统的基于用户的协同过滤算法是根据邻居用户的偏好来预测目标用户的喜好,对目标用户的物品喜好缺乏考虑。基于物品的协同过滤算法是根据目标用户的物品相似度来进行推荐,忽略了用户相似邻居的推荐。为了避免单一算法存在的不足,大部分情况下是将算法进行混合,从而做出更好的推荐。常见的混合方式包括:加权型混合、交换型混合、特征组合型混合、瀑布型混合等方式[4]。本文算法通过加权将传统的基于用户和基于物品的协同过滤算法进行混合来提高推荐的准确率,综合两种算法的优势,在考虑用户邻居偏好的同时考虑了用户自身的物品喜好,产生了一种混合协同过滤算法。
2.1 混合协同过滤算法
混合协同过滤算法(HCF,Hybrid Collaborative Filtering)是将基于用户的和基于物品的协同过滤算法的推荐结果进行混合,并将其各自的预测评分通过加权方式结合作为算法的预测评分。该算法的原理如图1所示:
该算法的主要实现步骤分为:
(1)通过传统的基于用户的协同过滤算法,计算目标用户u对物品i的预测评分值[Rui(1)];
(2)通过传统的基于物品的协同过滤算法,计算目标用户u对物品i的预测评分值[Rui(2)];
(3)利用公式(2.1)通过加权原则融合上述两种算法的预测评分结果,从而求
得最终的预测评分值。
其中,[α]因子是动态计算得出的。由于基于用户的协同过滤算法的预测准确率与用户邻居的数目具有相关关系。基于物品的协同过滤算法的推荐准确率与物品邻居数目之间也属于相关关系。所以,在混合这两种算法时,加权因子通过不同邻居数所占的比例来度量。由此[α]的计算公式如下所示:
下面给出基于加权因子的混合协同过滤算法的描述:
算法(2.1)混合協同过滤算法
输入:用户行为数据,目标用户的用户Id;
输出:推荐物品列表。
(1)根据用户行为记录,利用皮尔逊相关系数度量公式(公式1.1)计算用户间的相似度;
(2)找到与目标用户相似度较高的邻居用户,利用邻居用户对物品的评分值,通过公式(1.4)预测目标用户对目标物品的评分值;
(3)根据用户行为记录,利用余弦相似度度量公式(公式1.6)计算物品间的相似度;
(4)通过排序找到与物品相似度较高的邻居物品集合后,通过物品预测评分公式(公式1.8),预测目标用户对目标物品的评分值;
(5)通过第(2)步和第(4)步得到的目标物品集合进行交集,得到最终推荐的目标物品,并利用公式(2.1)、公式(2.2)和公式(2.3)计算目标用户对目标物品的预测评分值。
3 实验设计与结果分析
3.1标准数据集
本文在实验上采用MovieLens-100k数据集[5],该数据集是用户对电影的评分信息。其中u.data数据记录了约943位电影用户对1682部电影的评分数据,数据量在大约100000条左右,即平均每个电影用户对至少20部电影参与了评分,且评分在1-5分之间,用户对电影评分越接近5,表示用户对该电影的喜爱程度越高。
3.2评价指标
MAE(Mean Absolute Error):平均绝对误差是评价推荐系统最常用评价指标[6],能更好地反映预测值误差的实际情况。MAE值越小,准确率越高。其定义如下:
3.3 实验设计及实验结果分析
本文通过两组实验来验证本文改进算法的可行性:
实验一:相似度度量公式的选择。
本文包含三种相似度度量公式:皮尔逊相关系数、余弦相似度以及修正的余弦相似度公式。并分别通过实验一进行了测试比较,结果如图2所示:(其中,K值表示邻居数)
通过图2所示,随着邻居数的增加,MAE值都有所下降,在邻居数为70的时候达到最优值。此时可以发现皮尔逊相关系数度量公式和修正的余弦相似度公式下的基于用户的协同过滤算法误差率更低(皮尔逊相关系数和修正的余弦相似度公式相等)。余弦相似度公式下的基于物品的协同过滤算法误差率较低。由于基于加权因子的用户物品混合协同过滤算法是综合两者结果并通过加权产生的,所以其相似度度量公式采用皮尔逊相关系数和余弦相似度混合。
实验二:计算改进后的混合协同过滤算法分别与传统的基于用户和基于物品的协同过滤算法推荐误差率进行比较。
具体实验设计为:在MovieLens-100k数据集进行五折交叉验证测试,分别计算UCF、ICF和HCF的平均MAE值和RMSE值,并将结果进行对比。实验结果如表1、表2所示:
通过折线图分析三种算法的MAE值和RMSE值变化趋势,结果如图3所示:
实验结果显示,基于加权因子的混合协同过滤算法的MAE值和RMSE值,比传统的基于用户的和基于物品的协同过滤算法有显著降低,预测结果的准确率明显提升。
4 小结
本文针对传统协同过滤算法的准确率进行改进。改进后的混合协同过滤算法通过加权方式将传统的基于用户的和基于物品的协同过滤算法相结合,并对相似度度量公式进行了测试比较。最后在MovieLens-100k数据集进行验证,结果表明:基于加权因子的混合协同过滤算法比传统的基于内存的协同过滤算法准确率有明显的提高。
参考文献:
[1]端德坤,傅秀芬. 混合协同过滤算法中用户冷启动问题的研究[J]. 计算机工程与应用,:1-7(2017-04-14).
[2]何佳知. 基于内容和协同过滤的混合算法在推荐系统中的应用研究[D].东华大学,2016.
[3]尹作文.基于混合协同过滤的电子商务推荐系统的研究与应用[D].武汉理工大学,2014:15-18.
[4]董丽, 邢春晓, 王克宏. 基于不同数据集的协作过滤算法评测[J]. 清华大学学报(自然科学版), 2009, 49(04): 590-594.
[5]李永超, 罗军. 基于用户部分特征的协同过滤算法[J]. 计算机系统应用, 2017, 26(03): 204-208.
[6]陈彦萍, 王赛. 基于用户-项目的混合协同过滤算法[J]. 计算机技术与发展, 2014(12): 88-91.