Recommendation Engines

A product I worked on in the past is the Corel All-Movie Guide. This was a cool product, basically a local copy of the All-Movie Guide database with a lot of custom tools for searching, filtering, and displaying it.

Last night I was trying to figure out what movies to order from zip.ca and was having a hard time finding anything. I started searching for movie recommendation engines, and couldn't find anything that looked promising.

For All-Movie Guide I created a system where you simply rated movies thumbs-up, thumbs-down, or neutral. Once you'd rated a few movies, you could filter the movie list from the full 100k movies down to a subset (say, comedies released in the last 10 years), and then say "Suggest" and it would compare every matching movie in the database with every movie you'd said you liked or didn't like, and then sort the entire list based on how much it thought you'd like the movie.

The surprising thing was that it worked very well. If you marked off a few action movies and a few comedies, when you ran the Suggest, you generally got a list of movies that you'd already seen (and forgotten that you'd seen) that you liked, so you'd have to mark those as thumbs-up, and eventually you'd start getting recommendations that were really useful.

This was made possible by the fact that the All-Movie Guide database is incredibly rich. Take a look at the entry for Total Recall for example. Not only does it have the usual list of cast and credits, but it has all these fuzzy sort of tags like Mind Games, Technology Run Amok, and Visceral. The suggestion engine used this data to to influence the score - it meant that you were much more likely to get Die Hard suggested than Tootsie.

Today, I can't find anything like this.

Most often, these days, this sort of data is driven by marketing. "If you liked this movie, buy these other movies", and the list is created by people deciding what movies they want to sell. It's disappointing.

I'd love to create a general sort of recommendation site, where you could add anything to the database, rate things, and then the site would suggest other things you might like. I've wanted to do something like this for a long time; just need some time to work on it.

Some other cool factoids about All-Movie Guide:

  • Dynamically generated games. You picked a set of movies (say, Comedies from 1980 to 1990) and it would generate a crossword puzzle for you, or let you play a multiplayer trivia game. None of the questions were composed by humans - they were generated from the data (such as "Which 1993 movie starred Arnold Schwarzenegger" with a list of 4 movies, 3 of which were either similar 1993 movies that didn't star him, or movies which did from other years.. actually I think one of the answers was mostly random just to make it easier).
  • Cool Cross-platform UI. Same code base worked on PC or Mac.
  • Online purchasing of movies. We were one of the first companies to do online commerce - setting this up with the credit card processor was a big deal, and in the end not many people used it, but at the time having the 'Buy It' button was a big deal.

Now it's gone, and nothing else has jumped in to fill the space. We have IMDB and I guess it's good having instant updates when new movies are added and whatnot, but I miss the local interface and the funky features we had in All-Movie Guide.

Just reminiscing a bit... :)