## 2 Background and Related Work
### Time-Aware Recommender Systems
#### 2.2.1 Evolution of User Preferences
Time effects are included in some terms already defined in SVD++ (user biases, item biases and user factors), but are handled as time-dependent variables. In [47], a Bayesian probabilistic tensor factorization model is proposed, where a feature vector including the time variable is associated with each time step. Although SVD++ can be used with implicit ratings, time-SVD++ requires explicit ratings. Matrix factorization is also used in a proposal for points of interest (POI) recommendations that consider time windows [48]. It incorporates recency issues and comparative choices for learning user preferences since it is assumed that users give ratings to POIs by comparison to other POIs recently visited by them. The POIs in each time window are sorted according to their ratings in a partial order and used to induce a choice model including latent factors, which are learned by means of a stochastic gradient descent algorithm. This is a model that requires timestamped ratings. A latent factor model based on matrix factorization is proposed in [49]. The proposal is an improvement on a previous method by the same authors that captures the explicit influence of the social relationships on each one of the aspects of preference. The new method incorporates the temporal dynamics of preference aspects by means of time-dependent functions. The results of the testing on three datasets about movies showed a significant increase in performance over the prior method. A similar work is presented in [50], where trust relationships between users and time information are included in an SVD-based method. The experiments were conducted on a dataset containing the ratings and reviews of movies, as well as the ratings on the reviews from which trust relationships are extracted. Time dynamics are incorporated into user and item bias but the whole time period is split into three stages (the fluctuating, approaching and stable stage) in order to adapt the rating evolution to the patterns found in a preliminary study. These methods also use timestamped explicit ratings. Moreover, the number of studies analyzing the evolving preferences over time in music recommender systems is low. In this regard, in [2], a recency-based model for recommending songs is proposed to capture the changes in user preferences over time when explicit ratings are not available. In the category of temporal factor models, a proposal is presented in [51], where an item taxonomy is used to modify the basic bias approach. The time information linked to the ratings given to songs is used to identify sessions that are used to model the temporal dynamics of users and items. User behavior regarding the ratings assigned to songs is derived from the position of the songs during the session. The item popularity drift over time is modeled using a bias model. Apart from using explicit ratings, the main drawback of this method is the need for classifying items in a taxonomy. [PERSON] et al. [52] proposed a music recommendation method where the recency effects on user interest are considered. The authors introduce the concept of an interest forgetting curve (IFC) to model such time effects. They use the transition probabilities between songs in past playlists listened to by users, in order to recommend the top-k most probable songs to play next during a given time within the user's current playlist. Two ways of computing these probabilities are proposed: sequence-based transition probabilities and IFC-based transition probabilities. In the latter, a modification of the former is introduced to consider the decreasing interest over time. They suggest an exponential decreasing similar to our approach, but it is not used in the context of collaborative filtering. Another difference is the fact that recommendations are made when the user is listening to a playlist. In [53], a CF method is proposed, but instead of using explicit ratings, the similarity between users is computed from the tags they assign to items.