# Personalized E-Learning Recommender System Based on Autoencoders
## 1 Introduction  
Thanks to the rapid development of services offered on the Internet, learners have an increasing number of learning resources available to them in e-learning environments. They can now use computers and mobile devices to search for needed educational information, products and services [1]. It is unnecessary and difficult for a learner to consult all of these learning resources. The integration of recommender systems with e-learning systems allows for filtering and selecting useful and relevant resources for each learner, thus reducing the time needed to choose the right ones. The role of recommender systems is very important when developing an e-learning system to guide learners, hence ensuring a personalized learning environment, called adaptive learning [2]. Adaptive learning is a concept related to personalizing learning for each learner [3, 4]. Its objective is to provide each learner with learning activities that are appropriate to their different learning needs [2]. Recommender systems in Adaptive E-Learning (AEL) systems basically focus on recommending relevant and accurate learning resources to the learner. Recommender systems are one of the information-filtering tools that can predict user preferences for an item [5], reducing the information overload caused by the large volume of information present on the web [6]. These systems have been used in several fields [7, 8, 9] and especially in e-commerce to increase turnover by offering relevant articles for each customer [10]. Recommender systems rely on data filtering to recommend items using different recommendation approaches that are generally classified into three categories [8; 11; 12]: content-based filtering, CF and hybrid filtering. Regarding content filtering, the system recommends items similar to those that the user likes. To do this, the system builds a profile for the user, including the characteristics of their favorite articles, and then it compares the user's profile with the characteristics of an article to generate recommendations [13; 14]. For CF, the system takes into account the preferences of other similar users to the active user and completely ignores item knowledge. To the active user, the system recommends items that other similar users (collaborators or neighbors) have appreciated. To do this, the system calculates the similarity between user preferences and other users' preferences [14; 15]. CF approaches take a matrix of ratings (users and items), as shown in Table 1, where each row represents a user and each column represents an item as input, and generally produces the output types based on a predictive value indicating how much the current user likes or does not like an item. The third category is hybrid filtering approaches, which combine the recommendation techniques previously explained to take advantage of their complementary advantages [14; 16]. The CF approach is a more common and frequently used approach to design recommender systems [17]. It uses two main methods, memory-based CF and model-based CF. The first method calculates the similarity between users or items by using the existing interactions in the item-user matrix. The second method trains a pretrained model to predict missing ratings by applying machine learning algorithms. Collaborative model-based approaches use matrix factorization [18], which is a popular approach used in recommender systems to provide personalized recommendations based on user-item interactions. It is a model used to predict ratings, such as SVD, SVD++ and NMF (presented in Section 5.2) and PCA (\"Principal Component Analysis\"), which is an intelligent approach to analyzing the data structure. PCA produces new variables, \"Principal Components (PC)\" or latent variables, by maximizing the data variance. PCA applications reduce the dimensions [19]. However, it turns out to be primarily a linear model, which poses the challenge of needing to capture complex nonlinear interactions that may be predictive of user preferences.