Open in App
Not now

# User-Based Collaborative Filtering

• Difficulty Level : Hard
• Last Updated : 22 Jan, 2023

User-Based Collaborative Filtering is a technique used to predict the items that a user might like on the basis of ratings given to that item by other users who have similar taste with that of the target user. Many websites use collaborative filtering for building their recommendation system.

Steps for User-Based Collaborative Filtering:

Step 1: Finding the similarity of users to the target user U. Similarity for any two users ‘a’ and ‘b’ can be calculated from the given formula,

Step 2: Prediction of missing rating of an item Now, the target user might be very similar to some users and may not be much similar to others. Hence, the ratings given to a particular item by the more similar users should be given more weightage than those given by less similar users and so on. This problem can be solved by using a weighted average approach. In this approach, you multiply the rating of each user with a similarity factor calculated using the above mention formula. The missing rating can be calculated as,

Example: Consider a matrix that shows four users Alice, U1, U2 and U3 rating on different news apps. The rating range is from 1 to 5 on the basis of users’ likability of the news app. The ‘?’ indicates that the user has not rated the app.

Step 1: Calculating the similarity between Alice and all the other users At first we calculate the averages of the ratings of all the user excluding I5 as it is not rated by Alice. Therefore, we calculate the average as ,Therefore, we haveand calculate the new ratings as,Hence, we get the following matrix,

Now, we calculate the similarity between Alice and all the other users.[Tex]Sim(Alice,U2)=\frac {((1.5*0.25)+(0.5*-0.5)+(-2.5*0.5)+(.5*-0.5))}{\sqrt{(1.5^2+0.5^2+2.5^2+0.5^2)} \sqrt{(0.5^2+0.5^2+0.5^2+0.5^2)}}=-0.33\newline  [/Tex]

Step 2: Predicting the rating of the app not rated by Alice Now, we predict Alice’s rating for BBC News App,[Tex]r_{(Alice,I5)}=3.5 + \frac {(0.301*0.75)+(-0.33*1.5)+(0.707*1)}{|0.301|+|-0.33|+|0.707|}=3.83\newline  [/Tex]Hence, with the help of a small example we tried to understand the working of User-based collaborative filtering.

My Personal Notes arrow_drop_up
Related Articles