Ranking Strategies on Farcaster

Profile reputation scoring to address trustworthiness in social networks

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 a few 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:

    fid, fname, fid_active_tier, 
        WHEN fid_active_tier = 3 THEN 'influencer' ELSE 'vip'
    END AS fid_active_tier_name
    fid_active_tier in (3,4) 

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 includes Global and Personalized, you can know more about them in their respective sections.

Tryout the APIs here! — https://graph.cast.k3l.io/docs#/

Last updated


Copyright 2024