# State-of-the-Art Survey on Deep Learning-Based Recommender Systems for E-Learning
## 3 Classification Method
### Classification Based on Recommendation Techniques
#### 3.1.1 Collaborative Filtering  
Collaborative filtering is the most widely used and popular technique for building RSs that make predictions and suggestions based on ratings of other system users [19]. The belief regarding this technique is that ratings of other users can be used to provide reasonable predictions of the current user. It is based on the nature of humans to \"use what is popular among my peers, or wisdom of the crowd\" to recommend items to users [20]. The collaborative filtering technique presumes that if users agree on ratings of some selected items, they will have similar opinions on other new items. Its utility function \(f\) uses users' or items' similarities to predict the rating of unknown item \(i\) by user \(u\) as \(f\,:(u,\,i)\to r\) for which \(r\) can be an actual number within some interval (from 1 to 10), a binary rating (yes/no, like/dislike, etc. ), or determined implicitly by the system. Several algorithms fall under collaborative filtering, such as user-based, item-based, stereotype/demographic, etc. Taking a user-based collaborative filtering algorithm, according to [9], the rating of new \(i\) by the \(u\) denoted by \(r_{u,\,i}\) can be obtained either by taking the average of all ratings of \(i\) given by some users in \(U\) as in Equation (1) or by finding the similarity between all users who rated \(i\) and the user \(u\), then calculate the sum of the products of their similarities and the ratings they gave to \(i\), and finally, by multiplying the normalizing factor as in Equation (2), where \(\aleph\) is the normalizing factor which most of the time is considered to be the inverse of \(\sum_{v\in U}\left|sim(u,v)\right|\), or by jointly using Equations (3) and (4). \[r_{u,i}=\frac{1}{K}\,\sum_{v\in U}r_{v,i} \tag{1}\]  
\[r_{u,i}=\aleph\sum_{v\in U}sim(u,v)\times r_{v,i} \tag{2}\]  
\[r_{u,i}=\overline{r}_{u}+\aleph\sum_{v\in U}sim(u,v)\times(r_{v,i}-\overline {r}_{v}) \tag{3}\]  
\[\overline{r}_{u}=\left(1/\left|I_{u}\right|\right)\sum_{i\in I_{u}}r_{u,i} \tag{4}\]  
where \(I_{u}=\left\{i\,\in I|r_{u,i}\
eq\varnothing\right.\). On the other hand, as observed by [8], some algorithms used probabilistic methods to predict \(r_{u,i}\) based on the Bayesian probability that \(u\) rated \(i\), given that they previously rated some items \(i^{*}\in\,I\). Equation (5) is the relation used for this approach. \[r_{u,i}=E(r_{u,i})=\sum_{k=0}^{n}i\times\Pr(r_{u,i}=k|r_{u,i^{*}},\,i^{*}\in I _{u}) \tag{5}\]  
\(\Pr(r_{u,i}=R|r_{u,i^{*}},\,i^{*}\in I_{u})\) can be estimated using either a Bayesian network or cluster models as proposed by [21]; the variable \(R\) is a non-negative integer \(\leq n\). The question is how to find the similarities between users or items that can be used to perform the necessary computations. There are many similarity metrics, such as thePearson correlation coefficient, Euclidean distance, cosine measure, Spearman correlation, Tanimoto coefficient, log likelihood, etc. The Pearson correlation coefficient is one of the many similarity metrics that has been used for a long time, but one needs to understand it very well before using it because it fails to give an accurate result when applied to a sparse or minimal dataset. It is not a flawed metric, and at the same time, it is not always good. The formulas for calculating users' similarities \(sim\left(u_{i},u_{j}\right)\) using Pearson correlation and cosine measures are in Equations (6)-(9), respectively.