I am using mllib's implicit preference based implementation of collaborative filtering for generating grocery product recommendations in e-commerce, based on this Netflix Prize winning algorithm. I tried two variations (differing in how rating is derived)-
- rating = no. of times user bought an item
- rating = (2x(no. of times user bought an item) + no. of times user viewed an item)/3 (i.e. 2:1 weights between bought and viewed criteria)
Performance (MAP, Recall and Precision) degrades from 1 to 2, which is counter-intuitive as the matrix density increases and 2nd was expected to perform better. One observation is that the cardinality (discrete values) in rating column increases in second approach and hence I want to understand if that could have resulted in the performance hit?