I love recommendation algorithms. Algorithms are what programming is all about. You take information and swirl it around and get something new.
I appreciate algorithms daily. Any time Pandora takes my thumbs up of Howard Shore and Danny Elfman and gives me Harry Gregson-Williams, I have a new composer that I wouldn’t normally have discovered.
I really like Netflix’s algorithm for recommending movies, but a pretty funny/bad recommendation happened on two separate occasions, so I thought that it was worth looking into. I have reviewed 1,302 titles in Netflix as of this writing. (I’m a fan of Netflix.) Netflix then gives me 4,342 recommendations (today) that I sift through to find something to watch.
This strikes me as an example of where a human librarian would be a great asset. It’s all about the algorithm.
Amazon makes recommendations based on what previous users bought mixed in with sponsored searches paid for by advertising firms. In one Amazon purchase, I bought a textbook during my Masters program, a Dragonball manga for my brother, and a travel guide of Nigeria for my sister-in-law. You should have seen Amazon strain its mechanical brain trying to figure out what in the world I was doing.
Pandora is called the music genome project because it breaks down each song into its most basic elements and recommends other songs based on similar characteristics. But just because one song has a good bass line doesn’t mean that I will like another, although it’s a good start.
Songs are much more than elements – there are nostalgic feelings that make me like a song even if it is some cheezy Boys II Men song I danced to at my own 8th grade promotion that Pandora has no clue about. I could do a search for more songs from that time period and hope to find more results, but it’s different describing that song to a person and connecting with them.
So how does Netflix’s algorithm work? Netflix had a contest in 2009 for programmers to write a better recommendation algorithm. If you read some of the papers found there, you’ll see that Netflix gave the teams 100 million ratings done by users. That’s a lot of data and my applause to the teams that tackled 4.2 million users’ worth of information. Netflix gave teams a probe set, a quiz set, and a test set. The probe set of information is a full list of a user’s ratings of shows. On this day, this user said this movie was this many stars. The quiz set was a list of movies that the programmers had to predict the user ratings for. They would post those predictions and Netflix would say how close they got. The test set was the final copy of the algorithm, where programmers didn’t know how well they did until the winner was announced.
BellKor’s Pragmatic Chaos won the contest. Their program took into account ratings on specific days and chunks of weeks at a time. They looked at how a movie may share the same elements (like Pandora’s model) as another movie of the same genre, and matches the genre requirements perfectly, but is just a bad movie. That’s a tough thing to write into a program. The programs I write always use brute force through conditional statements. If I wrote the Netflix algorithm, it would be:
If movie == “Troll 2″ then RunAway();
I am in awe of BellKor’s team. (They are a part of AT&T’s research team, though, so they’re not just some random college kids who were bored one summer and decided to write ubercode.)
All that being said, how does this relate to librarians? Netflix has one of the most sophisticated algorithms for recommendations that I have ever seen. It’s a thing of coding beauty.
- How come, when I rated a Brian Regan stand-up comedy routine highly, it instantly recommended a documentary about monks who live in isolation in the mountains?
- How come it said, “Based on your rating of Inception, we recommend Back at the Barnyard“? What about a Chris Nolan thought-crime movie makes you think that I want to see dancing cows?
Those recommendations were made months apart, so it’s not like Netflix just decided to be wacky this weekend.
Rating predictions are great, but there are still some flaws. Good librarians help you sift through that data, analyze what previous users have done, evaluate elements of genres, and make decisions filtering trends over time. That and most provide a listening ear when you ramble about Boyz II Men, even if they think you’re crazy.