How Reddit ranking algorithms work
amix.dk
amix.dk
(As an aside, I obviously wouldn't be complaining about this if I had actually tried to spam reddit, my few submissions to date match the typical fare there)
Once the spam filter 'hates' you (as they put it) then subsequent submissions are 'ghosted' in the sense that you see them, but they don't appear in the /new section of the subreddit. Assuming you get wind of this (no downvotes, no comments, nothing) then you get to message the moderators, who may or may not respond in good time and restore your submission. By that time your obvious reaction is to delete and re-submit (because by now the post has drifted down the submission sort order), which apparently makes the spam filter hate you even more.
The problem I have with this is that by no fault of my own I ended up submitting things that were flagged as spam and hidden from view without any indication to me. You can see your posts, but no one else can. This might be a clever solution to deal with systemic spammers, but it's really annoying to normal users like me.
Karma games are fun and internet drama is lame of course; I don't lose sleep over this. But it's unfair to people who want to share something with the community. Of course you see reposts of lame memes that hit the front page and wonder why the picture of your cute hedgehog submitted in good faith ends up in the spam void.
There's supposed to be a user flag that tells the filter you're an approved submitter for a given subreddit; good luck getting that, I guess. So ultimately this makes me not want to submit anything. Right now reddit might not care about that because it has such a large user base, but I would remind them that Slashdot and Digg also thought they were invincible once.
Ghosting really, really sucks for legitimate users. Craigslist does the same thing, and normal people are devastated when they realize they've been judged/victimized by a computer somewhere with no appeal.
Downvotes remove 2 reputation from the post owner.
Downvotes on answers remove 1 reputation from you, the voter.
Downvotes on questions are free.
You can vote 30 times per UTC day. You get an additional 10 votes on questions only.
On Reddit, people just tend to downvote when they don't agree with something. That's really it. The only times that I've downvoted posts have been when it's a repost from recent, and on comments I only downvote if it's something that's hateful or doesn't contribute to discussion.1) The post is something I personally disagree with.
2) The post was written by a moron (for various definitions of the word moron).
What I wish is that someone (smarter than myself) could come up with a way to reliably determine the motive behind a downvote. I know that's no simple task. But I actually want posts that are slightly more controversial to rank higher than posts which don't generate a lot of downvotes, simply because I'm more interested in reading something thought-provoking than checking out the latest batch of meme-gen.
Basically I want comment rankings to look like this:
a) Lots of downvotes, few upvotes == total asshole. Maybe racist, maybe a general troll, but I want this ranked at the rock bottom.
b) An equal number of upvotes vs. downvotes == flamebait. I'm not interested in the latest holy wars, so we call this the next lowest in rankings.
c) Lots of upvotes, few downvotes == uninteresting. Rank it lower.
d) The ratio upvotes/downvotes is greater than 1, but less than some finite number N. These are the stories I want to read.
I want a ranking system that works something like the above, albeit with more finesse (e.g. perhaps we swap the ranking position of b and c). I'm just not interested in the latest round of adorable kitten pictures, and on HN, too much emphasis on the sheer number of upvotes manifests as groupthink. Also, I want the downvotes that are received by slightly controversial stories/comments (again, slightly controversial as opposed to PC-vs-Mac style flamebait) to have a smaller effect on the poster's karma, so that people will feel free to express disagreement on sites like reddit and HN.
But why do you downvote controversial stuff then? Why not give upvote for interesting postings and downvote for boring postings?
To add something new to the discussion I think HN should use Reddit's comment sorting algorithm (the confidence sort). It produces way better results than the current algorithm since it will rank the best comments highest regardless of their submission time. Would probably produces an even better comment section here on HN.
[1]: http://www.duo.uio.no/sok/work.html?WORKID=81971&lang=en
Also, I think the situation on HN is quite different from reddit because vote totals aren't shown here anymore. It's not clear that you necessarily want to use the same ranking system as on reddit, where current vote counts affect how people vote in the future.
https://github.com/reddit/reddit/blob/master/r2/r2/lib/db/_s...
It looks like they've tweaked the confidence sort algorithm a bit.
http://jsfiddle.net/6FVd3/embedded/result/ Source: http://jsfiddle.net/6FVd3/
One thing I noticed is that the stories aren't sorted by the algorithmic score in strict descending order. I recall some mentioned that reddit mangles the ups/downs score exposed via their API. Is this the reason?
This has a big impact for stories that get a lot of upvotes and
downvotes (e.g. controversial stories) as they will get a lower
ranking than stories that just get upvotes. This could explain why
kittens (and other non-controversial stories) rank so high :)
That actually seems backwards to me. A controversial story (that is, one that triggers a lot of votes both negative and positive) would do just fine so long as it continues to receive more upvotes than downvotes.That's not to say that downvotes don't put a damper on things -- if a story gets 80% upvotes and 20% downvotes it will get 75% the score it would without downvotes, which on a log scale is 87.5% as high a ranking.
But the point is that things are still roughly linear -- you only need to stay positive (> 50% upvotes) to accrue score, and you will do so linearly. Maybe I am underestimating how competitive scores are, and how important upvote rate is. Maybe a small linear damper on upvote rate has a large effect relative to other content? But it definitely seems like this system encourages interesting, controversial content over bland, well-received content.
Interesting here to also see their "controversy" algo
The way I did it was to update the post time with fractional of the difference of the old timestamp and current time, i.e:
post_time += (current_time - post_time)/10
That way, if the post is really old, voting gives a decent boost to it, but if it's more recent, it has negligible effect.http://blog.reddit.com/2009/10/reddits-new-comment-sorting-s...
I wonder if pg would consider implementing the confidence sort on HN. It's certainly been effective on reddit.
Thanks for a great link.
Maybe it's been too long a day. Can anyone explain?
Not sure if that's what it actually means or not, though.
Actually I'd rather have a consistent system that allowed fair comparison of stories irrespective of time, to allow for choosing the "top ten stories of the year" for example.