With the increasing popularity of location-based services, we have accumulated a lot of location data on the Web. In this paper, we are interested in answering two popular location-related queries in our daily life: 1) if we want to do something such as sightseeing or dining in a large city like Beijing, where should we go? 2) If we want to visit a place such as the Bird’s Nest in Beijing Olympic park, what can we do there? We develop a mobile recommendation system to answer these queries. In our system, we first model the users’ location and activity histories as a user-location-activity rating tensor1. Because each user has limited data, the resulting rating tensor is essentially very sparse. This makes our recommendation task difficult.
In order to address this data sparsity problem, we propose three algorithms2 based on collaborative filtering. The first algorithm merges all the users’ data together, and uses a collective matrix factorization model to provide general recommendation . The second algorithm treats each user differently and uses a collective tensor and matrix factorization model to provide personalized recommendation . The third algorithm is a new algorithm which further improves our previous two algorithms by using a ranking-based collective tensor and matrix factorization model. Instead of trying to predict the missing entry values as accurately as possible, it focuses on directly optimizing the ranking loss w.r.t. user preferences on the locations and activities. Therefore, it is more consistent with our ultimate goal of ranking locations/activities for recommendations. For these three algorithms, we also exploit some additional information, such as user-user similarities, location features, activity-activity correlations and user-location preferences, to help the CF tasks. We extensively evaluate our algorithms using a real-world GPS dataset collected by 119 users over 2.5 years. We show that all our three algorithms can consistently outperform the competing baselines, and our newly proposed third algorithm can also outperform our other two previous algorithms.