User Authority - A Better Reputation System With Interesting Applications

in #steemdev6 years ago

User Authority.jpg
The other day, I was approached by @scipio and introduced to the idea of User Authority. They ( @scipio and @holger80 ) have been working for months on this project.

Two blogpost introduced me to the concept:

If you are technical, these blogpost would make a much better introduction. But if you are like me and would like to have it layed out to you simply, this article is for you.

What is User Authority ?

First, let's identify some of the problems that Steem is facing:

  • The current reputation system is broken and can be easily gamed
  • Trending/Hot section doesn't showcase the best quality content
  • People game and spam the system with hundreds of bots
  • Abusive self-voting
  • Flag war

User Authority(UA in short), is a spin-off of the PageRank algorithm that made Google the number search engine in the world. This algorithm (along with other metrics) calculate the probability of landing on a given website by randomly clicking hyperlinks. Now rather than hyperlinks, @scipio uses ACCOUNTS instead of websites and FOLLOWS instead of hyperlinks to generate that probability distribution.

UA calculates the "influence" of any account as a probability distribution. In essence an account can directly "earn" a higher UA rank in 2 ways:

  • Create brilliant content
  • Provide a great service to the steem community(aka utopian, steemmonsters, etc)

For more details, I would suggest that you read his article but this definition should suffice for the purpose of this article.

Applications of UA

The real value of UA will kick in once more and more communities/apps/smts will start using it. After months and months of research and development, it will soon be available to use.

Because UA would require hardforks to be implemented on the blockchain level, they've decided to create an API for applications to use. (curation guilds, apps, SMTs, etc.)

As more people start using UA to prevent spam, better curation, trending/hot pages, create lists for airdrop and so on, the more people will care about the quality of their own UA. So it is imperative to find communities, SMTs, Apps that will decide to use it once it is launched.

Here are some applications that UA can be used for...

Better Solution Than Oracles

Rather than relying on third party services to create ways to verify that I am a unique user, UA gives us a high probability that at a certain threshold, we are dealing with a genuine account and not a bot. All that with data already available from the blockchain.

Forget about KYC/AML and other shady way to verify you are real. Now you can have an anonymous passport guaranteeing that you are a real person behind a real account.

With this, SMTs can implement the famous 1 person/account 1 vote that Steem has been proposing simply by plugging into the API.

Responsible Delegation

One of the thing that is difficult to do when a given project is giving delegation, is to make sure that you are rewarding genuine account and not bots. Also, you need a way to discover the best content without having to go through all the content manually. If the requirement to receive delegation was to use UA to prevent spam and abuse, then we would have a much better use of that gift given to apps built on Steem.

Better Content Ranking / Better Trending Page

You are sick of the content being ranked by who can buy the most upvotes from bots? Applications can now display great content that disregard someone's ability to buy exposure with bot upvotes. With this come a better curation experience for those looking for quality content to upvote.

Unfollow > Flags

With UA implemented in a given community or app, the most punishing act one can do is to simply unfollow an account. As an account loses followers, the more this account loses it's ability to get exposure, less exposure = less organic vote, etc.

Now it's not just the action of 1 person with large SP that can decide what has to be punished or not, it's the wisdom of the crowd.

Spam/Abuse Prevention

The goal of any given account is to increase their UA and according to what I've read, it's very hard to game and can't be bought. Apps, curation bots...and even promotion bot need to have a dynamic whitelist/blacklist...that is time consuming and difficult to maintain. Now UA does the job for them.

Conclusion

This is from my limited understanding of UA. I'm excited for this technology to be released and for SMTs/Apps/Communities to start using it. Feel free to ask your questions below and I will try to answer, if it's more technical, @scipio might be in the comment section to answer them ;-)

Sort:  
Loading...

I'm also here to answer technical questions.

I hereby want to publicly thank you for being such a wonderful colleague on working on UA with me. You deserve all the followers Steem has!

Hey @scipio, I’m a content creator and I pride myself on my ability to write good songs with great production and video. I’d love to be able to provide good quality for UA. When and how can I sign up and get involved ?

Oh good! Last time I looked into this I noticed that the UA model basically looks at the ratio between follows and followers. If you have more followers then you get more UA, but if you follow more people you lose lose UA. Is this still how it works?

That's partially correct, UA does not directly look at the ratio between an account's follows and followers.

It matters more who follows an account and also how many others that account follows.
The most optimal increase for your own UA score, is be followed by an account that itself has a high-UA score, but does not follow many others.

One such example would be @neilstrauss : Neil is (arguably) (one of) the best Steem author(s), a real user (not a bot, and not an alt-account), and Neil is followed by so many people because of his amazing content. However, Neil himself is very careful about who he follows.

Thank you for that comment, I was just a tad bit concerned when I saw "Unfollow > Flags" headline. This cleared it up. I want to get the number I follow back down to a manageable level, however when I first read that paragraph I got just a little concerned it was going to be another follow for follow if you want a reputation (UA) score.

@cryptoctopus meant with Unfollow > Flags, that with UA it's more powerful (and safe! ;-) ) to un-follow a user you disagree with, than to flag his or her content. Because by unfollowing that account, on average, it receives a lower UA score, hence less influence and power to monetize its account and content.

That was a little of what I gathered, I was more concerned that the people following the most people would have an unfair advantage over those that choose to follow fewer people so they can better manage their feed. So with a bit better understanding that fear is no longer really there.

It's actually the other way around: an account following thousands ("N") of other accounts, can only distribute 1/N of their own UA per follow

So I posted this asking cryptoctopus further down, but think it belongs here...

So what about this attack vector: An attacking user creates one hundred accounts. These accounts all follow each other giving them a neutral UA. Then all of these accounts follow the attacking user to transfer their UA to the attacking user.

Wouldn't this be a way to undermine the UA system?

I like the idea behind UA, I'm just worried it can be easy to take advantage of.

Answered in the top comment! ;-)

I don't like this.

I feel like it will lead to people unfollowing weaker users in order to improve their UA.

If you would re-formulate this into a question, I'd say its an excellent question! :-)

Q: Would people trying to improve their own UA lead to the unfollowing of weaker users?

A: unfollowing accounts, on average, doesn't directly increase your own UA score! Nor does the opposite apply: by following a certain account, you don't directly increase or decrease your own UA score.
The entire follower matrix, currently, consists of about 150 million individual follows. Via that extremely complex network of follows, it's close to impossible to predict if following or unfollowing 1 account leads to an increased or decreased score of your own account.

As said, UA is very hard to game. Also don't underestimate its complexity, nor base any of your conclusions on a simplified assumption.

It matters more who follows an account and also how many others that account follows.
The most optimal increase for your own UA score, is be followed by an account that itself has a high-UA score, but does not follow many others.

That sounds like... a pyramid.

Also, the way you are describing it, okay let's say it doesn't directly increase or decrease your own UA score, what I'm saying is that the impact that follows can potentially have in any system where UA is important is that follows become hoarded like a finite commodity which is clearly anti-social, because you've stated that following less people is better for the people you follow. Is this not the case?

It is true that by following a reasonable amount of people, your own UA is proportionally distributed best to the people you follow.

Up until today, many Steemian-beginners ask for follows("follow me and I will follow you!") But that doesn't work because it adds zero benefit, and others find that irritating so as a net consequence, asking for follows results in less followers.

Also it has nothing to do with a pyramid. All that UA does, is empower real users providing awesome content and/or helping the community.

You are getting worried by over-simplifying the extremely complex follower graph that has been on Steem as long as "following accounts" is possible. There simply is no direct causal effect to increase or decrease your own UA by following or unfollowing another account, where that "rule of thumb" would apply to every account and every follow or unfollow.

PS: this is pretty technical and mathematically complex, but we've incorporated a mechanism that effectively combats an account following nobody.
Accounts that receive follows but don't follow anybody themselves, are "dangling nodes", that would lead to a division by zero problem, and or would be able to sink-in UA. We circumvented that problem by introducing a virtual account called "Omega" (or "Everybotty" as @Holger80 and myself have dubbed it). In our computations, every account virtually follows Omega, and Omega follows every account plus itself. Then we subtract Omega's UA from the matrix, and normalize all other accounts from there.

And also, we can tune the systems behavior with varying the damping factor. No worries!

Is Pagerank used by Google a pyramid? I mean, because of PageRank people got careful about the quality of their hyperlinks, who they link to and because of that made the process of finding relevant website around certain topic way easier.

Now, we have a metric that tells us who's most followed by real users and who are bot swarm...it's a win/win, much better than the current system.

All I'm saying is that entire careers have been built out of reverse engineering the pagerank algos, and if there's money involved people will always try to "crack" algos.

and those career almost no longer exist. "SEO Expert" are now building websites that are actually doing what the are supposed to do, create value around a particular niche. Black hat is pretty much dead.

So what about this attack vector: An attacking user creates one hundred accounts. These accounts all follow each other giving them a neutral UA. Then all of these accounts follow the attacking user to transfer their UA to the attacking user.

Wouldn't this be a way to undermine the UA system?

I like the idea behind UA, I'm just worried it won't work.

Answered in the top comment!

I would say unfollow users that you are not reading anyway. Following someone would actually mean that you care about their content. If the person has a low UA, then following them actually is helping them get attention from other people. If you unfollow, it's because their content no longer interest you.

Also, following a strong UA doesn't do anymore good than following a weaker account.

100% correct

This post made me feel a little more hopeful today, so thanks for that @cryptoctopus!

I realize everyone has their own reasons for being on Steemit; I am basically a content creator and social engager, for lack of a better term. I find it frustrating that the reputation system here IS as broken as it is.

I have long found it frustrating to create something every day that's hopefully interesting and "of value" and watch it take eight months to move my rep a single point; while someone spends $100s to promote their every mediocre post with bots passes me in a couple of months... while simply "churning" the same 500 SBD over and over and over. I find it frustrating that the only person on Steemit with a rep above 80 was basically serial spammer with a personal whale account.

At the same time, I recognize the challenges. The world is filled with people who would rather get ahead via manipulation than via authentic contribution.

I am also very aware that the attractiveness of Steemit as a content platform is the freedom to post pretty much whatever you want. I love that about this place! What I don't love is that there's a measurement system in place that allows people to artificially create the illusions that crap is quality.

Yes, of course! "Quality" is subjective. And I hope people can still have the freedom to post 100 crappy memes a day... BUT that they will be rewarded with precisely the handful of pennies and attendant reputation that deserves.

One thing I HAVE noticed is that the majority of "quality contributors" tend to follow only a fraction of the number of people following them. Often by a factor of 10-to-1 or more. I feel it is overly ambitious of me to pretend to follow over 500 people... and yet each one was put there because they had something worthwhile to add. Meanwhile, I have NO IDEA who most of my 4400 followers are. Which brings me to the next thing...

Content CREATORS vs Content CONSUMERS.

I don't know how and if this proposal will address this, but Steemit seems to have somewhat of an imbalance in the sense that it is so heavily skewed towards content creation. Few — if any — people talk about Steemit as "a great place with interesting information!" It's nearly always "A great place to publish and get rewarded."

I could see how a better "User Authority" system could also serve to build a READER (and subsequently CURATOR) base for Steemit... because I think we need more readers (aka "content consumers") here.

Anyway, thanks for sharing this, and also thanks to @scipio and @holger80!

Sorry about the dissertation length comment... this topic happens to be near and dear to my heart.

Brilliant comment! Tusind tak!

Your talents are multiple ;-)

I'm big on this idea, and feel it could work brilliantly on Steem.

It sounds like even more of a reason for the engaged accounts to tie themselves in with one or more dapps and communities. A follow by one or more of the leading community accounts sounds like it could really boost ones UA score.

Looking forward to seeing how UA develops. Nice work @scipio and @holger80!

Couldn't have said it better myself! 💯

This looks like a great initiative!

Thank you! We're doing our best! ;-)

I really hope UA will be implemented!

Thanks! We will! It's almost live!

I would be surprised if the UA-algorithm cannot be gamed, and I would be even more surprised if it can be used securely to identify real unique persons ... at least as long as it only pulls data available from the current blockchain. But I like to be surprised ... good luck with it :-)

Every algorithm can be gamed, but gaming UA is very hard, and on top of that I can alter the formulae (change weights, increase/decrease the damping factors, change how Omega virtually follows and a number of other tweaks and tunings).

UA is not about revealing people's real life identities: but it does effectively predict which accounts are run by humans, by bots, and which accounts are alts.

So in the end of the day it's you who decides who should get a good UA and who shouldn't? :-)

But yeah ... protocols hard-coded in the consensus layer will always be a difficult beast to tame, a slow-moving target while the people that really want to game the system can move around very quickly. People will always be upset about all the gaming and will always complain and whine and eventually argue. As an open-source add-on-the-top API service people the algorithm can be tuned anytime and people who don't like the way you are tuning it are welcome to put up their alternative version of UA.

I hope we'll see it rolled out and in use soon (even if I doubt it's a silver bullet), and I think I may agree with @glenalbrethsen that the reputation system ought to be scrapped. While I think the reputation system isn't completely flawed, I see no reason why we need such a scoring system as a part of the consensus algorithm.

Sometimes things work in a very serendipitous manner. Thanks @tobixen, for tagging me, or I would have missed this completely.

I suppose this is why we can't have nice things. That even a protocol that is meant to give folks a proper ranking has the chance, however less easy that it may be, to be gamed. Worse than that, however, is that people will even try to game UA, because they will still find it better to spend however long it takes to get around it than basically working the system the way it was intended.

If all of that time effort could be harnessed and channeled for good... :)

Answered in the top comment!

Hey, @cryptoctopus, @scipio and @holger80.

Thanks @cryptoctopus for writing this post. I've ran into the other articles you cite and read at least one of them, but when things get too far into the technical weeds, it's hard slogging for this aging brain of mind. I appreciate you putting things into terms that are easier to understand. I'm sure there will be more to learn and grasp, but for now, I think I have an idea of what UA is and what it could do.

I've read through some of the comments here, but not all, so if I repeat what's already been asked, I apologize. You can simply refer me to where you've answered it already if you like.

It occurs to me, since it's happening to me, that most of us are being followed by bots, alts, etc., of every flavor and stripe. UA is supposed to be able to tell what those accounts are and downrank them? Meaning, their UA will drop because they are bots?

Now, I think I understood that it matters less who follows us than who we follow, although, in that, there's no way to know really how that's going to affect my UA. But if the purpose is to have a higher UA, why wouldn't it behoove me to follow those who have higher UA? I mean, I want to associate and read from the best STEEM has, right? Or is the purpose of all of this to essentially make it worth my while to follow all kinds of human accounts, no matter where their UA may be, within a certain limit. In other words, being choosy about the accounts I follow, but diverse in them, too.

The UA value of an account is only determined by the follow/unfollow behavior of all STEEM user. When they follow bidbots, they have a high UA and when they stop following bidbots, their UA will drop.

Following or unfollowing other users do not change the UA of an account significantly. In order to improve my UA, I have to act in the way that the number of followers increases. The best way is to this is by writing good content. For UA, it does not matter if the post is upvoted or not. It's only matters if it's read and user wan't to read more by following me.

So accounts with high UA are not followed because of their high UA; they are followed for their content.

Hey, @holger80. Thanks for responding. Okay, so to make sure I get this. You're talking about the UA of the bidbots going up and down as people follow or unfollow, right?

Okay, so it's dependent on who's following not who you follow. Okay, so in this case we're all hoping that we're being followed by those who want to read our content. Which is pretty much the way it's supposed to be now, except that it's not really. At least not in a proportional way.

Okay. So followers/unfollowers moves UA.

Create giveaways all the time and make following mandatory to participate. Can you cheat the system like this?

Good question! Yes, and no.

Yes => in theory it would be possible to buy follows in order to increase your own UA (albeit pretty costly to do so).

but...

No => there are multiple scenarios in which that would prove to be counter-productive. For example:

  • depending on the entire follow matrix of Steem, it is possible that by following account X, your own UA decreases, so that give-away could be costly.

  • your own UA depends to a large extent of who follows you. It's possible that receiving 50,000 low-UA follows accumulate to the same score as 1 high-UA follow. Losing that one high-UA follow because of "follow-selling" could lower your UA score as a net result

PS: Built into the UA algorithm are damping factors! Those are mathematical tricks to tune the overall UA distribution, when needed.

Coin Marketplace

STEEM 0.20
TRX 0.25
JST 0.038
BTC 96907.08
ETH 3380.66
USDT 1.00
SBD 3.23