5 ms·
won't modifying the rank by mixing in a time factor make comments with a good score move away from the top over time even if they still have a good score? while
by modernhermit 17y ago
won't modifying the rank by mixing in a time factor make comments with a good score move away from the top over time even if they still have a good score? while the math is trivial with your suggestion, it tends to be biased in favor of volume of upvotes (regardless of the ratio of upvote/downvote), then biased in favor of new comments (again, regardless of upvote/downvote relevance)? while this will solve sorting requirements for some applications, it's not really solving the problem that most comment voting systems have where volume of votes is rewarded over quality and/or newer comments are never positioned well enough to gain any traction over comments posted in the first hour. if you end up hacking your formulas a lot to fix these shortcomings wouldn't it be just as easy to say the problem is not trivial and then leverage the complicated but statistically sound formula suggested by the author?
- antirez 17y agoyes, I think your point is correct but what I don't like the concepts behind the reddit new formula, because I really think that 100 upvotes and 30 downvotes are really different than 10 upvotes and 3 downvotes. Also time should absolutely appear in the equation in my opinion in the kind of discussion site like reddit or HN, since new comments, if as good as old comments, should be able to go up. And in this latest trick there is in my opinion the best way to avoid stagnation leading to the same top comments being voted up and up again. I'll experiment a bit about this issue, since I'm very interested in this issues. I happen to run oknotiize.virgilio.it that's the main social news site in Italy, and while we have voting on comments we currently use a chronological sorting. The votes are just used to colour the background red or green. Now I want to add sorting so I'll try to design an algorithm having the following goals: a) time matters, so good old comments tend to go down, but this only happens in the first 24/48 hours, in the long run everything is much more ordered by score. b) the score of a comment is roughly up/down but it tends to get better with more votes. c) still much better a/b ratios tend to win against other comments having a lot of comments. For instance a 100 up and 50 down will win against a 10 up and 5 down in a strong way, but will be more or less the same score as a 15 up and 5 down. I'll post here my final algorithm.
- modernhermit 17y agobefore you go reinventing the wheel, here are the results from running your examples through the formula suggested by Evan Miller in the link... 10 up 10 down 0.327403766068315 50 up 50 down 0.418847795168265 100 up 0 down 0.973657278603792 70 up 30 down 0.620167865061336 2 up 1 down 0.253533865071156 10 up 20 down 0.210836926288844 and a few more to see some other interesting cases... 100 up 30 down 0.703333001615963 10 up 3 down 0.541934244292211 30 up 100 down 0.175849385303401 1 up 0 down 0.269865944074627 1 up 1 down 0.120866317496523 2 up 0 down 0.425030603165412 100 up 0 down 0.973657278603792 100 up 100 down 0.442235043128361 200 up 0 down 0.986652839030471 as you can see. as there are more votes cast, the confidence that this represents the ultimate ranking improves. with less votes, a high up/down ratio is good, but not as good as a high up/down ratio with more total votes (because there is more statistical confidence with more data points). finally below are the test cases that broke your initial implementation. 200 up 1800 down 0.0895005864992562 300 up 4200 down 0.0608069702294983 400 up 7600 down 0.0461419135745087