## 2 Related Work  
Collaborative Filtering (CF) is the most commonly used and studied technology [20; 41]. CF allows users to give ratings about a set of elements (e.g., videos, songs, films, etc. in a CF-based website) in such a way that when enough information is stored on the system, we can make recommendations to each user based on information provided by other users we consider to have the most in common with them [42]. The most commonly used algorithm for CF is the k Nearest Neighbors (kNN) [41; 43; 44], which offers several mechanisms to identify similar users and pool recommendations. The other main approach for CF is matrix factorization (MF) [42; 45], which regards recommendation as a dimensionality reduction problem. However, these methods are far from researchers' satisfaction with several major challenges:  
* Resulting from the high level of sparsity [46; 47] in recommender system databases, user similarity measures often encounter processing and cold-start problems from inadequate mutual ratings for a comparison of users and items [48; 49; 50]. * The CF-based recommendation lacks diversity, because it only recommends popular items from similar users but cannot recommend unique tastes of a user. * When numbers of existing users and items grow tremendously, traditional CF algorithms will suffer serious scalability problems, with computational resources going beyond practical or acceptable levels [45]. * Most importantly, they are not qualified to capture the temporal context and sequential patterns of user behavior (e.g., the evolving user long-term preference and short-term intent) [51]. In other words, when given the data which does not have ratings involved but pure user-item interaction (or choice) logs, CF-based methods may not work. To solve the problem of dealing with the sequential patterns of user behavior and temporal aspects of recommendations, there are a variety of works that focus on session-based recommendation which features sequence modeling. In academia, sequential recommendation problems are typically regarded as the task of predicting the next user action. Experimental evaluations are usually based on larger, time-ordered logs of user actions (e.g., the users' item viewing and purchasing activities on an e-commerce shop), which contains both the implicit and explicit feedback from users and provides the recommender system the capability of capturing the sequential patterns of users. [PERSON] et al. [25] framed CF as a sequence prediction problem and used a simple Markov model for web-page recommendation. [PERSON] et al. [26] proposed a similar approach, using sequential pattern mining. Both showed the superiority of methods based on sequence over nearest-neighbor approaches. [PERSON] et al. [27] presented a modified User-based CF method, called Session-Based CF (SSCF), that uses information from similar sessions to capture sequence and repetitiveness in the listening process. Most recently, researchers have successfully adopted deep learning techniques in recommender systems. In particular, RNN, which is capable of learning models from sequentially ordered data, is a \"natural choice\" for sequence modeling [4]. [PERSON] et al. [13] first introduced the idea of using RNN for session-based recommendation to deal with sparsity problems and proposed the GRU4 REC architecture. [PERSON] et al. [21] improved the model performance proposed in [13] by proposing the data augmentation and the method to account for shifts in the input data distribution. [PERSON] et al. [22] also improved the model proposed in [13] by proposing a model combining the kNN approach with GRU4 REC. [PERSON] et al. [23] improved the RNNs [52] and the MF model [53] by combining them in a multi-task learning framework, where they performed joint optimization with shared model parameters enforcing the two parts to regularize each other. [PERSON] et al. [24] employed RNN to extract the item and user profiles from user-defined items' tags and their tagging behaviors.