# Recommendation System Using Autoencoders
## 1 Introduction
Once it becomes possible to estimate the ratings for the items that have not yet been rated, it will be feasible to recommend the items with the highest estimated ratings to the user [4]. Being part of intelligent systems, recommender systems use several kinds of knowledge. The knowledge needed to produce recommendations have four sources: from the user itself, from other peer users of the system, from data regarding the items being recommended, and lastly from the recommendation field itself, knowledge about how recommended items are applied and what needs they satisfy [14]. Recommendation systems can be divided into three main categories [4]--Content-based Recommendations, Collaborative Recommendations, and Hybrid Recommendations. In the first approach, the user will be recommended items similar to those he/she enjoyed in the past. In turn, in the collaborative approach, recommendations are made based on items consumed by users whose  
Figure 1: Illustration of the logical process of a recommendation system. tastes and preferences are similar to that of the referred user. Finally, combining content-based and collaborative recommendations leads to hybrid approaches, which are regularly applied, since both types of recommendations can be complemented by one another [15]. Human beings have always sought opinions or advice on items through conversations with friends, store staff, and even through the reading of comments on products, to help them in the decision-making process. This is the basis of Collaborative Filtering, which uses other people's opinions to make a recommendation. Collaborative filtering techniques can be divided into two categories: memory-based (user/item-based) and model-based [16]. Memory-based algorithms act on the entire user/item matrix. They assume that users/items can be grouped together by similarity. On the other hand, model-based techniques use a set of user assessments to generate an estimated model, saving the parameters learned during training. Instead of using similarity measurements, these algorithms are characterized by the creation of models [17]. Matrix Factorization [18], one of the techniques used in collaborative model-based filtering, is a well-established algorithm in the recommendation system's literature. It is a model that achieves a decent performance in the task of predicting ratings, standing out the Principal Component Analysis (PCA) and Singular Value Decomposition (SVD) models. But it turns out to be essentially a linear model, making it impossible to capture complex nonlinear and intricate relationships that can be predictive of users' preferences [19]. Today, with the concept of deep learning becoming more important, several researchers have begun to test its usability in a collaborative filtering approach in order to achieve better results [20]. For example, [PERSON] et al. made use of deep convolutional neural network to give music recommendations [21]. Deep models can learn high-order features of input data which may be useful for recommendation as indicated in Reference [22]. Autoencoders are a common building block of Deep Learning architectures [20; 23]. In this article, an autoencoder is used for collaborative filtering tasks with the aim of giving product recommendations. An autoencoder is a neural network that learns to copy its input to its output in order to encode the inputs into a hidden (and usually low-dimensional) representation [19]. Neural networks have proven to be capable of approximating any continuous function, making it suitable for addressing the limitation of matrix factorization and enhancing the expressiveness of matrix factorization [19]. A comparison of the results will also be made between the SVD and the autoencoder using the Root Mean Square Error (RMSE) metric. The organization of the remainder of the paper is as follows--Section 2 will present the related work on collaborative filtering, autoencoders, and SVD.