• 海量推荐系统:mapreduce的方法


    1. Motivation


    2. MapReduce

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

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

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

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

    NewImage

    MapReduce数据流图

    NewImage

     

    3. scalable similarity-based neighborhood

    3.1 user-based 推荐

    NewImage

    说明:

    NewImage:user对商品的评分

    NewImage:得到了用户u与其他用户的相似度


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

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

    3.2 item-based推荐

    NewImage

    说明:

    NewImage

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

    因此,推荐系统的核心在于计算相似度矩阵NewImage

    3.3 scalable计算方法

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

    不足之处:

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

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

    改进的方法

    NewImage

    其中,NewImage为列向量,为用户u的打分向量

    具体方法:

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

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

    mapreduce计算框架

    NewImage

    参考文献:

    [1] Scalable Similarity-Based Neighborhood Methods with MapReduce 

  • 相关阅读:
    uva 1510
    ADN中国团队參加微软的Kinect全国大赛获得三等奖
    在 window7 window8下公布webService注意问题
    html5调用手机摄像头,实现拍照上传功能
    4、深入理解Bean
    恶补jquery(四)jquery中事件--冒泡
    html5css3杂记
    Core Data 和 sqlite3的性能对比【图】3gs,iPhone4,4s,5的性能测试。
    boost 的函数式编程库 Phoenix入门学习
    information_schema模式表介绍 processlist
  • 原文地址:https://www.cnblogs.com/zjgtan/p/3872907.html
Copyright © 2020-2023  润新知