Build a Recommendation Engine

Like so many things, it was born of frustration and stiff cocktails. It was a Saturday, and the two young men were once again stuck without a date for the night. As they sat pouring drinks and sharing laments, the two Harvard freshmen began to flesh out an idea. What if, instead of relying on random chance to meet the right girl, they could use a computer algorithm?

The key to matching people up, they felt, would be to create a set of questions that provided the sort of information everyone is really looking for on those first awkward dates. By matching people using these questionnaires, you could eliminate dates that could best be avoided. The process would be super efficient.

The idea was to market their new service to college students in Boston and around the country. And in short order, that's exactly what they did.

Soon after, the digital matchmaking service they built went on to become a huge success. It received national media attention and generated tens of thousands of matches over the course of the next few years. The company was so successful, in fact, it was eventually bought out by a larger company that wanted to use its technology.

If you think I'm talking about OkCupid, you would be wrong—and off by about 40 years. The company I'm speaking of did all of this beginning in 1965a time when computing matches was done using punch cards on an IBM 1401 mainframe. It also took three days just to run the computations.

But oddly enough, there's a connection between OkCupid and its 1965 precursor, Compatibility Research, Inc. The co-founder of Compatibility Research is Jeff Tarr, whose daughter, Jennifer Tarr, is the wife of OkCupid's co-founder Chris Coyne. Small world indeed.

But why is any of this relevant to a chapter on building a recommendation engine? Because it's quite likely that this was in fact the first one. And while most people tend to think of recommendation engines as tools for finding closely related products or music and movies they're likely to appreciate, the original incarnation was to find potential mates. And as a model for thinking about how these systems work, it provides a good frame of reference.

In this chapter, we're going to explore the different varieties of recommendation systems. We'll see how they're implemented commercially and how they work. Finally, we'll implement our own recommendation engine for finding GitHub repositories.

We'll cover the following topics in this chapter:

  • Collaborative filtering
  • Content-based filtering
  • Hybrid systems
  • Building a recommendation engine
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.139.97.202