rooteco / tweetscape

the supercharged twitter feed
https://prototype.tweetscape.co
GNU Affero General Public License v3.0
18 stars 2 forks source link

RPG Point System #423

Open ntorba opened 2 years ago

ntorba commented 2 years ago

This ticket is a todo related to #422.

@nicholaschiang lemme know if this is something you'd be interested in and if so, how much more detail you'd like. I can get more rigorous here, but there is a lot of room for playing around with it.

the goal of this ticket is to run some EDA to get an idea of what a good reply game rpg scoring system could be.

The goal of this first ticket is to get some good ideas on how to score your reply game and what kind of system provides an even scoring field among accounts with much different audience sizes.

In #422, I mention 3 metrics to start with:

  1. Num replies sent
  2. Num likes received on replies (normalized by combo of follower counts and OP follower count)
  3. Num replies received on a reply
  4. Num replies received (normalized by follower count)

There are some strikingly obvious flaws to these metrics. number 1 could encourage a lot of short, useless replies. Number 2 could encourage people to dunk on large accounts. Number 3 could encourage clickbait.

Despite these flaws, I think we can start by pulling recent data for a few good actors and begin to get an idea of how well they represent their activity.

important edit I just talked to Leo, and he had a fantastic idea. There should be a strong compounding effect for relationships over time. This can be weighted by number some combo of number of back and forth replies as well as length of time since first reply. This creates important incentives for the user. The users with the highest scores will be those with long-term compounding relationships - accounts they've had many convos with over time. This will also make it possible for us to have a point system that isn't taken over by people tweeting clickbait or dunking in the replies of the big accounts, because those aren't behaviors that compound over time. Let's keep this in mind while performing the EDA! Will add more detail when I have time.

Formulas

Number 1 does not require normalization. Everyone is on an even playing field when it comes to sending replies.

Possibilities for Number 2 and Number 3 We likely would want to combine number 2 and 3 into something like I described in this post

likes_weight = 1
rts_weight = 2
replies_weight = 4
qts_weight = 5

if OP likes reply:

score = X + (num_likes/follower_count) * likes_weight + ((num_rts/follower_count)*rts_weight) + ((num_qts/follower_count)*qts_weight) + ((num_replies/follower_count) * replies_weight)

elif OP likes and replies back:

score = 200 + (num_likes/follower_count) * likes_weight + ((num_rts/follower_count)*rts_weight) + ((num_qts/follower_count)*qts_weight) + ((num_replies/follower_count) * replies_weight)

number 4 We may want to move this into another component - one that is based on creating standalone tweets. Or we could include it in the reply guy score with something simple like

Y + (num_replies_received / num_followers) * X 

where X and Y are set based on findings in EDA (with goal of evening out the playing field).