Reputation: 63
I'm constructing a recommender system which use Item-based collaborative filtering. But I have a problem with the predict function I don't know which function can be used when calculating similarities between different items (Movies) by using Tanimoto Coefficient (Jaccard similarity coefficient)?. the following example can explain my problem. Let us assume that User1 watched movie 1 and when we calculated tanimoto coefficient between movie 1 and all other movies, we found top-5 similar movies were 527,595,608,1097 and 588 .where each of these movie has it is own similarity with movie 1 as follow:
User :1
Watched Movie---Similar Movie----Tanimoto Coefficient score
1--------527-------- = 0.33242
1--------595-------- = 0.3377
1--------608-------- = 0.3523
1--------1097-------- = 0.3619
1--------588-------- = 0.42595
So what is the next step after calculating similarities? please I need help with this.
PS: I found all top-5 (527,595,608,1097 and 588) was watched by user 1 , so they can not be considered as a recommended movie.
Many thanks
Upvotes: 3
Views: 899
Reputation: 640
First, in both methods - user-to-user and item-to-item we have defined two functions: similarity and predict. The similarity measures for You how close are two entities to each other (users or items). In Your case - Tanimoto was chosen. What You are missing is predict function. As You have got the nearest entities (in i2i - items) You have to predict the rating value (or in implicit user feedback - does something happen). The simplest form is to use weighted average function, where weight is the similarity measure:
An average should be calculated only for items unrated by the user. This is one of the simplest recommendation generation for particular user using item2item.
Quick example. Having rating matrix like R:
We trying to predict rating for user 1 and item 1. Tanimoto similarity measure is used in below calculation.
So we will predict that user 1 gives item 1 rating: 4/5.
For the performance reason we keeping indexed most Top-N similar items, but still those items should be new to the user for which recommendation will be generated.
Upvotes: 2