Skip to content

Instantly share code, notes, and snippets.

@simplymathematics
Created November 8, 2018 05:21
Show Gist options
  • Save simplymathematics/ef598a7be40b1f42f3c9a42f11e76a10 to your computer and use it in GitHub Desktop.
Save simplymathematics/ef598a7be40b1f42f3c9a42f11e76a10 to your computer and use it in GitHub Desktop.
I use [Plex](plex.tv) to manage and stream all of the movies, tv shows, and music I consume. Many people use Netflix, but I have 12 TB of files that are **definitely not pirated**. Since I have such a massive amount of data, it is hard to find something new to watch.
Plex recently introduced a recommendation engine. I imagine it works by looking at the SQL database it uses to store the data. Since the software auto-magically collects metadata from IMBD/TVDB/MusicBrainz and does sophisticated file analysis (detects bitrate, for example), it already has a ton of information about the kinds of show each user likes to watch. I know about their architecture because their source code is [here](https://github.com/plexinc), which itself is a fork of a firmware hack from the original Xbox.
The likely use a bayesian classifier as it that model works well with the data model they use. Other possibilities include nearest neighbor classifiers that use a variety of genre/director/plot tags, random forest classifiers, and convolutional neural networks that Netflix uses to distill features like 'gritty'. Since Plex is a team of <10 people and mostly exists to serve pirates, I imagine this system is fairly simple. It's possible that it mines this data from IMDB, but I would be surprised and disappointed. The simplest implementation is probably good enough, but Netflix's complicated multi-layer classification network is far more engaging. However, Plex is designed to give me access to my content easily whereas Netflix wants me addicted to their platform (Plex is a software company; Netflix is becoming a production company). I'm not sure the more complicated models are better as each type has its benefits.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment