物品推荐(基于物品的协同过滤算法)

 

用户对物品的评分矩阵 × 物品相似矩阵 = 推荐列表

构建物品相似度矩阵的时候可以通过计算两个物品的余弦相似度得出,于是需要构建每个物品在所有用户中的评分矩阵

 

本例中,不采用余弦相似度的方式计算物品与物品相似度

在MapReduce作业中,输入数据的格式是:用户,物品,评分

第一步、构建用于评分矩阵,表示如下:

第二步、构建物品相似度矩阵。这里采用的方法是:如果两个物品同时出现在某个用户的评分矩阵中,则计数加1,例如,101和102同时出现在A B E中,因此101和102的相似度计为3,依次类推得出整个相似度矩阵,这个矩阵是一个对称矩阵。这一步的输入是第一步的输出

代码片段如下:

这样得出的结果类似于这样:

 

第三步、矩阵相乘。就是用第一步的输出矩阵乘以第二步的输出矩阵,这一步颇为复杂,需要将第二步的输出矩阵缓存起来

话不多说,上代码

 

相关文章

Yarn(Yet Another Resource Negotiator)是一个资源调度平台,负责为运算程序如Spark、MapReduce分配资...
MapReduce是Hadoop核心三剑客之一,设计思想来源于谷歌三篇论文之一的《分布式计算模型》。作为一个分布...
HDFS(Hadoop Distributed File System)分布式文件存储系统,主要为各类分布式计算框架如Spark、MapRe...
HDFS(Hadoop Distributed File System)分布式文件存储系统,主要为各类分布式计算框架如Spark、MapRe...
笔者将分上下篇文章进行阐述Spark和MapReduce的对比,首篇侧重于'宏观'上的对比,更多的是笔者...