Workshop "From Objects to Agents" (WOA 2019) Multi-Agent Architecture for Point of Interest Detection and Recommendation Claudia Cavallaro, Gabriella Verga, Emiliano Tramontana, Orazio Muscato Department of Mathematics and Computer Science University of Catania, Italy E-mail: {claudia.cavallaro@unict.it, gabriella.verga@unict.it, tramontana@dmi.unict.it, muscato@dmi.unict.it} Abstract—Geographical positions are widely employed in many information about GPS locations for the most visited POIs, and applications, such as recommendation systems. The wide-spread their most frequent time slots. use of mobile devices and location-based Internet services (e.g., POIs are taken from an automatic analysis of a real dataset Google Maps) gives the opportunity to collect user locations. Taking advantage of a multi-agent system, this work proposes an offered by the Geolife experiment [33]. The points found by approach providing users with personalised recommendations of our analysis were verified by matching the results with Google places of interests, such as libraries, museum, restaurants, etc. maps data. It was confirmed that they correspond to real POIs, The approach offers a better experience by giving additional i.e. parks, restaurants, etc., hence validating our approach. dynamic data (e.g. popularity, as number of users) to a list GeoLife GPS trajectories were collected in the framework of of Points Of Interest (POIs), and by exploring their temporal relations. Indeed, for POIs, which we determine using a DBSCAN (Microsoft Research Asia) Geolife project by 182 users in a algorithm, we take into account the time slots when the users period of over three years (from April 2007 to August 2012). visited them, to offer a more advanced service. Finally, the A GPS trajectory in such a dataset is represented by a sequence approach was designed to preserve the privacy of users, i.e. it of time-stamped points, each of which contains the information does not reveal the position of users. of latitude, longitude and altitude [27], [32]–[34]. Index Terms—GPS data, Points Of Interest, Stay Points, Data Thanks to the collaborating agents in our architecture, the analysis, DBSCAN, Privacy proposed approach provides users with: (i) a list of POIs, and for each point, (ii) further information based on real time data I. I NTRODUCTION gathered from other users, which helps her choose the next destination with greater awareness. A key objective is to have Given the extraordinary use of mobile devices and various this information as close as possible to real time data, and technologies tracing one’s geographical position, it becomes rank places according to feedback from other users, the most increasingly easier to acquire information relating to users’ frequent time slots and the time spent visiting a place by other GPS in real time. This availability has triggered several studies users. based on user positioning, such as the analysis of the flows The remainder of the paper is as follows. Next section of people in the cities [27], or the prediction of people discusses the related work. Section III describes the proposed movements [11]. This has also led to the improvement of multi-agent system. Section IV details the methodology used services that identify the points of interest for a city to offer to find POIs and gives the corresponding results. Section V benefits to users who want to reach a place but they do draws our conclusions. not have enough knowledge for an immediate choice. Points of Interest, commonly abbreviated POIs, are a well-known II. R ELATED W ORK concept in literature [2], [15], [31]. A POI is defined as an This study lies at an intersection of multiple disciplines, object associated with a latitude and a longitude which at least including multi-agent systems, POI recommendation systems, one person would reasonably be expected to have an interest or collaborative filtering and privacy preserving systems. an utility. POI recommendation is one of the services available, Multi-agent: several studies have proposed the use of suggesting places for users to visit [17]. multi-agent systems (MAS) [8] to a wide range of different This paper proposes an approach for POI recommendation domains. In 1998, a study described a supporting system for using collaborating agents and a centralised server. The server suggesting possible purchases during shopping based on the dynamically acquires information coming from agents, which GPS position with the use of agents [10]. In general, there are held on the users’ mobile device, creating new suggestions are two main approaches to MAS developments: centralised about the next place to visit. Common knowledge is important policies (CMAS) and decentralised policies (DMAS) [29]. because, by definition, each agent can independently infer • A centralised approach consists of taking all of the information and share it with the group. In our context, an decisions in one place. In a typical CMAS, a central agent is an application that improves user navigation in a city. server collects all the relevant data that come from An agent communicates with a centralised server to learn new the different actors (that is, agents) and identifies the information about POIs. Moreover, an agent gives to the server decisions for each agent according to the global system 98 Workshop "From Objects to Agents" (WOA 2019) state. The centralised view of the system can be described by a multi-agent Markov decision process model, a good example is presented in [3]. • A decentralised approach consists of making each entity responsible for its own decision. In a typical DMAS, an agent cannot see other agents local states and local actions, and has to decide the next local action on its own. Thus, each agent has only a partial view of the systems global state, and different agents have different partial views. A good example is in [30] whose authors propose a decentralised multi-agent decision process framework that provides the basis for a decision-theoretic study of decentralised policies. The decentralized architecture has advantages in synchroni- sation, reusability, scalability, and modularity [12], [14]. How- ever, the complexity of decentralised systems is greater than that of centralised ones. Although decentralisation shows ob- Fig. 1. Schematic of Centralised Server. Each device identifies an agent. vious advantages, decentralisation also has its own drawbacks, including that agents cannot predict the group behavior based only on the available local information, possible instability, They are widely used and very useful but they often fail to and sub-optimal decisions. protect users privacy, hence they have some disadvantages. In Due to the importance of total knowledge, our choice fell [5], [6] the privacy breaches are tackled with cryptographic into the first category. Moreover, the centralised server is able systems, which can reduce the risk for the user. In other to filter information offering advices to users without sending research works, e.g. in [22], each user first disguises her private their sensitive data; this preserves the user’s privacy. data, and then sends it to the data collector. Therefore, a POI: Researchers have ventured into several studies con- Randomised Perturbation (RP) technique is used to disguise cerning the analysis of user trajectories. This interest is driven private data [1]. Moreover, anonymisation techniques can be by the possibilities it offers for marketing and the many used, however these introduce some attack problem, making services that can be offered to users. Since 2005 researchers datasets not very useful [23], [26]. have faced the problem of analysing trajectories according to Unlike other approaches, our proposal includes a solution space-time. The first studies on the analysis of trajectories offer to identify POIs through the use of the DBSCAN (Density- an overview on how it is possible to analyse the trajectories Based Spatial Clustering of Applications with Noise) algo- starting from a set of POIs [15]. Over the years, these rithm. Then, collaboration filtering is used with the dynamic analyses have fed other different studies on trajectories, such as calculation of ratings based on user experiences. For such a calculating the probability of moving from one POI to another, rating we use spatio-temporal variables offering a dynamic and using, for example, the Markov chains [11], [18] and then realistic outcomes. This is done by safeguarding the privacy of creating methods that predict the next movements of individual users because the centralised server only tracks the movements users from the analysis of their POIs. near the POIs. Furthermore, it is important to offer a service Collaborative Filtering: Collaborative filtering (CF) tech- that makes the user and her privacy more secure. To do this we niques are widely adopted for recommendation systems and have users sharing their position only if they are close enough many CF recommendation methods have been proposed, as to a POI and this information is manipulated to ensure user e.g. in [19]. The CF approach is one of the approaches safety. E.g. the position of a user within the radius of a POI for creating recommendation systems. It creates suggestions will be saved in our central server with an error rate of about using a similarity metric among users. The assumption is 300 meters in order to preserve the user’s privacy. This does that similar users probably have similar tastes. The concept not corrupt our system data and better protects users. of CF was introduced in 1992 by the Xerox research staff within the Tapestry project, a system that allowed users III. P ROPOSED M ULTI -AGENT S YSTEM to trace documents based on comments left by other users [13]. Later, several ratings-based automated recommendation In our software architecture, a centralised server gathers and systems were developed, e.g. the GroupLens research system analyses the data coming from several agents, with the aim to [24] provides a pseudonymous CF solution for Usenet news offer users suggestions and some real time data on POIs to and movies. Other technologies have also been applied to visit. Moreover, each user (with reference to an application) recommendation systems as Bayesian networks [4], [20], [25] has been modeled as an independent agent that communicates and clustering [7], [28]. with the centralised server. Therefore, POIs recommendation Privacy Preserving: CF techniques have been very success- is based on a multi-agent system performing the following ful in e-commerce and in direct recommendation applications. steps (see Figure 1). 99 Workshop "From Objects to Agents" (WOA 2019) Step 1: the server sends to agents the list of known POIs for a city. Each POI has been previously determined by the DBSCAN algorithm [9] discussed in section IV. Each POI has the following information: • the most visited time slots; • the number of agents present on the site (POI) in real time; • a set of site feedbacks, created by a sentiment analysis algorithm that analyses the comments released by users; • a rating estimated from previous information that recommends (or dismiss) the POI to the user. Step 2: thanks to the rating, the agent chooses a place of Fig. 2. Schematic of POI recommendation. Each device sends its own interest which the user can visit. As soon as the GPS information to a centralised server which processes them and suggests a new POI for agents. Using the experiences of users based on time, duration, their coordinates are in a range of less than one kilometer personal feedback and the next goal, the rating is calculated that suggests a from the coordinates of a POI, then the position will next goal to the leading agent. be sent to the centralised server, which can determine the number of users present. The GPS coordinates are only sent when in controlled areas in order to preserve user privacy. Step 3: once the visit is over, the user can use the agent to issue comments on the place visited. This information will be sent to the server, and there it will be analysed using sentiment analysis algorithms [16], which in turn lets the server determine a score that identifies whether the POI was satisfactory for the user. Step 4: the agent will again receive the list of POIs by adding information for a specific POI related to the site already visited based on the experiences of previous users. Such a cooperation can generate a benefit for groups of people who share the same interests (tourists, students, etc.). Thanks to the exchange of information between agents and servers, it is possible to define the rules for our recommenda- tion system based on POIs (see Figure 2). Fig. 3. User is presented with a list of POIs and associated dynamic data. In short, the approach presented in this article finds POIs (starting from a set of user trajectories) and uses information exchange with a centralised server to improve city services •Beihang University with coordinates: and user knowledge by creating a content filtering software 39.98011363182701, 116.34218061609567. that creates customised recommendations specific to the user Another nearby POI has been associated with a parking area to help him in his choices. (however, it is not listed in Figure 3): Figure 3 shows a list of POIs nearby to the user. Then, for • Satellite Building Parking Lot with coordinates: each POI the user can access the ratings gathered from to other 39.97673497237701, 116.33137904408086. people comments, as well as give her comments. As mentioned in Step 1, POIs are found by the implemented algorithm For validating the results of our algorithm finding POIs, discussed in the next section. We can see, in Figure 3, four each discovered site was checked against Google Maps. nearby points labeled as POIs: Hence, the above list consists of actual sites, being POIs according to Google Maps, which are within a radius of 100 • Chaofan Weiye Kejiao Bookstore with coordinates: meters from the POIs found by our algorithm. 39.98405510061326, 116.3204636235443; • Haidian Stadium with coordinates: 39.987213527969644, IV. M ETHODOLOGY FOR D ETERMINING POI S 116.30248430595732; We have acquired the data from the database Geolife of • Beijing Rural Commercial Bank Zhongguancun Microsoft Research Asia, that contains the routes of 182 users Branchcon with coordinates: 39.980016801082485, and it reports, at regular intervals of time, each point in GPS 116.30856309688643; coordinates: longitude, latitude, altitude with corresponding 100 Workshop "From Objects to Agents" (WOA 2019) TABLE I I NFORMATION ABOUT DIFFERENT TIME SLOTS Time Total number of Slot GPS Points Trajectories Users 1 3978234 5878 156 2 3729429 4302 150 3 4976744 6613 166 4 3107232 4702 168 5 889076 1505 114 6 1341196 2537 129 Fig. 4. Plot of clean trajectories in the selected Beijing metropolitan area. Axis: X=longitude, Y=latitude. date and time. This GPS trajectory dataset contains about 18 thousand trajectories with a total distance of 1,292,951 kilometers and a total duration of 50,176 hours. Most of the trajectories were logged in a dense representation, e.g. every 1 ∼ 5 seconds or every 5 ∼ 10 meters per point. The distance d(pi , pj ) between point pi and point pj , when their coordinates are given by latitude (lt) and longitude (lg), Fig. 5. Map with the trajectories of Slot 3. is defined as follows by the Haversine formula. Such a formula provides the distance between two points laying on a sphere surface given their latitude and longitude. shown in Table I. For time Slot 3’s trajectory data we have drawn the GPS data on the map to get a rough idea of the d(pi , pj ) = users’ activity in this period of time in this area (see Figure 5). r For every slot of time, after grouping trajectories by users, lti − ltj lgi − lgj the second step of our work was the StayPoints (SPs) detection 2R arcsin sin2 + cos lti cos ltj sin2 (1) 2 2 [21]. When we find a region in which a user has spent a con- The first step in our analysis was the data cleaning of the siderable time on its surroundings, the centroid (the mean of trajectories, based on the speed of their GPS points, with the coordinates of the points belong to it) of this cluster represents goal to remove inconsistent data. Considering a trajectory, a an SP. The algorithm that we implemented for the SP detection sequence of GPS points ordered by the time of recording, needs as input a TimeThreshold and a DistanceThreshold. If we computed the velocity of a point as the ratio of the an individual stays over 20 minutes (TimeThreshold) within a distance from it and its consecutive (applying the Haversine distance of 200 meters (DistanceThreshold), a SP is detected. formula, Equation 1) and the difference of time recording The execution time of the SPs detection algorithm (see 1 for them. If this velocity exceeds 100 m/s, the second point was its psuedo-code) for 100 trajectories is about 16 minutes. deleted. Another case is when the velocity appeared in the We obtained many SPs for every time slot, as shown in form 0/0, this noise was caused by the GPS device that did Table II. For the Slot 3’s trajectories the plot of their SPs is not run properly. For our research we have chosen the range of in Figure 6. Then, we focused on POIs that cluster together longitude and latitude of [116.1, 39.7]×[116.7, 40.13] (Beijing SPs of different users (at least 10), and checked if, in different metropolitan area of 51 kilometers per 48 kilometers, see time slots, the users that previously had a common POI move Figure 4). together to another one. We applied DBSCAN to the SPs By plotting the trajectories we can see a second problem: obtained as it works well with large geographical dataset and some paths appear broken (not continuous) probably due to the likewise can be adapted for any distance functions. DBSCAN presence of buildings or tunnels that disturb the GPS signal (in (Density-Based Spatial Clustering of Applications with Noise) some areas the recording is lost). The filtered data, formed by is a popular unsupervised learning method, proposed in 1996 18,021,911 GPS points, were then grouped into 6 time slots [9], has been used in model building and machine learning of 4 hours each: Slot1 [00:00:00, 03:59:59], Slot2 [04:00:00, algorithms. 07:59:59] and so on, in order to analyse the traffic in Beijing The advantages of DBSCAN are as follows. during different time slots. Information about these slots are • It is very good for separating clusters of high density 101 Workshop "From Objects to Agents" (WOA 2019) Data: A trajectory T={p i,p i+1,. . . }, a distance threshold (DistThr) and time span threshold (TimeThr) Result: A set of stay points SP ={} i=0, cardinality traj= |T | while i < cardinality traj do j = i + 1; while j < cardinality traj do dist=distance ( p i, p j ); if dist > DistThr then δtime=time p j−time p i; if δtime >TimeThr then S.coords=MeanCoords({p k|i < k < j}); S.arrive time=time p i; S.left time=time p j; SP.append(S); Fig. 7. POIs obtained for the trajectories on time Slot 3. break; end end a point x. It is called the EPS-neighbourhood of x. The j = j + 1; parameter MinPts is the minimum number of neighbours end within “Eps” radius. i = j; For our data, the clustering algorithm DBSCAN has de- end termined clusters for all SPs. We set MinPts equal to 10 or return SP 15 and Eps from a minimum of 200 meters to a maximum of Algorithm 1: Pseudocode for SPs detection 400 meters. We obtained on average 20 clusters for every time slot (see Table II) that represent significant places for users, i.e. the centroids of these clusters are POIs. E.g. when we considered time Slot 3 and we set that the minimum number of SPs necessary to make a cluster as 15 and the Eps equal to 200 meters, we obtained 29 clusters, hence 29 POIs (see Figure 7). The last step of our work was to filter the POIs detected according to popularity. We considered only POIs with a number of users greater than 10 (called Popular POIs), in order to understand users interaction and similarity. E.g., for time Slot 3 we obtained 9 POIs shared by a minimum of 11 individuals to a maximum of 80 individuals (see Figure 8). Our experiments have shown that in different time slots a set of different individuals move together to the same POIs, like parks, departments of Universities, shopping centres, hostels, parking spaces, libraries, stadiums, banks, Metro and bus stops. This suggests us a similarity between users. For Fig. 6. StayPoints of the trajectories on Slot3. detected POIs we can further say that our experiments show a correlation of people moving from one POI to another: users remain in these areas in certain common time slots. versus clusters of low density within a given dataset; • unlike K-means, DBSCAN does not require the user to In our experiments the execution time of DBSCAN on the 6 specify the number of clusters to be generated; time slots ranges from a minimum of 240 ms to a maximum of • DBSCAN can find any shape of clusters, i.e. the cluster 1.44 s. Our implementation uses Python 3, and the experiments doesnt have to be circular; were run in a host having an Intel Xeon CPU E5-2620 v3 • DBSCAN can identify outliers. 2.40GHz, with RAM 32, 0 GB. The goal of this algorithm is to identify dense regions, V. D ISCUSSION which can be measured by the number of objects close to a given point. Two important parameters are required for Thanks to the discussed algorithm, it is possible to find a DBSCAN: Epsilon (“Eps”) and minimum points (“MinPts”). set of POIs based on gathered trajectories. In our experiments, The parameter Eps defines the radius of neighbourhood around such data were gathered by Geolife experiments, and the set 102 Workshop "From Objects to Agents" (WOA 2019) VI. C ONCLUSIONS Nowadays, thousands of users use their mobile device to gain access to new information in relation to their geographical location. This innovation has given rise to new services, such as reading GPS coordinates in order to receive information on nearby Points Of Interest (POIs). In this paper we used a multi- agent system for creating recommendations for POIs. The POIs were created from a dataset supplied to us by the Geolife project. From our results we can conclude the following. • It is possible to find the POIs from a set of trajectories. We have identified about 36 POIs by analysing 182 trajectories. In addition, the Popular POIs, related to more than 10 users, correspond to 30% of the POIs previously found; • it has been verified that the POIs correspond to well- known places, e.g. restaurants, parks, etc; • the visiting hours of the POIs are uniform, therefore each POI has a time slot preferred by users. In general, the most frequent time slot is between 08:00 and 12:00; • it has been shown that there is a correlation of people moving from one POI to another in the city. Thanks to the points listed above, the proposed multi-agent Fig. 8. POIs with a number of users greater than 10 for the trajectories of time Slot 3. system, exchanging information with the centralised server, has been used for the creation of a recommendation tool for POIs. TABLE II R ESULTS ABOUT SP S AND POI S OBTAINED R EFERENCES [1] R. Agrawal and R. Srikant. Privacy-preserving data mining. ACM Time Total number of DBSCAN Sigmod Record, 29(2):439–450, 2000. Slot SPs Users POIs Popular POIs Eps(km) MinPts [2] M. Aliannejadi and F. Crestani. Personalized context-aware point of 1 2966 122 18 8 0.3 15 interest recommendation. ACM Transactions on Information Systems 2 3772 124 27 8 0.25 15 (TOIS), 36(4):45, 2018. 3 4146 145 29 9 0.2 15 [3] C. Boutilier. Sequential optimality and coordination in multiagent 4 1899 130 24 6 0.2 15 systems. In Proceedings of International Joint Conference on Artificial 5 751 84 13 4 0.4 10 Intelligence (IJCAI), volume 99, pages 478–485, 1999. 6 545 84 9 1 0.4 10 [4] J. S. Breese, D. Heckerman, and C. Kadie. Empirical analysis of predictive algorithms for collaborative filtering. In Proceedings of the Fourteenth conference on Uncertainty in artificial intelligence, pages 43–52. Morgan Kaufmann Publishers Inc., 1998. [5] J. Canny. Collaborative filtering with privacy. In Proceedings IEEE of POIs were used as a knowledge base for our recommen- Symposium on Security and Privacy, pages 45–57, 2002. dation system. The large amount of data was instrumental for [6] J. Canny. Collaborative filtering with privacy via factor analysis. In validating our approach. Proceedings of international ACM SIGIR conference on Research and development in information retrieval, pages 238–245, 2002. For the above proposed multi-agent system, a setting in our [7] S. H. S. Chee, J. Han, and K. Wang. Rectree: An efficient collaborative agent application on the smartphone allows collecting GPS filtering method. In Proeedings of International Conference on Data Warehousing and Knowledge Discovery, pages 141–151. Springer, 2001. coordinates. This is useful for a geographical location were [8] J. Cruz, E. Silva, R. J. Rossetti, D. C. Silva, E. C. Oliveira, and there are no previously gathered trajectories. Then, we can J. Neto. Application of multi-agent systems to shared transport services: continually extract the trajectories of users and updating both A review. In Proceedings of Iberian Conference on Information Systems and Technologies (CISTI), pages 1–6. IEEE, 2018. suggestions for users and POIs recommendation. [9] M. Ester, H.-P. Kriegel, J. Sander, X. Xu, et al. A density-based Using such a setting, each agent releases to the server the algorithm for discovering clusters in large spatial databases with noise. In Proceedings of International Conference on Knowledge Discovery GPS coordinates and its identity periodically, however to take and Data Mining, pages 226–231, 1996. into account privacy concerns, the user identity is masked, [10] A. E. Fano. Shopper’s eye: using location-based filtering for a shopping and the GPS location is randomly moved by at maximum 100 agent in the physical world. In Agents, volume 98, pages 416–421, 1998. [11] S. Gambs, M.-O. Killijian, and M. N. del Prado Cortez. Next place meters. Then, we obtain a trajectory which is not very precise, prediction using mobility markov chains. In Proceedings of the First however still useful. Workshop on Measurement, Privacy, and Mobility, page 3. ACM, 2012. As trajectories are dynamically gathered, also POIs are [12] R. Giunta, G. Pappalardo, and E. Tramontana. Aspects and annotations for controlling the roles application classes play for design patterns. In determined dynamically, as data arrive to the server. This is Proc. of IEEE Asia Pacific Software Engineering Conference (APSEC), possible since our DBSCAN implementation performs well. pages 306–314, Ho Chi Minh, Vietnam, December 2011. 103 Workshop "From Objects to Agents" (WOA 2019) [13] D. Goldberg, D. Nichols, B. M. Oki, and D. Terry. Using collaborative grouplens research collaborative filtering system. In Proceedings of the filtering to weave an information tapestry. Communications of the ACM, ACM Conference on Computer Supported Cooperative Work (CSCW), 35(12):61–71, 1992. GroupLens Research Collaborative Filtering System, 1998. [14] J. Z. Hernández, S. Ossowski, and A. Garcıa-Serrano. Multiagent [25] X. Su and T. M. Khoshgoftaar. Collaborative filtering for multi-class data architectures for intelligent traffic management systems. Transportation using bayesian networks. International Journal on Artificial Intelligence Research Part C: Emerging Technologies, 10(5-6):473–506, 2002. Tools, 17(01):71–85, 2008. [15] J.-R. Hwang, H.-Y. Kang, and K.-J. Li. Spatio-temporal similarity [26] P. F. Syverson, D. M. Goldschlag, and M. G. Reed. Anonymous analysis between trajectories on road networks. In Proceedings of connections and onion routing. In Proceedings of IEEE Symposium International Conference on Conceptual Modeling, pages 280–289. on Security and Privacy, pages 44–54, 1997. Springer, 2005. [27] E. Tramontana and G. Verga. Get spatio-temporal flows from gps data. [16] B. Liu. Sentiment analysis and opinion mining. Synthesis lectures on In Proceedings of IEEE International Conference on Smart Computing human language technologies, 5(1):1–167, 2012. (SMARTCOMP), pages 282–284, 2018. [17] B. Liu, Y. Fu, Z. Yao, and H. Xiong. Learning geographical preferences [28] L. H. Ungar and D. P. Foster. Clustering methods for collaborative for point-of-interest recommendation. In Proceedings of ACM SIGKDD filtering. In Proceedings of AAAI workshop on recommendation systems, international conference on Knowledge discovery and data mining, volume 1, pages 114–129, 1998. pages 1043–1051, 2013. [29] P. Xuan and V. Lesser. Multi-agent policies: from centralized ones [18] W. Mathew, R. Raposo, and B. Martins. Predicting future locations to decentralized ones. In Proceedings of the first international joint with hidden markov models. In Proceedings of ACM conference on conference on Autonomous agents and multiagent systems: part 3, pages ubiquitous computing, pages 911–918, 2012. 1098–1105. ACM, 2002. [19] P. Melville, R. J. Mooney, and R. Nagarajan. Content-boosted col- laborative filtering for improved recommendations. In Proceeding of [30] P. Xuan, V. Lesser, and S. Zilberstein. Communication decisions in Eighteenth national conference on Artificial intelligence, volume 23, multi-agent cooperation: Model and experiments. In Proceedings of the pages 187–192, 2002. fifth international conference on Autonomous agents, pages 616–623. [20] K. Miyahara and M. J. Pazzani. Collaborative filtering with the ACM, 2001. simple bayesian classifier. In Proceedings of Pacific Rim International [31] Q. Yuan, G. Cong, Z. Ma, A. Sun, and N. M. Thalmann. Time-aware conference on artificial intelligence, pages 679–689. Springer, 2000. point-of-interest recommendation. In Proceedings of the international [21] R. Pérez-Torres, C. Torres-Huitzil, and H. Galeana-Zapién. Full on- ACM SIGIR conference on Research and development in information device stay points detection in smartphones for location-based mobile retrieval, pages 363–372. ACM, 2013. applications. Sensors, 16(10):1693, 2016. [32] Y. Zheng, Q. Li, Y. Chen, X. Xie, and W.-Y. Ma. Understanding mobility [22] H. Polat and W. Du. Svd-based collaborative filtering with privacy. In based on gps data. In Proceedings of ACM international conference on Proceedings of ACM Symposium on Applied Computing (SAC), pages Ubiquitous computing, pages 312–321, 2008. 791–795, 2005. [33] Y. Zheng, X. Xie, and W.-Y. Ma. Geolife: A collaborative social [23] M. K. Reiter and A. D. Rubin. Crowds: Anonymity for web transac- networking service among user, location and trajectory. IEEE Data(base) tions. ACM transactions on information and system security (TISSEC), Engineering Bulletin, 33(2):32–39, 2010. 1(1):66–92, 1998. [34] Y. Zheng, L. Zhang, X. Xie, and W.-Y. Ma. Mining interesting locations [24] B. M. Sarwar, J. A. Konstan, A. Borchers, J. Herlocker, B. Miller, and and travel sequences from gps trajectories. In Proceedings of ACM J. Riedl. Using filtering agents to improve prediction quality in the international conference on World wide web, pages 791–800, 2009. 104