论文部分内容阅读
近些年来,随着计算机技术的不断创新与网络科学的迅猛发展,对于推荐系统的各方面研究得到诸多学者更多的关注,在实际网络环境中,经常会遇到信息过载的现象,推荐系统能很好的对其起到缓解作用。在众多推荐算法中,协同过滤算法是该领域中比较经典且运用最多的算法之一。用户在网上浏览信息时会留下历史记录或评分,协同过滤算法会根据这些信息,利用相似度的大小来衡量用户或物品之间的相似性并确定该用户或物品的最近邻居集,为了得到最终的推荐结果,需要在指定邻居集数据中对未打过分的项目进行评分的预测,进而针对不同对象生成相应的推荐服务。目前,针对多样化的应用场景和适用环境,对协同过滤算法也相应的做出了改进与调整,使得改进后的算法能更好的提高推荐系统的各方面的性能,产生更好的推荐;然而,当今的互联网如此迅猛发展,不仅拥有着海量不可预测的大规模数据,还有着各种不同的繁琐数据类型,与此同时,对推荐系统信息的处理和计算速度也提出了更高的要求,这使得传统的协同过滤算法面临着巨大的挑战,大数据信息带来的稀疏性和算法的可扩展性问题让目前的推荐系统不能很好地产生相应的推荐功能。针对以上分析的内容,本文在协同过滤算法的研究基础之上,提出了一种在Spark平台中,结合ALS矩阵分解和改进的K-means聚类的协同过滤推荐算法,较好的解决了在大数据背景影响下带来的稀疏性和运行速度缓慢等相应问题。具体工作如下:首先,本文利用ALS矩阵分解的方法来对海量数据构成的高维度,高稀疏性的矩阵进行矩阵补全,达到对数据预处理,填充矩阵的工作。该方法可以较好的支持并行计算,提高了运算速度;其次,本文采用以最大距离来确定中心点的K-means改进算法,对填充好的矩阵信息构建聚类模型。最后根据用户之间的相似性确定在聚类模型中该目标用户的最近邻居集合,并进行相应的预测分析,产生推荐;本文中将改进的算法应用在Spark平台上,使用MovieLens的信息作为数据集,进行并行化实验,填充矩阵和建立聚类模型的工作可以在Spark平台上进行离线的计算,大幅度提高速度并降低了线上具体的运算量;经过实验,结果表明本文提出的基于矩阵分解和聚类协同过滤推荐算法可以较好的缓解因为大数据所引起的高维矩阵稀疏性等问题,使得算法有着准确的推荐精度,高速的处理速度和良好的可扩展性。