# Personalized E-Learning Recommender System Based on Autoencoders
## 4 Methodology and Preliminaries
### Autoencoder  
Autoencoders are a class of unsupervised neural networks introduced in the late 1980s [38] that aim to learn how to compress and encode input data and then reconstruct the original inputs from the reduced coded representations [39]. The autoencoder is powerful for dimensionality reduction [40]. A basic autoencoder consists of three layers, as shown in Figure 1: the input layer, hidden layer and output layer. The number of neurons in the input layer is equal to the number of neurons in the output layer. This form of neural network is composed of two parts: \begin{table}
\begin{tabular}{c c c c c c} \hline \hline \multirow{2}{*}{**Article**} & \multirow{2}{*}{**Machine Learning Method**} & \multirow{2}{*}{**Approach**} & \multirow{2}{*}{**Metric**} & \multirow{2}{*}{**Dataset**} & \multirow{2}{*}{**Item Types Recommended**} \\ \hline \multirow{8}{*}{[30]} & & & -”Mean Average & & \\  & Denoising autoencoders, & & Precision” (MAP) & & \\  & deep autoencoders for & & -”Normalized & Interactions between & \\  & collaborative filtering, deep & & Discounted & students and learning & \\  & autoencoders for & & Cumulative Gain” & objects from a “Massive & Learning objects \\  & collaborative filtering using & & (NDCG) & Open Online Course” & \\  & content information & & -”Personalization” (P) & (MOOC) & \\  & & & -”Coverage” & & \\  & & & -”Serendipity” (SAUC) & & \\ \hline \multirow{2}{*}{[31]} & Neural Collaborative & & -Average precision & \multirow{2}{*}{Algebra1 dataset} & \multirow{2}{*}{Question sequencing} \\  & Filtering (NCF) & & correlation (AP) & & \\ \hline \multirow{2}{*}{[34]} & Deep belief networks & \multirow{2}{*}{CF} & \multirow{2}{*}{RMSE} & StarC MOOC platform & \multirow{2}{*}{Course} \\  & (DBNs) & & & & \\ \hline \multirow{4}{*}{[35]} & Stacked denoising & \multirow{2}{*}{hybrid} & Receiver operating & \multirow{2}{*}{Dataset from an online} & \multirow{2}{*}{Exercises} \\  & autoencoder (SDAE) with & & curve the area under & & \\ \cline{1-1}  & wide linear component & & ROC (AUC-ROC) & & \\ \hline \multirow{2}{*}{
\begin{tabular}{c} Present \\ Approach \\ \end{tabular} } & \multirow{2}{*}{Autoencoder} & \multirow{2}{*}{CF} & \multirow{2}{*}{MAERMSE} & Dataset created by & \multirow{2}{*}{Course} \\ \cline{1-1}  & & & & \\ \cline{1-1}  & & & & \\ \hline \hline \end{tabular}
\end{table} 
Table 2: _Cont._an encoder and a decoder. The encoder maps data from the input layer to the hidden layer. The decoder maps the encoded data from the hidden layer to the output layer. The encoder compresses the high-dimensional input data \(\mathrm{x}=\{\mathrm{x}_{1},\mathrm{x}_{2},\mathrm{x}_{3},\ldots,\mathrm{x}_{ \mathrm{m}}\}\) into a latent space representation \(\mathrm{h}=\)\(\{\mathrm{h}_{1},\mathrm{h}_{2},\mathrm{h}_{3},\ldots,\mathrm{h}_{\mathrm{k}}\}\) using the function:  
\[\mathrm{h}=\mathrm{f}(\mathrm{x})=\mathrm{S}_{\mathrm{f}}(\mathrm{w}_{1 \mathrm{x}}+\mathrm{b}_{1}) \tag{1}\]  
where \(\mathrm{S}_{\mathrm{f}}\) denotes an activation function, \(\mathrm{m}\) denotes the number of neurons in the input layer, and \(\mathrm{k}\) denotes the number of neurons in the hidden layer. A \(\mathrm{k}\times\mathrm{m}\) weight matrix \(\mathrm{W}_{1}\) and a bias vector \(\mathrm{b}_{1}\epsilon\mathrm{R}^{\mathrm{k}}\) are used to parameterize the encoder [38]. The decoder part of the network tends to reconstruct the input from the latent space representation. The reconstruction \(\mathrm{y}=\)\(\{\mathrm{y}_{1},\mathrm{y}_{2},\mathrm{y}_{3},\ldots,\mathrm{y}_{\mathrm{m}}\}\) is obtained by using the function:  
\[\mathrm{y}=\mathrm{g}(\mathrm{h})=\mathrm{S}_{\mathrm{g}}(\mathrm{w}_{2 \mathrm{h}}+\mathrm{b}_{2}) \tag{2}\]  
\(\mathrm{S}_{\mathrm{g}}\) refers to the activation function of the decoder. An (\(\mathrm{m}\times\mathrm{k}\)) weight matrix \(\mathrm{W}_{2}\) and a bias vector \(\mathrm{b}_{2}\epsilon\mathrm{R}^{\mathrm{m}}\) compose the decoder's parameters [38]. The purpose of network training is to make the output signal as similar as possible to the input signal.