NelworksNelworks

ML & AI / Season 2 / EP02

Recommender System Feedback Loops and Popularity Bias

Shez

Look at the engagement metrics, Kurumi!

Kurumi

I see. Your users are very... focused.

Shez

My Collaborative Filtering algorithm is crushing it! The Click-Through Rate (CTR) is at an all-time high!

Shez

Everyone loves 'Blockbuster Explosion 4.'

Kurumi

You have 10,000 movies in your library. Why is the algorithm only recommending *one*?

Shez

Because the dot product said so! High score means High relevance!

Kurumi

You didn't build a recommendation engine. You built a **Propaganda Machine**.

Kurumi

You are suffering from **The Matthew Effect**.

Shez

Matthew?

Kurumi

'For to everyone who has will more be given.' The Rich Get Richer.

Kurumi

You used Matrix Factorization (like SVD or ALS). You decompose the matrix into Latent Factors.

Kurumi

This column is dense. It has a lot of signal. The model learns its vector perfectly.

Kurumi

This column is empty. The model has no idea what this movie is.

Kurumi

So when it calculates the score, the 'Confidence' for the popular movie crushes the unknown movie.

Shez

But that's what people want! They clicked it!

Kurumi

They clicked it because it was **The Only Thing You Showed Them**.

Kurumi

This is the **Feedback Loop**.

Kurumi

You are verifying your own bias. It's a self-fulfilling prophecy.

Kurumi

And it gets worse. You are killing your **Inventory**.

Kurumi

If you never recommend the niche items, they never get clicks.

Kurumi

If they never get clicks, they never get data.

Kurumi

If they never get data, the model predicts 'Zero Interest' forever.

Kurumi

You are creating an **Algorithmic Monoculture**.

Shez

I'll fix it! I'll just randomly shuffle the recommendations!

Kurumi

No! No! If you show random junk, users will churn. You need **Smart Exploration**.

Kurumi

You need to treat this like a **Multi-Armed Bandit**.

Shez

A bandit? Like a robbery?

Kurumi

You have many movies (Arms). Some pay out often (Popular). Some are unknown (Niche).

Kurumi

A greedy algorithm (what you have) only pulls the lever that paid out last time.

Kurumi

It works. But maybe the 'Niche' lever spits out diamonds. You'll never know if you don't pull it.

Kurumi

You need to sacrifice some immediate CTR (Exploit) to gather information (Explore).

Shez

How do I code 'Curiosity'?

Kurumi

The 'Hat' is the uncertainty. UCB adds the hat to the score.

Kurumi

It says: 'This movie might be bad, or it might be amazing. The uncertainty gives it a bonus.'

Shez

So we give the underdog a chance because we *don't know*?

Kurumi

Yes. We are optimistic in the face of uncertainty.

Shez

Switching from pure 'SVD' to a contextual bandit approach.

Shez

Adding an **Exploration Term** to the ranking function.

Shez

Noooo! My CTR is dropping! It went down 2%!

Kurumi

Wait. Look at the **Catalog Coverage**.

Kurumi

User 42 just clicked the Cooking Show.

Kurumi

Your model just learned something *new* about User 42. They aren't just an Action fan. They like food.

Kurumi

You traded short-term clicks for **Long-Term Signal**.

Kurumi

Now your matrix isn't just a copy of the billboard charts. It actually reflects the user.

Shez

The CTR is climbing back up... slower this time.

Kurumi

But this time, it's real engagement. Not just muscle memory.

Kurumi

A good recommender system doesn't just give you what you want. It gives you what you didn't know you wanted.

Shez

Okay. 1. De-bias the training data (Inverse Propensity Weighting).

Shez

2. Add Bandit exploration.

Shez

3. Monitor 'Diversity' metrics, not just CTR.

Kurumi

And for the love of god, stop training on your own output without a correction factor.

Kurumi

That's how you get AI that sounds like an echo chamber.

Shez

Hey, this is actually good.

Kurumi

Discovery. It's a beautiful thing.

Kurumi

I'm going to watch 'Sharknado.'

Shez

What? After all that talk about high culture?

Kurumi

I'm an outlier. Don't try to model me.