开篇:润墨网以专业的文秘视角,为您筛选了一篇一种有效缓解数据稀疏问题的协同过滤推荐算法范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!
〔摘 要〕传统协同过滤推荐算法依据共同评分项目计算用户相似度,进而产生推荐项目。然而,随着用户和商品数量的不断增加,用户共同评分的项目会越来越少,甚至没有,因此传统协同过滤推荐算法对用户之间相似度的衡量将会越来越不准确,从而影响推荐系统的性能。针对这一问题,本文对用户相似度的计算方法进行了改进,提出直接相似度和间接相似度的概念,同时引入关键人物权重,进一步提高推荐系统的准确性。
〔关键词〕电子商务;推荐系统;协同过滤;直接相似度;间接相似度;关键人物
DOI:10.3969/j.issn.1008-0821.2016.03.013
〔中图分类号〕TP301 〔文献标识码〕A 〔文章编号〕1008-0821(2016)03-0076-04
〔Abstract〕In traditional collaborative filtering recommendation Algorithm,similarity of users is often calculated based on common ratings,and then the recommended items are produced.However,with the increasing number of users and products,the common rated items will be less and less,and even no.So the measure of the similarity of users will be more and more inaccurate,and thus it will affect the performance of the recommendation system.In order to solve this problem,the method of calculating the similarity of users is improved,and the concepts of direct similarity and indirect similarity are put forward.At the same time,in order to further improve the accuracy of the recommendation system,the key figure is introduced into the system.
〔Key words〕e-commerce;recommending system;collaborative filtering;direct similarity;indirect similarity;key figures
随着电子商务的迅速发展,电子商务网站平台的商品越来越多,同时相当多的用户面临着海量的商品往往不知如何下手,必须花费大量的时间和精力来寻找所需的信息,因此智能推荐系统在电子商务网站中尤为重要。协同过滤推荐是目前最好的一种推荐技术[1],其根据用户的评分数据进行项目推荐。传统的协同过滤推荐技术虽然一段时间内发挥了很大的作用,然而随着电子商务网站规模的不断扩大,协同过滤推荐技术面临着众所周知的严重问题[2]:(1)“稀疏性”问题:用户-项目评价矩阵非常稀疏;(2)“冷启动”问题:一个新的商品出现时,用户对其评分会特别少,甚至没有,那么这个商品就不容易被推荐出去。另外,一个新用户加入时,由于没有对任何项目进行过评价,系统就无法对其进行推荐。(3)“可扩展性”问题:面对用户和商品数量的日益增多,系统的性能会越来越低。
为了解决数据稀疏而导致的推荐结果不准确问题,许多学者提出了各自不同的方法。目前常用的方法有以下几种:(1)数据填充:在计算用户相似性之前,首先对原始的用户-项目评分矩阵进行填充,从而降低其稀疏性,提高推荐准确度。郝立燕等[3]根据原始矩阵中评分数据的特征,采用SOFT-IMPUTE算法对评分矩阵进行填充,然后利用填充后的矩阵计算用户相似性,进而做出推荐预测。张玉芳等[4]采用分两步对原始评分矩阵进行填充的方法。首先在利用传统协同过滤推荐算法寻找目标用户邻居集时,只考虑相似度比较高的用户作为目标用户邻居,进而对评分矩阵进行第一次填充,然后将第一步填充后的矩阵作为新的用户-项目矩阵,在此基础上进行第二次填充,此方法可以很好的解决数据稀疏问题。黄永锋等[5]在原始评分矩阵基础上,首先根据用户访问过的项目的特征及访问频率对用户访问过但没有给出评价的项目进行填充,从而降低原始评分矩阵的稀疏度,提高推荐准确性。(2)聚类技术:在计算用户相似性之前,首先对用户或项目进行聚类,从而降低预测计算量,提高推荐质量。黄国言等[6]及崔春生等[7]提出对用户进行聚类的方法,前者根据用户对项目评分的相似性对用户进行聚类,后者根据用户的兴趣度对用户进行聚类,进而分别在各聚类内部计算用户相似性,产生推荐项目。吴潮等[8]提出对用户和项目两个方面分别聚类并互相结合的方法,在已有聚类中寻找用户最近邻居集,实现对用户的推荐。(3)矩阵分解:对原始评分矩阵进行分解,从而降低评分矩阵维数,提高推荐精确度。李改等[9]分析了传统的矩阵分解模型(SVD)的弊端,并对其进行了改进,提出了带正则化的基于迭代最小二乘法的矩阵分解方法,此方法提高了传统推荐算法的抗稀疏性。杨阳等[10]提出增量奇异值矩阵分解的方法,对评分矩阵进行梯度分解,从而有效的解决矩阵稀疏的问题。
以上几种方法均在一定程度上缓解了评分矩阵的稀疏性问题,并取得了一定的成果,但在计算用户形似度进而寻找最近邻居集时,仍局限于用户共同评分项目,而大多数用户共同评分项目极少,此时用户相似度的计算只受几个项目评分的影响,计算结果很容易出现偏差。尤其当用户兴趣爱好一致但不存在共同评分项目时,系统则无法计算其相似性。针对这一问题,本文对传统协同过滤推荐技术中计算用户相似度及产生推荐项目的方法进行改进,使用户相似度的计算不再仅仅依据用户共同评分项目,同时兼顾用户未评分项目,并引入关键人物权重,进而进一步提高推荐质量。
1 传统协同过滤推荐算法
协同过滤推荐算法的主要思想是,利用现有用户群过去的评价数据来预测当前用户的购买意向[3]。这种方法的潜在假设是,如果某些用户对一些项目的评价相似,那么他们对其他项目的评分也是相似的。通过相似性计算发现和当前用户相似的N个近邻,根据兴趣相似的用户群的评价,计算产生对某些项目的预测评分,最后根据预测值将排名最前的k个项目推荐给当前用户。算法一般分为3步:建立用户-物品评分矩阵,计算用户相似度并寻找近邻集,产生推荐项目[11]。
11 建立用户-物品评分矩阵
推荐系统经常利用用户对已购买物品的评分作为推荐系统的数据源,一般定义用户集U={U1,U2,…,Um},物品集定义为I={I1,I2,…,In},通常用户-物品评分矩阵用矩阵Rm×n来表示,其中的每一项Rij表示第i个顾客对第j个商品项的评价值[12],通过获得的评价值来反映顾客的购买兴趣。通常以1~5表示用户对物品的偏好程度,没有评分的项目用0代替。
12 计算用户相似度并寻找近邻集
在这一步先计算用户之间的相似度,然后根据相似度寻找到用户的最近邻居集。在协同过滤推荐系统中,确定相似用户集,一般采用的方法是Pearson相关系数[3]。给定评分矩阵R,用户a和用户b的相似度sim(a,b)可以用公式(1)来表示。
由以上实验结果可以看出,本文所改进的推荐算法,对推荐结果有明显的改善。随着目标用户最近邻居数目的增加,虽然两种推荐算法的MAE值都呈下降趋势,但当邻居数较多时,本文推荐算法的优势越来越明显,推荐结果更加准确。由此可见,本文所提出的协同过滤推荐算法可以增强推荐系统的抗稀疏性,提高推荐系统的推荐质量。
4 结 论
随着电子商务网站的迅速发展壮大,智能推荐系统在电子商务网站中发挥着越来越重要的作用,而推荐算法决定了推荐系统的性能。计算用户相似度是协同过滤推荐算法中最为关键的一步,本文在计算用户相似度时充分考虑直接相似度、间接相似度以及关键人物权重三个方面因素,实验结果证明,本文所改进的计算用户相似度的方法比传统的计算方法更合理更准确。尤其对于评分项目极少的用户,可以根据间接相似度寻找其近邻集,进而产生推荐项目。因此本推荐算法不仅可以很好的解决评分矩阵数据稀疏问题,同时还可以在一定程度上缓解系统冷启动问题。
参考文献
[1]许海玲,吴潇,李晓东,等.互联网推荐系统比较研究[J].软件学报,2009,20(2):350-362.
[2]夏建勋,吴非,谢长生.应用数据填充缓解稀疏问题实现个性化推荐[J].计算机工程与科学,2013,35(5):15-19.
[3]郝立燕,王靖.基于填充和相似性信任因子的协同过滤推荐算法[J].计算机应用,2013,33(3):834-837.
[4]张玉芳,代金龙,熊忠阳.分步填充缓解数据稀疏性的协同过滤算法[J].计算机应用研究,2013,30(9):2602-2605.
[5]黄永锋,覃罗春.一种有效缓解协同过滤推荐评价数据稀疏问题的算法[J].东华大学学报:自然科学版,2013,39(1):83-87.
[6]黄国言,李有超,高建培,等.基于项目属性的用户聚类协同过滤推荐算法[J].计算机工程与设计,2010,31(5):1038-1041.
[7]崔春生,吴祈宗,王莹.用于推荐系统聚类分析的用户兴趣度研究[J].计算机工程与应用,2011,47(7):226-228.
[8]吴潮,王永吉,王哲,等.两阶段联合聚类协同过滤算法[J].软件学报,2010,21(5):1042-1054.
[9]李改,李磊.基于矩阵分解的协同过滤算法[J].计算机工程与应用,2011,47(30):4-7.
[10]杨阳,向阳,熊磊.基于矩阵分解与用户近邻模型的协同过滤推荐算法[J].计算机应用,2012,32(2):395-398.
[11]曾庆辉,邱玉辉.一种基于协作过滤的电子图书推荐系统[J].计算机科学,2005,32(6):147-150.
[12]刘东辉,彭德巍,张晖.一种基于时间加权和用户特征的协同过滤算法[J].武汉理工大学学报,2012,34(5):144-148.
[13]刘庆鹏,陈明锐.优化稀疏数据集提高协同过滤推荐系统质量的方法[J].计算机应用,2012,32(4):1082-1085.
[14]郭均鹏,王启鹏,宁静,等.基于符号数据与非负矩阵分解法的混合推荐算法[J].系统管理学报,2015,24(3):372-378.