Friday, September 28, 2012

Where to start in building a great discovery experience

Great discovery experiences requires 2 core competencies:
  1. A great personalization algorithm
  2. A large corpus of content with accurate metadata
A great personalization algorithm allows you to target the right content to the right person at the right time.  It should be continually learning and learning (from positive and negative signals).  It should take into account as many signals about the user as possible (demographic info about the user, time of day, location, mode of delivery, device) and match that with as many signals within the content as possible.

The second competency that you need is a large and rich body of content.  This is where most companies fail.  They either have too small a body of content or a database of content that has little metadata.

Example A: You are trying to help people discover shoes to buy.  You have 100,000 users and 10 different pairs of shoes.

What is the likelihood that one of those 10 shoes will be something that one of the 100,000 users are interested in?  Very low.

Example B: You are still trying to help people discover shoes to buy.  You have the same 100,00 users but now have populated your database with 100,000 different shoes.  However you've only tagged each shoe with data about its manufacturer and whether its for men or women.

What is the likelihood you will be able to recommend the right pair of shoes to someone knowing only these 2 pieces of information?  Also very low.

My advice for companies trying to build a discovery experience is to attack both the breadth (size) and depth (richness) of data problem first.  Hold off on a complicated personalization algo until you have enough data to work with.

Also a shortcut to a more complex personalization algorithm is crowdsourcing + collaborative filtering. What I tend to look for are positive engagement signals from users (clicks, time viewing content, item purchased) and then use collaborative filtering to create clusters of users and content.  Once you have clusters of users and content, you can surface content in the cluster to the users who haven't seen that item before.

This was a bit of a brain dump post, but just wanted to post it since I've been meaning to share some thoughts on discovery for a while.

Apologies for the sparseness, but would love additional thoughts and comments on your best practices for creating great discovery experiences.