Profile Ranking Algorithms
Defining Ranking Strategies
We have implemented a set of strategies that can reveal high quality (highly ranked) profiles from the entire Farcaster network. These ranking strategies are based on following and engagement reputation graphs.
How are the Rankings performed?
We use Farcaster social graph data and use a linear combination of peer-to-peer actions such as Follows, Recasts, Mentions, Comments to calculate a personalized reputation graph for each user. This helps in figuring your own network or friends and friends of friends. We then apply EigenTrust on these graphs to generate a ranking of users.
Developers can change the algorithm weights and the rankings change real-time based on the updated parameters.
To see how this is done in our codebase, checkout the repo on our farcaster-graph
GitHub repo, specifically on these lines of code
Seeding the Rankings
For Ranking the entire set of Farcaster profiles (Global Ranking), we use a seed peer set of profiles. For Personalized Ranking, the seed peer is the profile(s) itself.
The Global Profile Ranking compute is seeded with 70+ profiles chosen as a starting point to begin the computation of transitive trust among profiles. This seed peer selection is upto the developers. But for simplicity, we have currently chosen a curated list of profiles using the Dune Farcaster Explorer dashboard. The seed peers are the influencers and VIPs retrieved via this query on Dune:
as a result, these are the sample of the seed users loaded into a pretrust
table (as seen in the db_schema.sql)
Strategy: following
This strategy emphasizes only on following
as peer-to-peer trust heuristics, disregarding all other actions such as likes
, replies
, recasts
and mentions
.
Weight Assignments: Follows = 1
You can see the weight assignments here in the code.
Strategy: engagement
This strategy emphasizes on engagement actions as peer-to-peer trust heuristics, by combining likes
, replies
, recasts
, mentions
and follows
. The more engagement a profile receives on their casts, the more they inherit trustworthiness from the source profile, but weighted by the trustworthiness or reputation of the source as well.
Therefore, if a set of sybil or spam clusters boost a particular profile (say Alice) and their casts, Alice's ranking will likely not increase because of the low rank of the profiles which are engaging with Alice.
Weight Assignments: Likes = 1, Replies = 6, Recasts = 3, Mentions = 12, Follows = 1
You can see the weight assignments here in the code. Developers can also change the weights in the algorithms.
Ranking Scope: Global and Personalized
Global Profile Ranking
Global Profile Ranking of Farcaster users are basically categorized into the two strategies: following and engagement.
Personalized User Ranking
Personalized User Rankings for a profile or a curated set of n
profiles are of two types: Direct Network and Extended Network. The Direct Network is the first degree of separation from the profile that is being computed for. The Extended Network showcases popular profiles based on your extended network (which may be your friends of friends or 2nd/3rd degree connections).
Tryout the APIs here! — https://graph.cast.k3l.io/docs#/
Last updated