# Deep Matrix Factorization Approach for Collaborative Filtering Recommender Systems
## 3 Results
\begin{table}
\begin{tabular}{c c c c} \hline \hline
**Dataset** & **PMF** & **NMF** & **SVD++** \\ \hline MovieLens 100K & \(k=2\), \(\gamma=0.01\), \(\lambda=0.025\) & \(k=2\) & \(k=2,\gamma=0.0014\), \(\lambda=0.08\) \\ MovieLens 1M & \(k=8\), \(\gamma=0.01\), \(\lambda=0.045\) & \(k=2\) & \(k=4,\gamma=0.0014\), \(\lambda=0.05\) \\ FilmTrust & \(k=4\), \(\gamma=0.015\), \(\lambda=0.1\) & \(k=2\) & \(k=2,\gamma=0.0014\), \(\lambda=0.1\) \\ MyAnimeList & \(k=10\), \(\gamma=0.005\), \(\lambda=0.085\) & \(k=2\) & \(k=4,\gamma=0.0014\), \(\lambda=0.02\) \\ \hline \hline \end{tabular}
\end{table} 
Table 2: Best hyper-parameters for each baseline found by a grid search optimization. \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Dataset** & **Rank** & **Hyper-Parameters** & **MAE** \\ \hline MovieLens 100K & 1 & \(K=[3,3,3,3]\); \(\Gamma=[0.01,0.01,0.01]\); \(\Lambda=[0.1,0.01,0.01]\) & 0.75017 \\ MovieLens 100K & 2 & \(K=[3,3,3,9]\); \(\Gamma=[0.01,0.1,0.01,0.1]\); \(\Lambda=[0.1,0.01,0.1,0.01]\) & 0.75077 \\ MovieLens 100K & 3 & \(K=[3,6,6,3]\); \(\Gamma=[0.01,0.1,0.01,0.1]\); \(\Lambda=[0.1,0.01,0.1,0.01]\) & 0.75079 \\  & 4 & \(K=[3,3,3]\); \(\Gamma=[0.01,0.1,0.01]\); \(\Lambda=[0.1,0.01,0.1]\) & 0.75092 \\  & 5 & \(K=[3,3,9,9]\); \(\Gamma=[0.01,0.1,0.01,0.1]\); \(\Lambda=[0.1,0.01,0.1]\) & 0.75105 \\ \hline MovieLens 1M & 1 & \(K=[9,3,3]\); \(\Gamma=[0.01,0.01,0.01]\); \(\Lambda=[0.1,0.01,0.1]\) & 0.70943 \\  & 2 & \(K=[9,3,9]\); \(\Gamma=[0.01,0.01,0.01,0.1]\); \(\Lambda=[0.1,0.01,0.1]\) & 0.70948 \\ MovieLens 1M & 3 & \(K=[9,3,9]\); \(\Gamma=[0.01,0.01,0.01,0.1]\); \(\Lambda=[0.1,0.01,0.1]\) & 0.70949 \\  & 4 & \(K=[9,3,3,9]\); \(\Gamma=[0.01,0.01,0.01,0.1]\); \(\Lambda=[0.1,0.01,0.1,0.01]\) & 0.70956 \\  & 5 & \(K=[9,3,3,3]\); \(\Gamma=[0.01,0.01,0.01,0.1]\); \(\Lambda=[0.1,0.01,0.1,0.01]\) & 0.70959 \\ \hline FilmTrust & 1 & \(K=[6,6,3]\); \(\Gamma=[0.01,0.1,0.01]\); \(\Lambda=[0.1,0.01,0.01]\) & 0.64936 \\  & 2 & \(K=[6,6,3]\); \(\Gamma=[0.01,0.1,0.01]\); \(\Lambda=[0.1,0.01,0.1]\) & 0.66987 \\  & 3 & \(K=[6,3,6]\); \(\Gamma=[0.01,0.1,0.01,0.1]\); \(\Lambda=[0.1,0.01,0.1]\) & 0.65072 \\  & 4 & \(K=[9,3,3]\); \(\Gamma=[0.01,0.1,0.01,worse MAE than SVD++. Observe that this later underperformance might be due to the fact that MyAnimeList is significantly larger than any other dataset, so deeper models of DeepMF would be needed in order the exploit the recursive nature of the proposed method that fit the dataset better than SVD++. Figure 2 contains the precision and recall of the recommendations when varying the number of desired top recommendations from \(l=1\) to \(l=10\) items. The threshold \(\theta\) for precision and recall has been set to \(\theta=4\) for MovieLens datasets, \(\theta=3.5\) for FilmTrust dataset and \(\theta=7\) for MyAnimeList dataset. We can observe that in all evaluated datasets the proposed method DeepMF provides the best balance between the precision and recall quality measures for any number of recommendations. All experiments conducted in this article are committed to reproducible science. The full code of these experiments is available at [[https://github.com/ferortega/deep-matrix-factorization](https://github.com/ferortega/deep-matrix-factorization)]([https://github.com/ferortega/deep-matrix-factorization](https://github.com/ferortega/deep-matrix-factorization)). \begin{table}
\begin{tabular}{c c c c c} \hline \hline
**Dataset** & **DeepMF** & **PMF** & **NMF** & **SVD++** \\ \hline MovieLens 100K & **0.75017** & 0.76720 & 0.79138 & 0.78170 \\ MovieLens 1M & **0.70943** & 0.71868 & 0.75166 & 0.74285 \\ FilmTrust & **0.64936** & 0.84659 & 0.82911 & 0.65748 \\ MyAnimeList & 0.97447 & 1.10006 & 1.12025 & **0.95179** \\ \hline \hline \end{tabular}
\end{table} 
Table 4: Quality of the predictions measured by the mae. The lower the better. In bold the best recommendation model for each dataset. Figure 2: Quality of the recommendations measured by precision and recall. The higher the better. Blue number over the lines represents the size of the recommendation list for each value.