第一部分
其中排行榜算法,详见阮一峰的博客,这里大致罗列一下。
一、Delicious :按单位时间内的用户投票数排名
二、HackerNews:根据得票数自动计算分数
三、Reddit:赞成和反对票接近时效果不好
四、StackOverflow
五、牛顿冷却
六、Wilson 区间(解决小样本的准确性问题)
七、贝叶斯平均(借鉴了贝叶斯推断的思想,可以用来处理“冷启动”问题)
第二部分
先看看排行榜算法需要避免什么问题。
- 公平性,例如不能简单地按照 pv 或者评论数点赞数去排序,因为如果某个牛人不是大 V,他也写了一篇很好的文章,可能这篇文章不如某个大 V 的水文数据好。
- 鲁棒性,或者说反作弊性,例如某个大 V 找人刷某篇文章的浏览量或者评论数。所以算法需要能应对这些作弊的冲击。
- 时效性。发布时间较早的文章,积累的数据比新文章数据要好,所以需要根据时间进行分数的衰减。
- 热点性。比如突然爆发了什么事情,该类型的文章应该有自动进入排行榜的机会。
对文章打分,参与打分的指标有:
- 阅读数(pv)
- 点赞数和评论数(pros)
- 没用数(cons)
暂时先把没用数当做减分项。
网友评论