Recommender System Strategies

There are already quite a few recommendation engines, services and products that have recommendation features. Each product takes their own swing at a strategy for recommending new products and services that users will like. Today’s recommendation atmosphere does not seem to contain any perfect solutions, but they’re each utilizing strategies that help narrow down their catalogs and databases of information to content that is more customized to someone’s preferences.

Common Techniques for Delivering Recommendations

  • Word of Mouth
  • Expert Ratings
  • User Preferences
  • Collaborative Filtering

Less Common but More Effective Techniques for Delivering Recommendations

  • Taste/Attribute Filtering
  • Taste Profile Filtering (Expert Ratings + User Preferences + Collaborative Filtering + Taste Profile Filtering)

Word of Mouth

Almost everyone has asked their friends and family for suggestions of where to eat, what movie to see, what book to read, or what consumer electronics to buy. Word of mouth is often an easy way to get a quick head start in new topic areas, as the people you are close to might have already spent some time there. You will consider taking a look at something is someone you trust offers you a suggestion or product referral.

If you do not share specific commonalities with these people, the chances that you will like the recommendation are slim. In order to get good suggestions, you would need to be socially connected with people who have a similar set of preferences and interests (such as a western movie club, or alternative rock concert troop).

Expert Ratings

Famous critics and reviewers evaluate products and services, and meticulously analyze it based on their own scale. People over time begin to appreciate particular critics whom they value the reviews, ratings, and recommendations from. Experts tend to offer a critical look at particular topic areas (movies, books, music and wine). They’re unable to test and trial every possible product in a topic area, so they often focus on niches (scary movies, historical books) or incredibly broad (pop).

Experts typically create a rating scale (1 to 4 stars, thumbs up or down, or 0-100 points) offering users a quick way to see what the critic thought.

The problem with only relying on expert ratings is that people do not tend to agree with everything that a critic says. It’s often quite hit or miss. Frequent misses causes a person to reassess whether or not the critic is useful to them anymore, requiring them to discover another critic that might more closely match. Edge case users — people with more unusually eclectic taste — will often have no other critics to turn to once they’ve found a critic that offers at least a few hits.

User Preferences

User Preferences offer a way to understand a user’s general preferences for particular groups and categorical clusters. When a user contributes a particular preference, you can shut out or include entire categories of content. Take, for example, a user who prefers classical music. Knowing that you can more confidently recommend a CD of music by Bach over a CD of music by Korn. If the user further provides that they don’t like dance or rap music, you have a more specific understanding of that user’s interests.

But unfortunately, not every user is black and white about their preferences. More often than not, people like a few hiphop songs here, a few rock songs there, and a country song or two. Gross categories could have excluded most of those, even though the user might actually like them.

Collaborative Filtering

Collaborative Filtering utilizes collective intelligence to determine recommendations. This is one of the currently most popular ways to recommend. It is often based on data contributed by a graph of other users that are most similar to a person, although there are quite a few varieties of collaborative filtering.

  • Historical Purchases — what a user has purchased in the past determines other items they may prefer, using either a social graph (what others also bought who bought items similar to you) or an item correlation map (relationships between items purchased).
  • Social Graph Ratings — recommendations are determined based on the user’s rating similarities, placing them into a neighborhood of similar users and the highest rated items are returned that the user has not yet rated.

Taste/Attribute Filtering

If items have been mapped with a structure of meaningful attributes and then ranked for each attribute, a user can provide the level of each attribute that he prefers. For example, a user might specify that they like suspenseful elements and extreme character development as qualities in books they prefer to read. Assuming a collection of books have been mapped as having these attributes, they can be recommended to the user.

Mapping a user’s taste attributes to the attributes specifically defined in various topic areas helps to define an understanding of that person’s taste more precisely that the other methods defined above.

The first challenge to this technique is that it requires a lot of upfront modeling and attribute research (preferably from a panel of experts) in order to identify the attributes for a topic area, and then the attribute rankings for the products or items. This could be costly.

The second challenge is that users would need to provide a reasonably amount of information about themselves, perhaps via a survey or quick questions over a longer period of time. Until users can feel confident that the system will generate accurate recommendations, they will be hesitant to contribute personal information about their taste.

These two challenges is likely the main reason why most products have yet to utilize this strategy yet. However, it offers the most precise results out of the strategies I have presented in this article. This is one of our primary focus areas at WeLike.

Taste Profile Filtering (Expert Ratings + User Preferences + Collaborative Filtering + Taste Profile Filtering)

Slightly more experimental, and also another area that I have focused on at WeLike, is combining all of the strategies together. I call this Taste Profile Filtering. Taste specific recommendations can be provided using a combination of the strategies together, while also weighting them by a topic area model, or the user’s desired order of importance. This allows maximum flexibility so that your recommender system is not tuned to a particular group of people. For example, it still allows people that do not wish to tune their taste attributes, but want to rely on a social graph neighborhood, for more popular recommendations. Then it also allows people who are more eclectic and on the edge to more closely tune their actual taste.

I believe this is where the future of recommender systems is; this is where it will be headed over the next 5 to 10 years. As the number of choices continue to grow over the coming years, sifting through and finding what is most meaningful will be necessary, and accurate recommender systems become ever more important and vital to end users.

If this is something that interests you, I’d love to chat. I am looking to find an additional engineering co-founder to add to the team at WeLike. Send me an email at

Posted in Personal Taste & Recommendations | Leave a comment

Understanding the Constructs of Human Preferences

Every day, nearly every person in the world is faced with having to make decisions about what they want to eat, where they want to go, and what they want to read. Our minds make these decisions by using some form of biological algorithm that processes data made up of a combination of our DNA, experiences, environment, social relationships, moral compass, and a variety of other things that help give us our sense of self. I’m not exactly suggesting that our minds work just like some advanced computer algorithm does (although I’m sure it would be reasonable to suggest a correlation), but it is safe to assume that there is generally some rhyme and reason to the way people make decisions — an algorithm unique to that person.

Whereas computer software runs tens of thousands of calculations a second to determine some output, when we think about whether or not we will like something, we’re often less calculative than a computer would be. For instance, when evaluating a book for purchase, we mentally reference and note books that we’ve already read that are similar (or not at all similar) to the one we’re considering buying, but we do not think of a precise number that indicates just how much we liked those previous books. We do not think “This book is 0.6 in similarity, 0.4 in how fun it is to read, and 0.943 in certainty that my friends will approve of this purchase.” People are much more fuzzy, broad, and generalists than computers are. Computers love to munch on numbers all day long; it’s the language they were built to understand. People can’t think in precision for every decision they make. Instead, a person thinks “I believe this is the book my mother recommended. It will look beautiful on my coffee table. It reminds me of a book a saw at my cousin’s house. And it’s on sale!”

The disconnect between people and computers when it comes to understanding human preferences should begin to become obvious now. Computers expect to be able to process algorithms with precise data, but people expect to “process their algorithms” using abstract concepts and feelings which are not usually directly expressed in numeral notations. In order for computers to help people understand what their tastes and preferences are, they will need to begin to start thinking like people do; a task that researchers have spent a half of a century trying to do (artificial intelligence, neural networks, etc).

As a stop gap until computers can begin to understand human expressions (both objective and subjective ones), many researchers and companies have built software that can approximate what a person feels about something. Such software can solicit users for opinions using ranking systems (stars, thumbs up/down, like), and then compare their submissions to aggregates of other data, such as ratings from other users, purchase histories, or other forms of collective intelligence. Several companies have implemented recommender systems that have been wildly successful (such as NetFlix and Pandora), while others are in many ways hit-or-miss (Amazon, …). Recommendations are a problem of the future, with glimpses of solutions in the present.

No one has mastered a solution to this problem though, and in many ways it’s still the Wild, Wild West. Several startups are working hard to come up with their own great solutions (Hunch, Directed Edge) and they’ve done quite a fantastic job thus far. There is no single way to solve many of these problems. And these problems interest us quite intimately. They’re at the core thought processes of people in our company (WeLike), and over the next couple of years we will be addressing some of these problems very seriously. Nearly every product we make will have some tie into personal taste and recommendations. I think our approach will be different than what most companies have done so far. But given that we see things differently, we still see plenty of room for competition and strategic partnerships. It’s a large enough problem that no single company will be able to provide a single all-encompassing solution.

In the future, I envision technologies that will help fill the computer-human gap, by helping computers think more abstractly and humans more concretely. Even more likely will be the creation of bridging technology, allowing some computers to stay statistical and numerical (perhaps quantum computer software?) and humans to remain abstract. Bridging technology would function similarly to the role of a corporate translator: helping two foreign companies, who don’t speak the same language or share the same culture, to communicate and end up on the same page in their relationship with each other.

In an effort to further explore the existing technologies and techniques, as well as begin to examine some additional ways to approach these problems, I will write additional articles in this category every month. I am going to specifically focus on how our minds and personalities define us and our tastes, and potential ways to mimmic and interact with them via software products. If this is a topic that interests you, I encourage you to join in to the conversation by submitting comments on each article that is posted or sending an email to me at

Posted in Personal Taste & Recommendations | Leave a comment

Ironing Out the Wrinkles in Your Concepts

We tend to have a lot of ideas, and sometimes it’s overwhelming. Our roadmap is quite lengthy and we have a clear idea of the products we want to build. But we’re also picky about how our products will look and function; sometimes too much. I have not always been proud of all of our past product releases, so spending a little extra time to get things right I hope will make our products that much greater.

Over the years as I’ve made incremental improvements to products, I’ve often asked friends and colleagues what they thought of the current state of the design or functionality. Whenever possible I also ask a few existing clients (or potential new ones) what they also think. Asking others for their opinion gives a fresh new perspective to the work, and helps you validate a particular feature, color scheme, or design.

But we don’t stop there. There are a variety of design/concept sites that let you post screenshots of the product for the world to review. You can often get excellent feedback from other designers, or people that really enjoy discovering new products. These sites are essential for quick (but meaningful!) feedback on a current revision.

If you’re building your own products, feel free to drop us a line as we’re always interested in seeing what our peers are up too. We’d love to share our opinions. But most certainly be sure to try out some of these sites:

Happy product design!

Posted in Business & Techniques | Leave a comment

A Voice of Our Own

This article marks the first of many to come on our new company blog. It is quite commonplace for companies to have blogs, so we knew we had to finally create one. We also know that many company blogs out there lack personality and often only serve to announce product releases.

We want to be different. We want to share our process, our efforts, and our ideas. As we learn along the way, we aim to tell you about some of our challenges, as well as some of our accomplishments.

We think that customers, budding entrepreneurs, programmers, and curious amateur tinkerers will find something here of interest. I would also like to encourage everyone to join in the conversation and leave comments on our articles to give us an idea of what’s on your mind.

Thank you for reading!


Posted in Announcements | Leave a comment