Difference between revisions of "YTMND:Weighted Voting"

From YTMND
Jump to: navigation, search
m (IN ACTION: minor typo)
Line 388: Line 388:
  
 
:Max, no matter what you do, I recommend you keep it at least somewhat secret. And make a rule that would take down YTMNDs that encourage vote spamming. IMDB has a similar policy and it has worked well for them (otherwise movies like, well, Finding Forrester would have 10 stars and be at the top of the IMDB 250.) They are constantly evolving it. [[User:NickCatal|NickCatal]] 08:51, April 16, 2007 (CDT)
 
:Max, no matter what you do, I recommend you keep it at least somewhat secret. And make a rule that would take down YTMNDs that encourage vote spamming. IMDB has a similar policy and it has worked well for them (otherwise movies like, well, Finding Forrester would have 10 stars and be at the top of the IMDB 250.) They are constantly evolving it. [[User:NickCatal|NickCatal]] 08:51, April 16, 2007 (CDT)
 +
 +
 +
=[[User:Mtown|Mtown]]'s idea: Stamps of Approval=
 +
*Idea may not actually be good
 +
 +
I'm horrible at Wiki and not sure how anything works, so this may end up looking like crap.
 +
 +
== General Idea ==
 +
 +
My idea is to give seasoned active members of YTMND (6 months since the creation of their first site with a 2.5 rating or higher) a "Stamp of Approval" option for sites. You would get only so many "approval stamps" per week, I'm thinking 5 for users who have been here 6-12 months, 7 for users 1-2 years, and 10 for uses who have been around for more then 2 years.
 +
 +
== How it Works ==
 +
 +
The Stamp of Approval will erase the lowest vote that site has gotten. That means if somebody posts a really good site (lets say it's about legend of zelda) and after a few votes somebody 1's it saying "I hate everything Zelda-related" and it gets kicked off Up and Comming, somebody could give it a Stamp of Approval to get rid of the 1. The comment the guy made would still be there, but you could make a little green "STAMPED" graphic to go over that person's rating, letting everybody know that his downvote no longer counts. (The person who stamped it should also get an added graphic, like a green stamp after their comment if they leave one, kind of like how people who add a site to their favorites get noticed with the "FAV" over their score). Or instead of that, maybe something that says "This site was APPROVED by (stamper's name)"
 +
 +
You could even go as far as to giving the stamper the option to choose which person he wants to stamp (like after you click the "stamp" button, it shows a list of all the people who 1'd the site, and you can chose one to stamp). This has no real purpose, but it would be fun. You could also only Approval Stamp a site 1 time, so you couldn't get a buddy to repeadely stamp your site to get rid of downvotes.
 +
 +
Finally, the Stamp of Approval would incease the value of all votes on that site by 2%, and it would stack if more stamps are given (2% for 1 stamp, 4% for 2, 6% for 3, etc.) until a maximum of 20%. This means for a vote of 5 on a site with 1 stamp would actually be a vote of 5.1 and a site with 10 stamps would mean a 5 is valued at 6, while a 1 would be valued at 1.2 . You could tweek the exact values later, because I'm not exactly sure how this could be abused
 +
 +
 +
== Example Scenario ==
 +
Lets say 10 people all 5 a site, and one gives it a Stamp of Approval.  The site score would then be 5.1 .  If the 11th person gives the site a 4, the Stamp would cancel that vote out, since it is the lowest vote made on that site, and the site would still have a score of 5.1 .  If somebody came in and gave the site a vote of 1, the the Stamp would cancel out the 1, and the vote of 4 that the stamp previously had blocked will now be factored into the site score, making it a score of 5.007 (still rounded up to 5.1).
 +
 +
 +
== Stamp of Dispproval ==
 +
 +
In addition to this, I think people should get a Stamp of Dispproval, which works slightly differently. These would be given out much more carfully. I'd say 1 for people who have been here 6-12 months, 3 for people over a year, and 5 for those active here longer then 2 years.
 +
 +
The Stamp of Disproval would lower the value of all votes on that site by 2% and stack up to 20% (a vote of 1 with 10 disproval stamps would be a final vote of .8) In addition, each Dispproval Stamp will subtract the 3% of the votes an 3% of the views that used to calculate the "most voted/viewed this week" and "most voted/viewed all-time" statistics, to a maximum of 50%. It WILL NOT subtract the votes or views when viewing the site statistics, only when calculating where the site should stand in the rankings of most voted/viewed this week/all-time.
 +
 +
== Reasons for the  Stamp of Dispproval ==
 +
 +
Nobody wanted to see "How to Prank a Telemarketer" stay on the Most Viewed for like 2-3 months, and I didn't want to see it pass up "Blue Ball Machine" in most veiws all time, so this will help keep sites that Long-time YTMND'ers do not want to see off the most voted on/viewed. You could maybe add another section (not on the front page) called "Most Stamped" that shows sites that were given the most Approved and Dispproved stamps.
 +
 +
== Different options and Mod control ==
 +
 +
In peoples profile, you could also add a section called "stamps" which shows all the Stamps of Approval and Dispproval that person has given and to what sites. You could also give the mods the job to check people out who are using suspicious stamping behavior. For example, if somebody has used all of his stamps of Dispproval in the last 3 months to Dispprove only Kassius's sites, and routinely posts messages saying, "I hate Kassius.", you could have your mods take away somebody's Stamping privleges. The same goes if they ONLY use their stamps to Approve one person's sites. If this happens, you could have the mods send a message to the member, saying, "Stamping was originally intended to promote good YTMND sites, not to become someones individual stamping slave. Please use your stamps on other members worthy sites." If the member would still only stamp one other member's site, your mods could take away his stamping privleges for a while.
 +
 +
You could tweak everything later, but right now I'm just throwing you my basic idea. I'd like for Veteran YTMND members to have the ability to promote good sites and shove bad sites off the front page. You could deny some people the right to Stamp, such as blatent downvoters, people with no sites, or members who post the same message in every comment they make.
 +
 +
I think this would be the best method to add to YTMND, since it would be the simplest.  There would be no algorithms to screw with, and active YTMND'ers who just suck at making good sites will not be punished by having a low average site score (most suggested algorithms factor this in somehow).  Stamps of Approval would give veteran YTMNDers the ability to combat downvotes on good sites, along with increasing the overall vote value of these sites, while Stamps of Dispproval would give vetaran YTMND'ers the ability to keep sites they don't want (HTPAT, WoW sites) off of the front page.
 +
 +
== Possible Problems ==
 +
 +
Well, for one some sites may get a rating of over 5 stars.  You could get groups of people who conspire together to Stamp a certain site, but this can be countered by Stamps of Dispproval by other members.  Stamps of Dispproval would not be meant to downvote something to death, but would only be used to take something that most YTMND'ers hate but is getting a lot of attention (spammed on the WoW forums or googlebombed) off the front page.  Since Stamps of Approval would be limited per week (and there would be no stamp "rollover" week-to-week) and Stamps of Dispproval would be limited even more, it's not like people could use them as super-upvotes/downvotes all the time.
 +
 +
Please give feedback if you thing my idea needs some tweeking
 +
 +
[[User:Mtown|Mtown]] 10:55 AM, April 16, 2007 (EST)

Revision as of 09:54, April 16, 2007

Come up with a reasonable weighting algorithm that wont enrage half the site.

-Max

This is the place where we attempt to do just that.

Mewchu11's second algorithm

This one takes max's thoughts on the subject more to heart.

Theory in writing, watch this space


Pilcrow's algorithm

Site creation and site appreciation have only a tentative relationship to one another, and seniority and past success do not necessarily correlate to the ability to rate a site intelligently. An algorithm based on these will not necessarily improve the ratings, and it has a secondary effect of creating an elite.

If voting must be made more intelligent, make it intelligent by attacking the extremist voters. The strongest way to effect a site's rating is to 1 or 5 star it, but statistically, someone who is really participating in the community will rate sites throughout the spectrum. In fact, the MAJORITY of their votes should be 2-4 stars with only the very worst and very best sites getting 1 or 5 star ratings. So, track the voting history of people supplying the votes, the more their votes resemble a bell curve from 1 to 5, the more weight their votes get. Downvoters and upvoters will least resemble the bell curve and will therefore have their votes discounted the most.

For a second factor, give people higher ratings if in addition to rating a YTMND, they also included comments, as this gives the author further feedback on how to please their audience. That factor should carry significantly less weight than the bell curve factor however.

One could also add factor for other forms of community participation - such as forum posting, wiki posting, and site posting. These should be very small elements though, since one should not want to encourage people to pad any of those counts.

A forumula similar to 0.8 * Bell_Curve_Metric + 0.1*Comment_Frequency + 0.05*Forum_&_Wiki_Posts + 0.05*Sites_Submitted would stike me as about right.


Mewchu11's First algorithm

Personally I would love to see weighted voting take back YTMND from the NARV's but at the same time keep them happy. Therefore I am proud to unveil my version of the weighted algorithm. As is anything on a wiki, this page is open to editing. For the sake of logic, suggestions to edit this algorithm or any other should first be taken to the edit page. Also, if you were going to ask, yes I am going to make a simple YTMND on this sometime tomorrow for the sake of people adding their opinion.

Variables

A: Number of sites with a rating higher than 3 after at least 10 votes (if this is 0, 1 or 2 we treat the variable as 3)

B: Average Rating of all sites (if this is Undefined, we treat the variable as 3)

C: Average Rating of other sites

D: Donations

E: Days since join

The Algorithm

Voting Power = [(A / 3) * (B / 3)] * [Ca * Da] + Ea

Finding Ca from C

Ca is determined not as a raw value, but as a deviation from 3.

If 1.0<C<1.5 or 4.5<C<5 then Ca = .5

If 1.5<C<2.0 or 4.0<C<4.5 then Ca = .75

If 2.0<C<2.5 or 3.5<C<4.0 then Ca = 1

If 2.5<C<3.5 then Ca =1.25

Special case in Ca

If user has less than 10 votes overall, Ca = 1 regardless of the above

This promotes fair and average voting, and moreover cripples rampant upvoters and downvoters.

Finding Da from D

D is an outside modifier that scales the whole equation based on how long the user has been around. For the sake of simplicity when I say “Month” we can approximate it to 30 days.

< 1 month = 1

1 to 2 = .9

2 to 4 = .8

4 to 6 = .75

6 to 8 = .8

8 to 9 = .9

9 months to 1 year = 1

1 year to 1.5 = 1.25

1.5 to 2.0 = 1.5

2.0 to 2.5 = 1.75

> 2.5 years= 2

This works to both give the newbie a chance but punishes slackers who don’t improve their scores in other ways (by making good sites or buying their way in). The four to six month marks the worst of it, after that the punishment ceases and they are rewarded with a gradual increase in voting power. Once senior ranks (a year onward) are achieved voting power will increase rather dramatically with time, by this point the user should have a good eye of what’s good after all.

Finding Ea from E

D is a vote increase by a fixed donation rate

1 D (a buck after paypal) = .2 DA

aka 5 bucks weighs your vote up a single vote. I would suggest a cap somewhere as so people can’t become insanely weighted (I’d say the limit would be 25 bucks/+5vote strength) This function gives people a reason to donate other than out of love for YTMND.

Note of Incompleteness

I am aware that this might seem off to some people, and to them I say TELL ME. I don't think it's perfect, just usable. I want to see what other people are thinking, otherwise I wouldn't have put it on the wiki! One big thought I'm having is if there should be a maximum vote weight, and if so what if...


Wallet's algorithm

(OK fine I'm a lazy bastard, come up with a good w yourself using standard deviants or something)Wallet 19:15, October 24, 2006 (CDT)

This method puts a smaller emphasis on vote strength and a greater one on vote skew. The algorithm holds the following true:

  • The average vote for the site as a whole should be 3; if the average is, say, 4, then the ratings 1-4 are precise, but the ratings 4-5 are vague.
  • Similarly, if someone is a downvoter, their high votes should have more weight than their low votes, and an upvoter's low votes more weight than their high votes.
  • The tendency for many members to vote "hot-or-not" makes a mockery of the famous 5-star system, and shouldn't be rewarded.
  • No matter what measures are taken on a person's vote, a vote lower than the site's average must never raise the average, and similarly a vote higher than the site's average must never lower the average.

The following proposal differs from Mewchu11's First in that it puts little weight on a member's supposed contribution. It differs from Pilcrow's in that skew is not punished across the board, but rather compensated for. Like all algorithms on this page, it should be evaluated on its logical merits, not on individual number values which can be changed without altering the spirit of the algorithm.

Assumptions

This algorithm assumes it would take way too much computing power to retroactively change the weights of votes already made without the user manually re-voting, or look up all the data on all users that have ever voted on a page. The only things assumed to be known by the algorithm before internal math are:

  • The number of each vote 1, 2, 3, 4, or 5
  • The number of votes on the site being appraised
  • The average rating on the site being appraised

With this info we can derive a lot of information, such as how much a vote in an unweighted system should change the average: simply take the number of votes N and the rating R and the result based on a vote V would be

(NR + V)/(N+1)

This is the assumed system, since it can't be a significant distance from the true current method, and so an algorithm based on it requires less work on Max's part to translate into a final implementation.

The process of weighting votes in this algorithm is to change the value V such that the above fraction outputs a different average vote. If we want to give extreme weight to votes, giving them a V of 0 or 6 is not unbecoming, as long as we limit the bounds of the final rating: a vote weighted to 0 might bring a one-vote-of-5 page down to 2.5, but can't bring the score below 1.00.

Exploit Prevention

General weighting regardless of skew is really a method of exploit prevention, either preventing a new member who has never seen other sites from voting unfairly, or a sock puppet account from upvoting friends and downvoting enemies. I believe no purely mathematical method can prevent such exploits and it requires diligence on the part of the administration or automated methods outside the scope of vote weighting; however, a good catch-all method is to give an automatic -50% weight vs. the average to all votes made by accounts that have not both existed for 1 month and logged 100 votes, or some other measure of activity:

(2NR + V)/(2N+1)

The following is also vulnerable to moderate exploitation with very careful and diligent vote-changing; though this is a small flaw, it should be compensated for. The easiest method is to limit changing votes. Vote-changing could easily be limited to 25 per day, but I know that I for one wouldn't have much trouble using this up, as I often change votes once or twice even on my first visit to a page as I reconsider my rating. Logging vote times henceforth might be useful; then vote-changing could be unlimited for sites a user has never rated before today, but limited to 25 per day on sites the user first rated more than a day ago.

An Average of 3

The entire pholisophy of this algorithm is that the natural state for any given page is a rating of 3.00; that is, all votes on YTMND whatsoever, after weighting, should together average to 3.00. It's important to recognize that five votes of five stars doesn't make 25 stars; we're dealing with an average, so we must calibrate our scale so that the median vote is our "zero".

Part 1: Tending to 3

As such, a user's votes should average 3.00 after weighting. As an example, assume a user's current average vote after weighting is less than 3. In this case, less weight is given to votes below the user's average, and more weight to those above.

Any method you imagine will work fine, but the following is a simple one derived from the requirements: Let s equal the site's current rating, and v equal a user's vote. Regardless of how we want to weigh it,

If v<s, s must not increase
If v=s, s must not change
If v>s, s must not decrease

We can safely ensure this by only weighting the difference, d, where d=v-s, by multiplication of a weight, w, which is non-negative.

I'm still working on the exact values, but the gist is that your final weighted vote, V, looks a bit like:

V = v + dw "The final counted vote is the original vote, plus the difference (d) times w"

I don't yet have a nice equation to determine w, but you can think of it in general terms based on wether a vote is inside or outside a user's average vote a. A vote v is here considered "outside" a if it is both further from 3.00, and on the same side of 3.00 as a, while an "inside" vote is either closer to 3.00 or on the opposite end of 3.00 relative to a.

E.g. if a user's average vote is 3.5, a 4 or 5 is "outside" and a 1, 2, or 3 "inside". Feel free to edit this if you think of clearer terminology.

So, consider the weight w as such:

If v is outside a, w<1
If v is inside a, w>1
If v=a, w=1

Note this means that if a person's average vote is 2, and the person votes nothing but 2, the weighted vote will be 2. The algorithm presumes that virtually no one only votes one rating 2-4 absolutely all the time, and so given enough time, the weighting will tend towards correct. A more robust system would, naturally, be more complicated. As for people voting only 1 or 5 all the time, this is covered by the following section:

Part 2: Punishing Binary Votes

Most users are divided into two camps: those that reserve 1s and 5s for more extremely bad/good pages thus keeping their votes in a logical perspective of preference, and those who only vote 1s and 5s, thus giving their vote more power against the average. The logic behind only voting 1 or 5 is that one can better force the average to approach the rating the user would actually give the site; thus users attempt to exert as much dictatorship as possible on the democratic vote.

To discourage such behavior, the best way is to make it a moot point. First let's forget the "tending to 3" section and assume that 2, 3, and 4 have a constant application on the average (as 2, 3, and 4). Let 1' be the number of 1-star votes, 2' be the number of 2-star votes, and so on. For a given user, the actual recorded numbers would be:

For a vote of one,
2 - 2^-(1'/2' - 1) "Two, minus two to the power (1'/2' minus one)"
For a vote of five,
4 + 2^-(5'/4' - 1) "Three, plus two to the power (5'/4' minus one)"

(Note that these require a non-zero 2' and 4' - I suggest minimum values of 1)

The end result of this is, if you have ten times as many 1s as 2s, your 1s act as 2s, and if you have ten times as many 2s as 1s, your 1s act as 0s. (There's a little rounding involved, don't any math nuts get on my case.)

This satisfies three conditions:

  • If you almost never vote extreme, they will be worth even more than their unweighted numerical amount.
  • If you give an even number to all votes 1-5, they will all act accurding to their unweighted numerical amount.
  • If you only vote 1 or 5, after you vote 10-20 times, all your subsequent votes will act as though you're only ever voting 2 or 4.

The result of this is that the necessary evil of only voting 1 or 5 for maximum weight has been eliminated, since maximum weight is achieved only with moderation in the use of extreme votes.

Final Result

Though w has as yet been poorly-defined, we can now give a final weight by slapping the two methods together crudely:

V = v + dw
If v = 1 or 5, apply the following:
For a vote of one,
V' = V + 1 - 2^-(1'/2' - 1)
For a vote of five,
V' = V - 1 + 2^-(5'/4' - 1)

V (or V' as necessary) can now be applied to (NR + V)/(N+1) as-is to change the page's average, or additionally weighted with other considerations toward longevity, community contribution, number/ratings of the user's own pages, donation, etc.


Veteran System


Intro

This idea is designed to be as basic and easy as possible, so that everyone will understand how it works, and how this will help YTMND. If you have any comments or suggestions, please include them in the final section of this page, and optionally you can add your username too.


Purpose

- Encourage more user participation

- Allow YTMND veterans slightly more control over the overall ratings of ytmnd sites. This control is a privilege that will be given in exchange for their long-term dedication to YTMND. Note that users are not initially considered veterans when the system is put into place, it must be earned through balanced voting.

- YTMND veterans are expected to set a good example by voting as fairly as possible. By exercising the new control granted by this system, they will be providing newcomers with helpful feedback which in turn will establish a better framework for the judging of site context by the community as a whole.

- New users will be motivated to comment and vote more fairly across the 1-5 star spectrum in order to gain access to these privileges. During this process, they will hopefully learn to be more objective critics, and to be more outspoken in general.


Star Levels

There are 3 star ranks in total. As users progress, they will slowly gain more ability to influence the overall rating of YTMNDs. All YTMND users (even current veterans) will initially start at the Blue Star level, as this level system does not start counting votes until the date this system is put into effect. All votes made before this system takes effect will not be counted. This is to ensure that all users begin equally under the new system, and to encourage more voting by all users in general. Also, it would be too difficult to apply this new system to all sites that users previously voted on. This is probably the easiest and fairest way to implement the changes.

Blue Star: This is the standard vote, all registered users begin here when the system is implemented. Blue Star votes are counted as one vote towards the total votes, and change the site rating by one vote. (equivalent to our current voting system)

Green Star: This vote is still counted as one in regards to the vote total of a site, but it is worth two votes in regards to its effect on a site's overall rating. Prerequisites: To become a Green Star Member, you must make 10,000+ "comment votes" on the new voting system, and within this total there must be at least 1,000 votes that fall within each category of 1,2,3,4,5 stars respectively. Note: Only votes with comments attached will be counted towards this total.

Gold Star: This is the highest ranking level. This vote is still counted as one in regards to the vote total of a site, but it is worth three votes in regards to its effect on a site's overall rating. Prerequisites: To become a Gold Star Member, you must create 100 sites within the new system, and receive 100,000 votes (non-comment votes included) within the new system. In addition, you must submit 100,000+ "comment votes" to other sites within the new system, and within this total there must be at least 10,000 votes that fall within each category of 1,2,3,4,5 stars respectively. Note: Only votes with comments attached will be counted towards this total.


Conclusion

Note that the Star Levels are difficult to achieve, and this is done for a reason. Only the most dedicated members should have access to such privileges, because the consensus is that objective voting takes time to learn. The only way to become more objective is through direct experience by viewing a great multitude of different sites over time. Also, remember that all users' stars will still appear red in the comments section. This is to ensure that prejudice does not arise, such as favoring green members over blue, etc. The color change is ONLY visible to the user making the vote, no one else will know you're green or gold unless you tell them personally.

Old Votes: If it is possible for old votes to be counted towards this sytem, I would be in favor - I only suggested this system because it seems easier than to redefine the old votes in this way. Assuming that old votes can't be counted, users would simply need to vote on old sites again as they gain higher rank, so that the green stars and gold stars would then take effect.


Feedback

IMPRESSIVE

Darth Vader is that you? Thanks.

I think that encouraging comment spam is a definite no-no. I for one find it extremely useless to see a 5-star comment that says simply "WIN", since this doesn't at all help me to learn why it is the site has the rating it does, and so neither contributes to my future sites for tells the other people viewing the profile anything useful. Wallet 19:19, October 24, 2006 (CDT)

^ I can agree on that point Wallet. It's not an option that is of great importance here, considering the problems it could bring. So after removing the comment requirement, all votes would count.. but there is another weak point to address. Users might employ bots to vote for them, in order to gain access to the privileges mentioned. One possible solution to this could be to allow a set maximum (100-200 for example) of votes per day from each user. It wouldn't stop the bots, but would slow their progress by a lot. Then again, I think max mentioned that he's working on a solution for bots.. so maybe that won't be much of a problem. roq


AaronD12's First algorithm

I wrote this algorithm without knowledge of the other algorithms above. My primary purpose was to restrict downvoters without any significant disruption to regular users.

My thoughts on this process is that everyone wants their wonderful YTMND site to be voted a "5". Yes, there are some spoof sites that are made (e.g., the most annoying sound sites) that are destined for "1"s, but I think a majority of people want their sites to receive a "5". When I created my first YTMND, I was disappointed in the score of around 3. Turned out downvoters took a chunk of the score from my site, even though my site really wasn't that good.

Down with downvoters

To keep downvoters in check, a simple averaging scheme would take their average vote, subtract it from 5 (the highest vote possible), and that would be their minimum vote. This would possibly change the voting scheme somewhat, causing people to vote "5" for sites that are great more often.

With other algorithms stating that there should be a bell curve, peaking at "3", is like saying that a "C" in school should be the target for all students. People don't try to score "C"s in school; they go for "A"s. Think of the voting in terms of letters (1=F, 2=D, 3=C, 4=B, and 5=A), and you understand what I mean.

Examples

If a user has an average score of 2.6, round that number down to 2 and subtract it from 5. That would make the lowest score that user could vote on any site to be a "3".

Average of 4.2? Lowest vote possible would be a "1". Average of 3.6? Lowest vote possible would be a "2".

Code Snippet

Here's a code snippet. I don't know which language YTMND is programmed in, but here is my idea in PHP/MySQL:

<?php
$myresult=mysql_query("select avg(score) from votes where userid=$_COOKIE['userid']",$database); // retrieve average score
$myrow=mysql_fetch_row($myresult);
// calculate average score, leaving only the whole number, rounded down, subtracting from 5 (the maximum possible vote)
$minimumvote=5-intval($myrow[0]);
?>

Suggestions are welcomed! Thanks, AaronD12

Feedback

This is certainly an interesting system. I completely agree that people claiming the "3 peak bell curve" as a good thing is ridiculous and backwards. - BTape

  • How can you say it's "ridiculous and backwards?" It's statistics. In order to do something meaningful with sorting, some kind of model is necessary. I see no reason that YTMNDs shouldn't follow a Gaussian distribution. SqueeAndSpleen 01:28, April 16, 2007 (CDT)
    • That system operates under the assumption that the average site deserves a rating of 3. Considering most sites anyone ever votes on are either on up and coming or top viewed that would imply that the average rating of a site on up and coming should be 3. Most sites on up and coming have over a 4.0 average rating, so this clearly doesn't make much sense. I tend to view sites I like and naturally I give high scores to sites I consider good, meaning my average vote is going to be a high score. I know people intentionally look for sites they don't like just to try to maintain a pretty little bell curve, but that's totally backwards thinking. Do you come to YTMND to search out sites that probably suck and you'll likely vote low? BTape 02:00, April 16, 2007 (CDT)

This is a decent system, but I can see 1 major problem. This will not help stop splitvoters. For example, if a person has 1000 5-votes and 200 1-votes (avg vote would be a 4.33) that person would still have the power to vote 1s. When his avg vote drops below 4.00, he only has to upvote more sites (probably his friends) to continue downtoving. "but I think a majority of people want their sites to receive a "5"" True, but most sites don't deserve a 5. - LUE1337 (yea, it's really me)

Max's attempt at an algorithm

After recently writing a rule-based system for the moderation queue priority system (which prioritizes sites that need to be moderated based a set of predefined rules), I've decided to finally give writing a weighted vote system a shot.


One major flaw in this algorithm is that it incorrectly assumes that votes users make are based entirely on the content of the site where in reality, the user who created the site can also be a large part of the final score of their site. (e.g. users downvote other users who are critical of their sites).

  • EDIT* Another blaring flaw which I just noticed is that the user vote algorithm does not take into account the number of votes. So a user voting correctly on one site has a "perfect" score. Obviously the vote score needs to be adjusted based on number of votes. For further accuracy, the vote would have to be compared to the score of the site at the time so as to get the most accurate reading, but that may be too many computations for the db to do for every user.


VARIABLES

DYNAMIC VARIABLES BASED ON EACH USER'S HISTORY (with examples)

AVERAGE_DEVIATION (defined as )

  • This is the average vote deviation from the final score of each site the user has voted on.
  • This means a user who votes 5 on 10 sites that average a 1.5 score, the user would have a 3.5 average deviation.

AVERAGE_SCORE_GIVEN (defined as )

  • The average vote the user gives across all sites.

AVERAGE_SITE_SCORE (defined as )

  • The average score of this users sites.

LENGTH_OF_MEMBERSHIP (defined as )

  • The length of the user's active membership on the site in months.


RULE BASED VARIABLES

BASE_SCORE = 2.71 (defined as )

  • This is the average score of all sites, which would obviously change over time.
  • This defines a "middle of the road" score.

BASE_MULTIPLIER = 1.0 MODERATOR_MULTIPLIER = 1.5 SUPERMOD_MULTIPLIER = 2.0 ADMIN_MULTIPLIER = 3.0 (defined as )

  • The base multiplier of a regular user/moderator/supermod/admin.

BASE_TIME_SEGMENT = 3 months (defined as )

  • The time segment at which a user's membership should start affecting their vote weight.

TIME_SEGMENT_MULTIPLIER = 0.1 (defined as )

  • How much each TIME_SEGMENT should increase the vote weight.

SITE_SCORE_DIVIDEND = 0.33 (defined as )

  • The segments of the average site score above BASE_SCORE that should add to a user's weight.

SITE_SCORE_MULTIPLIER = 0.25 (defined as )

  • The multiplier of the above segments by which to increase the weight.


ALGORITHMS

SITE SCORE VOTE DEVIATION MEMBERSHIP LENGTH

FINAL VOTE WEIGHT

-OR-

IN ACTION

[ max ] final weight: 7.8377

  • base: 3 + site_score: 1.0584 + vote_score: 2.5793 + membership: 1.2

[ inkdrinker ] final weight: 4.0397

  • base: 2 + site_score: -0.3727 + vote_score: 1.2791 + membership: 1.1333

[ dcmm ] final weight: 4.3299

  • base: 1 + site_score: 0.2613 + vote_score: 2.5019 + membership: 0.5667

[ Teknorat ] final weight: 4.4273

  • base: 1 + site_score: 0.2042 + vote_score: 2.6564 + membership: 0.5667

[ Punisher ] final weight: 2.3846

  • base: 1 + site_score: 0.4194 + vote_score: 0.4319 + membership: 0.5333

[ Decisi8ns ] final weight: 3.8204

  • base: 1 + site_score: 0.6592 + vote_score: 1.6612 + membership: 0.5

[ Pineapplesarebetter ] final weight: 3.528

  • base: 1 + site_score: -0.7827 + vote_score: 3.1107 + membership: 0.2

This is a pretty rough draft, but it seems to be somewhat accurate and doesn't reward any group of users too thoroughly. Let me know if you have some users you'd like me to calculate. I know the terminology is confusing in some places, but I'll work on it some more later.

Max 21:55, April 15, 2007 (CDT)

Max, no matter what you do, I recommend you keep it at least somewhat secret. And make a rule that would take down YTMNDs that encourage vote spamming. IMDB has a similar policy and it has worked well for them (otherwise movies like, well, Finding Forrester would have 10 stars and be at the top of the IMDB 250.) They are constantly evolving it. NickCatal 08:51, April 16, 2007 (CDT)


Mtown's idea: Stamps of Approval

  • Idea may not actually be good

I'm horrible at Wiki and not sure how anything works, so this may end up looking like crap.

General Idea

My idea is to give seasoned active members of YTMND (6 months since the creation of their first site with a 2.5 rating or higher) a "Stamp of Approval" option for sites. You would get only so many "approval stamps" per week, I'm thinking 5 for users who have been here 6-12 months, 7 for users 1-2 years, and 10 for uses who have been around for more then 2 years.

How it Works

The Stamp of Approval will erase the lowest vote that site has gotten. That means if somebody posts a really good site (lets say it's about legend of zelda) and after a few votes somebody 1's it saying "I hate everything Zelda-related" and it gets kicked off Up and Comming, somebody could give it a Stamp of Approval to get rid of the 1. The comment the guy made would still be there, but you could make a little green "STAMPED" graphic to go over that person's rating, letting everybody know that his downvote no longer counts. (The person who stamped it should also get an added graphic, like a green stamp after their comment if they leave one, kind of like how people who add a site to their favorites get noticed with the "FAV" over their score). Or instead of that, maybe something that says "This site was APPROVED by (stamper's name)"

You could even go as far as to giving the stamper the option to choose which person he wants to stamp (like after you click the "stamp" button, it shows a list of all the people who 1'd the site, and you can chose one to stamp). This has no real purpose, but it would be fun. You could also only Approval Stamp a site 1 time, so you couldn't get a buddy to repeadely stamp your site to get rid of downvotes.

Finally, the Stamp of Approval would incease the value of all votes on that site by 2%, and it would stack if more stamps are given (2% for 1 stamp, 4% for 2, 6% for 3, etc.) until a maximum of 20%. This means for a vote of 5 on a site with 1 stamp would actually be a vote of 5.1 and a site with 10 stamps would mean a 5 is valued at 6, while a 1 would be valued at 1.2 . You could tweek the exact values later, because I'm not exactly sure how this could be abused


Example Scenario

Lets say 10 people all 5 a site, and one gives it a Stamp of Approval. The site score would then be 5.1 . If the 11th person gives the site a 4, the Stamp would cancel that vote out, since it is the lowest vote made on that site, and the site would still have a score of 5.1 . If somebody came in and gave the site a vote of 1, the the Stamp would cancel out the 1, and the vote of 4 that the stamp previously had blocked will now be factored into the site score, making it a score of 5.007 (still rounded up to 5.1).


Stamp of Dispproval

In addition to this, I think people should get a Stamp of Dispproval, which works slightly differently. These would be given out much more carfully. I'd say 1 for people who have been here 6-12 months, 3 for people over a year, and 5 for those active here longer then 2 years.

The Stamp of Disproval would lower the value of all votes on that site by 2% and stack up to 20% (a vote of 1 with 10 disproval stamps would be a final vote of .8) In addition, each Dispproval Stamp will subtract the 3% of the votes an 3% of the views that used to calculate the "most voted/viewed this week" and "most voted/viewed all-time" statistics, to a maximum of 50%. It WILL NOT subtract the votes or views when viewing the site statistics, only when calculating where the site should stand in the rankings of most voted/viewed this week/all-time.

Reasons for the Stamp of Dispproval

Nobody wanted to see "How to Prank a Telemarketer" stay on the Most Viewed for like 2-3 months, and I didn't want to see it pass up "Blue Ball Machine" in most veiws all time, so this will help keep sites that Long-time YTMND'ers do not want to see off the most voted on/viewed. You could maybe add another section (not on the front page) called "Most Stamped" that shows sites that were given the most Approved and Dispproved stamps.

Different options and Mod control

In peoples profile, you could also add a section called "stamps" which shows all the Stamps of Approval and Dispproval that person has given and to what sites. You could also give the mods the job to check people out who are using suspicious stamping behavior. For example, if somebody has used all of his stamps of Dispproval in the last 3 months to Dispprove only Kassius's sites, and routinely posts messages saying, "I hate Kassius.", you could have your mods take away somebody's Stamping privleges. The same goes if they ONLY use their stamps to Approve one person's sites. If this happens, you could have the mods send a message to the member, saying, "Stamping was originally intended to promote good YTMND sites, not to become someones individual stamping slave. Please use your stamps on other members worthy sites." If the member would still only stamp one other member's site, your mods could take away his stamping privleges for a while.

You could tweak everything later, but right now I'm just throwing you my basic idea. I'd like for Veteran YTMND members to have the ability to promote good sites and shove bad sites off the front page. You could deny some people the right to Stamp, such as blatent downvoters, people with no sites, or members who post the same message in every comment they make.

I think this would be the best method to add to YTMND, since it would be the simplest. There would be no algorithms to screw with, and active YTMND'ers who just suck at making good sites will not be punished by having a low average site score (most suggested algorithms factor this in somehow). Stamps of Approval would give veteran YTMNDers the ability to combat downvotes on good sites, along with increasing the overall vote value of these sites, while Stamps of Dispproval would give vetaran YTMND'ers the ability to keep sites they don't want (HTPAT, WoW sites) off of the front page.

Possible Problems

Well, for one some sites may get a rating of over 5 stars. You could get groups of people who conspire together to Stamp a certain site, but this can be countered by Stamps of Dispproval by other members. Stamps of Dispproval would not be meant to downvote something to death, but would only be used to take something that most YTMND'ers hate but is getting a lot of attention (spammed on the WoW forums or googlebombed) off the front page. Since Stamps of Approval would be limited per week (and there would be no stamp "rollover" week-to-week) and Stamps of Dispproval would be limited even more, it's not like people could use them as super-upvotes/downvotes all the time.

Please give feedback if you thing my idea needs some tweeking

Mtown 10:55 AM, April 16, 2007 (EST)