基于 Hadoop的推荐算法优化
摘要:在现代化的今天,我们的周围被数量众多的数据所环绕,如何从这些数据中得到自己想要的内容成为了不可逃避的话题。由于数据量每天都在大量增加,继续使用传统的推荐系统来进行数据的推荐已经不在适合,可能会出现推荐不准确、数据处理速度过慢等情况,导致用户无法准确的得到自己想要的结果。针对以上情况,本实验使用Hadoop框架,利用Hadoop分布式计算的特点并行处理大量数据,提高运行的效率[1]。并采用均值漂移聚类算法对数据集进行处理,解决矩阵稀疏性的问题,使推荐精度提高。 
关键词:Hadoop 均值漂移聚类 推荐算法
Recommendation algorithm optimization based on Hadoop
YIN Tie-yuan, YANG zhao-kun
(School of Information Science and Engineering,Shenyang University of Technology,Shenyang 110870,China)
Abstract:In today's modern, all around us was surrounded by large Numbers of data, how to get what they want from the data became the inevitable topic of the content of the Due to the amount of data in a large increase in every day, continue to use traditional recommendation system is recommended for data isn't fit, may be recommended In view of the above situation, this experiment uses the Hadoop framework to process a large amount of data in parallel by utilizing the characteristics of Hadoop distributed computing to improve the efficiency of operation [1] The mean shift clustering algorithm is used to process the data set to solve the sparsity of matrix and improve the recommendation accuracy.
Key Words:Hadoop Mean shift clustering Recommendation algorithm
0 引言
大数据时代的来临,使大量的资源信息充斥着人们的生活,无论信息生产方还是信息消费方,这都给他们带来了比较大的问题。每一天都要面对着成千上万的数据信息,如何在这众多的数据中得到自己想要的数据无疑成为了一件令人头疼的事。在此情形下,推荐系统应运
而生。对于用户和信息,推荐系统能够主动将他们建立联系,不仅可以帮助用户去发现对自己有用的信息,而且对于某些信息,系统会去推测用户是否对其感兴趣,并将其认为用户可能会感兴趣的物品推送到用户的面前,不仅用户享受到了可以快速得到自己心仪物品的便利,推送方也得到了推行的成果[2]。但是在单机模式下,计算速度严重限制了其发展,在这种情况下,我们想到了可以使用hadoop来解决该问题,而对于推荐的准确度,是以用户对物品的评分为前提的,如果用户对物品的评分的数据量不足,会出现推荐准确度不高等问题,由此我们提出使用聚类算法来解决推荐精度不高这一问题。
1 Hadoop系统
Hadoop是一个分布式的系统架构,它可以对数据进行分片的处理,即将海量的数据分到不同的节点中进行各自的处理从而提升自己的计算效率[3]。Hadoop中两个最重要的组成部分是HDFS和Map Reduce。HDFS主要用于进行数据的存储,与MySQL进行数据的存储不同,HDFS是用于分布式的系统上,也就是说它可以管理多台机器上的数据或者文件。同时HDFS对硬件的要求也不高,可以部署在一些廉价的硬件上面。同时它也具有着高吞吐量的特点,因此对于那些数据集特别大的数据,可以起到明显的优化效果[4]。而Map Reduce则为海量的数据提供了计算,它的计算来源就是HDFS中存储的数据。
Hadoop主要有以下几个优点:①可靠性。Hadoop的存储方式是按位存储且经历了长时间的考验,因此深受人们的信赖。②可扩展性。Hadoop一般是有一个主节点和多个从节点的构建方式,从节点的数量可以随着需要动态的进行增加。③有效性。Hadoop的众多节点之间是可以进行数据的交换与移动,同时这种特性也保证了各个节点之间的动态平衡性,因而处理数据的速度也就变得很快。④容错性。Hadoop能够自动保存数据的多个副本,并且能够自动将失败的任务重新分配。同时Hadoop的成本也比较低,是开源的。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,项目的软件成本会大大降低。使用Hadoop的大致流程图如下:
图1 Hadoop流程示意图
2 协同过滤与均值漂移算法
2.1协同过滤算法
协同过滤算法是是一种比较经典的推荐算法,它主要是通过获得用户对于物品的过往评分,得到用户评分的标准,从而推测出用户可能会喜欢哪些相似的物品,然后对这些相似的物品进行排序,再将排序后的结果,从高到低对用户进行推荐[5]。一般是将用户对物品的评分来构建以用户为行坐标,以物品为纵坐标的二维矩阵,矩阵的内容为用户对物品的评分。最后通过计算数据的相似度来由高到底的进行推荐。计算相似度的方法一般有Pearson相关系数法,余弦相似度等,本文采用的方法是余弦相似度法[6],公式如下:
其中, , 分别是用户u和用户v对所有的物品的评分, 表示用户u和用户v共同进行了评分的物品, 是用户u对物品i的评分值,hadoop分布式集搭建 用户v对物品i的评分值[7]。然而并不是所有的用户都会对物品进行评分,因为在矩阵中会有很多的空位,这样会导致计算得到的结果不准确,为了缓解矩阵稀疏这一问题,引入了均值漂移算法来对矩阵的稀疏性进行处理,然后再进行相似度的计算。
2.2均值漂移聚类算法
均值漂移聚类算法是先初始确立一个中心点,同时也设置一个长度d,计算在以中心点为圆心,d为半径的圆中所有的点与中心点的向量,得到所有的向量后,计算其和的平均值,称为是偏移均值,将中心点移动到偏移均值处,重复以上步骤,直到满足一定条件时结束[8]
在得到中心点集后,会寻到目标用户的最近邻,做出评分预测,并将预测得到的结果写会到矩阵中,将原本没有数据的区域,填上我们所计算得到的预测值,这样可以有效的降低矩阵的稀疏性。最后再进行协同过滤计算,得到推荐结果。公式如下:
其中,Sh表示以x为中心点,半径为h的区域,k表示包含在Sh范围内点的个数,xi表示的是包含在Sh范围内的点[9]
3实验与分析
3.1实验环境
本文的实验平台基于VMware进行搭建,实验环境是CentOS7操作系统,在操作系统上搭建Hadoop集。集主要包括一个主节点和两个从节点。每个节点上的实验环境相同,最后在集上运行MapReduce并行化协同过滤算法,对不同的推荐算法进行实验并比较。集的配置如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。