Improving the Curation-Rewards Process via a Significant (though Subtle) Change to Auto-Voting …

in #curation3 years ago (edited)



A Proposal to Improve Hive’s Curation-Rewards Protocol

A few days ago, I posted a comment here alluding to a new #hive #curation-rewards protocol I’ve been envisioning, wherein I was hoping to accomplish the following overall goals / objectives:

  • incentivize high-quality manual curation (both for large and small stakeholders),
  • not severely penalize large stakeholders who don’t have time to manually curate, and
  • incentivize auto-voting that accentuates high-quality manual curation (in lieu of auto-voting that overwhelms, stifles, buries, or otherwise manipulates manual curation, whether intentionally or unintentionally).

Learning the Ins & Outs (& Challenges of) Past and Current Protocols

I want to thank @themarkymark for his clear and concise explanation of #Hive's current curation-rewards protocol (available here), along with his taking time to dialogue with me directly (providing much-needed technical-feasibility assessments). As a result of his direct and straightforward feedback, I’ve made numerous revisions, mostly abandoning aspects of my original plan that were technically infeasible (which leads me to a heartfelt thanks to @theycallmedan for indirectly encouraging me to ‘press on’ despite the various feasibility setbacks).

Interestingly, the end result is a much simpler solution than I originally envisioned (and, more elegant, imho)!

Historical Changes to Rewards Protocols

From what I have read and researched about curation-rewards protocols for hive (and formerly for steem), historical changes have by-and-large sought to either [1] correct loopholes that previously allowed bad actors to ‘game’ the system or [2] correct misalignment of individual incentives relative to community goals & objectives.

A New (or Not-so-New) Underlying Philosophy

The underlying philosophy has been (from the very beginning, I believe) to reward manual curators who quickly find and elevate high-quality content (i.e. to incentivize and reward curators who proactively search for heretofore-hidden high-quality content). Instantiation of this underlying philosophy has consistently struggled (and oftentimes failed) to achieve the desired outcome, because clever people will always figure out a way to ‘game’ any system, especially a system that provides variable rewards.

I am adopting a very similar (but nuanced) underlying philosophy, which is:

    Early-voting periods should be almost exclusively the domain of manual curators.

With an important corollary being:

    Whenever auto-voting algorithms place votes early in the voting period, the strength and influence of any early votes cast by legitimate manual curators become diminished, thus weakening the ‘proof of brain’ aspect of the entire process.

Using the Principle of Inversion to Solve an ‘Intractable’ Problem

Most of my early iterations attempting to solve the problem of ‘inefficient’ auto-votes competing with manual early votes relied upon being able to distinguish (in Layer 1) between manual votes and auto-votes. After many, many failed attempts at trying to solve that ‘intractable’ problem, I decided to invert the problem.

Rather than trying to actively discourage auto-voting bots from casting early votes, what if we directly incentivize them to willingly participate later in the vote-casting process?

The Proposed Solution

This can be done very simply, by [1] establishing a relatively small window (e.g. 5 minutes in width) that [2] opens a set duration after each post (e.g. 1.5 days), and [3] entitles the vote-caster to a pre-determined stake-weighted percentage of the total curation rewards for that post (or just a set percentage of the rewards associated with their vote, e.g. 40%). Any votes cast outside this very small time window will be subject to the existing (non-linear) curation-rewards protocol. Any votes cast during this window will be specifically exempted from any early-incentive rewards, instead receiving a pre-determined stake-weighted percentage (similar to each-and-every vote under a linear rewards curve, cf. #LeoFinance and #STEMGeeks).

... and its Advantages

The primary advantages of the above ‘exemption’ for intentionally-delayed auto-votes will be twofold:

  1. Early votes will be cast mostly by manual curators (subject to a couple caveats):
    • there will no doubt be some auto-voting bots that are remarkably good at pre-selecting exceptional content, or will at least try to do so, and
    • the extent to which auto-voting bots attempt to early-vote will be directly related to [1] the early-voting rewards criteria and [2] the pre-determined percentage associated with the late-voting window.
  2. Late votes cast by auto-voting bots will boost content while it is still fresh (i.e. only a couple days old), thus ensuring that high-quality, manually-curated content gets seen by more people (and then further upvoted, if the content is genuinely high-quality):
    • in other words, auto-voting bots will begin to serve as boosters of manually-curated content rather than merely predictors of hopefully-good content,
    • thus taking what was formerly a negative (auto-voting bots that were injecting noise into the manual curation process) and turning it into a positive (auto-voting bots that give a delayed boost to content that has already proven itself worthy via manual curation).



I have some additional thoughts, but will hold off on those for now, in order to get this ‘out there’ so folks can evaluate it and provide (hopefully constructive) critiques.

Positive incentives will give helpful bots meaning & purpose!

Sort:  

Interesting solution. I have always envisioned a sort of lottery system for curation, where everybody just votes on great content and receives a predictable curation, but there is also a bonus pool that gets created that is awarded to some subset of voters, irrespective of when they actual voted.

Interesting concept about lotteries.

That’s similar to a thought I had recently about randomly varying the early vote window thresholds, different thresholds for each post, unknown to anyone a priori. Manual curators just curate and sometimes they get lucky with the windows and sometimes they don’t.

Randomness would discourage early voting by bots.

That is naive. Bots love randomness

Labeling a post as "naive" diminishes your standing as a legitimate debater, imo. Bots do not love randomness. Yes, they will compute the 'ideal' spot based on the parameters, but that is just the point. The creators of the parameters can use randomness to shift the 'ideal' spot in such a way that potentially diminishes their overall negative impact.

I was not saying this was a 'good' solution, but merely one of many to openly discuss and debate. It's not a position I would favor (nor is a straight lottery), but worthy of being 'out there' for folks to consider and debate.

I quoted a statement and claimed the statement is naive. In math, that is a word with an actual meaning. Or at least it was a decade or two ago.

Fair enough.

... expectation that I found inconsistent with the actual architecture of the game.

I do not claim to fully understand the architecture of the game. By all means, call out anything that might be inconsistent with the status quo or otherwise infeasible.

@themarkymark did a great job of explaining the current 'rules of the game' in principle here, but I have yet to dig into the code; so my comments and perspectives very well might 'miss the mark' in that regards.

That is naive.

A bold statement coming from an alt account.

Bots love randomness because the parameters are public

Assuming your algorithm is shit.

they can compute where the sweet spot is.

As opposed to hard coding their sweet spot as it has been?

Any system that does not look at the whole issue is only a band-aid. Any curation system that does not include the down vote (anti-curation), is only another attempt to maximize the returns for large accounts.

I saw no where in your proposal talking about the down votes, so in my point of view it is an incomplete proposal.

When it is fixed so that large curation teams with a lot of Hive Power, can not down vote non plagiarized post, nor down vote excessive reward post.

Due to the actions of a few large curation accounts, Hive Block Chain is going the way of Face Book, Youtube, and other social media accounts where only content they find acceptable is allowed to be rewarded, and all other points of view are to be muted or down voted into oblivion.

No I have not been muted/down voted to oblivion, I thought Hive had moved beyond actions that down voted content not for cause but because of opinion/point of view. Hive is a world wide platform, not a one country platform, not a one opinion platform, and evidently not a free speech zone either.

So before fixing and putting a band-aid on half the issue perhaps review and look at the whole issue.

This is an interesting idea, but what hinders auto-voters to still cast votes early to farm even more curation rewards? I am a proponent of keeping things (and reward curves) simple, and entirely remove the curation time window and make it linear for both manual and auto-voters like leofinance did.

I would just prefur leo's approach that way at least the bots are not getting an advantage over manual curators.


My witness node - Stream on Vimm.tv

My issue with Leo's linear-rewards approach (the way I understand it) is this:

    Why not just allow accounts to receive their 'curation' reward of 50% even when they are not actually curating (with the other 50% spread across all content creators proportionally).

By doing that, those who are not manually curating are in effect just amplifying the voting power of those who are (but aren't losing out on anything by opting out of the curation process).

In other words, remove the incentive to use auto-voting for base rewards capture.

Granted, that removes all financial incentive to curate; but is that a bad thing? Maybe not. Curation then becomes a voluntary social act. The number of curators will drop (perhaps significantly), but the quality of the curation might go up.

In summary, with a linear protocol, why incentivize auto-voting bots that add noise to the manual curation pool, when you can just let those who opt out of curating earn their 50% reward? That would be a much cleaner implementation of linear rewards, imho.

This is a very good article for everyone to see how things are being done in regards to the change in auto voting.

Late votes cast by auto-voting bots will boost content while it is still fresh (i.e. only a couple days old),

Still fresh?
Most votes happen in the first 10 hours, is my guess.

When I got here there was a 24hr payout, and a 30 day payout window.
I thought that was a good idea, but that wasn't left in place.
Instead it was changed to one payout after 7 days.

By "still fresh" I meant still within the upvote curation window. It doesn't do any good if the post is excellent but doesn't get noticed until after the 7d window has passed.

If the auto-votes are incentivized to occur at 1.5d after the original post, that will boost the 'good posts' (i.e. those that got the most manually-curated votes) while there is still plenty of time for additional manual curation.

I'm willing to try it.
My main gripe is the exponential penalty on small votes.
That thing chaps my hide.

 3 years ago  Reveal Comment

Personally, I don't fully understand the rationale behind a 7d window on curation rewards. I guess some window needed to be chosen.

 3 years ago  Reveal Comment
Loading...

Thanks for the quick feedback.

I agree gaming can and will happen. Whether it’s worse than existing is unclear to me at this point.

Probably need to work through some hypotheticals on a spreadsheet.

An extra degree of freedom, all else being equal, probably does increase the potential gain from gaming the system.

However, providing an honest alternative to the current bot race for early votes might convince the vast majority to accept a guaranteed honest gain instead of wreaking havoc via early excessive bot voting.

Another advantage would be the whale bots could be programmed to intentionally avoid delayed upvotes to posts that have been targeted by bots gaming the system.

A battle of the bots, so to speak.

The latter bots would have a distinct advantage, by going last.

Could also allow content creators to reject upvotes.

Community friendly whale bots could help content creators identify which early votes likely came from bots so they can be manually rejected.

Any button humans can click, a bot can be programmed to click it more regularly.

The idea of having two pools is interesting, because a bot could only compete for one of them, but it is unclear for me that all the bots would stay in the same, over-competed 5 minute pool if there is another pool to hunt in.

I don't even like the idea of 'flagging bots', if we want different things we should propose different rules, not try to attach morality to certain actions - (ie 'asking people to be nice has been tried before' 🤣). Flagging is permitted, but it hasn't shown that it is a very effective way for changing people's behavior.

The question for me is 'Why do we hate bots'? Since a bot is just a way for me to do what I want more regularly - a bot is programmed by a human, and we want human votes presumably. If its because the bot is unfair and not everyone has a bot, then it seems that removing the competition aspect (as LEO did) would be the best way. Everybody gets 50% of their own vote, nobody competes, bots are no longer 'bad'.

The idea of incentivising late voting sounds great but in the end all it can do is to move the bot playground from the first five minutes to the last five minutes.

Yes, that is exactly what we need to do (imho). The current 'problem' with bots is that they accumulate dozens of votes at the 5-minute mark for a post that might be complete garbage, but happened to come from someone who had some good previous posts. In other words, they add noise to manual curation, thus decreasing the signal-to-noise ratio. Delayed auto-votes can amplify the signal (because they have time to evaluate and filter noise from the genuine signal). In that sense, the bots become a resource rather than a liability.

If the bot playground is in the last 5 minutes (or the midpoint of the voting period, as I've suggested), then the bots actually have some really valuable information available to them, because the bots can evaluate the voting patterns of everyone who voted before them (and even cross-evaluating how they voted for others).

There is no extra df, you introduced an extra pool (df:=df+1) but also a new rule that you can only vote in one of those (df:=df-1)

I would say there is, because someone can split their vote via separate accounts.

Also, I am not explicitly saying the delayed auto-vote plays no role in the early-vote pool. Although I didn't explicitly lay out fine details (because I wanted to focus discussion on the big-picture concept), my current thinking would be that the delayed auto-vote percentage might be around 40% (slightly less than a linear reward of 50%) with 10% going to the early-vote curation pool. That 10% would then be subject to manipulation by delayed-auto-voting bots (by splitting votes across two accounts, one voting early one voting later).

Dream scenario is you curate a post, noone else does, you will have 10%

Thanks for the thoughtful analysis.

If I understand your analysis correctly, the biggest manipulation via self-playing with split votes is 50% curation reward instead of 40%, which is same as linear reward. If they want to go that route they can just early and late vote random comments and snag the 50%. Maybe that's not a bad thing? That being the case, police bots could easily search out those and dilute them. Or maybe let whales forfeit voting rights in exchange for 50% auto reward and 50% spread across all author rewards.

Some will still try to game other people's votes, but it seems to me that the incentive to do that goes down (relative to current protocol) because the late voting bots are contributing only 10% to the nonlinear pool instead of 50%.

What keeps a large stakeholder (today) from authoring a random comment via a separate account then posting an early vote from yet a different account, then posting a large last minute upvote.

Wouldn’t that gain the person 100% of his voted rewards? And couldn’t that all be done by a bot?

Asking people to be nice has been tried before. It does not work on chain-wide level.

I am not suggesting that we 'ask people to be nice'. Rather, I am suggesting that we change the rules so that the differential in payout from 'gaming the system' is not much greater than 'playing nice'.

The other advantage of incentivizing delayed-voting bots is that those bots can play a significant role in flagging and 'calling out' those that aren't 'playing nice', ultimately leading to the shunning and thus exclusion of such 'bad' behavior. This power is accentuated if content creators are allowed to reject upvotes they suspect are being made in bad faith, thus forcing the 'offending bots' to merely play by themselves, in their own sandboxes (amplifying their own rewards slightly, but not adding noise to otherwise valuable curation efforts).