CB、CF

一、CB算法

(Content-based Recommendations)基于内容的推荐。

1.引入item属性

根据物品的属性进行推荐

a.搜索:“笔记本电脑”,

b.拆分(如jieba):笔记本+电脑

c.推荐:笔记作业本 台式电脑

2.引入user属性

引入了用户行为(基于历史行为)

a.用户第一天浏览了猫咪,第二天浏览猫抓板,第三天浏览猫粮

b.分析用户的浏览行为——用户养猫了

c.推荐——猫砂

如果是itme属性,当用户第三天浏览时,就会推荐A牌猫粮,B牌猫粮

3.计算

3.0数据准备

itemid name
101 苹果笔记本电脑
102 新冠性病毒

3.1将name进行分词

以jieba分词为例,将一句话分解成单个词语及权重

token itemid score
苹果 101 4.759
笔记本电脑 101 3.767
新冠性 102 5.977
病毒 102 3.709

4.优缺点

item user
优点 1.提升推荐结果的相关性2.结果可解释3.推荐结果容易被用户感知 1.用户模型刻画用户需求2.推荐形式具有个性化3.结果可解释
缺点 1.无个性化2.依赖于对item的深度分析 1.推荐精度低2.马太效应3.覆盖率低(行为稀疏)

二、CF算法

(Collaborative Filtering Recommendations)协同过滤

1.User based

基于用户的协同过滤(User based Collaborative Filtering)

2.Item based

基于物品的协同过滤(Item based Collaborative Filtering)

3.计算

用户id userid 物品id itemid 评分 score
1 101 5
1 102 3
2 101 4
2 102 2

3.1归一化UI矩阵

将原来的得分进行归一化操作,重新输出userid, itemid, score_new

a.获取到同一个itemid的所有score,求平方和

itemid score score平方和
101 5,4 52+42=41
102 3,2 32+22=13

b.将各分数进行归一化

用户id userid 物品id itemid 新评分 score_new(四舍五入)
1 101 5/√41=0.78
1 102 3/√13=0.83
2 101 4/√41=0.62
2 102 2/√13=0.55

3.2相似度计算

a.匹配相似度,基于各用户对各物品打分

userid itemid_itemid 匹配相似度
1 101_102 0.78*0.83=0.6474
1 102_101 0.83*0.78=0.6474
2 101_102 0.62*0.55=0.341
2 102_101 0.55*0.62=0.341

b.计算相似度

将所有itemA_itemB的分数相加

itemid_itemid 匹配相似度
101_102 0.6474+0.341=0.9884
102_101 0.6474+0.341=0.9884

CB、CF区别

CB会进行关键字的提取,item会根据内容进行推荐

CF基于用户浏览行为

CB CF
数据源 提取关键字 基于浏览行为
计算 内容属性计算相似度 分析用户行为计算相似度
例子 之前买过《高等数学1》,可能推荐《高等数学2》 之前浏览过金鱼,可能推荐乌龟

相似度计算

CB、CF