Feed Scoring Functions Guide

This guide explains the different scoring functions available for personalizing feed recommendations in the Beta. Each scoring function uses different approaches to rank content based on user behavior and preferences.

Overview

The scoring system uses two main types of signals:

  • Affinity-based scoring: Based on social connections and interactions with people you follow
  • Interest-based scoring: Based on your past interactions with content using semantic and user to items embeddings

Available Scoring Functions

1. balanced_feed_v0.0.1 (Default)

Balanced mix of interest and affinity-based scoring

  • Weighting: 50% interest score + 50% affinity score
  • Best for: Most users who want a mix of content from people they follow and content matching their interests
  • How it works:
    • Calculates both interest scores (based on your past interactions) and affinity scores (based on your social network)
    • Combines them equally to create a balanced recommendation
    • Provides the most well-rounded experience for most users

2. balanced_feed_interest_bias_v0.0.1

Balanced mix of interest and affinity-based scoring, with a bias towards interest-based scoring

  • Weighting: 70% interest score + 30% affinity score
  • Best for: Users who want more content matching their interests rather than just content from people they follow
  • How it works:
    • Prioritizes content similar to what you've interacted with in the past
    • Still considers your social network, but gives it less weight
    • Great for users who want to discover new content based on their interests
    • Helps break out of echo chambers by focusing on content similarity rather than just social connections

3. balanced_feed_affinity_bias_v0.0.1

Balanced mix of interest and affinity-based scoring, with a bias towards affinity-based scoring

  • Weighting: 30% interest score + 70% affinity score
  • Best for: Users who want more content from their social network and people they follow
  • How it works:
    • Prioritizes content that your network is engaging with
    • Still considers your pinterests, but gives them less weight
    • Ideal for users who value staying connected with their community
    • Helps surface content that's relevant to your social circle

4. user_affinity_all_following_v0.0.1

Recommend items for user based on all of the user's followings

  • Weighting: 100% affinity score
  • Best for: Users who want to see what their entire network is engaging with
  • How it works:
    • Analyzes all people you follow and their recent activity
    • Calculates affinity scores based on:
      • How frequently you interact with each person you follow
      • What content your network is actively engaging with (likes, comments, shares)
      • The author's relationship strength to you
    • Uses engagement data from the last 7 days to ensure relevance
    • Weights different types of interactions: comments (3x), shares (2x), likes (1x)
    • This approach ensures you see content that's resonating with your broader network

5. user_affinity_closest_following_v0.0.1

Recommend items for user based on their followings, with "closer" users (more frequent interaction) ranked higher

  • Weighting: 100% affinity score (prioritized by relationship strength)
  • Best for: Users who want content from people they interact with most frequently
  • How it works:
    • Ranks your followings by how much you interact with them
    • Focuses on your top 100 closest connections
    • Uses engagement data from the last 7 days
    • Prioritizes content from people you engage with most
    • This creates a more intimate feed focused on your strongest relationships
    • Great for users who prefer quality over quantity in their social interactions

6. user_interest_all_v0.0.1

Recommend items for the user based on user interests, inferred from all past interactions

  • Weighting: 100% interest score
  • Best for: Users who want content similar to everything they've interacted with
  • How it works:
    • Analyzes your last 1000 interactions (all weighted equally)
    • Creates a comprehensive profile of your interests using semantic analysis
    • Finds content with similar meaning and themes to your past interactions
    • No time decay - all interactions are treated equally
    • This approach is great for users with stable, long-term interests
    • Helps discover content that matches your established preferences

7. user_interest_recent_v0.0.1

Recommend items for the user based on user interests, inferred from past interactions with a recency bias

  • Weighting: 100% interest score (time-weighted)
  • Best for: Users who want content similar to their recent interests
  • How it works:
    • Uses your last 1000 interactions with time-weighted averaging
    • Recent interactions get exponentially higher weights
    • More recent interests have a stronger influence on recommendations
    • Adapts to changing interests over time
    • This approach is perfect for users whose interests evolve
    • Helps surface content that matches your current phase of interests

8. trending_v0.0.1

Trending content with social validation

  • Weighting: Based on trending scores with social network validation
  • Best for: Users who want to see what's currently trending
  • How it works:
    • Uses platform-wide trending signals to identify popular content
    • Validates trending content through your social network engagement
    • Combines trending signals with social proof from people you follow
    • This ensures you see trending content that's also relevant to your network
    • Helps you stay current while maintaining relevance to your interests

9. popular_v0.0.1

Popular content with social validation

  • Weighting: Based on popularity scores with social network validation
  • Best for: Users who want to see widely popular content
  • How it works:
    • Uses platform-wide popularity signals to identify widely-liked content
    • Validates popular content through your social network engagement
    • Combines popularity signals with social proof from people you follow
    • This ensures you see popular content that's also relevant to your network
    • Great for users who want to see what's broadly appealing

How the Scoring Works

Affinity Score Calculation

The affinity score is a sophisticated measure that combines multiple social signals:

  1. Author Relationship Strength (60% weight):

    • Measures how much you interact with the content author
    • Based on your historical engagement with their content
    • Stronger relationships get higher scores
  2. Network Engagement (40% weight):

    • The average relationship strength of people in your network who engaged with the content
    • Content that resonates with people similar to you gets higher scores
    • Uses weighted engagement: comments (3x), shares (2x), likes (1x)
  3. Engagement Volume (30% weight):

    • How much your network engaged with the content
    • More engagement indicates higher relevance to your community

Interest Score Calculation

The interest score uses advanced semantic and interaction analysis:

  1. Interaction Analysis:

    • Analyzes your past interactions to understand your interests
    • Creates a comprehensive profile of what you find engaging
  2. Semantic Matching:

    • Uses advanced language models to understand content meaning
    • Finds content with similar themes, topics, and sentiment to your interests
  3. Time Weighting (for recent focus):

    • Recent interactions get exponentially higher weights
    • Uses decay factor of 0.05 for smooth transition between old and new interests
    • Ensures your feed adapts to changing preferences
  4. Similarity Scoring:

    • Calculates how similar candidate content is to your interest profile
    • Uses cosine similarity for robust comparison
    • Scores are normalized to ensure fair ranking

Time Decay Function

For recent interest scoring, the system uses sophisticated exponential decay:

  • Decay Factor: 0.05 (carefully tuned for optimal balance)
  • Recent Interactions: Get exponentially higher weights
  • Older Interactions: Have diminishing but still relevant influence
  • Adaptive Learning: Your feed naturally evolves with your changing interests

Choosing the Right Scoring Function

For New Users

  • Start with balanced_feed_v0.0.1 (default)
  • Provides a good mix while the system learns your preferences
  • Gives you exposure to both social and interest-based content

For Social Network Focus

  • Use user_affinity_all_following_v0.0.1 for broad network content
  • Use user_affinity_closest_following_v0.0.1 for intimate, relationship-focused content
  • Perfect for users who value community and social connections

For Interest-Based Discovery

  • Use user_interest_all_v0.0.1 for stable, long-term interests
  • Use user_interest_recent_v0.0.1 for evolving interests
  • Great for users who want to discover new content based on their preferences

For Balanced Experience

  • Use balanced_feed_v0.0.1 for equal balance
  • Use balanced_feed_interest_bias_v0.0.1 for more discovery and exploration
  • Use balanced_feed_affinity_bias_v0.0.1 for more social, community-focused content

For Trending/Popular Content

  • Use trending_v0.0.1 for current trends
  • Use popular_v0.0.1 for widely popular content
  • Both ensure relevance to your network while showing popular content
  • These scoring mechanisms can serve as a valuable benchmark for fallback in ML-based feeds.

Best Practices

For Content Discovery

  • Start with balanced_feed_v0.0.1 to understand your preferences
  • Experiment with user_interest_all_v0.0.1 or user_interest_recent_v0.0.1 to discover new content
  • Use user_interest_recent_v0.0.1 if your interests change frequently

For Social Connection

  • Use user_affinity_all_following_v0.0.1 to stay connected with your broader network
  • Try user_affinity_closest_following_v0.0.1 for more intimate social experiences
  • Use trending_v0.0.1 or popular_v0.0.1 for socially validated trending/popular content

For Platform Engagement

  • balanced_feed_v0.0.1typically provides the best overall engagement
  • Interest-based scoring (user_interest_all_v0.0.1, user_interest_recent_v0.0.1) helps surface relevant content
  • Social validation in trending/popular functions ensures content is relevant to your network

Monitoring and Adjustment

  • The system automatically adapts to your changing behavior
  • You can experiment with different approaches to find what works best
  • The system learns from the user interactions to improve recommendations over time