-1

I'm using AWS Personalize to suggest recommendations based on thousands of 'likes' in our platform. Currently using User, User-Interaction and Item data, we get a score between 0.00004 and 0.006.

Firstly, how is the score calculated, and based on the example I gave, is it low?

Thanks,

kierandes
  • 161
  • 3
  • 16

1 Answers1

2

The formula for calculating scores depends on the use case and recipe. Based on the documentation for the user-personalization recipe:

Models that are based on USER_PERSONALIZATION recipes score all of the items in your Items dataset relative to each other on a scale from 0 to 1 (both inclusive), so that the total of all scores equals 1. For example, if you're getting movie recommendations for a user and there are three movies in the Items dataset, their scores might be 0.6, 0.3, and 0.1. Similarly, if you have 1,000 movies in your inventory, the highest-scoring movies might have very small scores (the average score would be .001), but, because scoring is relative, the recommendations are still valid.

Since the score values you shared have low absolute values, I suspect that you're using user-personalization. The higher number of distinct items in your interactions dataset, the smaller the score values will be. Look at the scores relative to other items in the response rather than reading too much into their absolute values.

However, the scoring formula for the personalized-ranking is different.

Like the scores returned by the GetRecommendations operation, GetPersonalizedRanking scores sum to 1, but because the list of considered items is much smaller than your full Items dataset, recommendation scores tend to be higher.

Mathematically, the scoring function for GetPersonalizedRanking is identical to GetRecommendations, except that it only considers the input items. This means that scores closer to 1 become more likely, as there are fewer other choices to divide up the score

James J
  • 621
  • 3
  • 6
  • Thanks, great answer. Yes its the User_personalization recipe We would have thousands of items. In the dataset I used for example there were over 1300 items. So perhaps then its the number of items that dilutes the score value down by the factor of the number of items? Thanks – kierandes Oct 18 '21 at 15:09