
2.1 引言
推荐系统帮助人们成功解决信息过载问题,并且在过去的几十年建立了电子商务的重要组成部分。推荐系统的首要任务是通过对大型项目空间的滤波为用户提供项目或产品的个性化推荐。很多推荐算法在电子商务、数字图书馆、电子媒体和在线广告等各种应用中发展,其中协同过滤是迄今为止应用最广泛、最成功的个性化推荐技术。
基于近邻的协同过滤作为协同过滤中重要的一类,因其简单、直观、有效的特点被广泛应用于电影、音乐、图书等领域。其基本思想是通过用一种相似度度量方法找到最近邻居集合(目标用户的最相似用户集合或项目的最相似项目集合),最后通过对最近邻居集合的评分进行加权平均求和,从而产生推荐集。相似度计算的准确性直接影响推荐质量,传统的相似度度量方法利用两个用户对相同项目的评分(共同评分)来计算用户之间相似度;项目之间相似度通过对项目共同评分用户的评分计算得到。然而,当数据极大稀疏时无法保证足够的共同评分数据,传统的相似度计算方法推荐效果不佳。即使没有一个共同评分用户,两个项目也可以是相似的;用户评价的项目不同,两个用户也可以是相似的,这些情况是传统的相似度计算方法没有考虑到的。因此,传统的相似度计算方法并不适合于稀疏数据(共同用户很少或者共同评价项目很少甚至没有)。
文献[4]在社交网络中引入了用户相似度概念,提出了基于用户相似度的协同过滤推荐算法,以改善社交网络中用户好友推荐的问题。文献[5]提出了基于用户模糊相似度的协同过滤推荐算法,分别建立年龄和评分的梯形模糊模型,将用户年龄和评分模糊化,进行相似度计算。文献[6]基于搜索引擎日志,提出了一种基于流行性和相似度相结合的查询推荐策略,为目标用户产生推荐词集合,改善推荐的多样性和流行性。文献[7]提出了一种结合Jaccard相似度和Pearson相关系数的改进相似度度量方法,在计算相似度时不但考虑共同评分还考虑共同评分的绝对数量,提供精确的评分预测。J.Bobadilla提出了基于MSD的相似度度量方法,并在此基础上将评分数据结合上下文信息,提出Jaccard与MSD相结合的相似度来提高Pearson相关性的结果[8]。上述改进相似度计算方法在计算相似度时只考虑了相似度的局部信息,没有考虑其全局相似度。
针对上述问题,本章提出了一种利用巴氏系数改进相似度的协同过滤推荐算法(BCCF),改进相似度计算重视用户的每一个评分,在计算用户之间相似度时不单单只考虑用户评分之间的相似度。分析传统相似度方法的优缺点,结合Jaccard和Pearson方法的优点,利用巴氏系数来发现用户评分的分布规律,在Movielens数据集的实验表明,BCCF算法在相对稀疏的数据集上的表现更好,可以有效改善评分数据稀疏性问题,提高预测评分的准确性。