Recommendations - Hey user, I think you might like this!

Would you likely read this ?

Recommendation has been part of most online systems for quite some time now. Amazon, Target, and Netflix have recommendation algorithms that gets you to look at more items either to buy or watch. The basic premise of recommendation is to use collected historical data for a user in order to determine items or products that might be valuable to a user. Determining the recommended item is based on a strategic plan of what the goal is for recommending. It is usually for a user to purchase additional products or something that will significantly help the user. The "strategic plan" is usually something based on a business goal to push (recommend) to the user. Pushing an item for recommendation without real significance and context is not really a good plan because users will ignore such recommendations with high probability and will also alienate users (kind of like the web sites in facebook that are full of advertisements that does not really make sense. Like answers.com - I really hate this!). High quality recommendations for the users of a web site usually incorporates helping the user discover something that is significant based on the current usage context (kind of like this - Target really being helpful !) . Significant recommendations are determined by a number of statistical techniques being employed using the data of the user.

Having been really involve implementing recommendations using statistical techniques, there was a lot of collaborating with our R&D team in order to come out with the best recommendation algorithms. (I have to dig deep to my statistics subject in college.) There are a lot of recommendation logic out there. After working on this subject, I have observed different techniques in some of the recommendations in the websites i use.

Chi-Square ("kye"- square)

At the heart of some of the recommendation algorithms that i have implemented is the Chi-square test. Basically, we want to quantify a users preference for a certain kind of item based on historical usage. In order to do that we will need how many and what kind of items they have looked up in the past. This technique will be good if you have a large user base and a significant amount of historical user data.

There are specialized variations of this statistical technique. Usually a variation on the data points collected for the user like "user clicks", "user purchases", and "user views".  Statistical analysis of user data helps a lot in providing significant recommendations.

Recommendations may not always come from usage data. It might also just be a straight out business rule. As an example, if a grocery store website is trying to push its inventory of milk, it might just always recommend milk every time (but this is not really helping the user).


Where to now ?

Statistical techniques will have its limits based on the data on hand. It is not really deep in the sense that the recommendations are based on historical data which is not always a good basis in predicting the future behavior of users. In order to take recommendations further it should employ a cognitive architecture (artificial intelligence) that can completely react or interact with users. Recommendations based on real time interaction will have a higher chance of being significant and current.

Talking about AI. Try my twitter bot @petabyteflop. You can ask any kind of question. This is a study on how customer service can be automated in twitter.






Comments

Popular posts from this blog

OAuth 1.0a Request Signing and Verification - HMAC-SHA1 - HMAC-SHA256

Spark DataFrame - Array[ByteBuffer] - IllegalAurmentException

Gensim Doc2Vec on Spark - a quest to get the right Vector