Search code examples
mahoutrecommendation-engine

finding minimum number of ratings needed in recommendation systems?


Is there an intelligent way to find out the minimum number of ratings you need from a user to start recommending items (Accurately).

Like, say.. rate "x" items before I start recommending anything to you. How do you find out that "x" based on a dataset?


Solution

  • The general idea is to hold out all data from N users that each have at least some moderate number M of ratings. Then add 1 rating from each user, and make recommendations for each one. Assess the quality of the recommendations; you can do it by hand, or evaluate some metric like mean average precision / nDCG / AUC.

    Then add another rating from each user and repeat. You should find that quality is improving over time, but less with each rating. You then just pick your tradeoff -- when do you judge that waiting for another rating is worth the expected increase in quality?

    There's no one right answer. But I would be surprised if your use case and algorithm were such that the answer is more than about 4.