基于CB的推荐算法

CB算法对于线上很好用,尤其新用户进来,直接给我推荐跟我正在浏览相似的物品(这个相似的物品可以基于内容的推荐,如果这个物品在item-item相似度矩阵里面的话,可以基于item_cf做一个推荐,如果不在就基于内容推荐)。冷启动,可以推一些热门的物品。

举个简单的小例子
用户u1喜欢的电影是A,B,C
用户u2喜欢的电影是A,C,E,F
用户u3喜欢的电影是B,D

我们需要解决的问题是:决定对u1是不是应该推荐F这部电影
基于内容的做法:要分析F的特征和u1所喜欢的A、B、C的特征,需要知道的信息是A(战争片),B(战争片),C(剧情片),如果F(战争片),那么F很大程度上可以推荐给u1,这是基于内容的做法,你需要对item进行特征建立和建模

itemid1里面有词:韩国 少女 少女时代
itemid2里面有词:少女 少女时代

然后把他们词放到一起,相当于user1里面有这5个词,然后把相同的词累加起来。
在这里插入图片描述

①item变化比较大:比如新闻推荐 头条,腾讯,微博,时效性要求特别强
这种情况下,itemCF,效果就很差,一般是用userCF解决
user1 user2,user3 user2刚看了哪几个新闻
②淘宝,京东,优酷,电影 电视剧,爱奇艺,音乐 item变化不是很快
itemCF,t+1生成,凌晨跑一次任务,生成item相似度矩阵。

两者都可以用CB,做辅助

对item_name切词,然后每一个切词做倒排索引。和之前user_cf相似,只不过那个是对item做倒排索引查找购买item的user,基于内容的是通过分词查找item歌曲。
然后item1,item2,item3他们之间两两算一下相似度。
在这里插入图片描述

有新用户进来,看看他在user-user矩阵中吗,有的话,就用userCF算法。没有就是冷启动问题,可以推荐给他热门音乐,看看用户自带什么属性,如果年龄,性别,省份都有:如果年龄段,则选出全部年龄在26-35之间的用户,然后找出这些用户他们听过的音乐,然后按听歌的时间上做降序排列,或者按听过的次数排序。如果性别:筛选女生的热门音乐,或者性别和年龄一起统计做一个pair对。如果按省份,有少数民族多的省份可能听民族音乐多一些,就给他推在这个省份比较热门的音乐。

然后用户在热门里听了一个音乐,这时就不给她推荐热门的了,可以基于物品的推荐(如果在你item-item相似矩阵中有你听的这个音乐)就可以按这种方式推。如果在这个矩阵中找不到,则按基于内容相似物品的方式推
在这里插入图片描述
比如就是这种数据结构:
29900101 (徐颢菲,1.97738375145)
29900100 (徐颢菲,5.97738375145),(借口,3.71339347781) 转化为:

徐颢菲 (29900100,5.97738375145),(29900101,1.97738375145)
借口 (29900100,3.71339347781)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值