# The role of bias terms in binary recommender systems

I realize that a recommender system applied to, for example, the Movielens dataset needs to account for bias. That is, one needs to adjust for the varying popularity of movies, and that users have different baselines for their ratings. If one users tends to rates movies high and another users rates movies low, a rating of 4 out of 5 implies different level of appreciation.

However, I struggle to understand the meaning of bias terms in a recommenders systems that uses binary data as its input. For example, when we instead of movie ratings have yes/no information on if a user purchased or viewed an item in an online store.

This implementation introduces scalar bias terms for both products and users. The method is a hybrid in the sense that it takes into account both user behaviour and metadata. The paper also describes how it is used on binary data in an online store. How should the bias terms be interpreted in this case?

• Bias is a catch all parameters that accounts for the shift in the unit of measure. Think of measuring the temperature in Fahrenheit vs Celsius, your model shouldn’t depend on unit of measure. So the bias would account for different zero points in the scales in this case Oct 30 '21 at 17:27
• You are right, but there is something about the binary case that throws me off. That is, for example, in a case were an item is either bought or not in an online store. Here, there is no rating, just a yes or no on which to base future recommendations. Oct 30 '21 at 17:34

Even if the system uses binary data as input (0/1), it can still have some "bias" (average, offset) of these zeros and ones. You can look at matrix factorization implementation here (for netflix competition data, which is very similar to movielens dataset): https://github.com/pepe78/netflix_matrix_factorization

Look once more at the model definition, in the simplest case, it predicts the rating for $$u$$-th user and $$i$$-th item $$\hat r_{ui}$$ using

$$\hat r_{ui} = f(\boldsymbol{q}_u \cdot \boldsymbol{p}_i + b_u + b_i)$$

where $$\boldsymbol{q}_u$$ and $$\boldsymbol{p}_i$$ are latent representations per user and item, while $$b_u$$ and $$b_i$$ are bias terms. Bias term for user $$b_u$$ is the "default" or "average" rating the user gives, bias term for the item is the "default" rating for the item. Notice that the part $$\boldsymbol{q}_u \cdot \boldsymbol{p}_i$$ depends on the interaction of a particular user with a particular item, it tells you how well does the item matches the person. On another hand, $$b_u$$ is the base rating by the user regardless of everything else, and $$b_i$$ is the base rating for the item regardless of everything else. If the latent representations for user and item are orthogonal, $$\boldsymbol{q}_u \cdot \boldsymbol{p}_i$$ would be equal to zero, so the rating would reduce to $$f(b_u + b_i)$$.

To give an example, say that you are Netflix and your user Bob likes watching sci-fi movies, so a romantic comedy probably would not be a great fit for him. On another hand, if it is a multi-category Oscar winner, so it may make sense to "bump" the predicted rating by the fact that the movie has a very high average rating $$b_i$$. Another user, Anna is very critical and rarely gives thumbs-up to the movies, so $$b_u$$ would be negative for her, always decreasing the predicted ratings by a constant.

Additionally, same as in linear regression, intercepts improve the numerical stability of the algorithm and are beneficial when training the model.

• @Figaro remember that $f(\cdot)$ translates to the predicted rating. So $b_i$ is a number that translates to the rating of the item, if other things were zeros $f(b_i)$ would be the rating predicted only on the base of it. Depending on what your data is, it might be popular. Same with $b_u$, it's the "average rating" user gives--it could be something $f(b_u)$ could be something like the probability that user gives thumbs up, or that they click the item.
• Good catch with Anna, it should be $b_u$, corrected.