论文部分内容阅读
随着互联网的迅猛发展,网上的信息越来越多,互联网也逐渐成为人们生活中必不可少的部分了。由于互联网上信息的繁多,用户上网查找资料或者购物都需要花费很多的时间。为了帮助用户更好的查找到自己需要的资料或者自己感兴趣的商品,推荐系统应运而生。推荐系统可以分为很多种类,其中最重要的一种也是最被广泛使用的一种便是协同过滤推荐系统。协同过滤算法是根据用户以往对一些项的评价,以及其他与该用户具有类似兴趣的用户给一些项的评价,将一些新的项目推荐给用户,或者预测对用户有价值的项目。目前,协同过滤技术是一个热点,在研究和应用领域上都取得很大的成功,不过依然还有很多问题需要解决。协同过滤推荐系统在运用中,主要有四个问题。第一,是算法的准确性问题。由于网上产品的数量非常庞大,用户对产品评价的数量是有限的,使得关于用户和产品的数据是非常稀疏的,其推荐的准确性受到了严重的影响。第二,是可扩展性问题。随着互联网上用户数和项目数的不断增长,如何让系统适应这种变化,也是一个问题。第三,是“冷启动”问题。由于协同过滤是依据用户或者项目的历史评分来实现推荐的,如果当出现一个新的用户时,则无法对他(她)进行推荐,而且也不能给用户推荐一个新的项目。第四,是实时性问题。由于现在很多推荐都是基于在线推荐的,所以对实时性要求很高,目前很多在线推荐都是以牺牲精确性来实现及时性的,如何在不影响精确性的基础来实现实时性也是一个难点问题。由于算法的准确性是当中最重要的一个问题,所以在该问题上的研究也非常的多。本文研究的工作也是基于这个目的进行开展的,本文主要开展了以下的研究工作:第一,对未评分项的几种处理方法进行了比较。由于极度的数据稀疏性,用户——项目评分矩阵中含有大量的未评分项,对未评分项的不同处理方法对系统的精确度影响非常的大。在当前已有的计算相似度的算法中,有5种处理方法,本文针对这5种算法进行了实验验证,试验结果表明将未评分项的值设置为0具有最高的准确性。第二,提出了一种优化的基于项目的协同过滤算法。传统的基于项目的协同过滤算法基于这样一个假设:如果大部分客户对一些商品的评分比较相似,则当前客户对这些商品的评分也比较相似。该算法是利用给定用户对已有项目的喜好属性来预测是否喜爱给定的未知项目。新的算法在计算两个项目相似度的时候,考虑了同时给这两个项目都评分的用户数占给这两个项目有过评分的用户数(包括给两个项目都评分和只给其中一者有过评分的用户数)的比例。实验结果表明,这种优化的基于项目的协同过滤算法比传统的基于项目的协同过滤算法具有更高的准确性。