Metarank Docs
  • Introduction
    • What is Metarank?
    • Quickstart
    • Performance
  • Guides
    • Search
      • Reranking with cross-encoders
  • Reference
    • Installation
    • Event Format
      • Timestamp formats
    • API
    • Command-line options
    • Configuration
      • Feature extractors
        • Counters
        • Date and Time
        • Generic
        • Relevancy
        • Scalars
        • Text
        • User Profile
        • Diversification
      • Recommendations
        • Trending items
        • Similar items
        • Semantic similarity
      • Models
      • Data Sources
      • Persistence
    • Deployment
      • Standalone
      • Docker
      • Kubernetes
      • Prometheus metrics export
      • Custom logging
      • Warmup
    • Integrations
      • Snowplow
  • How-to
    • Automated ML model retraining
    • Automatic feature engineering
    • Running in production
  • Development
    • Changelog
    • Building from source
  • Doc versions
    • 0.7.9 (stable)
    • master (unstable)
Powered by GitBook
On this page
  • Configuration
  • Time decay and weight

Was this helpful?

Edit on GitHub
  1. Reference
  2. Configuration
  3. Recommendations

Trending items

trending recommendation model is used to highlight the trending (or in other workds, most popular) items in your application. But it's not just about sorting items by popularity!

Metarank can:

  • combine multiple types of interactions: you can mix clicks, likes and purchases with different weights.

  • time decay: clicks made yesterday are much more important than the clicks from the last months.

  • multiple configurations: trending over the last week, and bestsellers over the last year.

Configuration

A separate block in the models section:

models:
  yolo-trending:
    type: trending
    weights:
      - interaction: click
        decay: 0.8 # optional, default 1.0 - no decay
        weight: 1.0 # optional, default 1.0
        window: 30d # optional, default 30 days
      - interaction: like
        decay: 0.9
        weight: 1.5
        window: 60d
      - interaction: purchase
        decay: 0.95
        weight: 3.0
      
  • the final item score combines click, like and purchase events

  • purchase has 3x more weight than click, like has 1.5x more weight than click

  • purchase has less agressive time decay

  • only the last 30 days of data are used for clicks and purchases, but 60 days are used for likes

Time decay and weight

The final score used to sort the items is defined by the following formula:

score = count * weight * decay ^ days_diff(now, timestamp)

When multiple interaction types are defined, per-type scores are added together to get the final score.

Time decay configuration allows a granular control over the decaying. Here's a click importance is weighted for different decay values:

We recommend setting decay:

  • within a range of 0.8-0.95 for 1-month periods.

  • within a range of 0.95-0.99 for larger periods.

PreviousRecommendationsNextSimilar items

Last updated 2 years ago

Was this helpful?

The config above defines a trending model, accessible over the /recommend/yolo-trending :

See request & response formats in the .

API endpoint
API section
decay with different options