Introducing UserAuthority (UA), @steem-ua and UA-API !

in #ua6 years ago (edited)

Introducing UserAuthority (UA), @steem-ua and UA-API !

steem-ua.png

Great news! After a lot of research and months of development by @holger80 and myself (@scipio), we finally made it happen: UA is now a reality!

Introducing UA: a new kind of Reputation Score

For those of you that haven't heard about UserAuthority (UA) already, I introduced it as an algorithm in my article How-to solve SPAM and Democratize Steem: Introducing UserAuthority in November 2017. In essence, UA can be seen as a new Reputation metric: it looks at the entire Steem Follower Graph and carefully tracks who follows who. It doesn't directly care about how "rich" an account is, or how old it is, or how much an account has posted, but please keep in mind that those factors do indeed indirectly influence any account's UA score.

The currently used Reputation metric used by Steem itself, can be "bought for": to put it simple, "Rep" looks at the total amount of "upvote value" a given account has received over time. However, by self-promoting a few published posts, any user could quickly increase its own "Rep Score", which doesn't really reflect that account's True Reputation. We had the idea to develop a Score that better reflects an account's True Reputation: UA is that new score!

How are UA scores computed?

All UA scores are computed daily by first updating the Follower Matrix; we do that by continuously tracking every "follow operation" (= an account following or unfollowing another account) using @holger80's own Beem API for the Steem blockchain. With every new block produced (every 3 seconds), so is the UA Follower Matrix. And all those "follow operations" (~ 150 million currently) for all accounts on the Steem blockchain form a gigantic data cluster of ~ 1.2 trillion EigenValues. We then look at Trusted Accounts to initiate our sub-algorithm "WitnessRank" with: each day, we check all witnesses for being -a- active and -b- up to date, and -c- their Witness Stake; we use that Witness Stake to propagate "Trust" from each witness to the accounts it follows, and who they follow, and who they follow, etc. etc. etc. And after heavy-heavy HEAVY number crunching, as a result, the UA score for each account comes out.

You can check the current UA Top 100 Rank and your own current UA Score & Rank on our website https://steem-ua.com/ (for your own UA Score & Rank, please log-in via SteemConnect)!

How to increase your own UA score?

To put it simple: by being interesting / "attractive" to others. Either you publish interesting content that people want to read and comment on (like @paulag for example), or you own a lot of Steem / SP that you might want to share with the people you interact with (like @thejohalfiles for example), or you do other noteworthy things with that people might be interested in (you form a community like @dtube, @utopian-io, @steemhunt or publish an app like @steempress for example). Being a Top Witness helps as well! ;-)

Introducing @steem-ua: Algorithmic Curation via UA Scores

UA, as a Reputation / Influence metric, has quite some interesting applications. @steem-ua utilizes one of them: since every Author Account has a UA score, so does every Post Voter. Instead of looking at the SP a Post Voter owns, @steem-ua, our own Algorithmic Curation Service looks at the UA score of the Author and all its Post Voters. Using both metrics, we're able to Algorithmically Curate via the formula:

UA_Vote = x * UA_Author + y * UA_Post

where x and y are the weights we use, and UA_Post = sum(Voting_Strength * UA_Voter)

... and that works pretty good! Although @steem-ua's Curation Mechanism is completely algorithmical, it incorporates other users' votes as well.

What's the goal of @steem-ua?

With @steem-ua we want to encourage all Steem Authors to write High-Quality Content about their expertise, which could be about any topic. The higher your UA Account Score, and the higher your Post UA, the higher our upvote! Please join our Discord server and we'll gladly help you on improving your UA Scores / Rank and build up your account!

How to receive @steem-ua upvotes?

Since all types of content are welcome on @steem-ua, and because we cannot upvote every possible Post published via the Steem Blockchain, we decided to let the @steem-ua Bot score & upvote posts published by @steem-ua SP delegators:

SP DelegationSponsor Benefits & Upvote Frequency
25 SPmax. 1 @steem-ua upvote per week
50 SPmax. 2 @steem-ua upvotes per week
100 SPmax. 4 @steem-ua upvotes per week
250 SPmax. 7 @steem-ua upvotes per week
>= 5,000 SPStake-Based Sponsor Rewards + max. 7 @steem-ua upvotes per week

PS1: delegation requirements could be subject to change, we'll then post about that prior to changes being applied.
PS2: @steem-ua reserves the right to reject upvoting accounts demonstrating abusive behavior.

Nota bene: regarding your Post upvote, it doesn't matter how much you delegate to @steem-ua, every Post is scored & upvoted by its UA score: a higher @steem-ua upvote cannot be bought-for. High-SP Sponsors (with a minimum of 5,000 SP delegation to @steem-ua) do receive Sponsor Benefits, but those are based on their Sponsorship Stake using an additional upvote mechanism.

New to Steem? Don't have enough SP available to delegate to @steem-ua?

Not a problem! Just talk to us on our Discord server and we'll work something out to get you started, you're welcome!

Introducing UA-API: our UA Data Providing Service

Do you manage a Steem dApp, Community, or other type of Steem Service and you'd like to use UA Data to better manage User Access and Reputation Scoring? Now you can! In order to incorporate UA into your own service, we've created a UA-API Data Service that Steem services can use as Registered UA Partner with a Private Key. Everybody is invited! Just talk to us (@scipio and @holger80) on our Discord server and we'll help you integrate UA!

UA, Steem User Authority: Use Your Influence!

Visit our steem-ua.com website - View your UA score

Quick Delegation Links:
25 SP | 50 SP | 100 SP | 250 SP

Sort:  

We are proud to support this initiative and hope to not only show with words and a welcoming upvote, but with actions.

We strongly believe that the way to make this blockchain stronger is by empowering the best users and their communities, so this initiative not only makes sense, it’s exactly the type of project this community needs more of.

To the @steem-ua team: we offer our sincere congratulations on the launch of this project.

We are looking forward to the positive impact it will have on the community and the blockchain.

Team Smartsteem

Hey @smartsteem love your service, I'm wondering how can I get access to the *exclusive votes on smartsteem.com?

Thank you for your great support!

What define a high quality creator??? Though i belive UA is best thing to happen on steem still people will take time to understand the basic of algorithm...still waiting for the best....congratulation @scipio for bringing up the ultimate change

Posted using Partiko Android

Thanks @therealwolf for supporting this , are you supporting by delegating or doing development for this ?

there is going to be some collab dev happenings in the soons.

Source
Leaving comments asking for votes, follows, or other self promotional messages could be seen as spam.

More Information:

The Art of Commenting
Comment Classifications

Agreed! just delegated 100SP to UA and have been delegating 100SP to smartmarket! Two great initiatives I am lucky to be a part of!

Great work needs to be done

You guys really need to put together some graphs so that the users have a better grasp of what the distribution of UA is across the population.

For example, I know from the table on the website what the high-end distribution looks like – but I have no idea whether outside of the rich and famous, I'm doing okay, I am coming in at a pack level which is less than impressive for my content creation, or how UA is distributed throughout the population as a whole so I know if there are Pareto curve representations or other longtail effect.

I have a number but I don't have any context, and I need that context. Without the context, I don't actually know what that number means in relation to the numbers given to people elsewhere on the blockchain. I don't know if it even is meaningful.

So, some sort of graph which shows the distribution of UA across the population in general. Some kind of graph or other representation which shows the distribution of UA and what accounts are in the area that I am in terms of my ranking. And some kind of way for me to put my account in and have the UA ratings fan out from my account along the links from people I follow and who follow me. All of these are going to be something really critical to demonstrating what this number is actually supposed to mean and how people can use it.

I look forward to seeing some of the stuff come to fruition and maybe power some useful tools.

Well, this looks extremely familiar. It's the same curve which describes the distribution of SP across the population, except that it doesn't flatten out at the end quite as quickly.

Taken as a sum, how far down the curve in number of accounts before half of the population has half of the total UA ranking in play? About 20%?

This kind of curve is the product of nature, you can't get a normal distribution in anything when human action is involved. Pareto distribution is all we'll ever gonna get.

A Pareto distribution is natural; it is normal. You see it outside of human activity as well; anytime that there is an advantage to be had in an agent population by having more of a thing to get some of the thing, you get Pareto longtail distributions.

A lot of the discussion around cryptocurrency and especially around steem seems to go in a direction which denies that Pareto optimizations are desirable or necessary, and flying in the face of logic and reason like that is a good, solid way to fail.

So – we have another Pareto-reflecting curve on our hands with an exponential top-end and an exponential bottom end. What we really need is some way to visualize the difference between the rankings of the accounts involved in the traditional Reputational curve and the ranking derived from UA, and whether or not they are significantly different in ordinal rank for any given account or whether they, by and large, are in as much lockstep as they appear to be.

Because if it's just Rep but with a few accounts left out, it's not really very useful or revelatory. If it's a different Pareto distribution of the account list, how much different is it?

We could start to figure out how different they are with some pretty simple tools. You could start with a simple diff of the ordered list of all of the accounts by Rep next to all of the accounts ordered by UA. If there are transitions or transformations, that would be an easy way to start getting a handle on how to visualize them. (I'm thinking in particular of diff algorithms which let you know for any given member/line where/how much it has been moved, which is really all we care about. Magnitude of move and direction of move should be pretty easy to depict in some sort of graphical way.

After all, we know that UA takes significant computational resources to calculate. It has to be updated, effectively, for accounts of interest, every time there is a transfer within the event horizon of any given account. That means there's a significant cost for calculating UA for any given account. If it doesn't really do better than Rep for the vast majority of the account list, that's a lot of wasted energy.

So this is the kind of thing we need to see in order to determine if this is actually a useful metric or just another way to write Rep that takes longer and kills more electrons.

One example where UA shines is in - for example - recognizing @thejohalfiles as being influential. Without blogging an account cannot get upvoted nor increase its Rep score.

It's interesting that you would use that example, because it supports my position that follows are definitely not useful as an indicator of quality.

This account has no blog posts. It's influence is not related to its interaction with the social network in an observable way. While it does have a number of comments, none of them are particularly revelatory or insightful beyond a base level I expect of all people who interact with others on the social network.

So there's no reason to think that this one should "shine" at all.

And that's a problem, because we as users – no matter what we want to use UA for or what we imagine it might be used for – need to understand the reason that one account may be higher rank in UA than another. As it stands, and as the explanation and descriptions have changed, UA becomes an ever more amorphous single number attached to accounts which, in some way, at great computational expense, provides a number. One which doesn't come with an understanding of why that number is what it is, one that hinges on an interpretation of the platform mechanics which is unintuitive, and one which appears to be fairly readily gameable by engaging in behavior which isn't in the best interest of the way people are using the social network.

I think those issues are a problem.

But first we have to have an understanding of how UA differs from Rep in a real sense, in the context of comparing the two spaces as they stand – and you clearly have all the data necessary to do exactly that at this point, so let's do that.

After that, we can talk about what is going to be necessary for UA to be a meaningful designator, in part by allowing the system to give feedback to a user about why the ranking is exactly what it is.

We know exactly what Rep is all about and what it hinges on. It's about getting voted on. Stuff you make gets votes, your Rep goes up, it's a very simple signifier (even if it has some very obvious flaws as a comparator).

UA is a black box, and the things that you've said about what go into making the black box tick don't really jibe with creating a useful singular ranking of accounts for the purposes of a user looking to discover content, which is the one thing that it should do.

One example where UA shines is in - for example - recognizing @thejohalfiles as being influential.

Ultimately, on the issue of UA, we have to ask what "being influential" means if it's not about actually blogging or not about actually engaging people in comments. What kind of influence are we talking about? Because if it's just "this is an account that throws around a lot of SP," we already have very clear rankings for those.

So there's no reason to think that this one should "shine" at all.

A good reputation (UA score), being highly regarded and thus having many followers, can also be based for example on being a good developer, a wise witness or a precious curator.

And finally, if there is no logical reason at all for having a high UA score, then many people could simply decide to unfollow a certain account so that its UA would decrease.

PS: This is a log-scaled UA Score distribution, on a 0.00 - 10.00 scale, where it gets increasingly harder to go from 7.00 to 8.00 than it is from 2.00 to 3.00.

PS2: this is merely a UA representation right now. Things could change drastically now that UA is out in "the wild", making people more aware of who to (un)follow.

Right, which is pretty much in line with SP in that sense. It might be worth plotting this with Y scaled log to flatten it out more for differentiation.

In fact, it'd be an interesting comparison to see how UA and SP scale accounts in different orders, or by how much it does. At some level, it's already described as a bit of a proxy. The question is whether it is ranking things significantly differently or largely the same in aggregate.

Also consider , when relying heavily on follows it will inevitably lead to a black market of -

Will follow for X $ for Y Days $

If anything, paying for follows will be considerably easier than paying for votes. Follows cost nothing. And while each additional follow scales the overall value of your following by the number you follow, despite all the effort on the front end to screen for isolated island networks and the like, it will be extremely easy to build inheritance architectures of follows that fairly straightforwardly game the system as long as one or a few witnesses jump on board, and given that there are witnesses who are heavily involved in the bot community as is – why wouldn't they?

I really appreciate the effort by devs but the criteria needs to be really diverse for the rankings to be meaningful in longer run.

From my previous comment, factors such as :

average number of votes received for each post , how soon someone replies to their comment , uniqueness and length of comments made/received , unique average posts made each day ?

Hello, I do not think I have run across your account before. So we may run in entirely different areas of steemit. A comparison of our UA may help me understand what the number means.
According to the UA web site, my stats: "score is 4.009 and you have a ua rank of 3389"

 MeYou
Rep5859
Followers1408539
Following13368
SP720680
AgeAug-17Nov-17

Fairly close numbers. Most of my content is just new user related, recently a few photo post, and for most of Jan-July a steemit game/challenge. So basically average to below average post quality.

Hey @shaka ,

tks for the upvotes...fam

You're truly a hero: not only making the idea work out both in theory and practice but also spending time and effort to make responses like this.

You rock.

Agreed.

I second this! :)

You are proposing a new Reputation metric of which only those users can benefit who delegate to the entity that computes it (in a black box). Am I getting this right?

No you're dead wrong actually on those assumptions:

-1- don't confuse UA (the influence / rep metric) with @steem-ua (the algorithmic curation program using the UA metric). Our UA-API broadcasts all accounts' UA data, to be eligible for a @steem-ua upvote we need to limit access (we'd need 100 million SP to upvote all content on the Steem blockchain!), and delegating SP is that delimiter. BTW, a @steem-ua upvote is completely independent from the amount being delegated.

-2- UA is *not a "black box", our algo is open source, our code is open source, we just haven't published the repos yet because we need to document it properly first and do some more unit testing. Also don't confuse UA-API data access with a "black box", we merely need to control server access to avoid system overloads.

(edit, upvoted for visibility & clarity)

a @steem-ua upvote is completely independent from the amount being delegated.

The amount of the delegation buys the frequency of the steem-ua vote. If that's not counting as buying upvotes then I don't know what it is.

UA is *not a "black box", our algo is open source, our code is open source, we just haven't published the repos yet ...

Well, as soon as the code is out and thus accessible for review and independent testing I'll be happy to not label the UA metric a black-box anymore.

The amount of the delegation buys the frequency of the steem-ua vote.

Well no! :-)
The more SP delegators there are, the more contributions we'll curate algorithmically, and the higher the UA_Vote threshold will be to get an upvote at all.

I clearly said max. 1/2/3/7 upvotes per week, not guaranteed "bids" or anything

Thanks for asking this 8-).

Currently it looks like this, yes. But this will change. I believe that UA will get adopted by many steem services, and the code is planned to go open source soon as well, so that black box will get "removed" soon as well.
I do think that UA will be implemented in many more places. I'm just mentioning a trending feed based on a post's UA, and not it's payout value! This would possibly be something everyone could benefit from. But because UA is still very new, there aren't many use cases out yet. Stay tuned for the new ones!

PS: I rather see @steem-ua as some kind of Proof of Concept for that new reputation metric

I'm just mentioning a trending feed based on a post's UA

I can already see the daily reports coming in.

Why the cynicism?

My apologies for that. You are right, there was no need for spinning my objection that way.

Okido, evertbody gets "cranky" sometimes ;-)

Nice work on actually implementing this @scipio!

I am still not convinced that followers are a good metric and I will not change my follow habits for ua.

I am intrigued when selling high ua followers will be a thing ;)

If UA proves to be a good metric, I will see to add it to minnowbooster and steemvoter. Having the api closed is sad but understandable. I suggest you look into caching ua scores in a database and have a web service just look them up. Once you have the data, lookups are dirt cheap.

I'd assume you can tweak the algorithm just like Google did and is doing constantly so that exploitations vanish.

Also can't imagine so many high UA users can be corrupted that "buying UA follow" would be worthy.

Tweaking until which endpoint? How would the UA derived content ranking need to look like before it's considered a good metric? As soon as the majority of the high UA-accounts are happy with trending? No cynicism here, I really would wish to get an answer to that.

Personally, I already consider it much better than, like, anything else in the ecosystem (SP, reputation, etc).

But nothing's perfect, even Google and Youtube witnessed shortcuts and exploitations at one point.

For them, user satisfaction with the accuracy of results was the major driving factor, and I'd imagine this is what Steem needs, too.

That when I go to /r/cryptocurrency, or in fact, any blockchain-related community, I don't have to hear people shitting on Steem and how trashy its content is.

That when I go to Trending, I don't have to scrool through 42 pages of marketing garbage or cliché garbage before finding ONE interesting post.

I don't give a fuck about the satisfaction of high-UA accounts. I just want quality improvement and less circlejerk.

Considering how many of the top 100 UA scorers are bidbot owners and/or delegators, I would think they are already 'happy' with Trending.

Bidbot owners, not the bots themselves. UA can contribute to break bot dominance.

We will see how it plays out. I hope that the ua score becomes a good metric over time.

Wondering.. why do I have to login with steem connect to see my score? The less places that I login (steemconnect or otherwise) the better IMO... Thoughts?

Posted using Partiko Android

Just a way to secure data access, its safe as can be, ask @fabien! :-)

But why can't I look at other people's UA without using the API? Why would I need to log in for that?

The level of UA computations is... pretty extreme. The server costs are something to consider as well. That's why we limited full UA-API access to UA Registered Partners.

Is it open source?

It isn't yet. But it is planned to go open source soon.

It is ;-)

It is, we just haven't deployed the repo(s) yet.

How much do I have to delegate to become a UA Registered Partner?

I think you just have to contact either one of the owners about your idea of using UA and they will consider adding you to that Partner program. So it is not based on delegations as far as I know. (Especially since UserAuthority is the reputation metric you want access to, and @steem-ua only is a curation service making use of UA)

You should get in touch with @curie and ask them for curators stats for rewarding exceptional content on steemit and somehow incorporate this into this reputation system. Curie curators put in a huge amount of time and effort behind the scenes with little benefit to their rep, in fact often the amount of time spent curating prevents them from blogging to help drive their rep up.

Would it be possible to incorporate the amount of work they put in to help user retention within your algorithm @steem-ua? I'm thinking taking the curie Approval rating and curation score and somehow calculating how much engagement they have driven simply by doing what they do.

Full disclosure, I'm a curie curator ;-)

P.s. I really like the system and the vision behind what you are doing here, I have delegated 50 sp of my stake. I stopped using bidbots on principle around 8 months ago and my crawl up to rep 60 has been slow and painful despite only publishing medium to long posts, mainly creative writing which I feel is to a high standard. There is definitely a need for a rep system which disregards the influence of bidbots and it seems you've managed it! Awesome job :-)

Hey @raj808, thanks for the kind words! Integrating with other communities, dApps, curation systems, SMT & external airdrops etc etc is of course on our roadmap. We've only been "live" for 4 days now!

One thing though, please don't confuse:

  • UA, the influence metric
  • UA-API, our data providing service broadcasting various sorts of UA data
  • @steem-ua, our Algorithmic Curation Program, using UA data.

What could (also, possibly?) not might be 100% clear (to people) is that there are various sorts of UA scores:

  • UA_Account: that's the data you see on our website https://steem-ua.com/ (and various other sources already)
  • UA_Post: that's our curation algo regarding the votes a post itself received
  • UA_Comment: deals with the level on user engagement on a specific post.

Those various things together determine UA_Vote.

^^ I'll post about this, and other updates regarding UA, UA-API and @steem-ua, shortly hereafter!

Cheers! (@scipio)

Thank you for your response @scipio and making clear the various sections of the system. What their functions are etc.

Integrating with other communities, dApps, curation systems, SMT & external airdrops etc etc is of course on our roadmap. We've only been "live" for 4 days now!

I guess I did jump the gun a bit. What I was trying to get at was some sort of way to include active (guild curie/OCD etc) curators curation activity to count toward their ua score. It would be wonderful if, in the future, this could be incorporated as these curators really do spend a huge amount of time retaining and building steemit user-base.

First obvious question from someone highly interested in finding and rewarding high quality content creators: Is there an API to retrieve a user's UA ? I'll ask @Fabien directly to see if it's possible to have it built into SteemConnect (that the Byteball rewards rely on) for an even easier access.

Congratulations on the massive progress. Guess it must be incredibly satisfying to take a look back and see how far you've managed to get in such short amount of time. Props to both you and @Holger80.

Access to our UA-API will be given to Registered UA Partners: just talk to @scipio and/or @holger80 on our Discord ;-)

You're doing great job to make Steemit better, but please, if possible, do not use #ua hash tag.

#ua is for Ukrainian posts, https://laendercode.net/en/country/ua
the same as #ru, #tr, #kr , #cn

I didn't realize the #ua tag was taken already by the Ukraine! ;-)

We don't need any tags to detect posts to be scored / upvoted on actually ;-)

yall need somebody to whip up some badges for you (*somebody not me ;> )

I could always use another pretty pic in my sig !

#505 UA rank wooo-hoooo!

This is awesome work guys, I'd be happy to throw a 100SP delegation your way. Can you drop some delegation links at the bottom of your post?

I will!
But you could also use https://steembottracker.com/delegation.html for easy delegations to @steem-ua, a nice tool by @yabapmatt !