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?

  • $\begingroup$ 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 $\endgroup$
    – Aksakal
    Commented Oct 30, 2021 at 17:27
  • $\begingroup$ 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. $\endgroup$
    – Figaro
    Commented Oct 30, 2021 at 17:34

2 Answers 2


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.

Including additional features, such as metadata, does not change the interpretation.

  • $\begingroup$ Excellent answer. If the recommendations are applied to a binary dataset, would the b_i bias term represent how popular an item? What would b_u represent, how many items a user has bought? Also, when you mention Anna, our critical reviewer, wouldn't b_u be the term that is negative? $\endgroup$
    – Figaro
    Commented Oct 30, 2021 at 14:01
  • $\begingroup$ @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. $\endgroup$
    – Tim
    Commented Oct 30, 2021 at 14:05
  • $\begingroup$ Good catch with Anna, it should be $b_u$, corrected. $\endgroup$
    – Tim
    Commented Oct 30, 2021 at 14:06
  • $\begingroup$ Even in the binary case? As in the online store example where an item has either been bought by the user, or not. Here, there are no ratings. $\endgroup$
    – Figaro
    Commented Oct 30, 2021 at 17:36
  • $\begingroup$ @Figaro in such case you have so-called implicit feedback yifanhu.net/PUB/cf.pdf $\endgroup$
    – Tim
    Commented Oct 30, 2021 at 17:54

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


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.