Sorting By Using Quality Discovery Algorithm

in #utopian-io7 years ago

Quality Discovery Algorithm

This algorithm would ideally be used to allow users to view posts under a new filter. In addition to trending, hot, new, we would add community filter (based on the community's perceived quality of the post). A 1-10 rating system would replace the simple upvote / flag system currently in place. Curation rewards would also need to be altered to accommodate the reward portion of this suggestion.

This algorithm operates on the following principle. If everyone agrees that a post is quality than that post is quality and should be highly rated. If there is disagreement, then that post should be penalized and should not be highly rated. We ideally want agreement when determining the best of the best, but acknowledge that each individual has a subjective view of quality. But we combine these subjective views in order to come to a result that is somewhat fair.

First off, we need to abandon the simple upvote for a more expressive language to vote in. This could be a five star rating system or a 1-10 rating system.This expressiveness allows us to separate the good from the great and also allows us to separate the mediocre from the good content. Having more expressiveness gives us room to wriggle and allows each user to vote how they feel about the content.

Let's give each post a certain score based on different ratings. The score is calculated by the following formula:


latex_05d1ccf7f747f8f6492c263723521fcd.png

This is simply a weighted average with a slight modification. A weighted average in this case is like a normal average but where people who have higher weights have their vote count more. Naturally we can use Steem Power for this weighting mechanism (but we don't have to). The slight modification comes with the variable V. This is a variance based measure. This could be the variance, standard deviation, or your favorite measure of spread. This gives us an additional penalty for disagreement and only keeps scores high for those posts where there is consensus on the post being of high quality.

However, there is no incentive to vote in a specific way. You can still vote highly and lowly without any consequence. Thus, we move to a curation scheme based on estimating the score rather than voting for popular content. The closer you are to the true score or quality of the post, then the better rewarded you should be. But we don't use the displayed score to compute this calculation, but a true average (with the variance based penalty included):


latex_337a41fb4608f09b3c7a93ffaa4b1c15.png

Why should we be trying to estimate the true average instead of the weighted average when the weighted average in the one that is used to sort the content? There are two reasons to do this:

  1. The true average shows the communities' approximation of the quality of the post. We should use this in determining the curation reward because this is the agreed upon consensus (or lack thereof) of the community free of whale influence. Whales can influence what is seen but it doesn't make sense that they influence the essence of quality.

  2. We use the true average for curation, but use the weighted average as the filter to sort the posts. This allows whales to still influence what content gets voted to the top and still incentivizes whales to hold onto Steem Power.

But for such a change to work, the curation rewards algorithm would have to be changed. However, we can still use the curation rewards allocated and redistribute in a more fair way. To do this, we reward accuracy. The rewards would be distributed using the following equation:


latex_5feb4048ab5980f653308a9b7082cdca.png

Basically we take the difference between the true score and the score assigned to the post by the user. We then square that value. This acts as the square error which is used to punish those who are further away from the true score of the post. We add 1 to avoid any divide by zero errors.

We divide a decay function by the result of this calculation. The decay function decreases rewards based on the number of users who have already voted on the post. This rewards people to find new undiscovered content rather than stacking the votes on and also rewards people for voting when they have less information of what the final score might be. If the decay function was not there, then people could simply take a wait and see approach with the score.

We tie the whole thing together by multiplying by the normalization factor (alpha) which serves to make sure the numbers all add up to the amount allocated to curation. The curation rewards are then split among the users in a fair way that rewards users for quality discovery over finding popular content.

What all of this math effectively does is that we create a new filter that organizes posts by a stake-weighted score where users are incentivized to correctly identify the quality of the post to maximize their profits and are encouraged to take a look at new users to find content with a few votes to get meaningful rewards against the decay function.

This potentially solves two issues of stake-based curation: new users are no longer ignored and quality is showcased rather than stake being showcased. Ultimately the authorship rewards stay the same and stake-holders still have a larger impact on the score filter meaning there is still a reason to hold Steem Power.

The quality score can be implemented without changes to the current curation rewards algorithm. But for the mechanism to incentivize current use of the system, such changes to curation rewards are desirable so that users can still profit and judge quality at the same time rather than giving a simple rating.



Posted on Utopian.io - Rewarding Open Source Contributors

Sort:  

Hey @greer184 I am @utopian-io. I have just super-voted you at 9% Power!

Achievements

  • Much more informative than others in this category. Good job!
  • You have less than 500 followers. Just gave you a gift ;)
  • This is your first accepted contribution here in Utopian. Welcome!
    Up-vote this comment to grow my power and help Open Source contributions like this one. Want to chat? Join me on Discord https://discord.gg/Pc8HG9x

Not sure if this is a good solution. I don't think there is something like absolute quality and just haveing different approximations won't help in the long run.

As I posted a few days ago that we should aim to show posts that reflects the individual quality that a user expects.
Have a look at my proposal of a new list underrated https://steemit.com/utopian-io/@drmake/underrated-yet-another-list-on-steemit

This works more like finding and displaying a list that you like and maybe no one else. Everyone gets his own list and with his votes he can determine what means quality for him.

Yeah, I saw it. I don't think the idea would be great for Steemit itself, but would be better suited to some additional front-end built on top of the STEEM blockchain. That way is serves as a supplementary view rather than a dominant view which a small minority might still be hidden underneath.

I like this a lot.

Thank you for the contribution. It has been approved.

You can contact us on Discord.
[utopian-moderator]

Wow! I see that you kept working on this, and did all the homework.

Very smart arguments, and nice math. Liked this post a lot.

Thank you!

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 62264.03
ETH 2431.11
USDT 1.00
SBD 2.50