Apr 08, 2014  Categories in tutorial tagged with Mahout hadoop 协同过滤  Joe Jiang 前言:之前配置Mahout时测试过一个简单的推荐例子,当时是在Eclipse上运行的,由于集成插件的缘故,所以一切进行的都比较顺利,唯一不足的是那是单机运行的,没有急于分布式系统处理.所以基于测试分布式处理环境的目的,下午找了一个实例来运行,推荐系统原型是一个电影评分的系统. 一.问题描述 对于协同过滤(Collaborative Fil…
1.背景知识 在讲SVD++之前,我还是想先回到基于物品相似的协同过滤算法.这个算法基本思想是找出一个用户有过正反馈的物品的相似的物品来给其作为推荐.其公式为:…
[论文标题]List-wise learning to rank with matrix factorization for collaborative filtering   (RecSys '10 recsys.ACM ) [论文作者] Yue ShiDelft University of Technology, Delft, Netherlands Martha LarsonDelft University of Technology, Delft, Netherlands Alan Ha…
隐语义模型(Latent factor model,以下简称LFM),是推荐系统领域上广泛使用的算法.它将矩阵分解应用于推荐算法推到了新的高度,在推荐算法历史上留下了光辉灿烂的一笔.本文将对 LFM 原理进行详细阐述,给出其基本算法原理.此外,还将介绍使得隐语义模型声名大噪的算法FunkSVD和在其基础上改进较为成功的BiasSVD.最后,对LFM进行一个较为全面的总结. 1. 矩阵分解应用于推荐算法要解决的问题 在推荐系统中,我们经常可能面临的场景是:现有大量用户和物品,以及少部分用户对少部分…
创建用户并加入授权 1,创建hadoop用户 sudo useradd -m hadoop -s /bin/bash 2,修改sudo的配置文件,位于/etc/sudoers,需要root权限才可以读写 找到root ALL=(ALL) ALL这一行,在后面再加上一行就可以了(不用引号): "username ALL=(ALL) ALL",将hadoop用户添加到sudo中 安装vim编辑器: sudo yum install vim 安装SSH.配置SSH无密码登陆 集群.单节点模式…
介绍: 推荐系统中最为主流与经典的技术之一是协同过滤技术(Collaborative Filtering),它是基于这样的假设:用户如果在过去对某些项目产生过兴趣,那么将来他很可能依然对其保持热忱.其中协同过滤技术又可根据是否采用了机器学习思想建模的不同划分为基于内存的协同过滤(Memory-based CF)与基于模型的协同过滤技术(Model-based CF).其中基于模型的协同过滤技术中尤为矩阵分解(Matrix Factorization)技术最为普遍和流行,因为它的可扩展性极好并且易…
  基于用户的最近邻算法(User-Based Neighbor Algorithms),是一种非概率性的协同过滤算法,也是推荐系统中最最古老,最著名的算法. 我们称那些兴趣相似的用户为邻居,如果用户n相似于用户u,我们就说n是u的一个邻居.起初算法,对于未知目标的预测是根据该用户的相似用户的评分作出预测的. 本文中运用的是MovieLens数据集,关于这个数据集的介绍可以参看http://www.grouplens.org/node/73 算法主要包括两个步骤: (1). 找到与用户兴趣相似的…
代码基本来自项亮的<推荐系统实践>,把书上的伪代码具体实现,还参考了https://www.douban.com/note/336280497/ 还可以加入对用户相似性的归一化操作,效果会更好. 数据集为MovieLens的10万条数据. 链接:MoiveLens #coding:utf-8 import random,math from operator import itemgetter class UserBasedCF: def __init__(self,trainDataFile=…
在矩阵分解在协同过滤推荐算法中的应用中,我们对矩阵分解在推荐算法中的应用原理做了总结,这里我们就从实践的角度来用Spark学习矩阵分解推荐算法. 1. Spark推荐算法概述 在Spark MLlib中,推荐算法这块只实现了基于矩阵分解的协同过滤推荐算法.而基于的算法是FunkSVD算法,即将m个用户和n个物品对应的评分矩阵M分解为两个低维的矩阵:$$M_{m \times n}=P_{m \times k}^TQ_{k \times n}$$ 其中k为分解成低维的维数,一般远比m和n小.如果大…
目录 1矩阵分解概述 1.1用在什么地方 1.2推荐的原理 2矩阵分解的原理 2.1目标函数 2.2 损失函数 2.3 通过梯度下降的方法求得结果 3 代码实现 参考地址: 贪心学院:https://github.com/GreedyAIAcademy/Machine-Learning 1矩阵分解概述 1.1用在什么地方 推荐系统:最著名的就那个烂大街的啤酒和尿布的故事,还有现在头条的投喂用户使用的也是推荐系统.就不多说了. 1.2推荐的原理 设,矩阵R代表3个用户对4部影片的评分,矩阵U和P是…