kizyahaha / MSB_website_design

0 stars 0 forks source link

In what order are we displaying the contenders? #71

Closed kizyahaha closed 9 years ago

kizyahaha commented 9 years ago

By power? By age? By power/age? By number of upvotes? By upvotes/views? Have user options to order them in different ways?

I think ideally, we'd want a random element in there somehow to make sure every rant has an equal opportunity of being seen and rising to the top. The issue with randomness, however, is that it breaks consistency. We'd have to seed the randomness with the user's id or something so at least THEY always see the same order. But then the issue arises, how do we order contenders for people who aren't logged in? We don't have to worry about bias because you have to log in to vote or apply items, but how annoying will it be to see a rant at 7, decide "hey I want to log in and vote for this", then log in and can't find it because it's now rant 7,265.

kizyahaha commented 9 years ago

Keep in mind how the ordering would affect the potential gambling system. If they're ordered by power, that makes things difficult for a fair gambling system.

kizyahaha commented 9 years ago

I think we want to induce some kind of bias based on power. I mean, that is what people want. They want to see the best stuff. So if we're showing them crappy content, what is their incentive to stay? So we can't completely randomize the ordering.

Another fear is that if we make the ordering too randomized, what if we end up with an essential 10,000 way tie? Maybe we actually WANT to induce some kind of front page bias and allow some rants to achieve runaway growth just to separate from the pack.

kizyahaha commented 9 years ago

Even if we come up with some clever way to randomly order but with a bias toward power, we're still introducing a front page bias, but now, instead of choosing the most powerful to benefit, we're choosing at random.

This would make me lean toward an order which is somehow seeded with the user id.

kizyahaha commented 9 years ago

I was playing around with different techniques for ordering randomly with a bias toward power. The hardest part is finding a way to make it probable for a very powerful rant to be on the first page, but still have it be possible that the weakest rant can also be on the front page. The best distribution I could see is lognormal where the skew of the data is in (0,1] determined by the rant's relative power = (rant's power) / (max power of contenders). Each rant would then be assigned a random number seeded with user ID (+ rant ID?) from this distribution and we'd sort the order based on these numbers. I attached a few images showing relative powers of 0.01, 0.25, 0.5, 0.75, and 1. The issue with this technique however, is that it's computationally expensive. I think too much so to compute these numbers on the fly every time we want to sort contenders. So the best way I can see to do it is to discretize the possible relative powers and precompute these distributions and store them. But you're the computer scientist so thoughts? lognormal dist 01 lognormal dist 25 lognormal dist 5 lognormal dist 75 lognormal dist 1

kizyahaha commented 9 years ago

Another thought - if we random sort with bias toward power, the order would have to be basically static for a given user. We shouldn't expect to see rants rising and falling through the contender list. What would they be rising and falling in regards to? This brings up a lot of questions and makes me doubt the entire random sort strategy. Which sucks because I like the concept.

kizyahaha commented 9 years ago

What are your thoughts on just ordering by power, but having one or two or three "random slots" per page? This way we have the familiar and desired sorting by power with rants rising and falling, but we still provide lower powered rants a chance to be seen and crack into the top. I imagine it would look something like this:

1, 2, 3, 4, 5, random, 6, 7, 8, 9, 10, random, etc...

We could hide them in the list so no one is the wiser or we can even call them out. Something like a slightly different background color. That might even be preferable so users know that they should expect those to change with each page refresh. The other benefit of this whole concept is there wouldn't be any need to do anything like seeding by user ID or anything too crazy. Everyone would see the same core ordering and the random slots would just be random for everyone. It might even open the door for some more gamification items to influence your rant's probability of being chosen for these slots.

kizyahaha commented 9 years ago

Yes, do the last thing. Sprinkle random. Regenerate the random rant if it is naturally on the page.