Utopian Bot Update: Major changes

image.png

Last week, @elear entrusted me with the task of improving the Utopian Bot. There is a lot to do but we decided that these three problems were the most urgent:

  • The Bot's Voting Power was sucked too fast
  • Because of that, she ended up being very tired after upvoting a few posts. That led to a certain frustration since some users had to wait for several days before they vote was accepted.
  • Some categories had many contributions and some others almost none. The most used categories were taking away most of the bot's voting power.

That's in this spirit that I started my work.
Just keep in mind that this is a work in progress, that will make the Utopian's life fairer.
So far, this is how the new process works:

Estimation of the 'Quality'


I put quality between quotation marks because I have no better word to describe it so far, but a bot alone cannot understand the real concept of quality. That will be adressed in a future update.
Anyways, the first step of the bot is to estimate the Quality of each contributions. For that, very simple, I used the old bot's algorithm. Each contribution's quality corresponds to the upvote that the old bot would have given. For reminder it is based on many variables, such as the size of the contribution, its category, the current payout and number of votes, the use of bots are not, etc.
Once again, this will need further work and maybe human intervention to make it even fairer.

Based on a threshold, posts will be separated between high-quality contributions and the others.

Voting high quality contributions



We aim that the bot will vote once a day (+- a few hours depending on the number of contributions). Therefore, 10 full votes are available for voting and are divided non-equally between the eight categories. The weight of the categories have been decided according to the difficulty of the contributions in that category and the number of posts subtmitted. These numbers might need some tuning but for now this is how it goes:

image.png

Since Documentation, Analysis, Visibility and Graphics have a few contributors only, I've merged them together to make sure they still can get a part of the cake.

For each of these categories, the bot compares the sum of all the contribution's quality to the "max_vote" of the category. It computes a ratio that is then applied to the quality to calculate the vote.

I fear it's not very clear but here is an example :

For translation, 150 is available (that's 1.5 full votes). Let's say there are only 3 contributions in this category shown as high quality and that there quality are respectively 50 50 and 40.
The ratio would be 150/140=1.07. They would then get 54 54 and 43 as upvote.

On the contrary, if there are too many contributions in the same category, the ratio will reduce the upvotes. For avoiding abuse, there is currently a maximum ratio of 1.3.

Voting other posts



As I said, this bot will vote all the approved contributions.
The posts not ranked as high quality will share 1 full vote + any power that would remain unused from the other categories.
A threshold is also apply that those posts cannot get upvoted higher than a high quality contribution.
Their maximum is currently 8% (around 20$), while the minimum for high quality posts in case of small ratio is set to 10%.

Updated bot list



Utopian Bot is jealous, she doesn't like other bots.
So far, here is the list of bots she doesn't like to see.

Conclusion



This bot already allows every accepted contribution to be voted in a fair manner.
However, it is still a work in progress and more updates will come to tune the parameters I mentionned, and make the bot even better.

I hope you will enjoy it!
You can find my Pull Request here.

@stoodkev for @utopian-io



Open Source Contribution posted via Utopian.io

H2
H3
H4
3 columns
2 columns
1 column
18 Comments