Solving How to Keep Recommendations Fresh for Active Users

Ruicong Yan
Staff Product Manager, Tinder
Lichao Liu
Staff Software Engineer, Machine Learning, Tinder
Product Spotlight: How a simple recommendations serving policy helped us navigate the tension between novelty and supply.

On Tinder, surprise is often part of the user's expectation. People sign in hoping to see someone they’ve never seen before, and as engineers it’s our job to build a system that helps our members spark meaningful connection.

To get those recommendations right, our system navigates many different constraints: geography, user preferences, prior interactions, safety rules, and the simple fact that some users are very active on the platform. That can mean that some users cycle through recommendations quickly, which can mean they run the risk of eventually seeing people they’ve already passed on. That tension led us to a systems question:

How do you make the most of existing profiles without making the user experience feel repetitive?

Our answer was a serving policy we call dynamic recycling. Dynamic recycling keeps the normal constraints and ranking stack in place, then adds explicit serving rules around recency, eligibility, and competitiveness. This way, we’re able to thoughtfully and intentionally resurface passed profiles that are worth a second look.

System Overview

Tinder’s recommendation system follows a state-of-the-art architecture that includes eligibility filtering, retrieval, ranking, and reranking. Dynamic recycling begins at the eligibility filtering stage by enlarging the pool with previously passed profiles, with tiered deprioritization application across the retrieval and ranking stages.

What Dynamic Recycling Actually Does

Dynamic recycling is not a new ranking model. It is a serving policy layered on top of the existing scoring stack. The idea is straightforward:

  • profiles the user passed on very recently stay blocked
  • older passed profiles can become eligible again in limited recycle tiers
  • previously unseen profiles are prioritized
  • repeated resurfacing is capped

The important product idea is not “show old profiles again.” It is “if we need to look at these profiles again, do it within these specific constraints.”

That means dynamic recycling treats re-exposure as a controlled fallback mode, not as normal serving behavior. Recycled candidates can re-enter only under explicit rules, which are designed with the user experience at top of mind.

Solving a Systems Design Problem

Simply put, dynamic recycling is a system that helps determine when repeated exposure is acceptable. These are policy considerations as much as modeling considerations. That’s why the design we chose is intentionally explicit and controllable. Instead of trying to hide everything inside a learned score, we introduced a policy layer that product and engineering teams can reason about directly.

At a high level, dynamic recycling asks:

1. Is this previously seen profile even eligible to come back yet?
2. If yes, how much should it be deprioritized relative to unseen profiles?
3. When should it become ineligible again (if ever)?

That turns a fuzzy product dilemma into a system with understandable knobs.

In practice, that policy only needs a small amount of serving-time state per pair: when the last interaction happened, whether it was a pass, and how many times the candidate has already been shown inside the rolling memory window. With that state in place, the ranker can apply the same base scoring stack as before and simply layer the recycle policy on top. That matters because it makes the mechanism easy to ship, easy to reason about, and easy to fine tune without rebuilding the whole recommendation pipeline.

The Most Important Knob: Competitiveness

One of the most useful lessons from building this policy is that eligibility and competitiveness are different concepts. Eligibility answers whether a profile can come back at all. Competitiveness answers how easy or hard it should be for that profile to be served to a particular user once it does.

Eligibility parameters are clear. But we found that when we treated competitiveness as a scale, we got unexpected results.

We ran an experiment that removed the related tiered controls for dynamic recycling, and allowed our newest deep learning models in the retrieval and ranking stages to rank recycled candidates based on a holistic assessment of profile compatibility and prior pass signals.

This update significantly increased the number of eligible profiles, and we saw improved user engagement even on profiles that had previously been seen. Contrary to our previous intuition, we found that most users still wanted to engage with a high quality profile, even if they had already seen it before.

That changed how we thought about the whole mechanism. Dynamic recycling, working together with the surrounding serving controls, was a great way to ensure users still had a positive experience while giving passed profiles a second chance.

The Shipped Win

These insights led us to a clear, structured middle ground:

  • recent passes stay protected
  • previously unseen candidates are still strongly preferred
  • older passed profiles can be added back into the mix when needed
  • competitiveness can be tuned instead of guessed by retrieval and ranking models

It gives the product a safer fallback mode that provides the ranking system a mechanism to intelligently offer up options.

In matching systems, some of the hardest problems are not purely about prediction quality. They are about how to encode product values into the behavior promoted by the Recommendation system. Dynamic recycling works because it treats those things as first-class system constraints instead of hoping a single learned score in a model will sort them out implicitly. That makes the policy easier to reason about, easier to tune, and easier to ship responsibly.

What Comes Next

There is still more to learn about exactly when recycling helps most and how the policy should adapt across conditions. But the core engineering direction is now clear: building a controlled system that balances novelty and supply without forgetting what makes the experience feel good in the first place.

Tags for this post: