一种基于自适应近邻选择的协同过滤推荐算法

2016-07-22 20:13彭玉程小平
电脑知识与技术 2016年16期
关键词:推荐系统相似性

彭玉+程小平

摘要:评分数据稀疏性问题和新用户冷开始问题对推荐系统性能造成很大的影响,为了提高推荐精度本文提出了一种基于自适应组合协同过滤推荐方法ANCF。该算法首先通过推荐系统收集到的用户特征数据和项目特征数据来改善原始相似度计算,然后再组合用户邻居集和项目邻居集来为用户未评分的项目进行预测评分。通过自适应协调因子协调处理两方面的影响。通过实验表明,该算法可以充分挖掘用户群邻居和项目群邻居对推荐结果的预测作用,提高推荐系统的预测精度。

关键词: 基于项目协同过滤;基于用户协同过滤;推荐系统;相似性;属性特征

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)16-0127-04

Abstract: Based on the analysis of the sparse problem and the cold start problem in the traditional collaborative filtering recommendation, a collaborative filtering recommendation algorithm based on adaptive nearest neighbor selection is proposed. The algorithm considers the influence factors of user characteristics and project attributes, and then calculates the nearest neighbor sets of target users and target projects by using the score similarity model. According to the situation of the sparse score data, the similarity measurement results of two aspects are handled by the adaptive coordination factors, so as to get the final project forecast score. Experiments show that the proposed algorithm can effectively balance the instability effects based on the user group score and the recommendation based on the project group, and effectively alleviate the problems caused by the sparse user rating data, so as to improve the prediction accuracy of the recommendation system.

Key words: item-based collaborative filtering; user-based collaborative filtering; recommendation system; similarity; attribute feature

1 概述

互联网的迅速发展引发了信息过载问题[1]。推荐系统作为解决信息过载问题的重要手段,在电子商务领域被广泛应用,主要通过发现用户的潜在需求主动为用户推荐感兴趣的项目。在传统的个性化推荐中,协同过滤推荐算法无疑是最成功的一种推荐技术。协同过滤推荐算法是基于某些特定项目的用户之间的相似性计算,更一般而言,如果他们在某些项目上有类似的偏好,他们最有可能对一些其他项目感兴趣。基于协同过滤的方法首先基于项目或基于用户的相似性度量计算发现类似项目或用户的邻居,然后通过相似邻居的评价,提出建议。虽然协同过滤是有效的,当用户评分数据很少时,其推荐性能表现不佳。主要是由于数据极度稀疏,用户只有几个评级,相似度计算误差很大,导致计算得到的邻居集不准确,或者只能搜索到较少的邻居,无法得到准确的推荐集[2]。

传统的协同过滤推荐算法本质上是利用了用户群或者项目群中个体与个体之间的相似性来寻找相似邻居,用相似邻居的历史偏好来预测目标对象的喜好并做出推荐的过程。但是,当用户评价数据极度稀疏或者新用户和新项目的推荐问题时,只从相似用户群或者相似项目群去搜索邻居,得到的邻居集都是比较片面的[3]。在现实生活中往往这两者均不可或缺,可以考虑结合两个群体来共同为当前对象做出预测。为了恰当平衡两个群体对推荐结果的影响,可以定义一个随案例数据变化而变化的近邻因子。

2 传统协同过滤方法

2.1 传统相似性计算方法

协同过滤推荐的关键点是不同用户之间的相似性度量。广泛采用的方法是基于用户的共同历史评分数据项量来进行相似度的计算。在相似性计算方法中,虽然各有其优缺点,但最常用的相似度量方法是余弦相似性、修正的余弦相似性和皮尔森相似性[4]。

1)余弦相似性:将用户的评分数据转换为多维向量,然后利用这些向量的余弦值来度量用户之间的相似性。其定义如下:

最后预测分值较高的项目便是目标用户的可能推荐项目,即是协同过滤推荐系统的推荐结果。

2.2 相似性度量计算的改良

在传统的协同过滤算法中相似度的计算都是在用户共同的历史评分的向量空间上进行的,如果共同评分的数据较少,则这个相似性度量计算的误差就会很大,使得推荐性能急剧下降。Herlocker等在文献[5]中提出用修正因子来调整相似度的计算,Ma等在文献[6]中提出了影响性修正权重因子的设置,我们定义用户和用户之间共同评分的产品集为,给产品和产品共同评分的用户集为,通过过设定某个阀值来将原来的用户相似度和产品相似度调整如下:

3 基于自适应近邻选择的协同过滤推荐算法

传统的协同过滤推荐算法本质上是利用了群体内(这里面的群体可能是用户群,也可能是产品群)个体与个体之间的相似性(寻找对当前对象影响力最大的个邻居)来为目标对象的偏好做出预测的过程。但是,当用户评价数据极度稀疏或者新用户推荐问题时,只从相似用户群或者相似项目群去搜索邻居,得到的邻居集都是比较片面的。所以本文研究思路是从影响推荐的两个群体(邻居用户群和邻居项目群)之间寻找一个自适应地可随案例数据变化而变化的近邻因子,结合两个群体来共同为当前对象做出预测。所以本文结合UserCF算法和ItemCF算法的集成算法来进行推荐,它综合了两种协同过滤算法的优点,改善推荐精度。

3.1 基本定义

在本节中我们首先来探讨协同过滤推荐系统中数据定义的问题。一般来说,推荐系统可以收集到用户注册信息,产品属性信息以后用户对已经选择过的历史产品的评价信息[7]。通过对这些信息的进一步整理清洗可以建立3个信息数据矩阵,分别是用户-项评分矩阵、产品(项目)特征属性矩阵以及用户特征信息矩阵。分别如表1、表2、表3所示。

3.5 推荐算法过程描述

输入:评分矩阵,项目特征矩阵,用户特征矩阵,参数。

输出:推荐结果。

具体算法步骤如下所示:

1) 在矩阵中搜索用户未评分的所有项目记为集合,任意一个项目作为目标项目。

2)基于用户-项评分矩阵,按式(5)计算用户与其他任一用户的评分相似度,基于用户特征属性矩阵按(7)计算用户与其他任一用户的特征相似度,再按式(8)进行相似度组合,得到用户间相似度。

3) 基于用户-项评分矩阵,按式(6)计算项目与其他任一项目的评分相似度,基于项目特征属性矩阵按式(9)计算项目与其他任一项目的特征相似度,再按式(10)进行相似度组合,得到项目间相似度。

4)对于预先设定的用户相似度阀值,按式(11)中所对应的用户为用户的候选邻居用户,得到用户的候选邻居用户集,同时计算到值,。

5)根据项目相似度阀值,按式(12)中所对应的项目为项目的候选邻居项目,得到项目的候选邻居项目集,同时计算到值,。

6)选择输入合适的调和参数并将值代入到式(13)中,来计算得到自适应近邻选择因子和的值。

7)通过公式(14)并结合之前计算的和,计算用户对项目的预测评分。

循环如上步骤,得到用户对所有未评分项目的预测评分,预测评分较高的项目则为推荐结果。

4 试验结果及其分析

4.1 数据集

为了验证本文新提出的推荐算法比传统的协同过滤算法具有更好的性能,我们收集了MovieLens站点的相关数据集来完成相应实验。MovieLens数据集是最常用来测试推荐算法性能的标准数据集[8]。此数据集包含100000个等级从1到5的评价数值,由943名用户对1682部电影的评价。在这个数据集中,用户被要求至少对20部电影进行评分,数据稀疏率是95%左右。在实验中数据集被分为训练和测试部分(80%用于训练测和20%用于测试集)。

4.2 试验结果及其分析

1)调整参数对推荐精度的影响

由于本文公式(8)中提出的用户相似度度量中的为可调节参数,因此在取不同值时,所获得的效果也不同,所以在该试验中取值从0到1.0,每次增加0.1,观察平均绝对偏差MAE(mean absolute error)的变化,MAE值越低推荐效果越好。实验中调节因子取0.5,自适应因子取30,阀值取0.4,取0.55。选择300个用户进行测试,试验结果如图1所示。从图1中可以看出,取值为0.7时推荐效果最好。

2)调整参数对推荐精度的影响

由于本文公式(10)提出的项目相似度度量中的为可调节参数,因此在取不同值时,所获得的效果也不同,所以取值可能会对推荐精度有影响。所以在该试验中取值从0到1.0,每次增加0.1,观察MAE的变化。实验中调节因子取0.5,自适应因子取30,阀值取0.4,取0.55。选择300个用户进行测试,试验结果如图2所示。从图2中可以看出,取值为0.4时推荐效果最好。

3) 不同协同过滤算法推荐精度对比

将本文提出算法与其他协同过滤算法如Item-based CF, User-based CF以及近期业界比较领先的研究方法EMDP(Effective Missing Data Prediction)进行比较。从实验结果可以看出本文改进的自适应近邻选择协同过滤算法(ANCF)获得更低的MAE值,推荐效果更好。实验结果如图3所示。

5 结论

协调过滤推荐技术是推荐系统应用中的一个热门研究,基于领域的方法作为协同过滤两个分支之一,以其简单、高效、稳定和和解释性强的特性广泛应用于商业领域,但用户-项矩阵的稀疏性问题是协同过滤的主要不足之处。本文根据基于用户协同过滤算法和基于项目协同过滤算法各自的优缺点,提出一种组合算法,针对预测数据的不确定性,同时在用户群和项目群中搜索目标用户的邻居,并通过自适应因子来调节不同群体邻居对推荐结果的影响。结合用户以及项目的推荐结果,同时运用用户邻居和和项目邻居来组合计算预测评分,大大改善了数据稀疏性对推荐性能造成的影响。不过这样会增加推荐系统一些时间开销,将来的研究将探讨如何运用云计算和聚类技术等来降低算法的时间复杂性,加快推荐系统的推荐结果反馈时间。

参考文献:

[1] Breese J, Hecherman D, Kadie C. Empirical analysis of predictive algorithms for collaborative filtering [C]. In: Proceedings of the 14th Conference on Uneertainty in Artifical Itelligence(UAI-98),1998:43-52

[2] 彭玉,程小平. 基于属性相似性的Item-based协同过滤算法[J].计算机工程与应用,2007,43(14),144-147.

[3] 黄创光,印鉴. 不确定近邻的协同过滤推荐算法[J].计算机学报,2010,33(8):1369-1375.

[4] 邓爱林.电子商务推荐系统关键技术研究[D].上海:复旦大学.2003

[5] Tsai C F, Hung C. Cluster ensembles in collaborative filtering recommendation[J].Appl, Soft Comput, 2012, 2:75-80.

[6] Qing Li S H M, Byeong Man Kim. A probabilistic music recommender considering user opinions and audio features[C]. Inf. Process, Manage, 2007:134-152.

[7] 彭玉,程小平.一种改进的Item-based协同过滤推荐算法[J].西南大学学报:自然科学版,2007,23(8):132-136.

[8] Qing Li S H M, Byeong Man Kim. A probabilistic music recommender considering user opinions and audio features[C].Inf. Process, Manage, 2007:134-152.

猜你喜欢
推荐系统相似性
一类上三角算子矩阵的相似性与酉相似性
浅析当代中西方绘画的相似性
基于用户偏好的信任网络随机游走推荐模型
低渗透黏土中氯离子弥散作用离心模拟相似性
一种新的基于对称性的字符串相似性处理算法
一种相似性学习算法及其在人脸识别中的应用
V4国家经济的相似性与差异性