#1 - 2022-9-11 10:21
心之刃 (??!)
具体来说,把每个用户的所有已评分条目进行排序,再重新赋分。比如某用户一共给了5个动画评分,分别是2、3、5、7、10,那么先将分数转换成排名(标准化到[0,1]区间):2->0.1、3->0.3、5->0.5、7->0.7、10->0.9,再将排名转换成新的分数:2->0.1->f(0.1)、3->0.3->f(0.3)、5->0.5->f(0.5)、7->0.7->f(0.7)、10->0.9->f(0.9),其中f是一个[0,1]->[0,10]的函数(最简单的,f(x)=x*10),然后再计算每个条目的平均分。
将分数转换成排名时会遇到多个条目分数相同的问题。一个朴素的解决办法是取该分数排名的平均值。比如某用户给了10个动画评分,5个1分、5个10分,那么排名就是5个0.25,5个0.75。
这种评分系统目测可以一定程度上解决不同用户评分分布不一致的问题(有的倾向打高分,有的倾向打低分),使最终的条目分更可信,不知道技术上能不能实现?
更新:
貌似我的思路跟这个回答是一致的。我对投票理论不熟,最高赞答案推荐的Schulze method貌似需要用户对所有条目给出一个排名,可能大概不适合bgm的排名系统。
将分数转换成排名时会遇到多个条目分数相同的问题。一个朴素的解决办法是取该分数排名的平均值。比如某用户给了10个动画评分,5个1分、5个10分,那么排名就是5个0.25,5个0.75。
这种评分系统目测可以一定程度上解决不同用户评分分布不一致的问题(有的倾向打高分,有的倾向打低分),使最终的条目分更可信,不知道技术上能不能实现?
更新:
貌似我的思路跟这个回答是一致的。我对投票理论不熟,最高赞答案推荐的Schulze method貌似需要用户对所有条目给出一个排名,可能大概不适合bgm的排名系统。
其实相对的解决方式就是只看自己关注的用户的评分,这个是已经实现的了。
如果是通过构造一个统一的f来表征的话,我觉得这个f很难构造,毕竟分差往往比rank更有参考性。
我没理解错的话,你的意思是用一个理想分布去重构所有用户的分布,再作平均统计(或者先统计再重构),那就绕不开“这个理想分布是什么”这一问题。
如果只是通过用户排序来做一个排序系统的话,那分布是什么就无关紧要了,不过那会损失过多的信息。