基于动态阈值的协同过滤算法研究
作者简介:许艳茹(1991-),女,山西阳泉人,硕士研究生,从事数据挖掘研究 【摘 要】协同过滤对所有的项目都一视同仁,也就是说,所有的项目对目标项目来说都有同样的重要性,但在实际情况下,对一个项目来说,不同的项目对其的影响是不同的。因此,在运用项目相似度的基础上,加入了动态阈值的计算方法。该算法首先计算项目间的相似度,然后用动态阈值查找项目的最近邻集,最后通过近邻集预测各项目的评分。实验结果表明,该方法提供了一个更好的推荐。
【期刊名称】邵阳学院学报(自然科学版) 【年(卷),期】2017(014)005 【总页数】7
【关键词】项目;协同过滤;动态阈值
基金项目:兰州财经大学甘肃商务发展研究中心项目(JYYY201506)
随着网络信息量的迅速增加,人们迫切需要一种新的技术来帮助人们从海量的数据中找到自己想要的信息。推荐系统能根据用户的需要,主动向用户推荐他们感兴趣的东西[1]。推荐算法主要包括基于关联规则的推荐算法[2]、基于内容的过滤算法[3]、协同过滤算法[4]、基于网络模型的推荐算法[5]等,其中,基于项目的协同过滤算法是一个比较成功的推荐方法,目前已有一定的研究成果。Linas Baltrunas[6]等认为项目经历了两个上下文可以分裂成两个项目,根据特定的上下文来预测用户的评分;张海鹏[7]认为项目之间的相似性比较稳定,因此在计算项目的评分时,在分母加入了项目间的相似性,改进了slopone算法,并提高了推荐的准确性;冷亚军[8]等首先用聚类技术将用户划分为t类,然后
为项目寻找一组类别偏好相似的候选邻居并构造偏好矩阵,最后预测评分;张星[9]等考虑到用户兴趣的差异性,为每一个用户建立了个性化的项目相似度计算过程,提高了推荐的准确率;彭玉[10]等首先计算了用户评分矩阵的相似度,然后计算了项目特征属性矩阵的相似度,最后将两个相似度结合修正了原始相似性的计算方法;可见目前虽然在基于项目相似性方面有了一定的研究,但是大多都是为目标项目寻找N个最近邻的方法。这种方法会将一些与目标项目相似度较小的项目加入最近邻集,影响了推荐的准确度。因此,本文在运用项目相似度的基础上,加入了动态阈值的计算方法。实验结果表明,该方法提供了一个更好的推荐。
1 协同过滤
协同过滤利用技术来挖掘人们的匹配的人有类似的利益,并在此基础上得出推荐。一般来说协同过滤可分为以下三个步骤:预处理评分信息、构造最近邻居集、预测评分及推荐。 1.1 预处理评分信息
本文以电影推荐为例,来说明算法的应用过程。Vuj表示用户对电影的评分,如表1:
1.2 构造最近邻居集
该步骤首先要计算电影i和电影j之间的相似度并构造最近邻集,相似度计算方法主要有以下三种: (1)余弦相似度
余弦相似度用向量空间中两个向量夹角的余弦值代表两个项目的相似度值,其计算公式如式(1)所示:
sim(i,j)=cosθ= (1)
其中,和分别为用户对电影i和电影j的评分向量。 (2)修正的余弦相似度
因为余弦相似度只是在方向上区分差异,因此即使两个项目存在显著差别,依然会得出高的相似度,为了弥补这个缺点,修正的余弦相似性从每个评分中减去对应用户的平均评分后进行计算。公式如式(2)。 sim(i,j)= (2)
其中,表示用户对所有电影评分的均值,Rui和Ruj分别表示用户对电影i和电影j的评分。
(3)Pearson相关系数
Pearson相关系数计算电影i和电影j之间的相关关系(线性相关)。公式见式(3)。 sim(i,j)= (3)
其中,Rui和Ruj分别表示用户对电影i和电影j的评分,分别表示所有用户对电影i、电影j评分的均值。
相似度计算完成之后,将相似度较大的N个项目加入最近邻集。 1.3 预测评分及推荐
得到电影i的最近邻居集S后,根据S中的评分数据预测用户对电影i的评分Vui。具体计算公式如式(4)。 (4)