例如 V2EX 右侧的 “今日热议主题” 是按每日回复数量来决定的,那么假设按照点击量来决定,如果我在每天 0 点重置这个榜单,那么可以想见是 0 点后第一个的点击会成为排行榜第一名,因为由于很多用户习惯从热门榜点击产看文章,所以会导致该文章因为上了热门榜点击数增多导致其被固定在了热门榜上。。。
如何解决这个问题呢?请教一个思路,谢谢!
如何解决这个问题呢?请教一个思路,谢谢!
1
xmgit Mar 18, 2017
按时间区间来,不要按点
|
2
alex321 Mar 18, 2017 via Android
最简单的是时间区段的点击量。
|
3
nikoo OP |
4
xmgit Mar 18, 2017
或许,你应该加入权重设计
先加文章发表时间先后的权重,其次用户点击权重也按照文章时间先后做一个线性递减,可以适当避免过去某一文章长时间霸占榜单 |
5
vincentqi Mar 18, 2017
去搜一下 reddit 的排名算法,会随着时间衰减的
|
6
lecher Mar 19, 2017
如果仅仅是按照点击率排序,不引入时间段的权重,这个不太容易解决。
我觉得基于目前只计算点击率的方案,不做大改动的情况下, 0 点重置榜单之后,可以考虑默认榜单取过去 12 个小时内新建的文章作为初始种子数据,按点击量排。这样可以在一定程度上面减少老文章的马太效应。 如果榜单不一定要填满,也可以考虑在 0 点重置榜单之后留空榜单,设置一个进入热门榜单的点击量门槛,比如重置后只有 1000 个点击以上才能进入热门榜单。这样可以解决初始化榜单的问题,只有在正常浏览中点击量达到真正热门标准的才会上榜。 |