## 2 Literature Review  
### Recommendation Techniques  
Recommendation systems, first proposed by [PERSON] [21], have become popular solutions to provide users with predictions and appropriate recommendations by utilizing diverse sources of information. A recommendation system was originally defined as a system that generates personalized recommendation as output to guide the user in an individual way to interesting or useful services in a large space of potential options [21; 22; 23; 24; 25; 26]. In general, a recommendation system has:  
1. feature input the information that describes the user's preferences/item features in a specific data structure;
2. a recommendation engine that combines user's characteristic analysis and recommendation models building to generate suggestions;
3. output the information that presents in various forms including rating prediction and Top-\(N\) recommendations.  
In basic CF methods, the target user receives recommended items preferred by similar users, or items which are similar to preferred items by the user. The former is called user-based CF (UCF), while the latter is called item-based CF (ICF). Both of them are memory-based CF. Memory-based CF [27] is a common approach extensively applied in e-commerce platforms such as Amazon, and Taobao. Memory-based approaches identify the similarity between two users by comparing their ratings on a set of items [28], which are simple and intuitive at the conceptual level. Nevertheless, they suffer from two drawbacks: sparsity and scalability. The data sparsity problem [29] in the user-item matrix has greatly limited the applicability of this kind of CF since it is difficult to make rating predictions using sparse training data. Some approaches have been proposed to address this problem, such as default voting methods [30], imputation-boosted techniques [31], and clustering-based approaches [32]. In general, unknown ratings are filled with constant values without actual variances considered. Moreover, the computational complexity of these methods grows linearly with the number of users and items.  
Model-based CF finds the relations between various items by analyzing the user-item matrix and then obtains the list of recommendations based on the relations. In light of the scalability issues, a prediction model is produced in model-based CF [33] mostly by machine learning techniques to predict the unknown data [34]. Commonly-used model-building methods include neural networks [35], matrix factorization [36], and latent semantic models [37]. User-to-user correlations are represented with the relations of their ratings without regarding specific features and attributes of items. It is not valid to analyze the users' interests based on insufficient information. Besides, these approaches are time-consuming to build and update to some extent [38]. [PERSON] et al. [39] proposed a new measure of user-preference dynamics and a model of user-item interactions over time by applying a tensor that takes time as a dimension.  
The mainstream recommendation techniques are listed and compared in Table 1. It can be seen from the table that these methods have diverse performances in aspects of cold-start [40], data sparsity, scalability, accuracy and interpretability.  
The basic idea of recommendation techniques is to mine the similarity of data. Existing research efforts are mainly based on the following considerations:  
1. content filtering: recommending services similar to those the user used to like;
2. social filtering: recommending services similar to those the user's friends or other users who have similar preferences in the past;
3. collaborative filtering: finding out the similarity of items, or the similarity of users by mining their historical behaviors, further to generate a recommendation.