协同过滤算法(上)

算法原理:

协同推荐算法,作为众多推荐算法中的一种已经被广泛的应用。其主要分为2种,第一种就是基于用户的协同过滤,第二种就是基于物品的协同过滤。

所谓的itemBase推荐算法简单直白的描述就是:用户A喜欢物品X1,用户B喜欢物品X2,如果X1和X2相似则,将A之前喜欢过的物品推荐给B,或者B之前喜欢过的物品推荐给A。这种算法是完全依赖于用户的历史喜欢物品的;所谓的UserBase推荐算法直白地说就是:用户A喜欢物品X1,用户B喜欢物品X2,如果用户A和用户B相似则将物品X1推荐给用户B,将物品X2推荐给用户A。简单的示意图:



至于选择哪种要看自己的实际情况,如果用户量比物品种类多得多那么就采用ItemBase的协同过滤推荐算法,如果是用户量比物品种类少的多则采用UserBase的协同顾虑推荐算,这样选择的一个原因是为了让物品的相似度矩阵或者用户相似度矩阵或者共现矩阵的规模最小化。

推荐算法:

1.  建立物品的同现矩阵A,即统计两两物品同时出现的次数

数据格式:Item_id1:Item_id2        次数

2.  建立用户对物品的评分矩阵B,即每一个用户对某一物品的评分

数据格式:Item_id         user_id:preference

3.  推荐结果=物品的同现矩阵A * 用户对物品的评分矩阵B

数据格式:user_id           item_id,推荐分值

4. 过滤用户已评分的物品项

5.对推荐结果按推荐分值从高到低排序

Hadoop MapReduce程序分为四步:

第一步:读取原始数据,按用户ID分组,输出数据;

第二步:统计两两物品同时出现的次数(同一个人买2个物品的出现次数),输出文件数据;

第三步:生成用户评分矩阵和物品同现矩阵第一个mapper结果为用户评分矩阵。

  Item_id  user_id:preference

  第二个mapper生成物品同现矩阵

 Item_id1:Item_id2  次数

第四步:做矩阵乘法,推荐结果=物品的同现矩阵A*用户对物品的评分矩阵B

user_id  item_id ,推荐分值



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值