推荐系统三十六式
刑无刀
“贝壳找房”资深算法专家,8 年推荐系统工程师
43607 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 40 讲
开篇词 (1讲)
原理篇 · 深度学习 (2讲)
原理篇 · 其他应用算法 (3讲)
推荐系统三十六式
15
15
1.0x
00:00/00:00
登录|注册

21 | 构建一个科学的排行榜体系

电影点评网站为电影排行榜计算分数的公式
威尔逊区间估算物品的好评率
以好评比例作为核心来计算排行榜分数
国外某著名程序员问答网站对热门问题的热度计算公式
考虑用户投反对票的情形
考虑用户投票和用户弃权
牛顿冷却定律
Hacker News计算帖子的热度用到了时间因素
排行榜中的物品都有一定的温度,随着时间推移温度会下降
用户给物品贡献的行为看做是用户在投票
根据原理结合实际问题设计符合自己业务要求的排行榜公式
朴素的排行榜需要反映出热度的自然冷却,用户赞成和反对之不同,用户评价的平均水平
排行榜的意义重大,需要细心雕琢
考虑好评的平均程度
考虑三种投票
考虑时间因素
作为降级的推荐系统
老用户的兴趣发现方式
解决新用户冷启动问题的推荐策略
总结
排行榜算法
为什么要排行榜
构建一个科学的排行榜体系
参考文章

该思维导图由 AI 生成,仅供参考

前面的专栏文章中,我从最常见的内容推荐开始讲起,直到讲到了最复杂的深度学习在推荐系统中的应用原理,这些推荐算法都有一个特点:智能。
所谓智能,就是带有学习性质,能够和复杂的用户端形成互动,在互动过程中,算法参数得到更新和进化。
但是,智能这个高大上的词语,一定要以数据为前提的,我在专栏的第二篇文章中就和你透露过,推荐系统中有一个顽疾就是冷启动,冷启动就是没有数据,没有数据怎么和用户玩呢?
一个新用户来了,什么数据都还没有,推荐系统对其一无所知。这时候,你就需要一个排行榜了。

为什么要排行榜

排行榜,又名热门榜,听上去似乎是一个很常见的东西,原来它也算是推荐算法的一员?是的,它不但是,并且非常重要,而且其中也有不少的学问。
那么说排行榜到底有哪些用处呢?
排行榜可以作为解决新用户冷启动问题的推荐策略。这个不难理解,当一个新用户刚注册时,可以把最近产品中热门的物品推荐给他。
排行榜可以作为老用户的兴趣发现方式。即使是老用户,也可以在享受个性化推荐的同时去浏览热门的物品,从中看看哪些感兴趣,哪些不感兴趣,这些行为都是补充或者更新用户兴趣的数据来源。
排行榜本身就是一个降级的推荐系统。推荐系统本身是一个软件,因此也会有出现问题的时候,也会有推荐不出来的时候,这个时候考虑到服务的可用性,用排行榜作为一种兜底策略,可以避免推荐位开天窗。
今天,我就和你聊聊如何根据自己的产品特点构建一个合理的排行榜。

排行榜算法

最简单的排行榜,就是直接统计某种指标,按照大小去排序。在社交网站上,按照点赞数、转发数、评论数去排序,这是一种最常见、最朴素的排行榜。
类似的做法还有,在电商网站上按照销量去排序。
这样的做法也算是推荐算法?当然我确实很难说它不是,因为确实简单,容易上线运行,但我只能说这样做不靠谱,不靠谱的原因在于以下的几个问题。
非常容易被攻击,也就是被刷榜;
马太效应一直存在,除非强制替换,否则一些破了纪录的物品会一直占据在榜单中;
不能反映出排行榜随着时间的变化,这一点和马太效应有关。
既然朴素的排行榜有这些弊端,那么就针对他们来一一设计应对措施。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

构建科学的排行榜体系对于推荐系统至关重要。本文介绍了三种排行榜算法设计,强调了考虑时间因素和多种投票的重要性。其中,时间因素的考虑可以通过热度计算公式和牛顿冷却定律来实现,而对于存在赞成和反对票的情况,可以采用复杂的计算公式来综合考量问题的浏览量、回答量、质量分数等因素。这些算法设计能够更科学地反映物品的热度和受欢迎程度,避免了朴素排行榜的弊端,如易被攻击、马太效应和不能反映时间变化等问题。另外,文章还介绍了好评率的计算公式,如威尔逊区间和贝叶斯平均,以及它们在排行榜中的应用。最后,文章提出了一个问题,即如何改进排行榜公式以防止水军刷榜,引发读者思考。总的来说,构建科学的排行榜体系需要综合考虑用户行为、时间因素和多种投票情况,以实现更精准的推荐和排名效果。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《推荐系统三十六式》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • 上个纪元的赵天师
    反复看了几遍,我觉得每一章都非常有启发

    作者回复: 那就多多分享。

    2019-03-20
    1
  • 林彦
    对于最后一个排行榜的水军刷榜问题我考虑到的因素有: 1. 单位时间的有效单个物品评论数不能偏离整个网站物品新发布之后同期的评论数太多; 2. 评分高峰期之后随时间的衰减幅度不会太快; 3. 参与评分的用户之前长期评分的数量(单位时间多次评分只算1次)越多,对权重的影响越大; 4. 像以前其他文章介绍的考虑评分和用户评分均值的差距; 5. 考虑评分地址的IP地址,其他设备标识是否重复,是否有有效身份标识,是否有有效付费(这部分用户如果比例太低会被作弊者利用)
    2018-04-21
    22
  • 🐱您的好友William🐱
    防止水军刷榜,就要观察水军的特征,其实不难发现,水军都是新注册帐号且只有一个评价或者两个评价,所以在贝叶斯平均的公式中把R换成用户加权平均,就是之前评分评得越多的用户说话越有分量,说话越少的用户意见越没有参考价值~ 这个对于水军有效,但是对于脑残粉是无效的,那么对于脑残粉,老师在“看了又看”那篇博客中说物品中心化可以实现,但是这个是针对于计算关系矩阵的。 (以下我个人的想法,轻喷),其实正常没有脑残粉的评分,都是符合某些特定的分布,这个是可以人工专家engineer出来的,只要评分足够多,那么基本上都是会符合这些特定分布的。所以我们可以使用Wasserstein metric或者KL-divergence,从用户评分得出一个分布和我们专家得出来的分布进行比对,两个分布差距越大就说明这个评分越不正常。(就比如现实中评分3分左右的电影的分布很有可能就像高斯分布一样,那么有一个平均分为3分的电影,5分评分人超级多,1分的也超级多,明显就不正常,脑残粉刷5分,吃瓜群众1分给烂片这样,两个分布的“距离”就会很大。)。把这个“距离”也加到最终评分里面去作为权重就好了!
    2018-10-09
    1
    12
  • shangqiu86
    这章都可以应用到我目前的推荐项目中去,目前负责三个坑位,一个是问答,一个是ugc推荐,一个是资讯推荐,谢谢老师的分享,学习了
    2019-05-05
    4
  • 潘腾
    写的挺好,受益匪浅
    2020-03-28
  • 刘大猫
    干活满满的一章 衰减这个东西在确定种子集的时候也能用
    2018-04-20
  • JOJOe
    请问有无源码进行学习呢?
    2018-04-20
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部