No internet connection
  1. Home
  2. Ideas

Gain account levels based on number of upvotes & likes received

By @Mr.Nobody
    2021-10-22 01:23:22.126Z

    Currently, the forum accounts level-up after a number of interactions (posts, comments). This works fine for controlling spam at the start (accounts at lvl 0 have restrictions).

    However, from level 1 forward, I would like to instead reward users for the amount of upvotes/likes they receive from other members. And I would also like for accounts to gain these levels individually for each category of the forum.

    So, if a user only posts into the 'memes' category, he would have "lvl 5 Memes" badge, but not be recognized as a trusted source for customer support questions.

    The idea is to use the levels system to allow users to better differentiate who is helpful/trusted from who is not, and reward good content instead of rewarding "number of messages posted" (reward quality instead of quantity).

    This idea probably needs more polish, but something in that direction would be nice and very helpful.

    • 4 replies
    1. KajMagnus @KajMagnus2021-10-25 11:57:46.895Z2021-10-25 12:35:43.023Z

      from level 1 forward, I would like to instead reward users for the amount of upvotes/likes they receive

      Yes, that's how it will work. Will work? — Getting "promoted" to trust levels past Full Member has not yet been implemented.

      Talkyard will take into account how many Like votes someone has gotten, and also how many posts s/he has written. Think about A) someone who writes 20 posts and receives 20 likes, compared to B) someone who writes 1 000 posts and receives 25 likes.

      And maybe also who the Likes are from. Think about C) 10 people who join a community, and start liking each others posts. Compared to D) 10 people joining a community, and long time trusted members, Like-vote what the new people write.

      ***

      gain these levels individually for each category of the forum .... use the [trust] levels system to allow users to better differentiate who is helpful/trusted from who is not

      Maybe it can be helpful to split this into two things: 1) Having a good judgement, and 2) having lots of knowledge (about specific things).

      I'm thinking about trust levels not primarily related to knowledge. Instead, a high trust level would be more like having a good judgement, generally. For example, knowing when to reply, or when to let someone else reply. Or maybe (just an example) prefixing one's reply with a disclaimer that "I might be mistaken about this, but anyway: ....", when one probably has good advice but doesn't know for sure if it's helpful. And being friendly to the others (not starting flame wars), things like that.

      Precisely what constitutes a good judgement, would be community specific, I suppose — the core members would get to shape a community's "culture" (maybe they like flame wars).

      I think a good judgement is related to the person him/herself, and is present, in all categories / "everywhere". It's just that in some categories, the person won't have much to say, maybe will spend most of the time reading.

      Knowledge, though, can be category specific. And I've been thinking about using the user badges system, for this. For example, let's say there's a category about dragons. Then there could be a "Dragons" user badge with a per person value that says how knowledgeable that person seems to be, about Dragons.

      So, user badges, for showing "knowledge values" related to specific categories / things. And the more questions you answered in the Dragons category, the more Like votes you'd get, and the higher the knowledge-points number on your Dragons badge would be.

      ***

      This idea probably needs more polish

      Yes :- ) I think this is new territory, for both of us. I'm not aware about any discussion system that does this. For example, at StackOverflow, one's reputation points is for the whole site, not projected on different dimensions like C# or Java etc. Edit: Apparently Reddit has karma per subreddit — however, one cannot see other people's per-subreddit karma (from what I understood, after having websearched a little bit). Edit 2: Turns out StackOverflow can indeed show a per tag reputation breakdown — have a look: https://stackoverflow.com/users/22656/jon-skeet?tab=tags, however this doesn't seem to be an important part of how the community works; I didn't know about this per-tag-reputation-page until now. (Or I did but forgot.) /Edits.

      B.t.w. these "knowledge points badges" could also be associated with tags, not just categories. Because maybe one question is about, say, how to defeat Dragons with Magic, and is tagged with #dragons and #magic. Then, someone who answers that question, apparently knows a great deal about dragons and magic — and maybe she should get knowledge/reputation points added to both her Dragons user badge and Magic user badge. (Or, say, C# and Scala, for those who don't believe in dragons.)

      Actually I and someone named Gary R have been emailing quite a lot about this. He was waiting for me to implement user badges with values (to use as reputation points, in different dimensions / categories), and an API — now, the first step is completed (badges without values).

      ***

      What do you think about all this?

      1. M@Mr.Nobody
          2021-10-25 18:55:42.825Z2021-10-25 19:04:09.039Z

          What do you think about all this?

          That all sounds very very cool! I definitely agree with the direction you are thinking!

          Talkyard will take into account how many Like votes someone has gotten, and also how many posts s/he has written. Think about A) someone who writes 20 posts and receives 20 likes, compared to B) someone who writes 1 000 posts and receives 25 likes.

          I like this idea, but I worry a bit about rewarding quantity, since I have been following some reddit communities that reward cryptocurrency for Karma in the community (to reward good content) but the result has been that people just spam all day long for money and the result has been bad. It is nice to reward contributions, but I think upvotes/likes should have a MUCH higher weight.

          And maybe also who the Likes are from. Think about C) 10 people who join a community, and start liking each others posts. Compared to D) 10 people joining a community, and long time trusted members, Like-vote what the new people write.

          This would be AMAZING! Bots will often upvote each-other's accounts to get recognized, and this has been a problem in every social platform for a long time now. I even think that the "number of likes" shown on a post should somehow reflect the type of accounts that have upvoted the idea. So for example:

          • An idea with 100 votes from new users would have a score of 100 * 1 = 100
          • An idea with 100 votes from 100-rep-users would have a score of 100*100 = 10.000

          This formula is not ideal, since I would not like to see older members gaining too much powerm but it would be nice if accounts that have shown knowledge in a subject had more to say about ideas in that area.
          Maybe a more sensible approach would be to have a voting multiplier between 1-10, based on how high they are recognized in that category/tag/area of the forum.
          So accounts in the top 10% rep have their votes *10
          And accounts in the bottom 10% rep would have their votes *1

          That way it doesn't ever go over 10, to avoid centralization of voting power.


          Maybe it can be helpful to split this into two things: 1) Having a good judgement, and 2) having lots of knowledge (about specific things).

          I'm thinking about trust levels not primarily related to knowledge. Instead, a high trust level would be more like having a good judgement, generally. For example, knowing when to reply, or when to let someone else reply. Or maybe (just an example) prefixing one's reply with a disclaimer that "I might be mistaken about this, but anyway: ....", when one probably has good advice but doesn't know for sure if it's helpful. And being friendly to the others (not starting flame wars), things like that.

          yes that makes sense, I supper agree with also rewarding how friendly users are, not being toxic etc.

          Knowledge, though, can be category specific. And I've been thinking about using the user badges system, for this. For example, let's say there's a category about dragons. Then there could be a "Dragons" user badge with a per person value that says how knowledgeable that person seems to be, about Dragons.

          So, user badges, for showing "knowledge values" related to specific categories / things. And the more questions you answered in the Dragons category, the more Like votes you'd get, and the higher the knowledge-points number on your Dragons badge would be.

          B.t.w. these "knowledge points badges" could also be associated with tags, not just categories. Because maybe one question is about, say, how to defeat Dragons with Magic, and is tagged with #dragons and #magic. Then, someone who answers that question, apparently knows a great deal about dragons and magic — and maybe she should get knowledge/reputation points added to both her Dragons user badge and Magic user badge. (Or, say, C# and Scala, for those who don't believe in dragons.)

          I very much like this! I think this would be even better if users could give upvotes based on tags? So for example:

          Let us say a post is written with the tags [ #dragons #fantasy #iphone ]
          When users upvote the post, they can optionally choose which tag to upvote. So in that case the #iphone tag would not get many upvotes since it is not related to the subject.
          This way you achieve 2 things:
          1. Users get like based on categories that readers think are relevant to the content they contribute.
          2. Posts with wrong tags are automatically sorted into the correct tags based by user votes. This avoids users using millions of tags to receive reputation rewards in multiple badges.
          

          What do you think of this? Personally I like the logic behind it, but I have to see if I can come up with some UI ideas on how this could be implemented without being annoying to users. Maybe something like the facebook "like", that when long-pressed shows different types of "reactions"?
          So in this case: a like button that when clicked displays a list of the tags found in the thread? like:


          have a look: https://stackoverflow.com/users/22656/jon-skeet?tab=tags, however this doesn't seem to be an important part of how the community works; I didn't know about this per-tag-reputation-page until now. (Or I did but forgot.) /Edits.

          I had no idea this existed! but yes, they definitely don't use it in any relevant way! I would love to see talkyard use this type of intelligence better. Imagine a programming forum where you can actively search for users with top rep in certain tags like #javascript to find people to hire for a company and/or freelancing jobs!

          Actually I and someone named Gary R have been emailing quite a lot about this. He was waiting for me to implement user badges with values (to use as reputation points, in different dimensions / categories), and an API — now, the first step is completed (badges without values).

          I would love to continue contributing to this discussion so feel free to contact me directly if you ever want my opinion in any way :)

          I feel like at some point talkyard will have a "free version" like reddit (where anyone can create communities etc). The main advantage for users would be the single sign-on for all communities, and the advantage for companies would be that users are more likely to use a forum for which they already have accounts. This way, you could offer a free version that is add-supported, while having separate paid versions for companies (or something like that).

          Where I am getting with this is: that is why I think this type of advanced reputation system would allow you to totally outperform reddit in bot control, content quality and user engagement.

          1. KajMagnus @KajMagnus2021-11-10 17:53:06.889Z2021-11-10 18:08:37.039Z

            A quick reply for now, I'll write more later:

            Talkyard will take into account how many Like votes someone has gotten, and also how many posts s/he has written. Think about A) someone who writes 20 posts and receives 20 likes, compared to B) someone who writes 1 000 posts and receives 25 likes.

            I like this idea, but I worry a bit about rewarding quantity, since I have been following some reddit communities that reward cryptocurrency for Karma in the community (to reward good content) but the result has been that people just spam all day long for money and the result has been bad. It is nice to reward contributions, but I think upvotes/likes should have a MUCH higher weight.

            There's a misunderstanding.

            People who post things that others tend to like, will be on the road to becoming Trusted members.

            The person A who posted 20 posts and got 20 likes, had gotten on average 1 like per post.

            Whilst the other one, B, got on average 0.025 likes per post — 40 times fewer. If things continued like that, B would probably never become a Trusted member.

            Talkyard will give more weight to a person P's more recent post, and less weight to posts made long ago.
            And will also take into account how many people have read the posts. So, it'll be upvotes, divided by how many people read the posts, a value between 0 and 1. (If one posts something, and no one ever reads it — it has no effect on one's "vote score".)

            (Maths wise, this will (I think) be an Exponential Moving Average, but not an average, instead, a binomial Proportion confidence interval for the likelihood that someone likes what one writes. Taking into account number of posts, who many liked the posts, and how many read the posts in total. Maybe this could be called like an "Exponential Moving Binomial Proportion Confidence Interval of Getting a Like Vote by Someone Who Read what You Wrote".)

            (Why a confidence interval, not an average? Because if it's an average, someone who posted 1 post and 1 person read it and Like voted, would get the top max top top Like vote score. But that makes no sense — instead, there's not yet enough information to say anything. And confidence intervals can handle this.)

            have a voting multiplier between 1-10

            Yes, the upvotes (or absence thereof) would be weighted by the "trust score" of the person who upvoted (or just read, but didn't upvote) — so that upvotes from long time members that wrote things others liked, mattered more.

            The exact weights (voting multipliers) could be site configuration values (meaning, the admins get to decide — higher values would make long time trusted members more "powerful").

            Bots will often upvote each-other's accounts to get recognized, and this has been a problem in every social platform for a long time now.

            Oh, interesting to know. I guess I could have guessed that they did, still, never thought about that. Seems what we've written above would be able to deal with that.
            (I guess the bot creators will come up with other tricks instead :- ))

            1. In reply toMr.Nobody:

              ( B.t.w. the mathematics for estimating the likelihood that a person's posts will get Like voted by someone who reads it,

              is the same / similar-to the mathematics for finding the most interesting comments, so they can be shown first, if sorted by more-interesting-first.

              Here's an old article I wrote about that: Solving the problem that the topmost comments get all upvotes
              and a discussion about it at HackerNews: https://news.ycombinator.com/item?id=5430216 )