(This might seem like it's on the cusp of being relevant, but I think it's appropriate, especially given that voting on things applies to lots of webapps, not least the SO family)

I just discovered the following, from IMDB:

Weighted Average Ratings

IMDb publishes weighted vote averages rather than raw data averages. Various filters are applied to the raw data in order to eliminate and reduce attempts at 'vote stuffing' by individuals more interested in changing the current rating of a movie than giving their true opinion of it.

The exact methods we use will not be disclosed. This should ensure that the policy remains effective. The result is a more accurate vote average.

Does anyone have any idea what that means, in more detail? Or any references to relevant material?


While this might be more appropriate for a venue such as the Statistics SE, I have a couple thoughts drawn from nowhere but a guess:

  • users must be registered to vote
  • the longer a user has been registered the more 'reliable' they may be
  • the more active users are, the more 'reliable' they may be
  • the closer to the current rating a given user's rating is, the more weight it may have (if the average of 10000 users is 6.3/10, a vote of 1 would likely be out of the norm range)
  • the less outlier-like a given rating, the more weight it may be given
  • frequency of voting on a given title may alter weights, for example: 5000 votes in one day for a film that normally gets only a couple dozen may show signs of ballot-stuffing

added 20aug2010

  • comparisons to other ratings sources (like Yahoo's or Google's aggregation of user and professional movie reviews)

    • other ideas as I think of them :)

There is an article on Reddit's blog about a similar system they use.

  • I was about to bring up their "new" (it's old by Internet standards) algorithm but you beat me. – dgw Aug 3 '10 at 20:31

There are a few ways, including Quadratic Vote Buying which is the most efficient way of group decision making, but requires a cutoff time.

There is also Dissent which ensures "Dissent can guarantee that each user of an online forum gets exactly one bandwidth share, one vote, or one pseudonym, which other users can block in the event of misbehavior." However, it requires a closed system of a known number of participants. It doesn't work for open access systems that allow public registration.

Really, there is no known way to prevent Sybil attacks without resorting to heuristics and guessing.

Not the answer you're looking for? Browse other questions tagged or ask your own question.