close

DEV Community

Cover image for Rapid Interest Shifts in Recommender Systems: A Case Study on Instagram Reels
Arnab Datta
Arnab Datta

Posted on

Rapid Interest Shifts in Recommender Systems: A Case Study on Instagram Reels

A late-night experiment revealing how fast recommendation systems actually adapt

An informal, timestamped experiment showing how quickly Instagram's recommendation system adapts to new inputs — often within minutes — and what that reveals about modern recommender systems.


Key Observations (TL;DR)

  • Feed adaptation latency: ~2 minutes consistently across genres
  • Subgenre-level clustering observed (not just category-level)
  • Content classification appears independent of hashtags
  • Cross-user candidate pool overlap observed

Time Line

The Accidental Beginning

This wasn't supposed to be any glorified research. It started as harrasement.

I was chatting with a friend late at night and casually sent her a reel — a (golgappa) street food video, nothing special. Eight minutes later she sent one back. Then another. Then at 11:29 PM she messaged me: that her entire feed is just food now. Which, to be fair, was the objective.

I laughed. Then I got curious. Then I got obsessive about it.

What followed was a highly controlled two-hour experimental session (i.e., I spammed her with reels), across completely different genres — food, coding, anime, gaming, gym, Harry Potter — and timing exactly how fast her feed shifted each time. She was a very willing participant (trust me).

What I found was genuinely surprising, and it lines up in interesting ways with what we know about how Instagram's recommendation system actually works under the hood.


Note on methodology: This wasn't a controlled lab experiment. We were actively chatting throughout, her app was in normal use the whole time, and I wasn't running any formal measurement tools. These are real timestamps from our chat logs. I'd call it a naturalistic informal experiment — messy, but honest. I think that actually makes it more interesting.


The Friend Factor: Why Her Feed and Not Mine

Before the timeline, one thing worth noting: the same reels I sent her barely affected my own feed. My feed stayed mostly stable throughout the night. Hers was rewriting itself every few minutes.

This asymmetry is the most interesting starting observation. We're both active users on old accounts. So why was she so much more "algorithmically reactive"?

Toward the end of our (very productive) experiment she started sending me reels from her shifting feed — but almost none of it migrated to mine. The reels she sent me just didn't move the needle. Same input, completely different output.

My hypothesis — which I'll come back to later — is what I'm calling low engagement inertia. But first, the meticulously observed data.


The Timeline

Here's what actually happened, timestamped from our chat:

Phase 1 — Food (10:56 PM to 11:29 PM)

Time What I Did What Happened
10:56 PM Sent her a golgappa reel
11:04 PM She sends a golgappa reel back
11:11 PM She sends more golgappa reels
11:12 PM Sent 2–3 more food reels
11:20 PM She starts sending food reels unprompted
11:29 PM "Her full feed is just food"

33 minutes from first reel → complete feed takeover.

I felt like a god, able to manipulate feed at will.

Phase 2 — The Concept Test (12:12 AM to 12:33 AM)

This is where things got interesting.

At 12:12 AM I sent her a specific meme format — the kind where one person says "if no one told you today, you're such a good mother" and then the account creator reacts with something like "bro I became a mother just scrolling." Just a joke between us. Not a genre reel, no obvious category.

At 12:18 AM — six minutes later — she sent me a reel with the exact same first half — same video — but a completely different reaction from a different creator.

The behavior suggests the system may be matching structural patterns in content, not just hashtags or genre labels. Two reels, different creators, same comedic template. That's a surprisingly granular level of content understanding.

Then at 12:30 AM I sent a coding reel. By 12:33 AM she was sending me back multiple coding reels.

Then something genuinely weird happened. Around the same time we'd both been served a reel far from coding, a near-identical reel appeared on both our feeds simultaneously — same creator, same video, but with different audio and a different concept.

Well that was not supposed to happen.

We'd apparently both been pulled from the same creator's content pool at the same moment — probably because of candidate generation overlap when two users get freshly classified into similar interest clusters.

Phase 3 — Pushing the Limits (1:01 AM to 1:17 AM)

By now I had fully abandoned the pretense that this was a normal conversation and was just running (very productive) experiments on my willingly participated friend's feed at 1 AM, to see how consistent these shifts could get and how much will entirely new content do to her feed.

Time What I Did What Happened
1:01 AM Sent Valorant reel
1:02 AM Sent Your Lie in April anime reel
1:03 AM She sends a PUBG reel (~2 min after gaming reel)
1:03 AM She sends I Want to Eat Your Pancreas reel (same sad/romantic anime concept)
1:03 AM She sends a Your Lie in April reel specifically — with my like on it
1:04 AM FF reel, then continuous anime + gaming content
1:08 AM Sent a gym reel (sub-100 likes — not viral)
1:10 AM She sends gym reel
1:15 AM Sent Harry Potter edit reel
1:17 AM She sends 2 Harry Potter reels

The consistent pattern: ~2 minutes from send to feed shift, across completely unrelated genres, back to back. At this point, the system wasn’t reacting. It was anticipating.

The anime response deserves special attention. I sent a Your Lie in April reel. Within 2 minutes she received:

  1. A different anime with the same emotional subgenre (sad, romantic)
  2. Then the exact same anime I sent

This is consistent with subgenre-level clustering — the system appears to track not just "anime" as a category, but the emotional and stylistic signature within it.

The No-Hashtag Reel

For the gym test I specifically chose a reel with under 100 likes — not viral, not trending, just a guy doing lunges in mediocre lighting. It worked anyway.

One of the gaming reels that appeared on her feed after my Valorant send had zero hashtags. No caption, no tags, no metadata hints whatsoever.

The system still correctly categorized it as gaming content and served it within the 2-minute window. This is consistent with Instagram using visual and audio content analysis rather than relying solely on metadata — it wasn't reading the label. It was watching the video.


Why This Happens: The Technical Explanation

Based on publicly available information about how Meta's recommendation systems work, here's what's likely going on:

The Pipeline

Instagram's Reels recommendation isn't one model — it's a multi-stage pipeline:

  1. Candidate Generation — pulls a large pool of potential reels from followed accounts, trending content, and category clusters
  2. First-Stage Ranking — a lightweight model scores candidates quickly (Instagram uses a Two Towers neural network here, which can cache embeddings efficiently)
  3. Second-Stage Ranking — a heavier multi-task model (MTML) predicts engagement probability for top candidates
  4. Reranking + Filters — diversity rules, content moderation, eligibility checks
  5. Reels Chaining — selects what plays next to keep the session going within a content cluster

The speed we observed (~2 minutes) suggests the interest profile update is happening in near real-time — what's called online learning, where user interaction signals stream into the system without requiring a full model retrain.

Why Content Gets Classified Without Hashtags

Instagram is consistent with using computer vision and audio analysis on every reel, independent of metadata. The system can identify objects, scenes, on-screen text, audio patterns, and visual style. A gaming reel with zero hashtags still has game UI on screen, specific audio, and recognizable visual patterns — enough to generate a content embedding without any metadata hints at all.

Why She Got the Same Anime Subgenre (Not Just "Anime")

The Two Towers model doesn't classify content into broad buckets — it generates dense embedding vectors that capture fine-grained stylistic and thematic features. Your Lie in April and I Want to Eat Your Pancreas likely sit close together in embedding space because they share visual aesthetics, pacing, color palette, and emotional tone — not just the genre tag "anime."

When I sent her one, the system updated her interest vector toward that specific region of embedding space, and served content from the same neighborhood.

The Asymmetry: Why My Feed Didn't Change

My feed has years of varied engagement history — diverse genres, lots of signals, a well-established taste graph. Shifting it requires overcoming accumulated inertia.

Her feed, by contrast, appears to have a lower signal diversity — not because she's a new or inactive user, but because her engagement pattern is cleaner and less fragmented. Each watch signal she sends is relatively uncontested, so new signals propagate faster.

I'd call this low engagement inertia — a state where the algorithm has a highly responsive, low-noise profile to work with. It's not a flaw in the system. It's the system working exactly as designed, just made visible.


Limitations

This was a single informal observation, not a controlled study. Some important caveats:

  • Single-user observation (n=1)
  • No control over watch time, likes, or skips during the session
  • Background app activity may have influenced results
  • Feed state prior to the experiment was not fully quantified

These results should be interpreted as exploratory rather than conclusive. The patterns are consistent with known system behavior, but cannot be treated as proof of specific mechanisms.


What This Actually Means

Filter bubbles can shift in minutes, not days. The popular narrative is that algorithmic filter bubbles form slowly over time. What we saw suggests that at least for users with low engagement inertia, a single session can substantially reorient the feed. That has real implications for how quickly someone can get pulled into a content rabbit hole.

The system understands content, not just categories. The concept-level match at 12:18 AM and the no-hashtag gaming reel both point to the same thing: Instagram's content understanding appears to go well beyond keyword matching. Hashtags are a hint, not a requirement.

Intentional feed influence is surprisingly accessible. I shifted her feed across six completely different genres in one night by simply sending her reels. Anyone could do this — a friend, a family member, or theoretically someone with less benign intent. The system has no apparent mechanism to distinguish "organic interest signal" from "someone else sent this to you."


I started this by sending my friend a food reel as a bit. I ended it two hours later having documented six genre shifts, a concept-level meme match, and a hashtag-free classification. She has not forgiven me. Understandably.

In the right conditions, your feed isn't a reflection of your interests — it's a reflection of your last 10 minutes.


Further Reading


Thanks to my friend — credited as "the unwilling test subject" at her request — for tolerating two hours of me hijacking her feed. This was originally her repayment for me harassing her algorithm.

Written at 4 AM while sleep-deprived. At no point did this feel like a bad idea to me atleast.

If you found this interesting, I write about ML, computer science, and things I accidentally stumble into at @Arnab500th.


Tags: #machinelearning #ai #datascience #socialmedia #technology

Top comments (0)