Keywords

1 Introduction

In recent years, location based social network (LBSN) services have gained a vast amount of attention and popularity among users. Foursquare [1], Yelp [2] and Facebook Places [3] are a few of the examples of LBSN services. LBSNs allow users to share their life experiences via mobile devices. “Check-in” is a process by which users post their arrival to a location. They also share their experiences by leaving comments or tips on that location. A Point of Interest (POI) location can be a “Restaurant”, “Travel spot”, “Park” and so on.

It was reported that there are over 30 million registered users in Foursquare. The number of check-ins posted by them by January 2013 was over 3 billion [4]. The “check-ins” contain abundant information about their daily activities as well as their preferences among the POIs. For example, people who often visit a gym must be interested in physical exercise. Also, people who visit the same place may share similar interests. Location histories and opinions of one user can be exploited to recommend an unvisited location to another user if they share a similar interest.

The task of POI recommendation is to provide personalized recommendation of POI locations to mobile users. The recommended locations should match their personal interests within a geospatial range [5]. Recently, POI recommendation in LBSNs has attracted much attention in both research and industry [6, 7]. However traditional POI recommendation systems consider all check-ins as a whole and generate recommendations [812]. They do not consider the users’ sequential movement information. Therefore, they cannot suggest where a user may go in the next few hours based on their current location or status.

In this work, we consider the task of personalized successive POI recommendation. Successive POI recommendation refers to the problem of recommending users the very next location based on his current location and current time. This task recommends those locations that a user may not visit frequently or before, but he/she may like to visit at successive timestamps [13]. For example, successive POI recommendation can suggest a user location to have fun after dinner, or a location for outdoor activities in a nearby park after his work.

The essential difference between traditional recommendation system and successive POI recommendation system is that the performance of successive recommendation tasks is largely influenced by users’ current visiting locations [14]. Also the shift from one location to another location depends on their categorical preferences and periodic patterns. One may go to a coffee shop to grab a cup of coffee first, then head to work or university. On a weekend people often go to shopping, then go to a restaurant for dinner or lunch.

Fig. 1.
figure 1

Sequential check-in data of three users

Figure 1 gives examples of sequential check-in data of three users. User 1 goes to dinner from the office. User 3 goes to a bar after office. If user 1 and user 3 share similar interests, user 1 also may become interested to go to a bar after office. Thus collaborative information shared by the users can be used to recommend them the possible next locations based on their current location.

In [15], we proposed a preference-aware, location-aware and time-aware POI recommendation system. The method used User-based Collaborative Filtering method for POI recommendation while incorporating four other factors: (1) Categorical preferences, (2) Temporal influence, (3) Geographical preferences and (4) Popularity of POIs. In this paper, we extend this work and propose a preference-aware successive POI recommendation system with incorporating spatial and temporal influence (PLTSRS) that offers a particular user a set of POI locations based on his current location, current time and his personal interests. The contribution of this paper can be summarized as follows:

  • We model personal preferences of users based on the category information of their location histories. We further analyse the temporal influence on their activities. We incorporate time dimension to model time-specific user preferences.

  • We mine sequential patterns from check-in location of each user. Then, we construct personalized Category-To-Category transition probability matrix using first order markov chain [16].

  • We analyze users’ spatial behavior and incorporate spatial influence to generate spatial-aware location recommendations.

  • Our recommendation model uses popularity factor of individual location by calculating time-specific popularity.

  • We develope a successive POI recommendation model PLTSRS (Preference-Aware, Location-Aware and Time-Aware Successive POI Recommendation System), which jointly considers user’s personalized sequential movement information, temporal categorical preferences, location preferences and popularity of POIs. To best of our knowledge, this is the first work that uses all the factors together to build a successive POI recommendation model.

  • We evaluate our proposed framework with one large scale LBSN dataset from foursquare [1].

2 Related Work

With the easy availability of users’ check-in data in LBSN, many studies have been conducted for POI recommendation. In this section, we briefly introduce two lines of research related to our task: (1) Traditional POI recommendation, (2) Successive POI recommendation.

Traditional POI recommendation systems have been extensively studied in the last several years. Two popular approaches have been used to generate recommendation model: Collaborative Filtering algorithm and Non-Negative Matrix Factorization algorithm.

In [6], the User-based CF approach considers a combination of social influence and spatial influence. Their experiments report that geographical influence has a significant impact on the accuracy of POI recommendation, whereas the social friend link contributes little. Their results also indicate that user-based CF works much better than Item-based CF. In [10], the authors exploit spatial influence as well as temporal influence for building a recommendation model. They incorporate time factors in the basic CF based model by computing similarity between two users by considering check-in information at a specific time t, rather than that of all times. In [11], the authors explore user preferences with social and geographical influence for POI recommendation. They model user preferences using predefined categorical information of location data.

In [8], the authors propose a geographical probabilistic factor analysis framework for recommendation that takes various other factors into consideration, viz. user-item preferences, POI popularity and geographical preferences of individual users. In [17], the authors propose a friendship based collaborative filtering (FCF) approach for POI recommendation.

In [15], the authors propose a User Based Collaborative Filtering method based framework which combines 4 factors: categorical preferences, temporal influence, spatial influence and popularity of a location. They incorporate time factors by generating time specific categorical preferences. Clustering method has been used to model location preference of each user. Popularity of each location has been calculated by combining both regional factor and temporal factor.

Lately a few successive POI recommendation works have been conducted. In [7], the authors propose a probabilistic model to integrate category transition probability and POI popularity to solve the problem. But they did not incorporate spatial influence here.

In [18], the authors propose a Factorized Personalized Markov Chain (FPMC) model for next-item recommendation. In [13], the authors propose FPMC-LR model by extending FPMC model with localized region constraint to solve successive POI recommendation task. They divide the geographical space into a grid. Locations of the grid cell the user is currently visiting and its surrounding 8 grid cells are used as candidate locations. This condition is called Localized Region Constraint. In [19], the authors propose a personalized metric embedding method (PRME) to model personalized check-in sequences for next new POI recommendation.

3 Preliminaries

3.1 Data Structure

In this paper, we use one real-world LBSN dataset from Foursquare. This dataset has three key data structure: (1) User, (2) POI location and (3) Check-in.

  1. (1)

    Each user u is represented by a unique id. Let \(U = \{u_1,u_2,u_3,\ldots u_n\}\) be the set of users.

  2. (2)

    Each POI location has a unique POI id and geographical position (latitude and longitude). Let \(L = \{l_1,l_2,l_3,\ldots ,l_m\}\) be the set of POI locations. Each location l is also associated with category information, which represents its functionality. In Foursquare, there are 8 primary categories (“Food”, “Arts and Crafts” etc.). Each primary category includes other sub-categories. In this paper, we only consider the sub-category information of a location for simplicity. The word category and sub-category will be used interchangeably throughout the paper.

  3. (3)

    Check-in” is a process by which a user u announces his physical arrival or presence at a venue in location based social network. Let \(Ch_{ij} = \{u_i, l_j, t\}\) be a check-in tuple, which represents that user \(u_i\) checked in POI \(l_j\) at time t.

3.2 Data Analysis

In this section, we present some data analysis results to see how different factors (Spatial, Temporal, Preference) influence a user to choose a location to visit.

Categorical Preference Constraints. Personal preference plays an important rule for a user to choose a POI. They prefer to visit a location only if the category of that location matches their interests. To have a better idea, we count the number of unique categories visited by users. We sort the users based on the count and plot the result (see Fig. 2a). We have a total of 252 categories. We see that the number of categories visited by most of the users is less than 60. Users generally do not visit locations of all categories, they visit a location only if they like the category. So a good POI recommendation system must recommend a location to a user that matches with his preferences.

Fig. 2.
figure 2

Data analysis: categorical preference and temporal influence

Temporal Influence. User activities are significantly influenced by time [10]. We count the check-in frequency of 8 primary categories at different hours of the day (see Fig. 2b). Result shows that category “Shop” is more active from 3 pm to until 12 am. On the other hand, category “Nightlife” starts after 10 pm and continues until 5 am.

We have done analysis to see how frequently people visit locations. We plot the Cumulative Distribution Function (CDF) of the time differences between successive check-in data (see Fig. 3a). Result shows that \(90\,\%\) of successive check-ins have a time difference less than 200 min.

Spatial Influence. Geographical position of a POI location plays an important role. Figure 3b shows the Cumulative Distribution Function (CDF) of geographical distance between two successive check-ins. Result shows that about \(90\,\%\) of successive check-ins have a geographical distance less than 20 km.

Fig. 3.
figure 3

Data analysis: spatial and temporal influence

3.3 Problem Formulation

Let U be the set of users and P be the set of locations. \(L_u\) denotes the check-in histories of user u. Given a user \(u (u \in U)\), his check-in histories \(L_u\), his currently visiting POI \(l_{now} (l_{now} \in L)\) and corresponding visiting timestamp \(t_{now}\), the task is to recommend a new POI \(l_{next} (l_{next} \notin L_u)\) to u to visit within time range \(t_{now}\) to \(t_{next}\). Here, (\(t_{next} - t_{now}\)\(\le \) \(T_{max}\). Here, \(T_{max}\) is a user defined time interval parameter.

3.4 User-Based Collaborative Filtering

User-based CF first finds similar users based on their interests/ratings on items using a similarity measure. Then the recommendation score for an item is computed by the weighted combination of historical ratings on the item from similar users [20].

Given a user \(u \in U\), the recommendation score that u will check-in a POI l that she has not visited yet is computed with the following equation,

$$\begin{aligned} R_u(l) = \frac{\sum \limits _{v \in U} w_{uv}}{|v|} \end{aligned}$$
(1)

Here \(v \in U\) are list of users who have visited the same location l and \(w_{uv}\) is the similarity score between u and v.

4 PLTSRS Framework

Our proposed framework is comprised of two major steps. (1) Offline Modeling and (2) Online Recommendation.

The Offline Modeling step has 3 components. (1) Learning User’s Categorical Transition Probabilities, (2) Time-specific Personal Preference Discovery and (3) Calculating Time-Specific Popularity of Locations.

In the first component, we learn each user’s categorical transition probability denoted by \(T_u(c_i,c_j)\). \(T_u(c_i,c_j)\) is calculated using first order markov chain that indicates the probability of user u to move from a location of category \(c_i\) to location with category \(c_j\). In the second component, we learn each user’s personal categorical preference on category c denoted as \(P_u(c)\). As preference depends on time, we learn time-specific categorical preference on category c at time segment \(t_s\) denoted as \(P^{(t_s)}_u(c)\). In the third component, we calculate the time-specific popularity of each POI location l denoted as \(\rho ^{(t_s)}(l)\).

The Online Recommendation has two components. (1) Spatial-Aware Candidate Selection and (2) Successive Location Recommendation. The first component selects a set of candidate locations based on u’s current location \(l_{now}\). This component improves the efficiency of the approach significantly as the number of candidate locations is much smaller than the total number of locations. Given a user u, his current location \(l_{now}\) and current time \(t_{now}\), the second component calculates the location ratings of all candidate locations based on the factors mentioned above. The top-K locations are recommended to user u.

4.1 Offiline Modeling

Categorical Transition Probability. In this step, for each user u, we first extract the successive location pairs from his check-in sequences. A location pair \((l_i,l_j)\) is a successive pair if the time difference between u’s visit at location \(l_i\) and location \(l_j\) is less than the time interval threshold \(T_{max}\). Then, we map the locations of the successive location pairs with corresponding category information to mine the successive category pairs \((c_x,c_y)\). Here, \(c_x\) is the category of \(l_i\) and \(c_y\) is the category of \(l_j\). We build a Category-To-Category transition probability matrix of user u denoted as \(T_u\). The transition matrix \(T_u \in \mathrm [0,1]^{|C| \times |C|}\), \(T_u(i,j)\) specifies the probability for a user u to move from location with category \(c_i\) to a location with category \(c_j\). Transition probability \(T_u(i,j)\) is calculated as:

$$\begin{aligned} T_u(i,j) = \frac{|\{(l^{(u)}_1,l^{(u)}_2): l^{(u)}_1 \in C_i \cap l^{(u)}_2 \in C_j \}|}{|\{(l^{(u)}_1,l^{(u)}_2: l^{(u)}_1 \in C_i\}|} \end{aligned}$$
(2)

Figure 4a shows the transition matrices of individual users. Entries with “?” refers to missing values as there is no data to estimate probabilities. A single user generally does not visit all categories, so there may be a lot of missing values in his transition matrix. To solve this problem, we use low-rank non-negative matrix factorization [21] algorithm to factorize each transition probability matrix \(T_u\) into two low rank matrices and , with \(k \ll |C|\) being the number of latent factors. After obtaining \(W_u\) and \(H_u\), the probability matrix \(T_u\) is approximated as \(\bar{T}_u\), \(\bar{T}_u(i,j)\) being the approximated probability of transition from category \(c_i\) to category \(c_j\) (see Fig. 4b).

Fig. 4.
figure 4

Categorical transition probability

Personal Preference Discovery. In this step, we model each individual user’s categorical preferences from his/her check-in history. Categorical preference of a user u denoted as \(P_u(c)\) represents u’s affinity to visit a location with category c. \(P_u(c)\) is generated using following equation [15].

$$\begin{aligned} P_u(c) = CF(c,L_u) \times ILF(c,L) \end{aligned}$$
(3)

Here \(CF(c,L_u)\) is the measure of how many times user u has visited the locations with a category c. Intuitively, a user would visit more locations belonging to a category if he likes it. Here \(L_u\) is the location set visited by u. ILF handles the Rare-Item problem [22]. Some locations are not visited by a user very often. For example, the number of visits to a restaurant is generally more than that of a museum. If a user visits location of a category that is rarely visited by other users, it means that the user could like this category more prominently [11].

CF is calculated using Eq. (4) and ILF is calculated using Eq. (5).

$$\begin{aligned} CF(c,L_u) = \frac{|\{u.l_i:l_i \in c\}|}{|L_u|} \end{aligned}$$
(4)
$$\begin{aligned} ILF(c,L) = \log \frac{|U|}{|\{u_j.l \in L:l_j.c \in u_j.C\}|} \end{aligned}$$
(5)

Here, \(|\{u.l_i:l_i \in c\}|\) is user u’s number of visits in category c, \(|L_u|\) is the total number of user’s visit in all locations. |U| is the number of total users in the system. \(|\{u_j.l \in L:l_j.c \in u_j.C\}|\) is the number of users who visit category c among all users in U. User similarity between two users is calculated based on their categorical preferences. We use Cosine Similarity [23] to find the similarity between two users u and v denoted as \(w_{uv}\).

Temporal Categorical Preference. As categorical preference may vary over time, we intend to find time-specific categorical preferences of each user. We divide the whole day into equal length of time segment (\(t_s\)). In this paper, we use time slot length = 1 h. So the whole day is divided into 24 time segments. Given a user u, time segment \(t_s\), category c, temporal preference of user u on category c, denoted as \(P^{(t_s)}_u(c)\) is calculated using following equation [15].

$$\begin{aligned} P^{(t_s)}_u(c) = CF^{(t_s)}(c,L_u^{(t_s)}) \times ILF(c,L^{(t_s)}) \end{aligned}$$
(6)

Here \(CF^{(t_s)}(c,L_u^{(t_s)})\) is the Category Frequency of user u and category c at time segment \(t_s\). \(L_u^{(t_s)}\) is the location set visited by u at \(t_s\). \(ILF(c,L^{(t_s)})\) is the Inverse Location Frequency for category c. \(L^{(t_s)}\) is the list of all locations that has been visited at \(t_s\). \(CF^{(t_s)}(c,L_u^{(t_s)})\) and \(ILF(c,L^{(t_s)})\) are calculated using following equations.

$$\begin{aligned} CF^{(t_s)}(c,L_u^{(t_s)}) = \frac{|\{u.l^{(t_s)}_i:l^{(t_s)}_i \in c\}|}{|L_u^{(t_s)}|} \end{aligned}$$
(7)
$$\begin{aligned} ILF(c,L^{(t_s)})) = \log \frac{|U^{(t_s)}|}{|\{u_j.l \in L:l_j.c \in u_j.C\}|} \end{aligned}$$
(8)

Here, \({|\{u.l^{(t_s)}_i:l^{(t_s)}_i \in c\}|}\) is the number of visits by user u at category c at time segment \(t_s\). \({|L_u^{(t_s)}|}\) is total visits by user u at time \(t_s\). \({|U^{(t_s)}|}\) is the total number of unique users in the system that has checked-in at time \(t_s\). \({|\{u_j.l \in L:l_j.c \in u_j.C\}|}\) is the total number of unique users that visit at category c at time \(t_s\).

Temporal Popularity of a Location. Popularity of a location plays a significant role to attract user. People tend to visit a more popular POI for better satisfaction. However, popularity also varies over time. For example, a bar is more popular at night, whereas people tend to visit a museum during morning or afternoon. For better recommendation, we intend to calculate popularity score of each POI on each time segment. Popularity of a POI l at time \(t_s\) is calculated using following equation [15].

$$\begin{aligned} \rho ^{(ts)}(l) = \frac{1}{2} * \Bigg \{\frac{|U^{(t_s)}(l)|}{|U(l)|} + \frac{|Chk^{(t_s)}(l)|}{Chk(l)}\Bigg \} \end{aligned}$$
(9)

Here \({|U^{(t_s)}(l)|}\) is the number of users that visited l at time \(t_s\), |U(l)| is the total number of users visited l. \({|Chk^{(t_s)}(l)|}\) is the number of check-ins at l at time \(t_s\) and Chk(l) is total number of check-ins at location l.

4.2 Online Recommendation

Spatial-Aware Candidate Selection. Geographical position of a POI plays a significant role to attract users [6, 10]. People tend to visit nearby places. The propensity of a user to choose a POI decreases as the distance between the user and the POI increases [8]. Consider the example in Fig. 5a. Black points represent all the POI locations of NY City. Red points are the check-in distribution of a single user. It is obvious that, this person does not move all over the city, rather his movement data is limited to some geographical regions. We have borrowed this example from [15]. Also Fig. 3b indicates that \(90\,\%\) of successive check-ins have distance less than 20 km.

To incorporate spatial influence, we divide the whole problem space into square grids whose side length is d km. Locations of the grid cell the user is currently visiting and its surrounding 8 adjacent grid cells are used as the candidate grid cells. The locations of the candidate grid cells are used as the candidate locations for recommendation (see Fig. 5b). Distance between two points are calculated using Haversine Formula [24].

Fig. 5.
figure 5

Incorporating spatial influence (Color Figure online)

Successive Location Recommendation. Given a user u, his current location \(l_{now}\) with category \(c_{now}\), we first generate spatial-aware candidate location list \(S^{(u)}(L)\). Let the current time be \(t_{now}\). In this section, we present the method to rank the candidate locations. \(T_{max}\) is a user-defined time interval parameter. Top-K locations are recommended to user u that he may want to visit within time range \(t_{now}\) to \(t_{next}\), where \((t_{next} - t_{now}) \le T_{max}\).

Let, the recommended location be \(l_{next}\). Category of \(l_{next}\) is \(c_{next}\). In Offline method, we have calculated time-specific categorical preference of user u at category c denoted as \(P_u^{(t_s)}(c)\). Given the time interval \(T_{max}\), we find the preference of u for \(c_{next}\) from time range \(t_{now}\) to \(t_{next}\) defined as \(P_u^{(t_{now},t_{next})}(c_{next})\).

$$\begin{aligned} P_u^{(t_{now},t_{next})}(c_{next}) = max\{P_u^{(t_s)}(c_{next})\} \end{aligned}$$
(10)

where \(t_s \ge t_{now}\) and \(t_s \le t_{next}\). For example, let \(t_{now} = 10\) am, \(T_{max} = 6\) h. so, \(t_{next} = 4\) pm. So u’s preference for \(c_{next}\) from time range 10 am to 4 pm is calculated as \(max\{P_u^{(t_{10})}(c_{next}), P_u^{(t_{11})}(c_{next}),...P_u^{(t_{16})}(c_{next})\}\)

We find the popularity of location \(l_{next}\) at time range \(t_{now}\) to \(t_{next}\) denoted as \(\rho ^{(t_{now},t_{next})}(l_{next})\)

$$\begin{aligned} \rho ^{(t_{now},t_{next}})(l_{next}) = max\{\rho ^{(t_s)}(l_{next})\} \end{aligned}$$
(11)

where \(t_s \ge t_{now}\) and \(t_s \le t_{next}\).

The rating of location l for user u, denoted as \(R_{u}^{t_{next}}(l_{next})\) is calculated as:

$$\begin{aligned} R_{u}^{t_{next}}(l_{next}) = \frac{\sum \limits _{v \in U} w_{uv}}{|v|} * P_u^{(t_{now},t_{next})}(c_{next}) * \bar{T_u}(c_{now},c_{next}) * \rho ^{(t_{now},t_{next})}(l_{next}) \end{aligned}$$
(12)

Here, \(v \in U\) are the list of users who also visited the same location \(l_{next}\) at specified time range \(t_{now}\) to \(t_{next}\).

5 Experiments

5.1 Dataset

We use the real-world check-in dataset from Foursquare [1]. The dataset includes 227,428 check-in data from New York City, USA. The dataset has data from 12 April 2012 to 16 February 2013 (10 months). We obtain this dataset from [25]. Each check-in \(Ch_{ij}\) contains user (\(u_i\)), location id (\(l_j\)) and time (t). Each location id \(l_j\) is associated with geographical position (lat, lon) and category c. It contains check-in data of 1,083 users and 38, 383 locations. To get more effective results, we removed POIs that have lower than 10 check-ins. After preprocessing, the dataset contains 4,597 locations and 164,307 check-ins.

For experiment, we use the data of first 8 months as training set. The training data is used to learn the users’ temporal categorical preferences and categorical transition probability and popularity of POIs. The rest of the data is used as a test set.

Evaluation Method. To evaluate our proposed method, we use two well-established metrics: precision and recall [26]. Precision and recall are calculated using the following equations.

$$\begin{aligned} pre@N = \frac{\textit{number of relevant recommendations}}{\textit{N}} \end{aligned}$$
(13)
$$\begin{aligned} re@N = \frac{\textit{number of relevant recommendations}}{\textit{total number of ground truths}} \end{aligned}$$
(14)

Here, N is the number of recommendation results. Ground truth refers to the set of locations where user has truly visited within the specified time range. So, Pre@N measures how many POIs in the top-N recommended POIs correspond to the ground truth POIs. re@N measures how many POIs in the ground truths has returned as top-N recommendation.

Fig. 6.
figure 6

Experimental results

5.2 Experimental Results

We have used \(d = 10\) km for grid cell size in all our experiments. Figure 6a shows the precision and recall value of our proposed method. We show the results for \(N = 10\), 15 and 20. In this result we use \(T_{max} = 6\) h.

We compare our method with the four following baseline approaches,

  1. (1)

    Popularity-Based Recommendation Method (Pop-L): This is a spatial-aware popularity based recommendation method. Based on the current location, it first generates spatial aware candidate locations. Candidate locations are ranked based on their popularity.

  2. (2)

    Location-Based Collaborative Filtering (UCF): This method applies Collaborative Filtering method directly over locations. This baseline utilizes the users location histories with a user-location matrix. User similarity is calculated using the location vector of users. Finally the locations are ranked using CF method. We consider the current location as a query location and generates spatial-aware candidate locations first to adapt this model for successive recommendation.

  3. (3)

    Preference-Based Collaborative Filtering (PCF): This method is the baseline Preference-Aware approach. This method first generates users’ categorical preferences from their location histories. Then it generates user-preference matrix. Similarity between two users is calculated using their preference vector. Finally CF method is used to rank the candidate locations.

  4. (4)

    Non-negative Matrix Factorization (NMF): This is the base-line low rank non-negative matrix facorization based recommendation method. This method first generates user-location matrix using their location histories. User-location matrix is factorized into two low rank matrices W and H.

Note that all methods use the current location as query location. We find spatial aware candidate locations first to adapt them for successive location recommendation. Figure 6c and Fig. 6d show the precision and recall values respectively. UCF works better than Pop-L. PCF approach works better than UCF as PCF can handle the data sparsity problem. NMF approach works better than PCF, but our proposed method PLTSRS outperforms all other baseline approaches.

We change the value of \(T_{max}\) to see how the value of \(T_{max}\) affects the results. Figure 6b shows the precision and recall of our algorithm for \(T_{max} = 6\) h, 9 h and 12 h. \(T_{max} = 6\) h gives us the best result.

6 Conclusion

In this paper, we present a novel approach for successive POI recommendation task. This approach recommends to a user a set of locations where he might be interested to visit next based on his current location and time. This method considers a combination of users’ time-specific categorical preferences, categorical transition patterns, spatial influences and popularity of POIs. To the best of our knowledge, this is the first work that combines all the factors (temporal, user-preferences, categorical transition patterns, spatial and popularity) for successive POI recommendation task. Experimental results show that our method outperforms other baseline approaches. In future work, we plan to incorporate social relationships to strengthen our recommendation model.