Since you have multiple kinds of action (views, add-to-cart, purchases, other actions), using a multi-modal recommender based on implicit feedback should work relatively well.
With the currently released Mahout software, you can only do cooccurrence, not cross occurrence, but there is a way to deal with this (roughly). The idea is that you make up combine action type with item-id to get a combined id. Then you do cooccurrence analysis using ItemSimilarityJob on these combined id's. The output of this is significant cooccurrences for each of the view+product, add-to-cart+product and buy+product. You can rearrange these so that for each product you have three kinds of indicators (for view, add and buy) and each indicator field potentially has three kinds of events (view, add and buy) combined with product. This data can now be imported into a search index and you are ready to experiment with recommendations. Recommendations can be created using this search index by taking a user history and searching against any combination of one or more of the three indicator fields. Users who have only a few view events in their history will match only view indicators. These indicators will be more common than adds which will be more common than purchases. That means that if the user does have add or purchase events, these will be given higher weight due to their rarity. Does this make sense? On Fri, Jul 11, 2014 at 8:51 AM, Sneha Venkatesh <sneh...@gmail.com> wrote: > Hi, > > I am building a product recommendation engine for an e-commerce website and > I do not have explicit rating values given by users to products. I instead > have implicit feedback from the views, add to carts and purchases and I > generate a preference score using a linear combination of these. > > I built a recommender using the parallel ALS-WR recommender for implicit > data in mahout. However the results do not entirely make sense. This could > be because around 50-70% users are infrequent users who have just viewed a > couple of products throughout their history. I am still trying to tune the > input parameters to the algorithm and clean up the data to get a denser > data set. > > However, I am wondering if a item based collaborative filtering approach > based on boolean preferences is a better option for my problem. I could use > the 'TanimotoCoefficientSimilarity' or the 'LogLikelihoodSimilarity' for > this. > > Are there other alternative approaches besides these that I can try ? I > would love to hear some feedback. Thanks. > > Regards, > Sneha >