大家觉得我这种简单的排序方法合不合适?

2018-08-08 08:52:07 +08:00
 alwayshere

一个图片网站,需要将最好看的图片排在前面以吸引用户,每张图片都有两个字段:浏览数和下载数,毫无疑问浏览数越高,图片越好看;下载数越高,图片也越好看,那么问题来了,怎样将浏览数最高同时下载数越高的图片排在前面,也就是说怎样权衡二者的关系?

我目前想的是,将所有图片的浏览数之和除以所有图片的下载数之和,这样得到一个大致比例,比如 10:1,也就是说每张图片平均浏览 10 次就有 1 次下载,那么,我就将所有图片的下载数×10+浏览数,得到的这个数值从大到小排列,是不是就是“最好看的图片降序排列”?

还有没有更好的排序方法?

3641 次点击
所在节点    程序员
22 条回复
daozhihun
2018-08-08 08:57:01 +08:00
光按用户喜好度这样排序没问题,顶多调整一下权重。不过要兼顾新图片,最好给新图片额外的权重使首页能随机出现一些,不然在前面的永远都是那些老图片,新图片用户就很难看见了。
wwg1994
2018-08-08 08:57:25 +08:00
一个图片浏览次数很少,但下载率很高的情况呢?比如浏览次数 10,下载次数 6~8
sikariba
2018-08-08 09:03:09 +08:00
对于老图片,可以像 v2 这样搞一个下沉因子?
psychoo
2018-08-08 09:04:26 +08:00
我觉得 喜欢程度=图片的下载数*x+浏览数,x ( 0<x<+∞)的大小可以根据总浏览数(网站受欢迎程度)或者两个比较相似的图片(即同一类型且彼此下载数和彼此浏览数相近的图片)采用不同 x 的值对比进行动态调整

此外,可以学抖音的做法,中间穿插一些新的图片,保持整个网站的活力
yulitian888
2018-08-08 09:05:53 +08:00
难道不是保持新鲜感,随机展示吗?而且只计算下载量和点击量,还有可能引起刷榜作弊。
定时,比如一个星期做一次权重计算,得出一个范围,比如展示数量 20 张的话,就弄四五百张的做橱窗图片池,每次(这样新鲜感比较高),或者每天(这样可以用缓存)随机展示其中 20 张。
PulpFunction
2018-08-08 09:07:26 +08:00
浏览+下载数 越大越靠前就完事了
PulpFunction
2018-08-08 09:10:47 +08:00
人们往往也只看第一页的东西,保持新鲜还是得更新内容,旧的东西不能太多,你参考某 hub,hotest 目录下也是在更新,就看不到前几天的热门
我觉得就是今天的观看下载数目 作为明天的首页显示一下
Yafeng043
2018-08-08 09:15:35 +08:00
个人觉得不太合适。需要对浏览量和下载量分别排序,然后记下分别的序号,对序号进行加权平均,直接算数平均也好。
ebingtel
2018-08-08 09:24:33 +08:00
应该加上时间因子,新的应该展示出来
x7395759
2018-08-08 09:25:13 +08:00
算法题呀哈哈哈
tanglijun
2018-08-08 09:27:51 +08:00
从 seo 角度来讲,还是随机展现好
annielong
2018-08-08 09:32:22 +08:00
加时间因素,单位时间内下载和浏览量显示,或者干脆单独加一个模块,独立显示下载和浏览量排行,
zarte
2018-08-08 09:33:06 +08:00
分个热门与最新,热门用来吸引新人。
Bobc
2018-08-08 09:42:13 +08:00
这没什么标准答案。。。我赞同 1 楼的观点
enenaaa
2018-08-08 10:02:24 +08:00
可以参看阮一峰的 基于用户投票的排名算法 系列
http://www.ruanyifeng.com/blog/2012/02/ranking_algorithm_hacker_news.html
jianpanxia
2018-08-08 10:20:15 +08:00
你这样是会失去大量老用户的。
grayon
2018-08-08 10:58:00 +08:00
下载数 /浏览数
kangkang
2018-08-08 11:03:25 +08:00
浏览 /下载+投票机制+按时间降权
bilibilifi
2018-08-08 14:30:03 +08:00
按 mahalanobis distance 排. 假设数据是正态分布的话很管用,
alwayshere
2018-08-08 15:52:56 +08:00
@bilibilifi 第一次听说这个,能详细解释下吗?谢谢

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/477805

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX