Collaborative Filtering

Paper链接:http://www.cs.umd.edu/~samir/498/Amazon-Recommendations.pdf
博客链接:http://www.xysay.com/amazon-item-to-item-collaborative-filtering-207.html

分布式处理

重编号

  • 功能是,为了避免数据倾斜,以及本来是string类型的id
  • 就是分桶,每个桶预设了默认的起始,比如1000000、2000000,依次自增

做归一化

  • 观察cos距离公式,其实就可以是向量各自除以它的模,再相乘,为了后面分布式的处理

分块分发

  • 为了在MR里实现,分块处理。比如分成四块,那算相似度,可以看成是下面的两个的相乘
    Collaborative Filtering_第1张图片
  • 其实上面的分块,对应的就是一个4*4的行列式,如下图,所以,在map阶段,分为“left”“right”两种类型,每份数据map多次,map到不同的多个reducer里面
    Collaborative Filtering_第2张图片
  • 然后,根据left right的标示,就知道该计算计算哪个了。
  • 最后,再做一次取top就行了。

你可能感兴趣的:(┾算法┾)