推荐系统实践读书笔记与思考

时间:2022-12-07 14:21:50

推荐系统评测

一个网站3各参与方,用户、网站、内容提供方,好的推荐系统目标就在增加用户与网站互动,提高网站收入(这是公司最关注的),所以在推荐系统中需要综合考虑三方的利益。

在进行推荐时要注重用户体验并且也要考虑相关商家的利益,最终能使得网站收入提升。

在推荐系统早期,预测准确度是推荐系统的重要指标,这个指标的好处就是比较容易通过离线计算来得到,这样方便对不同推荐算法的研究。

准确预测并不代表好的推荐,比如用户已经打算买某个item ,无论系统是否给他推荐,他都准备买,对于用户来说他觉得推荐不够新颖,对于服务提供商来说没有增加潜在消费者中的销量,从实际效果来说这是一个比较失败的推荐。为了全面评测三方利益,从不同角度提出了很多评价指标。

推荐系统中实验方法

1. 离线实验

离线实验步骤比较简单,通过日志数据获取用户的行为数据,并按照一定格式来生成数据集;将数据集按照一定规则切分成训练集与测试集;在训练集上训练模型,在测试集上进行验证,通过指定的评价指标进行算法效果的评估。

这个方法的主要缺点就是:无法获取商业上关注的指标,如点击率,PV,VU,转化率等。但是优点也是非常明显的:不需要实际系统中控制权、不需要真实线上用户的参与、速度快可以进行大量算法的测试工作。

2. 用户调查

如果需要准确评价一个算法需要上线测试,但是如果对算法不是很有把握的时候,上线测试有比较大的风险,所以上线前一般做一次用户调查测试。该方法最大优点就是获得用户主观感受的指标,相对在线测试风险低,缺点就是需要大量用户,而且用户选择等都有时很难模拟真实用户网站状态。

3. 在线实验

网站进行A/B test,该方法通过一定规则把用户随机分成几组,并对不同组用户采用不同的算法,通过统计不同组用户各种评价指标来比较不同的算法。该方法的优势就是可以公平获得不同算法实际线上的性能指标,包括商业上关注的指标。缺点就是周期比较长,必须长期实验才能得到可靠结果,该方法只会测试在离线实验和用户调查中表现优秀的算法。此外在实际系统中,大型网站的A/B 测试是个复杂系统工程。大型网站通常是前端与后端,中间经过了很多层,这些层由不同团队控制,而且可能都进行A/B 测试,所以需要搞清楚差异究竟是前端页面改进还是后端算法改进造成了,这其中就涉及到流量管控等问题。

评价指标

1. 用户满意度

用户满意度是推荐系统最重要指标。用户满意度在在线系统主要通过用户行为数据统计得来的,如果用户购买了推荐的商品就表示一定程度的满意,此外还有网站选择打分或者赞作为用户是否满意的途径。

2. 预测准确度

这个指标是非常多论文中用到的指标,一般使用均方误差RMSE和平均绝对误差MAE计算。

TopN推荐 的预测准确率通过准确率与召回率进行度量,TopN推荐更符合实际应用需求,预测用户是否会看某个电影应该比预测用户看了电影打多少分重要。

3. 覆盖率

覆盖率描述推荐系统中长尾发掘能力。最简单定义就是推荐系统能够推荐出来的item 占总的item的比例。信息论和经济学中有两个指标定义覆盖率,第一个就是熵第二个就是基尼系数。社会学中有一个著名的马太效应,即所谓强者更强,弱者更弱,如首页排行榜的商品就有马太效应,这也是为什么当年聚划算进行人工挑选商品时,商家行贿小二的原因,只要上了聚划算首页流量和销量将是巨大的。

4. 多样性

因为用户是一个多维的兴趣,推荐时需要能够覆盖用户不同兴趣领域。以前类似淘宝进行推荐就是一旦你买过某个商品,后面一直给你推那个商品非常相似的商品,这其实就是没有充分考虑到用户多样的兴趣维度。

5. 新颖性

新颖性推荐指的给用户推荐他们以前没有听过的物品

6. 其他指标

惊喜度、信任度、实时性、健壮性

用户行为数据

分为两类:显性反馈、隐性反馈

显性反馈只点赞、打分等,隐性反馈最有代表的就是页面浏览行为。

在互联网数据分布中最大的特点就是长尾效应,如淘宝中 商品点击看A又看B 小于10次pair 很多,协同过滤覆盖商品有限,大体只有10%,剩下90% 则需要通过模型预测共点击。

看了又看商品描述是相似商品,看了又买描述是搭配商品。

基于邻域的算法

基于用户的协同过滤算法

算法思路很简单,找到和目标用户兴趣相似的用户集合,找到这个集合中用户喜欢的,且目标用户没有听说过的物品推荐给目标用户
用户相似度计算中改进地方:
如果两个用户都买了某个热门商品并不能说明两者相似,如果两个用户购买了类似《数据挖掘导论》偏冷门商品则说明两个user兴趣比较类似,所以在计算相似性时需要对热门商品进行惩罚。

基于物品协同过滤算法
ItemCF主要通过分析用户行为记录计算物品之间相似度。该算法认为,物品A和物品B具有很大的相似度是因为喜欢物品A的用户大多也喜欢物品B。
物品相似性归一化
归一化好处不仅在于增加推荐的准确度,它可以提高推荐覆盖率和多样性。
如果是电影推荐,ItemCF算出相似度一般是纪录片之间相似度或者动画片之间相似度大于纪录片和动画片的相似度,但是纪录片之间相似度和动画片之间相似度却不一定相同,说白了也就是两者可能评分尺度差异,人们倾向于对纪录片评分比较严格,对动画片评分比较松,数字举例就是A类物品相似度为0.5  B类物品为0.8 ,一个用户喜欢5个A类物品和5个B类物品,不进行归一化则推荐都是B类物品,但是进行归一化后推荐两类物品数目就大致相当。
此外,对于两个不同类,什么样类相似度高? 一般来说热门类中物品相似度一般比较大,如果不归一化,推荐比较热门类中物品,而这些物品也是比较热门的,因此推荐的覆盖率比较低,进行归一化可以提高系统的覆盖率。


UserCF和ItemCF的综合比较
从两个算法原理我们可以发现,UserCF给用户推荐和他有共同兴趣爱好的用户喜欢的物品,而ItemCF给用户推荐那个和他之前喜欢物品类似的商品,从这个角度可以看到,UserCF推荐结果着重反映和用户兴趣类似的小群体热点,而ItemCF推荐着重维护用户历史兴趣。UserCF推荐更加社会化,反映了用户所在小型群体中物品的热门程度,而ItemCF推荐更加个性化,反映用户自己兴趣传承。

推荐系统实践读书笔记与思考