推荐系统实践

本文详细介绍了推荐系统,包括好推荐系统的定义、试验方法、评测指标、协同过滤算法(UserCF、ItemCF及其区别)、冷启动问题解决方案、利用用户标签和上下文信息的推荐策略,以及社交网络数据在推荐中的应用。重点探讨了各种推荐算法的特点和应用场景,旨在提升推荐的准确性和多样性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

一、综述

1、什么是好的推荐系统

2、推荐系统试验方法

3、评测指标

4 评测维度

二、协同过滤算法

1、基于邻域的算法

1.1 基于用户的协同过滤算法--UserCF

1.2 基于物品的协同过滤算法--ItemCF

1.3 userCF和ItemCF的区别

2、隐语义模型(LFM)

3、基于图的模型

三、冷启动问题

1、利用用户注册时填写的人口统计学信息给 用户提供粗粒度的个性化推荐

2、选择合适的物品启动用户的兴趣

3. 利用物品的内容信息

四、利用用户标签数据

1.算法:SimpleTagBased

 

2.如何解决数据稀疏性问题?

3.基于图的标签推荐算法simpleTagGraph

4.给用户推荐标签

五、利用上下文信息

1.时间上下文相关的itemCF算法--TItemCF

2.时间上下文相关的userCF算法--TUserCF

3.时间段图模型--SGM

4. 各种时间算法的比较 SGM ISGM USGM,TUserCF,userCF,TItemCF,itemCF,pop(最热门的)

5.利用地点上下文信息

--LARS-U

--LARS-T

六、利用社交网络数据

1.基于邻域的社会化推荐算法

2.信息流推荐

3.好友推荐

七.推荐系统实例


一、综述

1、什么是好的推荐系统

好的推荐系统 是能够让用户,内容提供方,和推荐系统的网站三方共赢的系统

首先要满足用户的需求,给用户推荐那些令他们感兴趣的东西(不仅能准确预测用户的行为,而且能够扩展用户的视野),其次要让各个内容提供方的东西都能被推荐给其他感兴趣的用户,最后能够让推荐系统本身收集到高质量的反馈,不断完善推荐的质量,提高网站的收入。

2、推荐系统试验方法

三种:按顺序

离线实验,用户调查、在线测试(AB测试)

首先,需要通过离线实验证明它在很多离线指标上优于现有的算法

然后,通过用户调查确定它的用户满意度不低于现有的算法

最后,通过在线的AB测试确定它在我们关心的指标上优于现有的算法

3、评测指标

(1)用户满意度

--调查问卷以及对在线系统用户行为数据的统计(用户停留时间,点击率,转化率)

(2)预测准确度

---评分预测RMSE,MAE

---topN推荐 准确率和召回率 PR曲线

topN推荐更符合实际的应用需求

(3)覆盖率

是内容提供商会关心的指标,描述一个推荐系统对物品长尾的发掘能力

两个指标:信息熵和gini系数

评测推荐系统是否具有马太效应的简单方法就是使用基尼系数

(4)多样性

要覆盖用户绝大多数的兴趣点

(5)新颖性

如果推荐结果中物品的平均热门程度较低,那么推荐结果就可能有比较高的新颖性

(6)惊喜度

推荐结果和用户的历史兴趣不相似,但却让用户决定满意

(7)信任度

首先需要增加推荐系统的透明度,主要办法是提供推荐解释

其次是考虑用户的社交网络信息,利用用户的好友信息给用户做推荐,并且用用户好友进行推荐解释

(8)实时性

首先,推荐系统需要实时的更新推荐列表来满足用户新的行为变化

其次,推荐系统需要能够将新加入系统的物品推荐给用户

(9)健壮性

要有抗击作弊的能力

方法:

设计推荐系统时使用代价比较高的用户行为

在使用数据前进行攻击检测,从而对数据进行清理

(10) 商业目标

需要考虑最终的商业目标,加快实现商业上的目标

 

离线实验的优化目标:

最大化预测准确度

使得 覆盖率>A 多样性>B 新颖性>C

4 评测维度

目的:知道一个算法在什么情况下性能最好

用户维度

物品维度

时间维度

二、协同过滤算法

基于用户行为的推荐算法成为协同过滤算法。如果引入物体内容或者用户的特征,这就不是协同过滤考虑的范畴了

协同过滤就是指用户可以齐心协力,通过不断地和网站互动,使得自己的推荐列表能够不断过滤掉自己不感兴趣的物品,从而越来越满足自己的需求

用户行为数据的存在形式:日志

用户行为在个性化推荐系统中一般分两种--显性反馈行为和隐形反馈行为

显性反馈行为能够明确表示用户对物品的喜好,如评分

隐形反馈行为:页面浏览行为,数据量庞大

实验设计:交叉验证法

评测指标:预测准确度(准确率和召回率),覆盖率,新颖度(流行度来衡量)

1、基于邻域的算法

1.1 基于用户的协同过滤算法--UserCF

思想:对于一个用户,找到和他有相似兴趣的其他用户,然后把那些用户喜欢的,而用户没有听说过的物品推荐给A

如何计算用户相似度:

用余弦相似度,购买行为的余弦相似度,即  购买的交集数量/ A购买数量*B购买数量 开根号

得到用户之间的兴趣相似度后,UserCF算法给用户推荐和他兴趣最相近的K个用户喜欢的物品

用户U对物品i的感兴趣程度:

p(u,i)=\sum_{v\epsilon S(u,K)\cap N(i)} w_{uv}r_{vi}

wui是用户u和用户v的兴趣相似度,rvi代表用户v对物品i的兴趣 此时rvi=1

K是userCF的一个重要参数,要调参,看看不同K值下的结果

但是上述余弦相似度的公式过于粗糙,两个用户对冷门物品采取过同样的行为更能说明他们兴趣的相似度。所以要对热门物品加以惩罚,得出User-IIF算法

w_{uv}= \frac{\sum_{i\epsilon N(u)\bigcap N(v)} \frac{1}{log(1+\left | N(i) \right |)}}{\sqrt{\left | N(u) \right | \left | N(v) \right |}}

相比于ItemCF, UserCF在目前的实际应用中使用的并不多

缺点:随着网站的用户数目越来越大,计算用户兴趣相似度的矩阵将越来越困难,其运算时间复杂度和空间复杂度的增长和用户数的增长近似平方关系. 而且无法提供推荐解释

1.2 基于物品的协同过滤算法--ItemCF

思想:给用户推荐那些和他们之前喜欢的物品相似的物品

如果计算物品的相似度:并不利用物品的内容属性计算物品之前的相似度,它主要通过分析用户的行为记录计算物品之间的相似度。物品A和物品B具有很大的相似度是因为喜欢物品A的用户大都喜欢物品B

是目前业界应用最多的算法

物品间相似度的计算公式:w_{ij}=\frac{ \left | N(i)\bigcap N(j) \right |}{\sqrt{\left | N(i) \right | \left | N(j) \right |}}

分子是同时 购买物品i和j 的数目

考虑用户活跃度对物品相似度的影响:活跃用户对物品相似度的贡献应该小于不活跃用户

修正物品相似度公式:

w_{ij}= \frac{\sum_{u\epsilon N(i)\bigcap N(j)} \frac{1}{log(1+\left | N(u) \right |)}}{\sqrt{\left | N(i) \right | \left | N(j) \right |}}

将上述算法计算做:ItemCF-IUF

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值