steemit / steem

The blockchain for Smart Media Tokens (SMTs) and decentralized applications.
https://steem.com
Other
1.95k stars 790 forks source link

Comment Reward Pool #774

Closed mvandeberg closed 7 years ago

mvandeberg commented 7 years ago

Comments (as opposed to posts) should have their own reward pool. The implementation should be abstract to allow for further divisions if we choose to do so in the future.

Team-Steem commented 7 years ago

I agree with pfunk that if this was to be implemented then comment would benefit from having their own voting power.

Also I feel like we should begin with 2-4% of the reward pool to comments. On reddit the comments are super nice and they have a big 0 reward.

mvandeberg commented 7 years ago

We are interested in feedback on whether comments and post should each have their own voting power.

On the one hand it allows users to upvote each without having to worry about how their votes effect the other category. However, voting power is already enough of an enigma to users that creating another type of voting power could create confusion.

bitcoinparadise commented 7 years ago

I'm in the middle of this Idea. One hand it's another reward pool to increase rewards and increase engagement in the comment section.

On the other hand, Most likely we will see complaints about how both reward pools are being "drained." Most likely have bots to vote on comments and not read the content itself.

Team-Steem commented 7 years ago

I'm beginning to doubt there should be a comment reward pool. I'm currently trying to read as much Steem post as I can and I can't even keep up already.

The comment reward pool would split our attention.

Also wouldn't there be a risk of whales abusing this too easily?

It was a mess when there wasn't a 30 minutes penalty on posts. Would there be a penalty on comments? If not what would be the consequence.

At this point, I use comments like this. I upvote the comments on my posts to make them in order I want to see them. I see mostly the same done on other posts and maybe it's the way it should stay.

abitmore commented 7 years ago

This feature is unneeded imo. If you want to give more rewards to comments, just have some different UI for example "trending comments", "hot comments", "new comments", "comment feeds" then people will see them more and upvote them more. As @arhag said:

It is a little bit ironic though, that the motivation is to not have the interface drive the blockchain, but that's exactly what separating comment reward pools does.

However perhaps this shouldn't be discussed here. See more discussion: https://steemit.com/steem/@steemitblog/steem-0-17-change-proposal-introduction

Mustard5 commented 7 years ago

As a rare post creator and frequent commentator, I would like to see a comment rewards pool. The question I have about the detail is does that mean that we will have separate voting power levels for comments and articles?

I know I am always conscious of my voting power as I upvote both articles and comments. My primary goal is to reward authors, as without the author there is nothing to comment on. Currently I turn down my comment voting power to 1%, so I can register affinity with the commentator while not draining my voting power. If I had two levels of voting power, I'd be more inclined to vote up comments with 100% power.

Another question I have. Voting up comments is a way of increasing their visibility. This is a useful tool in the current climate of people not always engaging with posts. I can quite easily upvote myself and get my comments to closer to the top. Let's assume we have people now commenting for rewards and then upvoting themselves (using bots perhaps) to get their comments to the top, what mechanism will we have in place to compete as individual users choosing to remain separate from the hive mind of bot users?

I think it would be critical for commentators to have the tool of the downvote button as a balance.

I've heard concerns that having a comment reward pool will now just spread the whale/bot problem around. I can probably agree with that. The whale/bot problem isn't going away though and in the meantime, as a commentator, I'm having to justify the opportunity cost of time spent in front of the platform. Rewards for commentating and curating allow me to justify giving my attention to the platform in a world of tight time constraints.

Facebook (as an aside, I deleted my Facebook) gives some indirect rewards of 'connection with family and friends'. It can do that because of it's network dominance. All other social media attempts that I have been a part of Diaspora, Google+ and tothers have lacked the family, friends connection and proved lack lustre as a method of engagement. What I like about steemit.com is the movitating factor of rewarding my time with potential long term gain, through capital gains on my investment. That gives me a motivation to remain engaged given the lack of a 'connecting with friends and family' motivation.

To conclude this ramble a bit more succinctly, quality of posting is important. Nobody likes posting quality and not getting authentic commentary on that topic. Rewarding commentating, might give rise to inauthentic commentating, we need to balance that with downvotes. Rewards for commentating will help the reader justify the time spent in an activity that might be deemed 'unproductive' otherwise.

(@seablue Steemit handle)

mvandeberg commented 7 years ago

Comments are in an interesting place. From the beginning, one of our core design goals for Steem was to promote discussion. Getting comments paid more is a little bit of a chicken and egg problem. Comments aren't voted on because people feel that they are wasting their vote on a comment which then means that comments don't get paid well and those that did vote on them feel like their vote was wasted. Budgeting part of the reward fund specifically for comments is a way for the blockchain to subsidize discussions.

With regard to voting power, if they used a combined pool then there would be an equilibrium point where you would want to use X% of your votes on posts and (100-X)% on comments. If everyone votes on posts on one day then your vote on a comment could allocate 100% of the reward pool that day and so your vote would have a much larger impact. If voting bots continued acting as they are right now, then voting on comments would have a larger impact because votes that used to allocate 1% of the rewards would then be allocating 38% of the rewards.

bitcoinparadise commented 7 years ago

With regards to voting power how you explained it makes a lot of sense. I'm just wondering about the behavior of having to think what strategy to earn the most rewards from how I set my voting power to vote on posts and comments and not focus on the content.

mvandeberg commented 7 years ago

We have decided to have a single reward voting power pool. There are several reasons behind this that both create some interesting beneficial user interactions and follow along with our theme of KISS.

While we acknowledge that multiple reward pools does make initial sense there are two ramifications of this decision that have detrimental side effects.

  1. It encourages users to use the voting power in both pools. There is already a feeling of needing to use your voting power or else losing it. Another voting power pool is yet another thing to do. We want attention to be focused and impactful.

  2. If we another type of reward fund is ever created we will have already set a precedence of creating another voting power pool. Two pools may be reasonable but three, four, or five may not.

In addition to keeping the protocol simple, this use of voting power in one of two reward funds has an interesting side effect of creating a balance point for where to use your voting power most effectively. (As described above)

The comment reward fund is not going to pay out curation rewards. We want good discussion to be fully rewarded. Discussion is two way where curation is one way so discussion has an implicit feedback mechanism where making good points and engaging in the conversation leads to more conversation and more things to be voted on.

Because comments do not have curation rewards, whales voting on them are doing so purely to reward the commenter. This implies that whales wanting to profit from curation rewards are only going to vote on posts. The net effect is dolphins voting on comments will have a greater say in how rewards should be distributed than they currently do. On the other hand, if whales vote on comments then there will be less competition for curation rewards and it should be easier for dolphins to profit from curation rewards.

abitmore commented 7 years ago

The comment reward fund is not going to pay out curation rewards. We want good discussion to be fully rewarded. Discussion is two way where curation is one way so discussion has an implicit feedback mechanism where making good points and engaging in the conversation leads to more conversation and more things to be voted on.

Because comments do not have curation rewards, whales voting on them are doing so purely to reward the commenter. This implies that whales wanting to profit from curation rewards are only going to vote on posts. The net effect is dolphins voting on comments will have a greater say in how rewards should be distributed than they currently do. On the other hand, if whales vote on comments then there will be less competition for curation rewards and it should be easier for dolphins to profit from curation rewards.

IMO this direction sounds not good. If no curation reward will be given to comment curators, it means less people / bots will vote on comments if the voting still consumes voting power, so total rshares on comments will be much less, if not using a separated pool, I can image that comments would get even less reward than nowadays. On the other hand, shifting rewards from curators to authors means the ones who particpating for reward would be commenting then self-voting or voting for each other.

clayop commented 7 years ago

This feature is unneeded imo.

I have similar thoughts too. Setting apart a certain percentage is unnecessary. Rather if comments are treated as posts with the same payout period, the proportion of comments in the reward pool will be naturally determined.

mvandeberg commented 7 years ago

It is currently 1%. Comments are in a catch 22. People don't tend to vote for them because they don't get paid well and they don't get paid because people don't vote for them. Part of voting is the effect of seeing how much you reward something. The simple utility maximization function is to vote on things that will have the greatest effect. Voting on comments is almost never a solution to maximize utility. There is, however, something to be said about the utility of seeing large payout because of your vote instead of getting a small reward for curating. Additionally, if comments got paid more a lot more people would spend time writing meaningful comments in order for a piece of those rewards. As it is, writing a comment is simply for the joy of communicating with the author and no other reason.

liondani commented 7 years ago

I think every single reply to comments must give to the comment-author de-facto a % of upvote (for example 5%) because giving an answer means that the comment draw attention and gives some value to the conversation(except the comment was flagged)

I have not voted for many comments (but I would be happy the system would do it for me) for several reasons...

  1. I just was lazy
  2. I don't wanted to destruct my thoughts on the conversation(!)
  3. I forgot!
  4. I don't wanted to loose time to decide how much % to give to not waste voting power!
  5. lazy
  6. lazy
  7. zzZZZ
bitcoinparadise commented 7 years ago

substeems

Team-Steem commented 7 years ago

The more a comments become elaborate and valuable the more the person commenting should make a post out of it. I'm not sure comments should have their own pool. A lot about this proposal seems unknown and 38% seems like it would really shake Steem a lot but we have no idea if it would be good or bad only that it would be a drastic change.

pfunks commented 7 years ago

@mvandeberg

We have decided to have a single reward pool.

The opening sentence makes it sound like you're talking about not making a comment reward pool. But by the rest of the message after that, it sounds like you're keeping the second pool for comments, just not making a second voting power for comments.

And if there are to be no curation rewards on comments, 38% is way too much. It already was too much, but in removing them from comments you're talking about reducing all curation rewards, which is supposed to be one of the selling points of Steem Power, by 38%. Stop eroding reasons to hold Steem Power please.

@liondani I disagree. By that logic, commenters should automatically upvote a post they leave a comment to as well. I sometimes respond to comments and posts where I absolutely do not want to upvote what I'm responding to.

mvandeberg commented 7 years ago

@pfunks You are correct. That was a mistake on my part. Two reward funds and a single voting power pool.

samupaha commented 7 years ago

Lack of comments is UI problem because notification system is still weak. If I find an interesting post and leave a comment, I don't get any notifications for discussion that happens afterwards if nobody comments my comment. There might be dozens of great comments but I will be unaware of them because I don't usually check same post several times. I just read the post once, maybe leave a comment and move on to other stuff.

On the other hand, lack group functionality in the blockchain is also preventing high quality discussions. Currently Steemit is just a publishing platform. If we want to be also a social network, we need to let users to form communities.

If we want Steemit to be a platform for meaningful discussion, we must find an answer to this question: How people are going to find like-minded users? Searching for old posts is not a great way because you can't even reply to an old post. Best thing you can do is to find interesting authors and follow them and hope they will post something in the future that will ignite good discussion.

Tags can help, but they lack very important feature: users can't follow a tag. I've been thinking about this lately and came to a conclusion that "join community" is necessary if we want to have communities in Steemit. Following a tag would be one necessary step to that direction.

Another necessary feature for communities is exclusion of unwanted users. Otherwise good communities will be poisoned by spammers and trolls when they become successful.

I've written about this few times: Feature proposal: Ownable tags (tldr: if somebody owns a tag, they can decide who can post using that tag which is exclusion feature; in addition to that owned tags should be followable which is the "join community" feature) Feature I'd like to see in the roadmap: Steemroom (group functionality in the blockchain) (steemroom is great name for group functionality)

This relates very much to a problem that I haven't seen getting much attention: too much noise. Among many other things, it causes good discussions to disappear so fast that many times they don't even get started.

Better notification system would tell the user about discussion that he probably will enjoy, thus making the user experience nicer. I want the system to tell me where the discussion is happening instead of me having to go and actively search for it – there is so much noise that it's pretty hard.

Group functionality would reduce the noise because users could focus on groups of like-minded people instead of this chaotic bunch of individual posters. In the current system it's pretty much about good luck than anything else if somebody wishes to find meaningful discussions.

So yeah, I am also critical of having a separate reward pool for comments. Better notifications and group functionality would be much more efficient ways to create discussion.

abitmore commented 7 years ago

Perhaps the next step would be to get rid of curation reward entirely or phasing out it over time, if the experiment on comments get good result.

Team-Steem commented 7 years ago

I think a comment reward pool would drastically change things on Steem and this could very well be for the better.

I'm more open to the idea now but it's still seems so impossible to predict where it would lead us. Also implementing this now would have a very distinct effect than when we'll be in the tens of thousands daily users.

3beanzz commented 7 years ago

@samupaha I use SteemWatch for notifications. https://steemwatch.com/home I think the proposal is perfect. I would even go as far to say 38% of the reward pool could turn out to be too little.

liondani commented 7 years ago

I think the 38% is good... but what happens if a post has only one comment? Will the commenter take all 38%(?)... Would it be not better that the percentage change dynamical depended on comment activity? (total SP participation from commenter’s) From Low/Min activity 1% to High/Max activity 38% ?

KrNel commented 7 years ago

https://steemit.com/steemit/@krystle/incentivising-comments-on-steemit-with-a-new-display-option

Much better.

abitmore commented 7 years ago

@liondani I think comment rewards will be independent from the root posts, all comments will compete together, basic idea is reward_of_this_comment = voting_shares_on_this_comment * global_reward_pool_size / global_voting_shares_on_all_comments. So it won't matter if one post has only one comment.

abitmore commented 7 years ago

Some thoughts:

TimCliff commented 7 years ago

What are people's thoughts on the percentage of the rewards pool that goes to comments vs. posts being a witness parameter?

theoreticalbts commented 7 years ago

The more I work on this, the more complicated it gets. I'm not sure if this requirement is explicitly stated in the ticket, but my understanding is the new code should have commutative payout like we modified the existing logic in #771 to have. But that requires two passes: First pass gets total rshares2 being cashed out this block, then you do a single transaction with the pool to exchange those rshares2 for steem to be distributed, then you do a second pass to actually payout based on the comment's fraction of the rshares2 being cashed out this block.

The existing indexing for this logic is implemented based on only ever reading the first comment, because you delete a comment when you're done with it...a two-pass algorithm cannot delete comments during its first pass.

So we have an outer loop that goes through all comments with a payout date in the range, then an inner loop that goes through all comments rooted at the comment in the outer loop. But the problem then becomes that you might be processing some comments twice, because a comment might be within the range based on its date AND have a parent comment (or in general, multiple ancestor comments!) with a payout date in the range. The existing logic handles this by deleting each comment as it's processed so it can't be processed twice...but that goes out the window during the first pass of a two-pass solution.

I think I'll program this defensively, the safe slow way -- do two loops, save into a local array without worrying about duplicates, then delete duplicate ID's from the array (i'm pretty sure that somewhere in <algorithm> or Boost there's an implementation of sort|uniq). If we come up with better indexing (or document some of the corner cases of our current indexing) then maybe we can build a faster way to do it.

theoreticalbts commented 7 years ago

To figure out more about the loop processing, I want to be able to look at raw comment objects from the database. Unfortunately we have no way to get those via API, so instead I'm looking into saving the DB to JSON #854.

theoreticalbts commented 7 years ago

Based on some discussions with @mvandeberg some things have come to light. Substantial simplification of comment rewards is forthcoming in #769. In particular, rewards will be done on a comment-by-comment basis; whole-discussion rewards will be a thing of the past. This greatly simplifies the iteration order.

TimCliff commented 7 years ago

Just throwing an alternate idea out there as a different way of incentivizing comment rewards - what if we kept the rewards in a single pool, but doubled the curation rewards for comments (50/50 instead of 75/25). It could motivate users to use their voting power for comments without needing to segregate the rewards pool. Would this be a simpler change?

liondani commented 7 years ago

interesting idea @TimCliff to just change the author/curator reward ratio for comments!

mvandeberg commented 7 years ago

Merged

mvandeberg commented 7 years ago

After discussing with some of the witnesses we are revising this ticket.

We are still implementing a comment reward fund but are enabling curation rewards on both funds and are going to use a new curve on both funds. The exact curve that we are using is defined as c(r) = 1000000 * ( (r + a)^2 - a^2 ) / (r + 40 * a ) with a curation curve of w(r) = r / (r + 2 * a). Please note that c(r) is still in the basic for of the r^2 / (r + s) curve that was discussed previously. The choice and derivations for these curves will be described in more details later.

It also worth taking note that all of the heavy lifting for implementing multiple reward pools each with different curves and different percentage payouts to curation rewards has already been implemented in a modular, abstract approach. We have a lot of flexibility to play with those in the future while being as unobtrusive as possible.

mvandeberg commented 7 years ago

This was updated and merged.

TimCliff commented 7 years ago

In the release candidate, it says that there will not be curation rewards on the comment rewards. Is that correct? The last update in the issue above indicated that there would still be curation rewards for comments.

Gandalf-the-Grey commented 7 years ago

There would still be curation rewards for comments. That's a bug in release doc.