Recommender Systems Based on Evolutionary Computing: A Survey

Data mining techniques and information personalization have made significant growth in the past decade. Enormous volume of data is generated every day. Recommender systems can help users to find their specific information in the extensive volume of information. Several techniques have been presented for development of Recommender System (RS). One of these techniques is the Evolutionary Computing (EC), which can optimize and improve RS in the various applications. This study investigates the number of publications, focusing on some aspects such as the recommendation techniques, the evaluation methods and the datasets which are used.

modern and hybrid approach is Evolutionary Computing (EC) techniques. Each recommendation approach has advantages and disadvantages. In this survey, first, the classical and traditional filtering ways are introduced and then the paper is focused on introducing and comparing the recent publications of EC approach in the recommender systems [2] [3] [4].

Item
Every object that can be recommended to a user is called item. If the item is useful for the user, it has positive value else its value is negative [2].

User
All operations in the recommender system offer to the target user. Target user has some public component such as age, income, marital status, education, profession and nationality, and also has some specific components such as favorite food, sports, music, movies, etc. Specific components extracting are very sensitive [1] [2].

Feedback
The most important concept in recommender system is user's feedback on items. There are two types of explicit and implicit feedback [5] [6].
In explicit feedback, users explicitly rank items. Typically, users were asked to show their opinion with a number.
In implicit feedback, the recommendation is based on previous user's interactions with the system [5].

Classical and Traditional Methods
Generally, recommender systems depend on how to do information filtering divide into three groups: 1) Collaborative Filtering, 2) Content-based Filtering and 3) Context-Aware.

Collaborative Filtering (CF)
Collaborative filtering recommends users by finding users with similar preferences. The CF filtering is classified into Memory based and Model based CF. Figure 1 shows the functional structure of the CF method [2].
Input should be in the form of rating matrix in the memory based CF. For example a music recommendation application system can be represented as user-music rating matrix. The set of users are represented as columns and items (music) as rows. The second type is model-based algorithms. This algorithm used rating matrix to create a model. Then by using this model do the recommendation. Memory-based algorithms in comparison with model-based algorithms have better and more accurate results [7].
There are different algorithms for CF filtering. Three common algorithms of this method are: 1) Random Algorithm, 2) Mean Algorithm and, 3) Neighbor- Figure 1. The functional structure of the CF method [2].
CF has some limitations such as cold start, scarcity of user opinion and data validity.

Content-Based Filtering
Content is the base concept for building recommender applications in this method. Content-based filtering is based on item description rather than similarity of other users [2]. It uses machine learning algorithms to make a model of user preferences. Many approaches were proposed in the content-based recommendation, but if the content does not contain enough information recommendations do not guarantee accurate predictions [3]. This method has some limitations such as limited content analysis and cold start.

Context-Aware
There are various definitions for the concept of context. In this paper, each entity that can be used to personalize the information is called context. An entity can be an object or place or situation that is relevant with interaction of target user with application or a user [8] [9] [10]. The context information of a user depends on several cases, such as location, emotional state, personal characteristic etc. [11]. Different categories were chosen in the various papers. In this paper context is divided into two types: 1) Static 2) Dynamic [12] [13]. The context which changes rarely called static context such as contact list, user profile etc. The context which is extremely variable called dynamic context such as location of the user, temperature, time and etc. [8].
In pre-filtering approaches as shown in Figure 2(a), the contextual information is used before all recommendations computing. The reduction-based approach is an example of pre-filtering approaches [14]. The ranked data which is not relevant to the context is filtered out before applying the recommendation Figure 2. The incorporation of context in the recommendation process [13].
algorithm. The important benefit of this approach is that it allowed using any recommender system technique. The pre-filtering approach used two-dimensional (users × items) recommendation to estimate the rating function [15] [16].
In post-filtering approaches, the result list of the recommendation is prepared and then filtered with contextual information as shown in Figure 2(b). The ratings are predicted using two-dimensional (2D) recommender system.
Contextual modeling approaches use explicitly the context information as a predictor for user's rating an item. Hence, the approach formulates a multidimensional or MD (user × items × context) recommendation as shown in Figure   2(c) [17] [18] [19] [20].

Evolutionary Computing
As shown in Figure 3 Evolutionary Computing (EC) with Fuzzy sets, Artificial Neural Networks (ANNs), Swarm Intelligence (SI) and Artificial Immune Systems are subsets of computational intelligence [9].
The root of EC is back from Darwin theory of natural selection. Darwin's theory explains that nature has limited resources [21] [22] [23]. Creatures that live are competing together because of limited resources. And try to extend their next generation. This generation is called survivor of fittest [24] [25] [26]. Table   1 shows the mapping between this theory and problem solving in the evolutionary computing [23].
In general, every problem has three parts: Input, Model and Output.
EC can solve the problem in three ways.

Optimization
As shown in Figure 4(a), in these methods input is unknown. Input should found in a way that it became optimize. Most of the problems are in this category.

Modeling
As shown in Figure 4(b), in these methods model should found because Input and output relation is unknown. Input and output are known in these methods.

Simulation
As shown in Figure 4(c), the output is unknown. Inputs with regularity of the model can simulate outputs [21] [22] [23].
EC were designed to solve complex problems. There are different types of evolutionary computing algorithms, as shown in Figure 3 Genetic Algorithm (GA), Genetic Programming (GP), Evolutionary Programming (EP) and Evolution Strategies (ES). EC is based on computational models such as natural selection, survival of the fittest and reproduction. Different EC algorithms have similar algorithmic characteristics and also they have many similarities in framework implementation [21]. Figure 5 shows a universal framework which includes three fundamental operations and two optional operations for most ECs [24] [25]. The first step in an EC algorithm is the "population initialization" step. Next step is entering evolutionary iterations with two operational steps, namely, "fitness evaluation and selection" and "population reproduction and variation" [26] [27]. The iteration continues until a termination, threshold is achieved. Sometimes EC algorithms need additionally perform such as an "algorithm adaptation" procedure or a "local search" (LS) procedure besides the above three necessary steps [27] [28] [29].

Categories Approaches
EC techniques can help recommender systems to have more powerful and more Figure 5. The general EC framework [27].
effective recommendation.
There are three main approaches to applying EC in recommender systems which are 1) approaches in which EC are used to optimize weights of recommendation techniques or different component, 2) approaches utilizing EC for clustering of items or users and 3) hybrid and other approaches [21].

Approaches Based on Weights Optimizing
According to [30] [31] [32] [33], feedback feature arrays including user characteristics, item characteristics and the corresponding ratings were created user profile. An n-dimensional array as user preferences was considered and it included weights corresponding to the given features and it supported the profile matching algorithm within the RS. In these papers, techniques based on evolutionary computing had better performance than Neighborhood-based collaborative filtering (nCo) except [31] where the proposed method is not compared to any baseline. The public dataset of Movie Lens is used to test these papers.
In the [34] authors proposed a recommender system for location-based advertising based on user's preferences and interaction of context with a user. It used the genetic algorithm to achieve optimal value, in calculating the similarity between two contexts from the multidimensional perspective. As shown in Figure   6 the proposed architecture which named Context-Aware CF using Genetic Algorithm (CACF-GA), consists of pre-arranging process and a cycle of three steps for 1) Filtering, 2) Context-Aware CF, and 3) Recommendation and Feedback.
The dataset which used for experiments was gathered from students via a Figure 6. The architecture of CACF-GA [34]. In [35], authors, first identified suitable attributes in a user profile and suggest an appropriate similarity. Second, EC are used to learn the weights of user's personal, behavioral and interaction attributes from social networks based on the comparison of individual features to increase recommendation effectiveness.
At the end, it used trust propagation techniques towards handling sparsity problem of collaborative filtering. The proposed approach is tested only on synthetic data (simulated dataset of 20 users) and is not compared to any baseline algorithm. In its extended version [36], authors, compared the presented approach with a hybrid friend recommendation strategy based on interest similarity and social proximity [37]. It eventuated that approach [35] is superior on synthetic data than other approaches [37].
The [38] proposed an evolutionary approach for combining results of recommendation techniques in order to automate the choice of techniques and get fewer errors in recommendations. Experiments on Movie Lens data showed that the appropriate combination of the results of different recommendation techniques performed better than any one of collaborative filtering technique separately in the context addressed [39]. Depending on the technique and the experiment executed the improvement varies from 9.02% to 48.21%.
The [40] presented similarity function using the average rating for each user.
Other approach used overall average rating for all users. This approach has compared to standard Neighborhood-based collaborative filtering (nCo) techniques on Movie Lens data. A series of comparison demonstrate the effectiveness of the proposed approach in terms of the quality of prediction.
The [41] has presented a metric to measure the similarity between users, which is applicable in collaborative filtering processes in recommender systems.
Genetic algorithms are used to find an optimal similarity function between two sparse rating vectors relevant to users with elements showing their feedbacks on items. Experiments performed on unpublic and public real-world data from the movie domain, such as Movie Lens, Film Affinity and Netflix. This approach showed that The GA-metric runs 42% as fast as the correlation. This is an important advantage in the recommender system, especially when many different recommendation requests are made simultaneously (user to user).
The [42] used evolutionary computing to find the optimal aggregation of different recommendation algorithms by considering multi-objectives such as accuracy, diversity and novelty. In order to evaluate proposed hybrid, authors used Movie Lens dataset for movie recommendation and another dataset which consists of 19,150,868 user's access to music tracks on the website Last.fm 1 , for mu-sic recommendation. Authors used baseline algorithms available in the MyMedia Lite 2 package recommendation library.

Approaches Based on Clustering
In the [43], authors used clustering methods for segmentation of users into clusters of customers with similar needs. Utilizing from evolutionary computing to find initial seeds fork-means clustering. In its extended version [44], authors used genetic algorithms to find optimal cluster centers. In [43], experiments applied on public GVSu WWW dataset and in [44] dataset gathered from an Internet shopping mall. The proposed approach in compared with traditional clustering methods had better segmentation.
In [45] [46], authors proposed a memetic recommender system. This recommender system is based on the collaborative behavior of memes. It used the memetic algorithm [47] to propose a strategy to perform the local search for clustering users. This system compared with the traditional collaborative filtering technique, genetic algorithm and the Pearson algorithm based recommender system and leads to better accuracy. Experiments performed on Movie Lens dataset.
In the [48], a new recommendation method was proposed based on memetic algorithm. For testing this method used four highly sparse real-world datasets. Authors also showed that proposed approach outperforms nCo approaches.
In the [49], an approach proposed which used evolutionary strategies to clustered users. In this approach, clusters are allowed to be overlapping which implicates that the average sparsity remains constant and independent of the number of created cluster. Experiments applied on the Jester dataset. The proposed approach compared to nCo utilizing k-means clustering and showed effectiveness.

Hybrid and Other Approaches
Proposed approach [50] optimizes the weights according to historical rating using GA. The historical rating data can be used for discovering some of the valua- The proposed model [58] is a multi-objective EC-based recommendation Figure 7. The architecture of GUARD [57].
model which maximizes two performance metrics termed as accuracy and novelty. Proposed method compared with nCo, mCo and hybrid CF techniques on the Movie Lens data and demonstrate that the proposed algorithm can make more diverse yet accurate recommendations the probabilistic.
The paper [59] proposed a framework and used the multi-objective evolutionary algorithm based on decomposition to improve the novelty and the diversity for top-k recommendations of an item-based collaborative filtering technique without reducing the accuracy. The datasets which are used to test the framework were Movie Lens and Jester. It is compared with nCo approaches in diversity and novelty of the recommendation list. Proposed approach outperforms nCo approaches. This approach is further refined by using a multi-objective immune algorithm [60].

Conclusions
The As for future research in EC-based recommendation, the authors suggest using the EC-based recommendation (especially genetic algorithm) for the complex recommendation scenarios, to optimize and improve some problems of these recommendations.