码迷,mamicode.com
首页 > 其他好文 > 详细

海量推荐系统:mapreduce的方法

时间:2014-07-28 15:16:13      阅读:202      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   文件   数据   io   2014   

1. Motivation


2. MapReduce

MapReduce是一种数据密集型并行计算框架。

待处理数据以“块”为单位存储在集群机器文件系统中(HDFS),并以(key, value)的键值对形式保存。

当任务启动时,系统将计算任务分配给存储数据的相应机器。

MapReduce计算任务可以划分为两个阶段:

bubuko.com,布布扣

MapReduce数据流图

bubuko.com,布布扣

?

3. scalable similarity-based neighborhood

3.1 user-based 推荐

bubuko.com,布布扣

说明:

bubuko.com,布布扣:user对商品的评分

bubuko.com,布布扣:得到了用户u与其他用户的相似度


最后,对于某一商品i,根据其他用户的评分以及用户相似度加权和来得到本用户的预测评分。

之所以称之为user-based方法,算法基于计算用户间的相似度。

3.2 item-based推荐

bubuko.com,布布扣

说明:

bubuko.com,布布扣

得到了物品的相似度矩阵。最后,用户u对物品i的打分就等于用户对物品的打分与物品i相似度的加权和。

因此,推荐系统的核心在于计算相似度矩阵bubuko.com,布布扣

3.3 scalable计算方法

传统的相似度计算,基于标准的矩阵乘法。

不足之处:

1、在每一个map任务中,要初始化评分矩阵A,map时将输入的item与A的每一列做点乘。当矩阵A巨大时,内存消耗巨大。

2、传统计算方法复杂度与item数的平方成正比。并且,不能利用user评分稀疏性的性质。

改进的方法

bubuko.com,布布扣

其中,bubuko.com,布布扣为列向量,为用户u的打分向量

具体方法:

首先对每一个用户的评分向量做乘积。

然后将这些乘积相加,就得到了相似度矩阵。这样,就可以以A的行向量为单位进行数据的划分。

mapreduce计算框架

bubuko.com,布布扣

?

?

?

参考文献:

[1]?Scalable Similarity-Based Neighborhood Methods with MapReduce?

海量推荐系统:mapreduce的方法,布布扣,bubuko.com

海量推荐系统:mapreduce的方法

标签:style   blog   http   color   文件   数据   io   2014   

原文地址:http://www.cnblogs.com/zjgtan/p/3872907.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!