python推荐系统学习笔记(4)——基于协同过滤的个性化推荐算法实战---算法(上)

本文详细介绍了基于协同过滤的个性化推荐算法,包括概念理解、步骤过程、相似性度量公式以及评分预测。文章还探讨了算法存在的物品冷启动问题及其解决方案,并提出了考虑物品热门程度和用户活跃度、时间因素的优化方法。最后,作者提供了实际计算和Python代码实现的概述。
摘要由CSDN通过智能技术生成

python推荐系统学习笔记(4)——基于协同过滤的个性化推荐算法实战—算法(上)

一、概念理解

协同过滤简单来说是利用某兴趣相投、拥有共同经验之群体的喜好来推荐用户感兴趣的信息,个人通过合作的机制给予信息相当程度的回应(如评分)并记录下来以达到过滤的目的进而帮助别人筛选信息。
(1)usercf:根据用户的相似性,推荐与目标用户相似的用户所喜好的物品。适用于实时新闻,突发信息推荐。
(2) itemcf:根据物品的相似性,推荐目标用户所喜好的物品所相似的物品。适用于图书,电子商务,电影推荐。
该算法认为,物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都也喜欢物品B。

二、步骤过程

基于物品的协同过滤算法主要分为两步:
1、计算物品之间的相似度;
2、根据物品的相似度和用户的历史行为给用户生成推荐列表;

三、相似性度量公式
(1)基于评分的相似性度量公式:
在这里插入图片描述
sin(i,j)代表物品和 的相似度:u代表用户的集合,ru,i代表用户u对物品i的评分(ru,i同理),上划线r代表物品i或j的评分的平均值。
(2)基于行为(喜好)的相似性度量公式:
在这里插入图片描述
sij代表物品和的相似度:u(i)和u(j)代表含有物品i或者物品j行为的用户集合;分子表示i用品的用户行为和物品j的用户行为个数的绝对值;分母代表物品i的用户行为以及物品j的用户行为的数量的乘积的平方根。
在两种相似性度量公式中,基于评分的相似性度量公式更适用于含有用户评分数据的情景下,基于行为(喜好)的相似性度量公式多用于头条推荐以及减少计算量的情景下。
此外还有其它计算公式:(x和y分别代表每个物品的来自不同用户的评分)
(1)欧几里得(欧氏)距离:
在这里插入图片描述
(2)皮尔逊相关系数:
在这里插入图片描述
(3)Cosine(余弦)相似度:
在这里插入图片描述

四、评分预测公式

(1)基于评分的itemcf的评分预测公式:
在这里插入图片描述
代表用户 u 对物品 i的预测评分, n代表所有与物品i相似的物品个体,rui代表用户u 对物品n的评分,si,j代表物品i与物品n的相似度。
(2)基于喜好的的行为得分(喜好程度)预测公式:
在这里插入图片描述
i是能代表用户u 行为的物品; pu,j代表用户u对物品 j的喜好程度;sij,是物品i与 j的相似度; rui是 用户 u对物品i的行为得分度量。

存在的问题:

物品冷启动问题:当平台中物品数据较少或缺失时,无法精确计算物品相似度。

解决方法:
(1)文本分析,通过分析物品的介绍文本,计算相似度。
(2)主题模型,通过主题模型分析物品文本主题得出主题相似度
(3)打标签,对物品打标签求得相似度。
(4)推荐排行榜单。

五、算法的改进优化

(1)、考虑物品的热门程度和用户的活跃度
改进意义:认为活跃用户对物品相似度的贡献应该小于不活跃的用户,活跃用户应该被降低在相似度公式中的贡献度,如批发商用户会购置多项物品。
在这里插入图片描述
,其中|n(u)|表示用户产生过行为的物品的个数,用这种相似度计算itemcf的被记为itemcf-iuf。
用python代码表示如下:

def ItemSimilarity(train):
    # calculate co-rated users between items
  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值