Can someone explain to me why on earth they would do this? It just seems like they're throwing variables in a pot and coming up with ways to use them at that point.
Can someone explain to me why on earth they would do this? It just seems like they're throwing variables in a pot and coming up with ways to use them at that point.
The number of votes compared to the age is important, but this isn't normalised compared to the current vote rate. There's a significant fluctuation in the number of people on reddit at different times of the day, so when you submit can be important.
The amix link above didn't load for me today, but I like this scienceblogs post on the algorithm.[1]
edit
It should also be noted that since reddit is open source, you can always dig right in! [2]
[1] http://scienceblogs.com/builtonfacts/2013/01/16/the-mathemat...
[2] https://github.com/reddit/reddit/blob/master/r2/r2/lib/db/_s...
I believe you're referring to the 'hot' algorithm which is meant to take velocity into account. Velocity tries to abstract away contextual factors like subreddit activity, number of votes, etc. and represent how quickly, relative to number of participants, a post is 'rising'.
The 'top' algorithm, however, is purely a factor of total vote (up - down) + time.
cpdef double _hot(long ups, long downs, double date):
"""The hot formula. Should match the equivalent function in postgres."""
s = score(ups, downs)
order = log10(max(abs(s), 1))
if s > 0:
sign = 1
elif s < 0:
sign = -1
else:
sign = 0
seconds = date - 1134028003
return round(sign * order + seconds / 45000, 7)
here's the function in question, so yes a newer post with fewer votes than a minutes older post will remain on top.[0] http://amix.dk/blog/post/19588
[1] http://www.outofscope.com/reddits-empire-no-longer-founded-o...