Hey, I have implemented a cross recommender based on the approach Ted Dunning proposed (cannot find the original post, but here is a follow up http://www.mail-archive.com/[email protected]/msg12983.html). Currently I am struggling with the last step of blending the initial recommendations.
My current approach: 1. Compute a cooccurrence matrix for each useful combination of user-product interaction (e.g. which product views and purchased do appear in common …) 2. Perform initial recommendation based on each matrix and the required type of user vector (e.g. a user's history of views OR purchases) (like the item-based recommender implemented in Mahout) In step 2, I adapted the AggregateAndRecommendReducer of Mahout, which normalizes vectors while building the sum of weighted similarities or in this case => cooccurrences. Now I end up with multiple recommendations for each product, but all of them are on a different scale. How can I convert them to have the same scale, in order to be able to weight them and build the linear combinations of initial recommendations as Ted proposed? Would it make sense to normalize user vectors (before multiplying) as well? Otherwise views would have a much higher influence than purchases due to their plain characteristics (they just appear way more frequently). Or is this the reason for weighting purchases higher and views lower? If so, I think it's sort of inconvenient. Wouldn't it be much more favorable to get each type of interaction within the same scale and use the weights just to control each types influence on the final recommendation? Thanks in advance for any suggestions! Regards Dominik Sent from my iPhone
