easy
easy

Reputation: 63

What is prediction function applied for Recommendations used Tanimoto Coefficient for Item-based CF

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

Answers (1)

Bartłomiej Twardowski
Bartłomiej Twardowski

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:

enter image description here

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.

enter image description here

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

Related Questions