论文部分内容阅读
互联网的产生与普及满足了人们对于信息的需求,但随着互联网的飞速发展,人们的周围充斥了太多的信息使之无法准确找到感兴趣的信息,这就是“信息过载”问题。“信息过载”问题可以通过搜索引擎来解决,像谷歌、百度等,但搜索引擎存在的问题是对于不同用户的相同输入,结果是一样的。这样就统一看待用户了,不能够根据不同的用户来输出不同的结果,因此使用搜索引擎不能有效解决“信息过载”问题。个性化推荐不仅仅考虑用户的输入,还考虑用户的其他信息(如评分)从而为不同的用户输出具有个性化的结果,是一个解决该问题的更好的办法,其核心是推荐算法。工程领域中使用最为广泛的协同过滤算法在其推荐过程中需要根据相似度来搜索目标用户的近邻,而现有的公式都要依赖共同评分项,所以在数据稀疏的情形下这些相似度方法会因共同评分项较少而无法取得令人满意的结果。工程中的超级巨大评分数据规模又会制约其可扩展能力,需要的计算时间也在递增。为了解决上述问题,本文首先提出基于巴氏系数的协同过滤算法,克服对共同评分的依赖问题。然后再结合k-means聚类算法,在进行推荐之前,对所有用户进行预处理,在较小的范围内搜索近邻,提高了扩展性。本文所做的内容如下:第一,基于巴氏系数解决评价数据稀疏问题。通过引入巴氏系数来克服现有相似度计算方法依赖共同评分项的问题,从而提出基于巴氏系数的协同过滤算法,新的算法在某种程度上也缓解了冷启动问题;第二,改进k-means算法,并基于该算法解决可扩展性问题。经典k-means算法不适合评分数据非常稀疏的场景,通过结合用户评分项目数来优化距离公式和基于轮廓系数选取初始聚类中心,使其适用于稀疏数据场景。然后结合改进的协同过滤算法克服可扩展性问题。第三,实验验证了算法的有效性。本文主要做了两方面的实验,一是验证基于巴氏系数的协同过滤算法是否有效缓解了稀疏性问题;二是基于k-means和巴氏系数协同过滤算法的实验,验证扩展性问题是否有效解决。从实验运行结果来看,本文的算法极大地减少了对共同评分的依赖,很好地解决了稀疏性问题,提高了扩展性。