5 ms·
The real flawed reddit algorithm is "controversy". It's basically: SORT ABS(ups - downs) ASCENDING ...which means something with 1000 upvotes and 999 downvo
by raldi 13y ago
The real flawed reddit algorithm is "controversy". It's basically:
SORT ABS(ups - downs) ASCENDING
...which means something with 1000 upvotes and 999 downvotes will be considered less controversial than something with 2 upvotes and 2 downvotes.
A much better algorithm for controversy would be:
SORT MIN(ups, downs) DESCENDING
- recuter 13y agoHow many people use the different alternative ranking options do you, err, reckon, if you had to guess? I figure all the different options to slice and dice are fun for information junkies but most users won't bother or even know about them.
- raldi 13y agoI answered that over here: http://www.reddit.com/r/programming/comments/1si31j/reddits_empire_is_founded_on_a_flawed_algorithm/cdy26bf http://www.reddit.com/r/programming/comments/1si31j/reddits_...
- philh 13y agoI'm confused, because as far as I can tell you didn't answer that at all.
- raldi 13y agoThe question (both here and above the reddit comment I linked to) was effectively, "Isn't it pointless to spend time working on the controversy sort, because very few redditors ever sort by it?", and my reply is effectively, "No, it isn't pointless, because if it worked well, it could be used to surface controversial posts on the default view."
- prawks 13y agoAfter thinking about it a bit, I this I disagree. Your fixed algorithm will change the meaning of controversy to depend too much on the number of votes (popularity), and too little on the fact that there is an even debate on either side of the article's subject. A post split 500/500 is certainly more controversial than one with 5000/750, the latter has just been seen by more people.
- raldi 13y agoI didn't say my algorithm was perfect; just better. Take a look at the current page to see how awful the current algorithm is: http://www.reddit.com/r/all/controversial http://www.reddit.com/r/all/controversial
- Semaphor 13y agoI agree, sorting by controversial is mostly useless. Instead of controversial posts you get articles/comments nearly no one cares about
- evacuationdrill 13y agoHaha, and the perfect example is the top controversial of all time: "Can reddit keep this post at equilibrium?" http://www.reddit.com/r/reddit.com/comments/e3eoj/can_reddit_keep_this_post_at_equilibrium/ http://www.reddit.com/r/reddit.com/comments/e3eoj/can_reddit...
- rm999 13y agoAm I looking at the wrong code? I see SORT (ups + downs) / max(1, ABS(ups - downs)) which would give a way higher score to the 1000/999 case than 2/2 - 1999 vs 4. https://github.com/reddit/reddit/blob/master/r2/r2/lib/db/_sorts.pyx https://github.com/reddit/reddit/blob/master/r2/r2/lib/db/_s...
- raldi 13y agoHmm, perhaps I slightly misremember, but even that algorithm still scores +2/-2 as more controversial (result=4) than +1000/-500 (result=3).
- icedog 13y agoAnd that's right. It's a controversy measure without taking in consideration popularity. That can be applied to the final score separately...
- deleted 13y ago[deleted]
- sesqu 13y agoEven better would be to sort by deviance: SORT SQRT(ups*downs)/MAX(ups+downs,1) ASCENDING
- philsnow 13y agoWhat ? Take a moment to convince yourself that sorting by sqrt(f(up,down)) will produce the same ranking as sorting by just f(up,down) (provided that f(up,down) is non-negative, as this particular function is ) Consider a set of points in the X/Y plane. If you want to find the one closest to the origin, you don't have to find min(sqrt(x^2+y^2)), only min(x^2+y^2), which is much cheaper.
- sesqu 13y agoYou're ignoring the divisor. For example, √(2·3)÷(2+3) < √(2·2)÷(2+2) but (2·3)÷(2+3) > (2·2)÷(2+2).
- deleted 13y ago[deleted]