《推荐系统实践》第2章:协同过滤——基于用户行为分析的推荐算法


用户行为数据

就是日志,分为显性反馈行为和隐形反馈行为。一条日志包括:user id、item id、行为种类、上下文(时间地点)、行为权重、行为内容。

常用数据集

MovieLen数据集

用户行为分析

用户活跃度和物品流行度都遵循长尾分布Power Law)。
横坐标为流行度和活跃度,纵坐标为物品数和用户数。想象一下那个长尾分布的图。

一个结论:用户活跃度越高,越倾向于浏览冷门物品。

1. 协同过滤算法

基于邻域的方法——用户、物品

1.基于用户的协同过滤算法(UserCF)
用户A需要个性化推荐时,先找到与他有相似兴趣的用户,然后把那些用户喜欢的,A不知道的物品推荐给A。
算法步骤
1)找到和目标用户兴趣相似的用户集合;
2)找到这些集合中用户喜欢的,且没有听说过的物品推荐给目标用户。
这里的核心就是计算用户之间的相似度,推荐一篇讲相似度的文章

这里的场景是按照数据形式划分的,按照向量维度取值是否是布尔值来看,杰卡德相似度就只适合布尔值向量,余弦相似度弹性略大,适合两种向量。欧式距离度量的是绝对差异,余弦相似度度量的是方向差异,但是调整的余弦相似度则可以避免这个弱点。

书上的余弦相似度是用【两个用户有过正反馈的物品集合的交集/两者物品集合相乘开根号】。
具体先建立一个倒排表——物品-用户,方便计算;然后计算用户u的前k个兴趣最相似的用户,将他们对物品i的兴趣×与用户u的兴趣相似度,得到一个兴趣值,从而进行推荐。

改进算法User-IIF
基于直觉:两个用户对冷门物品采取过同样行为相似度更高。
改进:
w w = ∑ i ∈ N ( u ) ∩ N ( v ) 1 log ⁡ 1 + ∣ N ( i ) ∣ ∣ N ( u ) ∣ ∣ N ( v ) ∣ w_{w}=\frac{\sum_{i \in N(u) \cap N(v)} \frac{1}{\log 1+|N(i)|}}{\sqrt{|N(u)||N(v)|}} ww=N(u)N(v) iN(u)N(v)log1+N(i)1
该公式通过右上角新增项惩罚了用户u和v共同兴趣列表中热门物品对相似度的影响。
其中N(i)是对物品i有过行为的用户的数量,所以通过公式变换,数量多的热门物品所占有的权重就越低。这种改进是基于对余弦相似度的深刻理解的。
>>文献阅读
2.基于物品的协同过滤算法
基本思想:
算法步骤
1)计算物品之间的相似度;
2)根据物品的相似度和用户的历史行为给用户生成推荐列表。
物品相似度公式:
w i j = ∣ N ( i ) ∩ N ( j ) ∣ ∣ N ( i ) ∣ w_{i j}=\frac{|N(i) \cap N(j)|}{|N(i)|} wij=N(i)<

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值