论文部分内容阅读
随着互联网的高速发展,信息量呈海量增长,传统的推荐系统已经无法处理海量数据所带来的大规模计算问题,而且传统的集中式协同过滤推荐算法中数据和计算耦合性非常大,并且无法为用户提供实时的、可靠的、可扩展的推荐服务,为解决这些问题,本文提出大数据模拟环境下基于相似用户的分布式协同过滤推荐系统。使数据和相似度的计算都被分配到一个分布式集群的各个节点上,各节点相互协作完成共同的推荐任务。 首先,本文引入分布式Hash算法实现了数据的分布式存储,将原本集中存储的用户偏好数据扩展到分布式环境中,提升了系统存储容量。同时提供一个快速的用户偏好信息定位算法,为分布式系统的实时推荐奠定了理论实现基础。 其次,提出了一个比较新颖的用户相似度计算及更新算法,将原本计算和数据耦合度很高的协同过滤推荐算法分成put和getRecommendedItems两个大的过程,能够较好的适应用户相似度的更新以及计算的分布化。两用户之间的相似度采用用户对相同项目的评分值的加权和得到,设定的权值来源于两个用户对同一个项目的评分值之间的距离,从而将更多的用户偏好信息纳入计算范围,提高了用户相似度计算的准确性。由于新的相似度的计算方式不需要进行大量的数据移动,且相似度的计算在put阶段完成,因此项目推荐能够做到实时完成。 再次,本文的分布式系统被设计成能够运行在普通廉价的PC机上,由于将组件的失效看做是一种常态而不是异常,因此本文将节点设计成可以在任何时候加入或者离开集群以支持集群的自稳定性。同时,针对相似度计算的过程中可能产生的大量连接问题,本文也提出了相应的改进策略。 最后,本文通过构建一个具有10台PC的局域网,分别模拟了在不同节点数量的集群中,百万与千万级别的数据下,对用户推荐的准确度以及推荐的实时性的影响。实验结果表明,基于相似用户的分布式协同过滤推荐系统,在推荐的准确性及实时性方面能达到较好的效果。