Sunday, 14 January 2024

My experiment with ChatGPT as a recommendations engine using Netflix data

As some readers might have learnt about me by now, is that I enjoy data analytics, and more recently been curious about the capabilities of ChatGPT. So I decided to take my Netflix data and give it to ChatGPT code interpreter to see what it comes up with.

If you didn't know, as a Netflix user, you can get access to all your data by requesting it from under account management on the web site:


After a couple of days, you will receive an email from Netflix with a zipped file "netflix-report". Here's what my archive looks like:

The section that's important is CONTENT_INTERACTION. Recommendation engines are all about understanding a user's viewing behaviour: their content preferences, search history, viewing history, events that happen during playback, viewing activity - all inputs into what is called "viewer engagement". 

For 20 years I worked as a software professional building video technology systems. In 2004, I joined a research team building video recommendation engines. At the time, we focused on rules-based engines and used Amazon as the general poster-child, north-star - even then, Amazon's retail recommeder system was making headwaves. In 2004, it was still the early days of the internet. Set Top Boxes, the devices that enabled you access to satellite TV, were not always online. So the scope of our work was constrained to the embedded world of this device: limited compute, memory and storage power. We knew there needed to be a multi-pronged approach to video recommendations back then, with the bulk processing intelligence being done in the "back end" - headend - and recommendations eventually broadcast to the set top box over the air. Anyway, building software that learns viewing behaviours of users was an art back then - and even almost two decades later - remains still an art - although with the proliferation of many software-as-a-services providers, we now have so many options available "Recommendation engines-as-a-service". In my previous role as CTO for Africa's largest video entertainment company, over the years built our own stack, leverage open source recommendation engines. With new capabilities like Amazon Sagemaker and other services, I got our team to start thinking differently and transform to out-of-the-box recommender systems. Don't reinvent the wheel. Build flywheels instead. I left that team in 2020, 4 years later, I'm told the team's completed their transformation and using almost all their recommendation components off-the-shelf instead of building their own.

So what happens to content recommenders now that we have tools like ChatGPT, code interpreters and powerful data analysis? Could video recommendation engines be further disrupted - i.e. democratizing content recommendations to the new world of personal intelligent agents?

Experiment: ChatGPT as a content recommendation expert - Epic Fail

First, I asked ChatGPT to analyse the Netflix data set, then provide an analysis as a video recommendations expert. I've shared my Netflix data. Act as an expert video recommendations engine, recommender system, using all the state-of-the-art concepts for understanding viewer behaviour. Analyse the datasets and produce a detailed analysis and insights report into my viewing habits. What are my preferences? If you were a video content expert, how would you categorise me? What content will you recommend to me? Etc.

Feedback - Results, much better luck with DeepNote
A bit disappointing - ChatGPT struggles to analyse consistently, without errors. Too many errors, load failures and errors analyzing. It starts strong and then bombs out. I find it to be rather inconsistent. Had to wait a while and create a few sessions to get going. A bit of a time waster. It's a shame that ChatGPT has to restart its chain of analysis everytime there's a failure. "Regenerate" kicks off the process all over again. 3 sessions later, then I get bombed out as I've exhausted my time window - come back later. I pay for ChatGPT and still have to accept limited time-based usage. Crazy times. Switched over to Claude to see if it gave better results. Nope, Claude has severe limitations in file size uploads. Waste of time. Google Bard, equally useless. 

I then switched to Deepnote (an alternative to Noteable which is now dead), my experience was much better there. It turns out the Netflix data is sparse enough, missing vital data attributes like content genre classifications (like action, comedy, drama, romance, history, etc.) which makes it difficult to draw conclusions on viewing behaviour. This means we need to find a content database like TMDB to map my Netflix data to (i.e. complete the dataset by appending vital content attributes like genre, actor, director, studio, etc.), then we can build up a complete profile view of my usage, the content my household is inclined to and the for the last phase of the experiment, get the AI to recommend content from another catalog to surface recommendations for me. To get a glimpse of the potential power of an AI-coPilot used in DeepNote, I've shared my project as public here.

I'm not investing more time going down this rabbit hole today! However, it is certainly food for thought on potential new GPT-agents one can build now that OpenAI have released its GPT store. I suspect it's only a matter of time that someone builds a content recommender-gpt on ChatGPT's store, that can provide more diverse recommendations outside the closed walls of a streaming provider. I suspect we will have a resurgence in Content-Aggregator Wars in 2024!

No comments:

Post a Comment