论文部分内容阅读
互联网的规模随着社会快速的发展而不断扩大,网络数据也在随之呈爆炸式的增长。数据增多必然增加数据获取的难度,信息过载成为了当今互联网急需解决的难题。为了帮助人们快速而准确的获取数据,推荐系统成为了计算机领域中一个重要的研究课题。推荐算法是推荐系统的核心。本文基于推荐算法展开研究,针对协同过滤推荐算法中存在的评分数据稀疏以及算法的可拓展性问题,提出了一种基于聚类和用户偏好的协同过滤推荐算法(CP-UBCF)。CP-UBCF设计了一种基于用户偏好的相似度计算方法,该方法在考虑用户自身属性的同时引入了用户对项目类别的评分和职业对项目类别的评分。同时,为了降低用户-项目评分数据的稀疏性,CP-UBCF设计了一种融入用户偏好的Weighted Slope One算法对用户-项目评分数据的未评分项进行了预测填充。此外,为了提升算法的可拓展性,CP-UBCF在处理评分数据时设计了一种Den-Dis K-means聚类方法。该聚类方法针对K-means聚类初始簇心随机选取而造成的聚类不稳定问题,设计了一种基于密度和距离选取聚类初始簇心的方法。通过Den-Dis K-means聚类方法将用户聚类,缩小了推荐过程中寻找相似用户的搜索空间。最后,在聚类后的数据集里使用基于用户的协同过滤推荐算法生成目标用户的推荐结果。根据Movielens 100K电影评分数据集的实验结果显示,CP-UBCF算法的推荐效果有所提升。本文基于提出的推荐算法,设计并实现了一个基于Spark、Elasticsearch和CP-UBCF的电影推荐系统。该推荐系统在通过CP-UBCF保障推荐效果的情况下有效利用了Spark的大数据计算性能和Elasticsearch的索引性能,符合实际应用场景的需求。