Recommenders, also known as recommendation systems or recommendation engines, are a type of machine learning application that provides personalized suggestions to users. These systems are widely used in various industries to help users discover products, services, content, or items of interest that they might not have found on their own. Recommenders aim to predict a user's preferences or needs based on historical data and then recommend items that align with those preferences.
Collaborative filtering is a technique that can filter out items that a user might like on the basis of reactions by similar users. It works by searching a large group of people and finding a smaller set of users with tastes similar to a particular user. It looks at the items they like and combines them to create a ranked list of suggestions.
Let us take an example where the user rates movies using one to five stars, and write down a cost function for it.
$$ J(x^1, x^2, ..., x^{n_m}) = \frac{1}{2}\Sigma^{n_m}{i=1}\Sigma{j:r(i, j) = 1}(w^j.x^i + b^j - y^{(i, j)})^2 + \frac{\lambda}{2}\Sigma^{n_m}{i=1}\Sigma^{n}{k=1}(x^i_k)^2 $$
$n_u$ = Number of users
$n_m$ = Number of movies
$r(i, j)$ = If user $j$ has rated movie $i$
$w^j_i=w^j_i-α\frac{∂}{∂w^j_i}J(w,b,x)$
$b^j_i=b^j_i-α\frac{∂}{∂b^j_i}J(w,b,x)$
$x^j_k=x^j_k-α\frac{∂}{∂x^j_k}J(w,b,x)$
Note: $x$ is also a parameter
Cold Start Problem - How to: