融合物品热门因子的协同过滤改进算法

2018-04-13 10:18红,韩
小型微型计算机系统 2018年4期
关键词:相似性热门物品

孙 红,韩 震

(上海理工大学,上海 200093) (上海现代光学系统重点实验室,上海 200093) E-mail :1114580685@qq.com

1 引 言

随着信息与互联网技术的不断发展,过去信息闭塞与匮乏的时代已经一去不复返,相反,人们进入了一个信息过载的时代.在这个时代当中,无论是消费者还是生产者,都会遇到一个棘手的问题:对于爆炸式增长的信息量,如何从大量信息中快速、准确获取自己需要的信息[1].在这种背景下,为了解决信息过载的问题,推荐系统应运而生.推荐系统不需要用户提供明确的需求,而是通过收集和分析用户的历史行为对用户进行兴趣建模,之后根据建立好的兴趣模型主动给用户推荐所需的信息.推荐系统应用于多个领域,在电影视频推荐领域,Netflix比赛是标志性的视频推荐系统比赛,旨在提高视频推荐系统的推荐效果[2],另外尤其是在电子商务平台领域中,例如eBay,亚马逊,天猫,京东等等,推荐系统的推荐效果好坏对电子商务的发展有着巨大的影响[3].由此可见推荐系统的重要性,推荐系统的性能好坏最主要取决于推荐算法的优劣.传统的推荐算法有基于内容的推荐、基于标签的推荐、协同过滤推荐和混合推荐等等[4,5].随着互联网技术的发展,数据结构变得多样化和复杂化,对传统的推荐算法构成了一定的挑战,传统算法的不足之处也越来越明显.例如,基于内容的推荐算法原理是提取用户购买过的物品的特征,根据这些特征寻找具有相似性的物品推荐给用户,但这导致算法无法处理具有非结构性特征的数据,而且无法将数据量化,这就对算法的使用领域产生了约束[6].协同过滤算法通过相似度计算,为目标用户发现具有相同兴趣的近邻用户,并对近邻用户进行分析,将近邻用户感兴趣的物品推荐给目标用户,帮助挖掘目标用户的潜在兴趣,弥补了基于内容的推荐算法的不足.但协同过滤算法仍有一定的缺陷,例如需要解决数据稀疏问题,用户之间相似度的计算是基于共同评价过的物品,如果共同评价过的物品太少,则相似度计算结果就不是很准确[7].针对这一问题,近年来国内外的学者提出了各种改进的推荐算法,文献[8]通过分析用户之间的信任与亲密度来建立信任模型,很好的解决了新注册用户的冷启动问题;文献[9]考虑物品热门程度来改进用户之间相似度的计算方法,一定程度上提高了推荐的准确度,但热门程度只考虑了物品评价次数的绝对频数,没有考虑到相对频率,无法消除数据集规模大小给相似度计算带来的影响;文献[10]基于Jaccard相似度公式引入了物品流行度来改进相似度计算,达到了挖掘冷门项目,提高推荐结果的覆盖范围的优化目的,但其将评分记录数据转换成隐性反馈数据,注重用户对物品是否反馈,忽略了用户反馈物品的兴趣量化程度,丢失了评分数据的量化特征,对推荐的精确性有一定的影响;文献[11]提出了基于热门物品惩罚和用户兴趣变化的协同过滤算法,引入热门物品惩罚项来优化相似度计算,引入用户兴趣变化来优化预测评分计算模型;文献[12]通过分析物品热门程度的影响,利用启发式算法对用户相似性度量方法进行优化,解决冷启动问题;文献[13]定量研究物品的热门度与推荐精度之间的权衡,并以此改进传统协同过滤算法,处理推荐系统中的长尾数据;文献[14]通过先对物品项目进行聚类分析,然后再进行推荐处理,提高了推荐系统的准确性,并且降低了改进算法的时间复杂度,但没有解决数据稀疏的问题.

针对基于皮尔逊相似度的传统协同过滤算法,本文考虑到物品热门程度对用户相似性的影响,对皮尔逊相关系数进行优化达到性能提升的目的.本文首先描述传统协同过滤算法原理及评价指标,之后提出了一种基于物品热门因子优化相似度计算的改进算法,利用海量的MovieLens数据集在spark大数据分布式处理平台进行实验并得到实验结果.

2 传统协同过滤算法

协同过滤(Collaborative Filtering,简称CF),简单来说是利用某个兴趣相投、拥有共同经验之近邻用户的喜好来推荐感兴趣的资讯给目标用户,个人透过合作的机制给予资讯相当程度的回应(如评分)并记录下来以达到过滤的目的,进而帮助别人筛选资讯,回应不一定局限于特别感兴趣的,特别不感兴趣资讯的纪录也相当重要.传统协同过滤算法可以分为基于用户的协同过滤(User-CF)和基于物品的协同过滤(Item-CF).User-CF基本思想是将目标用户对所有物品的偏好作为一个向量来计算用户之间的相似度,找到 K个近邻用户后,根据近邻用户的相似度权重以及他们对物品的偏好,预测目标用户没有偏好的未涉及物品,计算得到一个排序的物品列表作为推荐.Item-CF的原理和User-CF 类似,只是在计算近邻时采用物品本身,而不是从用户的角度,因此本文从User-CF角度进行改进.

通过User-CF算法产生推荐结果主要经过三个步骤:相似度计算、选择近邻用户、评分预测.通过相似度计算得到目标用户与其他用户的相似度,选择相似度最高的K个用户作为近邻用户,分析近邻用户对物品的评价与评分来对目标用户未涉及的物品进行预测评分,根据预测评分将物品进行排序作为推荐结果[15].

2.1 相似度计算方法

根据相似度主要计算出目标用户的近邻用户,根据近邻用户的兴趣来挖掘目标用户的潜在偏好,因此相似度计算方法十分重要.用户对物品的评分数据可用一个m×n的矩阵表示,其中,m为用户的数量,n为物品的数量,第j行第k列的元素Rj,k表示用户 j对物品 k 的评分.用户—物品评分矩阵可由表1所示.用户i和用户j的相似度通过两用户共同评价过的物品的评价差异来衡量.主要的计算方法有欧氏距离和皮尔逊相关系数等.

表1 用户—物品评分矩阵Table 1 User-Item rating matrix

用户i和用户j的相似度记作sim(i,j).文献[9]说明了皮尔逊相似性在应用中要优于欧氏距离,这主要是由于欧氏距离在计算相似性时没有反映用户间的相关性.而皮尔逊相关系数用于度量两个变量X和Y之间的线性相关,利用皮尔逊相关系数作为用户相似度度量,优势在于:用户只要对物品的评分在整体上趋于一致,就认为用户之间有较强的相似性,更为合理地体现实际应用中用户之间存在的相似性.因此,本文也是在皮尔逊相似度基础之上提出了一种改进算法的方法.

皮尔逊相似度计算公式如式(1):

(1)

2.2 预测评分以及推荐结果评价指标

(2)

预测准确度.平均绝对误差(MAE)是最常用也是最有效的评价指标,其反映的是系统正确预测用户对物品偏好的能力,MAE的值越小,则表明系统推荐的准确率就越高.假设测试集中对用户i的物品推荐列表为Ti,则计算公式如下式(3)所示:

(3)

式中,|Ti|表示为用i户推荐列表中物品的数量.

分类准确率.分类任务目的就是给目标用户推荐最相关的n个物品.准确率和召回率是衡量分类效果的重要标准,可以很好的评测推荐算法的精度,准确率和召回率的值越高,表示推荐质量越好.设Ni为用户i喜欢的物品集合,则准确率计算如下公式(4)所示:

(4)

准确率描述的是推荐列表中有多少比例的推荐物品发生在测试集里的用户—物品评分记录中.

召回率表示有多少比例的测试集里的用户—物品评分记录包含在推荐列表中.计算公式如下式(5)所示:

(5)

3 融合物品热门因子的协同过滤推荐算法

3.1 物品热门程度对用户相似性的影响

传统的协同过滤算法通过比较用户共同评分过的物品交集,根据物品的评分差值进行用户相似度计算.这种相似度计算模型没有考虑到物品热门程度或者物品必需程度对相似度的影响.对于这些大众性的热门物品或者生活必需物品,绝大多数用户都会购买或者评价,这些热门物品无法体现或者较少地体现用户的“个性”和潜在的兴趣爱好,也就无法表现出用户间的强相似性,这时应该减弱它们对用户相似度度量的影响和贡献.例如,两个用户都买过《新华字典》,但这不能说明两个用户具有相似性,因为绝大多数人都买过《新华字典》,无法体现用户的兴趣特征;反之,若两个用户都买过冷门的《推荐系统实践》,则可以反映用户拥有相似的兴趣爱好,说明用户比较相似.因此,冷门物品更能反映用户之间的相似性,若用户对同一件冷门物品进行过购买或者评价一致等行为,说明用户具有相似性,冷门程度越高,则相似性越强.考虑到物品热门程度,本文对相似性度量方法进行改进来提高算法性能.

3.2 融合物品热门因子的用户相似度改进

基于3.1节分析内容,需要引入一个物品热门因子来量化物品热门程度对用户相似性度量的影响或贡献.文献[9]总结得出了皮尔逊相关系数在度量用户相似度时要优于欧氏距离和余弦相似度,因此本文在皮尔逊相关系数基础上融合物品热门因子来改进相似度计算方法.

3.2.1 物品热门程度

物品热门程度使用物品的评分频率来衡量,即所有用户中有多少比例的用户对物品进行了评价行为.计算公式如下式(6)所示:

(6)

式中,fc表示物品c的热门程度,|M|表示用户的总数量,|mc|表示对物品c进行了评价的用户数量,很明显,fc取值介于0和1之间,fc值越接近1,则表明物品c越热门.同时,采用评分频率fc而不是评分次数|mc|来衡量热门程度,这就避免了评分次数|mc|的绝对性,比如物品c的评分次数很大,但用户基数总量更大,这就说明物品c不是很热门,尽管|mc|的值很大.

3.2.2 物品热门因子

物品热门因子pf衡量物品热门程度f对用户相似性度量的贡献.物品热门程度f值越小,则其对用户相似度的贡献应该越大,即热门因子pf值越大.物品热门因子pf与热门程度f成反比,计算公式如式(7)所示:

(7)

公式(7)其中,pfc称为物品c的热门因子,代表物品c热门程度对用户相似度的贡献.α参数称之为平衡参数,其取值范围为α>0,表示物品的热门程度对热门因子的影响因数.热门因子与热门程度的函数关系可由图1表现出来.

图1 热门因子与热门程度Fig.1 Popular factors and frequency

分别对α取0.3、0.4、0.5、0.6、0.7等值,从图1中可以看出热门因子pf的取值范围均为(1,+∞),表明对不同热门程度的物品都奖励了其对用户相似度的贡献,但奖励程度不同,f越小,表明物品越冷门,pf值越大,对相似度贡献就越大;f越大,表明物品越热门,pf值接近为1,对相似度基本上没有贡献,与冷门物品相比相当于惩罚了热门物品对相似度的贡献,pf与f成反比关系.同时,平衡参数α越大,pf整体向上移动,对相似度的贡献就越大.

3.2.3 皮尔逊相似度改进

本文在皮尔逊相似度基础上融合物品热门因子来进行改进,改进后的皮尔逊相似度sim(i,j)′计算方法如下公式(8):

(8)

在公式(8)中增加了物品热门因子pf来达到用户相似度改进的目的.对公式(8)与公式(1)进行对比发现,在计算改进的用户相似度sim(i,j)′时融入了用户共同评价过的每一个物品的热门因子.若用户i和j共同评价过的物品里有冷门物品,则相应的热门因子pf大于1,sim(i,j)′>sim(i,j),表明用户i和j具有更强的相似性;若用户i和j共同评价过的物品基本上都是热门物品,则相应的热门因子pf接近为1,sim(i,j)′≈sim(i,j),表明用户i和j的相似性没有得到加强,热门物品的热门程度对用户相似性没有多大贡献.因此,改进后的用户相似度计算模型能够更为合理和更为准确的描述用户之间相似性.

3.3 融合物品热门因子的协同过滤改进算法

通过分析物品热门程度对用户相似性的影响,融入物品热门因子来改进皮尔逊相似度计算方法,挖掘出与目标用户更加相似的近邻用户,根据更加相似的近邻用户可以向目标用户推荐更为准确的物品,从而达到改进协同过滤算法的目的.融合物品热门因子的协同过滤改进算法的基本步骤如下:

算法:融合物品热门因子的协同过滤改进算法输入:用户物品评分矩阵R,目标用户v,近邻用户数为K,物品推荐数目为H,平衡参数α.输出:目标用户v的推荐列表Tv,包含H个推荐物品步骤1. 根据平衡参数α利用式(6)和式(7)计算每个物品的热门因子步骤2. 利用式(8)计算目标用户v和其他用户i之间的相似度sim(v,i)'步骤3. 对sim(v,i)'从大到小进行排序,取前K个用户组成近邻用户集合Uv步骤4. 利用式(2)对每个邻近用户i∈Uv计算目标用户v对物品的预测评分步骤5. 对得到的预测评分进行从大到小排序,取前H个预测评分对应的物品组成目标用户v的推荐列表Tv,返回给目标用户v

4 实验数据及实验环境

4.1 实验数据

本文数据采用的是MovieLens电影评分的三个版本数据集,数据集中包含user-id,movie-id,rating等本文需要的信息.数据集规模详细信息见表2所示,将改进后的算法应用到电影推荐中.

表2 MovieLens数据集介绍Table 2 Introduction of MovieLens datasets

数据集评分记录规模按指数增长,所有数据集中的每个用户都至少对20部电影进行了评分,评分最高分为5分,最低分为1分.分数越高表示用户对电影越喜欢.

4.2 实验环境不同数据集算法对比实验及结果分析

由于待处理的数据量比较大,评分记录最高达到了1000万条记录,因此本文采用spark大数据处理平台.Spark是开源的、基于内存的计算框架,适合进行spark Streaming数据流处理、spark SQL数据库互动、MLlib机器学习等,因此spark可成为下一代用途广泛的大数据运算平台.使用spark大数据技术可以极大的提高计算效率和节约时间.

本文搭建了具有4节点的spark分布式计算平台作为实验环境.spark集群的环境配置信息与图2所示.

5 实验结果及分析

实验一共进行两次,随机选取数据集中的80%数据作为训练集,剩下的20%数据作为测试集,选定近邻用户数目K为10,电影推荐数目H选定为25部.第一次实验利用MAE指标来验证改进算法的性能提升,并描述平衡参数对改进算法性能的影响,找出最优平衡参数;第二次实验利用大小规模不同的数据集,对传统算法、文献[9]改进算法、本文改进算法进行性能比较,从准确率和召回率上验证本文改进算法在不同规模的数据集中性能依然良好.

图2 spark集群环境Fig.2 Environment of spark cluster

5.1 平衡参数 优化实验及结果分析

当α=0时,热门因子pf=1,对衡量用户相似度没有任何贡献,sim(i,j)′=sim(i,j),此时,算法为传统的基于皮尔逊相似度的协同过滤算法.因此,平衡参数从0开始取值到1,步长为0.1,采用评分记录为10万条的数据集1进行实验,选定近邻用户数K为10,电影推荐数目H为25部.使用平均绝对误差MAE指标来分析不同 值下的算法性能,其中描述的是传统协同过滤算法.实验结果如图3所示.

图3 不同α值对应MAE值对比Fig.3 Comparison of MAE values with different alpha

从图3的实验结果中可以看出,未改进的传统算法MAE值达到了0.802,随着α增加到0.5时,本文改进算法的MAE值减小到最小值,为0.758,降低了5.48%;但当α继续增大,MAE值开始增大,当α=1时,MAE值为0.828,算法表现比传统算法还要差,这表明平衡参数α需要调优.

结合图1热门因子与热门程度关系图中可以看出,当α值比较小时,冷门物品与热门物品对相似度的贡献pf差别不是很明显,对热门物品的惩罚力度相对不大,尽管MAE值有所下降,改进算法性能有所上升,但未达到最佳性能;当α值比较大时,则过分的奖励了冷门物品对用户相似度的贡献,比如,有两个用户共同评价过的物品只有一个冷门的物品p,这表明这两个用户相似性并不大,但改进后的算法认为这两个用户具有很强的相似性并进行推荐行为.导致了MAE值上升,改进算法的推荐准确率下降.因此,需要找出最优的平衡参数α.图3表明在MovieLens电影推荐数据集中,α的最优参数可选为0.5.

5.2 不同数据集算法对比实验及结果分析

采用不同数据规模的数据集对改进算法的性能进行验证,α取实验一中得出的最优值0.5,利用准确率(Precision)和召回率(Recall)评价指标进行评价.由于实验数据规模比较大,数据集3的评分记录达到了1000万条,因此本文采用spark分布式大数据处理平台进行实验,将本文改进算法同时与传统算法和文献[9]改进算法进行对比.实验结果如图4召回率对比,图5准确率对比所示.

图4 召回率结果对比Fig.4 Comparison of recall

在图4、图5中,算法1表示传统算法,算法2表示文献[9]改进算法,算法3表示本文改进算法.

图5 准确率对比Fig.5 Comparison of precision

根据图4和图5实验结果显示,本文改进算法和文献[9]改进算法无论是在召回率还是准确率指标上,都比传统算法有很大的性能提升.另外,对比本文改进算法与文献[9]改进算法实验数据发现,本文算法在召回率和准确率上均略优于文献[9]改进算法.并且当评分记录数据规模从10万条增加到100万条、1000万条时,文献[9]改进算法在召回率和准确率上基本没有变化,而本文改进算法随着数据规模的扩增,在召回率和准确率上都有小幅度的上升.当数据规模达到了1000万条时,本文改进算法性能已经比较明显地优于文献[9]改进算法,在召回率上和准确率上分别高于文献[9]改进算法14.4%和10.9%.这主要是由于文献[9]改进算法采用物品评分频数来衡量物品热门程度,这就导致了当数据规模扩增时,尽管物品c的评分频数|mc|增大,但用户总数量|M|更大,也就是说有更少比例的用户对物品c进行评价或购买行为,物品c的热门程度没有增加,但文献[9]改进算法在计算用户相似度时会引入更大的物品c热门惩罚因子,不能准确的度量用户之间相似性.而本文改进算法采用物品评分频率衡量热门程度f,避免了在数据规模过大的情况下评分频数|mc|对用户相似度带来的绝对性影响,因此具有更好的推荐性能.

6 结束语

本文首先对传统的基于皮尔逊相似度的协同过滤算法进行了分析,指出传统算法在相似性计算方法上的不足之处并进行了算法改进,改进算法考虑了物品热门程度对用户相似度的贡献.实验结果显示,在MAE,准确率和召回率等指标上改进算法要比传统算法表现得更好.除了考虑物品热门程度因素外,推荐系统需要根据具体应用来提高推荐质量,例如在电影推荐中,用户的年龄,物品的标签,电影的导演和演员等因素都可以影响推荐效果,需要研究人员根据具体场景改进或融合算法.另外,推荐系统需要大量的数据作为支撑,本文中使用的spark数据分布式处理平台作为近年来最流行的大数据处理平台,十分适合用于推荐系统后台数据分析与处理,基于spark平台开发推荐系统也是未来工程实现的发展方向之一.

[1] Xiang Liang.Recommendation system practice[M].Beijing:Posts & Telecom Press,2012:2-4.

[2] Thangiah S R,Fergany A,Wilson B,et a1.School bus routing in rural school districts[C].Proceedings of the 9th International Conference on Computer-Aided Scheduling of Public Transport,Spring,2008:209-232.

[3] Tao Yong-cai,Zhang Ning-ning,Shi Lei,et al.Researching on the dynamic management of data copy of cloud computing data in heterogeneous environment [J].Journal of Chinese Computer Systems,2013,34 (7):1487-1492.

[4] Goldberg D,Nichols D,Oki B M,et al.Using collaborative filtering to weave an information tapestry[J].Communications of the ACM,1992,35(12):61-70.

[5] Xu Hai-ling,Wu Xiao,Li Xiao-dong,et al.Comparison study of Internet recommendation system[J].Software Journal,2009,20(2):350-362.

[6] Pera M S,Ng Y K.A group recommender for movies based on content similarity and popularity[J].Information Processing & Management,2013,49(3):673-687.

[7] Ma Hong-wei,Zhang Guang-wei,Li Peng,et al.Survey of collaborative filtering algorithms[J].Journal of Chinese Computer Systems,2009,30(7):1282-1288.

[8] Tang X,Chen M.Reputation-based recommendation trust model in the interoperable environment[C].International Conference on Electronics,Communications and Control.IEEE,2011:2226-2228.

[9] Zhou Hai-ping,Huang Cou-ying,Liu Ni,et al.Collaborative filtering recommendation algorithm based on rating prediction[J].Journal of Data Acquisition & Processing,2016,31(6):1234-1241.

[10] Hao Li-yan,Wang Jing.Collaborative filtering top n-recommendation algorithmBased on item popularity[J].Computer Engineeringand Design,2013,34(10):3497-3501.

[11] Wang Dao-ping,Li Zhi-long,Yang Cen.Knowledge push algorithm based on hot item punishment and user interest change[J].Systems Engineering,2014,32(1):118-123.

[12] Ahn H J.A new similarity measure for collaborative filtering to alleviate the new user cold-starting problem[J].Information Sciences,2008,178(1):37-51.

[13] Steck H.Item popularity and recommendation accuracy[C].ACM Conference on Recommender Systems,Recsys 2011,Chicago,II,Usa,October.DBLP,2011:125-132.

[14] Sun Hui,Ma Yue,Yang Hai-bo,et al.Collaborative filtering recommendation algorithm by optimizing similarity and clustering users[J].Journal of Chinese Computer Systems,2014,35(9):1967-1970.

[15] Park J,Kim B I.The school bus routing problem:a review[J].European Journal of Operational Research,2010,202(2):311-319.

附中文参考文献:

[1] 项 亮.推荐系统实践[M].北京:人民邮电出版社,2012:2-4.

[3] 陶永才,张宁宁,石 磊,等.异构环境下云计算数据副本动态管理研究[J].小型微型计算机系统,2013,34(7):1487-1492.

[5] 许海玲,吴 潇,李晓东,等.互联网推荐系统比较研究[J].软件学报,2009,20(2):350-362.

[7] 马宏伟,张光卫,李 鹏.协同过滤推荐算法综述[J].小型微型计算机系统,2009,30(7):1282-1288.

[9] 周海平,黄凑英,刘 妮,等.基于评分预测的协同过滤推荐算法[J].数据采集与处理,2016,31(6):1234-1241.

[10] 郝立燕,王 靖.基于项目流行度的协同过滤TopN推荐算法[J].计算机工程与设计,2013,34(10):3497-3501.

[11] 王道平,李志隆,杨 岑.基于热门物品惩罚和用户兴趣变化的知识推送算法[J].系统工程,2014,32(1):118-123.

[14] 孙 辉,马 跃,杨海波,等.一种相似度改进的用户聚类协同过滤推荐算法[J].小型微型计算机系统,2014,35(9):1967-1970.

本刊检索与收录

国内

中文核心期刊

中国学术期刊文摘(中英文版)收录

中国科学引文数据库(CSCD)来源期刊

中国科技论文统计源期刊

中国期刊全文数据库(CJFD)收录期刊

中国科技期刊精品数据库收录期刊

中国学术期刊综合评价数据库(CAJCED)收录期刊

中国核心期刊(遴选)数据库收录期刊

中文科技期刊数据库收录期刊

国际

英国《科学文摘》(INSPEC)

荷兰《文摘与引文数据库》(SCOPUS)

俄罗斯《文摘杂志》(AJ,VINITI)

美国《剑桥科学文摘(自然科学)》CSA(NS); Cambridge Scientific Abstracts(Natural Science)

美国《剑桥科学文摘》CSA(T);Cambridge Scientific Abstracts(Technology)

美国《乌利希期刊指南》UPD(Ulrich′s Periodicals Directory)

日本《日本科学技术振兴机构中国文献数据库》(JST,China)

波兰《哥白尼索引》(IC, Index of Copurnicus)

猜你喜欢
相似性热门物品
称物品
“双十一”,你抢到了想要的物品吗?
浅析当代中西方绘画的相似性
谁动了凡·高的物品
12个毫无违和感的奇妙动物组合
基于隐喻相似性研究[血]的惯用句
热门智能手机应用
找物品
V4国家经济的相似性与差异性
2009年热门特色风味小吃