Matrix factorization is a class of collaborative filtering algorithms used in recommender systems. Matrix factorization algorithms work by decomposing the user-item interaction matrix into the product of two lower dimensionality rectangular matrices. This family of methods became widely known during the Netflix prize challenge due to its effectiveness as reported by Simon Funk in his 2006 blog post, where he shared his findings with the research community. The prediction results can be improved by assigning different regularization weights to the latent factors based on items' popularity and users' activeness.
Techniques The idea behind matrix factorization is to represent users and items in a lower dimensional latent space. Since the initial work by Funk in 2006 a multitude of matrix factorization approaches have been proposed for recommender systems. Some of the most used and simpler ones are listed in the following sections.
Funk MF The original algorithm proposed by Simon Funk in his blog post factorized the user-item rating matrix as the product of two lower dimensional matrices, the first one has a row for each user, while the second has a column for each item. The row or column associated to a specific user or item is referred to as latent factors. Note that, in Funk MF no singular value decomposition is applied, it is a SVD-like machine learning model. The predicted ratings can be computed as R ~ = H W {\displaystyle {\tilde {R}}=HW} , where R ~ ∈ R users × items {\displaystyle {\tilde {R}}\in \mathbb {R} ^{{\text{users}}\times {\text{items}}}} is the user-item rating matrix, H ∈ R users × latent factors {\displaystyle H\in \mathbb {R} ^{{\text{users}}\times {\text{latent factors}}}} contains the user's latent factors and W ∈ R latent factors × items {\displaystyle W\in \mathbb {R} ^{{\text{latent factors}}\times {\text{items}}}} the item's latent factors. Specifically, the predicted rating user u will give to item i is computed as:
r ~ u i = ∑ f = 0 n factors H u , f W f , i {\displaystyle {\tilde {r}}_{ui}=\sum _{f=0}^{\text{n factors}}H_{u,f}W_{f,i}}
It is possible to tune the expressive power of the model by changing the number of latent factors. It has been demonstrated that a matrix factorization with one latent factor is equivalent to a most popular or top popular recommender (e.g. recommends the items with the most interactions without any personalization). Increasing the number of latent factors will improve personalization, therefore recommendation quality, until the number of factors becomes too high, at which point the model starts to overfit and the recommendation quality will decrease. A common strategy to avoid overfitting is to add regularization terms to the objective function. Funk MF was developed as a rating prediction problem, therefore it uses explicit numerical ratings as user-item interactions. All things considered, Funk MF minimizes the following objective function:
a r g m i n H , W ‖ R − R ~ ‖ F + α ‖ H ‖ + β ‖ W ‖ {\displaystyle {\underset {H,W}{\operatorname {arg\,min} }}\,\|R-{\tilde {R}}\|_{\rm {F}}+\alpha \|H\|+\beta \|W\|}
Where ‖ . ‖ F {\displaystyle \|.\|_{\rm {F}}} is defined to be the frobenius norm whereas the other norms might be either frobenius or another norm depending on the specific recommending problem.
SVD++ While Funk MF is able to provide very good recommendation quality, its ability to use only explicit numerical ratings as user-items interactions constitutes a limitation. Modern day recommender systems should exploit all available interactions both explicit (e.g. numerical ratings) and implicit (e.g. likes, purchases, skipped, bookmarked). To this end SVD++ was designed to take into account implicit interactions as well. Compared to Funk MF, SVD++ takes also into account user and item bias. The predicted rating user u will give to item i is computed as:
… excerpt ends here. Continue reading the full article.
