=Paper= {{Paper |id=Vol-1685/paper2 |storemode=property |title=Learning the Popularity of Items for Mobile Tourist Guides |pdfUrl=https://ceur-ws.org/Vol-1685/paper2.pdf |volume=Vol-1685 |authors=Patrick Hiesel,Matthias Braunhofer,Wolfgang Wörndl |dblpUrl=https://dblp.org/rec/conf/recsys/HieselBW16 }} ==Learning the Popularity of Items for Mobile Tourist Guides== https://ceur-ws.org/Vol-1685/paper2.pdf
 Learning the Popularity of Items for Mobile Tourist Guides

                   Patrick Hiesel                      Matthias Braunhofer                  Wolfgang Wörndl
          Technical University of Munich                   Free University of          Technical University of Munich
               Boltzmannstraße 3                            Bozen-Bolzano                   Boltzmannstraße 3
            85748 Garching, Germany                      Piazza Domenicani 3             85748 Garching, Germany
                hiesel@in.tum.de                         39100 Bolzano, Italy              woerndl@in.tum.de
                                                     mbraunhofer@unibz.it


ABSTRACT                                                              to further improve the item suggestions made to a user [1].
A context-aware recommender system incorporates the know-             These systems seek to better match users and their current
ledge of different contextual factors such as time or weather         context with items that are popular in the same or similar
information to improve item suggestions made to a user.               contexts.
This requires the system to have a large knowledge base for              One major application area of context-aware recommender
inferring contextual information and enabling accurate and            systems is travel and tourism, where scenarios are signifi-
timely recommendations. We present a versatile approach               cantly more complicated than traditional user-product match-
for a context-aware recommender system in the tourism do-             ings [3]. In addition to the general preferences of a user, the
main by crawling publicly available information from a va-            utility and relevance that a point of interest (POI) has to
riety of sources and learning the contextual popularity of            a user heavily depends on the user’s current context. A
points of interest based on a generalized check-in model. We          beer garden, for instance, would provide a higher value to
have deployed a test instance of our system for the greater           the user on sunny summer days rather than on rainy winter
area of Munich and the German state of Bavaria. Analyz-               days and a car that knows a driver’s route, fuel level and gas
ing the results from the offline learning has led to interesting      prices can make better suggestions for gas stations to refuel.
insights including when and in which weather conditions cer-          This is especially important in the scenario of a proactive
tain items are popular.                                               recommender system [14], i.e., a recommender that pushes
                                                                      item suggestions to the user based on the current situation
                                                                      (e.g. location, time of day or weather) without explicit user
CCS Concepts                                                          request.
•Information systems → Recommender systems;                              In our research, we propose, implement and evaluate a
                                                                      novel approach for a context-aware recommender system in
Keywords                                                              the tourism domain by aggregating publicly available in-
                                                                      formation from a variety of sources and learning the con-
Recommender systems; context; data analytics; mobile guides           textual popularity of POIs based on a generalized check-in
                                                                      model. We aggregate different types of data, including POIs,
1.   INTRODUCTION                                                     check-ins and contextual information to build a knowledge
   Recommender systems are a composition of software tools            base and infer knowledge about the contextual popularity of
and techniques that suggest items to users that are likely to         items focussing on aspects of temporal and geographic con-
be interesting to them and relevant to their needs [10]. Tra-         text. The gained knowledge can also be utilized to mitigate
ditional recommender systems consider items liked/rated by            cold-start problems when no or little information about the
users in the past and possibly some additional information            user is available.
such as item characteristics to estimate the ratings for items           In the following, we first explore related work (Section 2),
that the users have not yet consumed [1]. Applications range          describe the context model, data sources and system design
from suggesting products that have been bought together by            of our implementation (Section 3) and then present the pro-
other users in the past over suggesting people a user might           cess and results of analyzing the data (Section 4). Finally,
know based on their existing list of friends to suggesting            Section 5 draws conclusions and discusses open future work
music based on genres listened to.                                    directions.
   Context-aware recommenders enhance traditional recom-
mender systems by incorporating the knowledge of different            2.   RELATED WORK
contextual factors - such as time or weather information -
                                                                         Context-aware recommender systems have been a topic
                                                                      of growing research interest in the recent years and aim at
                                                                      generating more relevant recommendations by adapting to
                                                                      the specific contextual situations of the user and the rec-
                                                                      ommended items (e.g., weather, temperature, season and
                                                                      mood) [1]. There exist numerous commercial and research
                                                                      systems, such as Foursquare, Yelp, South Tyrol Suggests
Copyright held by the author(s).
                                                                      (STS) [4] and ReRex [2], that have already been success-
RecTour 2016 - Workshop on Recommenders in Tourism held in conjunc-
tion with the 10th ACM Conference on Recommender Systems (RecSys),    fully implemented and that exploit the current user’s and
September 15, 2016, Boston, MA, USA.                                  item’s context when recommending items. These systems
use different approaches to incorporate context into the rec-      3.1     Context Model
ommendation process. Roughly, these approaches can be                 Our research is based on a context model for proactivity in
divided into three categories [1]: (i) contextual pre-filtering,   mobile recommender systems defined by Wörndl et.al. [14].
where context is used for selecting the relevant set of rat-       The model relies on domain-dependent context modeling in
ings before computing predictions with a traditional, two-         four distinct categories: user context, temporal context, ge-
dimensional prediction model; (ii) contextual post-filtering,      ographic context and social context. The recommendation
where context is used to adjust the recommendation list re-        process itself is divided into two phases to first analyze the
sulting from a two-dimensional rating prediction model; and        current situation and then examine the suitability of par-
(iii) contextual modeling, where context is directly incorpo-      ticular items. This allows for both a proactive and passive
rated into the prediction model.                                   recommender system.
   Most current context-aware recommender systems work                The context model defines the data we need to aggregate
in pull mode, i.e., the user has to explicitly make a request      and the features that should be extracted. In particular, we
(pull) for recommendations, possibly by entering informa-          want to infer the temporal and geographic context of items.
tion about her preferences, needs and constraints. A new           The user context is extracted directly in our mobile app pro-
generation of context-aware recommender systems, called            totype in a later stage. The social context is neglected in our
proactive recommender systems, are instead pushing rec-            prototype but could be integrated in our approach. Based
ommendations to users without their specific request, when         on this context model, we focus on the following contex-
they are in a contextual situation that the system considers       tual features: weather condition, temperature, season, day
as suitable for the recommendations [14]. Despite the ad-          of week, time of day and time of year.
vantages of proactive recommender systems - especially in
mobile usage scenarios - relatively little research has been       3.2     Data Sources
conducted specifically on this topic. One example is [14],            The overall goal of this work to recommend POIs in a mo-
where the authors proposed a proactive recommender sys-            bile tourist guide based on publicly available data sources.
tem model consisting of two phases: (i) the situation as-          We therefore need to acquire and aggregate data in three
sessment phase, which evaluates whether or not the current         categories: items (the POIs), check-ins (to determine the
contextual situation calls for a recommendation; and (ii)          popularity of items) and context.
item assessment phase, which is only executed when the first
phase indicates a promising situation and assesses the candi-      3.2.1    Items
date items to finally decide which items should be pushed to
the user as recommendations. Subsequent work in [13] has              The POIs form the foundation of our system as the user’s
evaluated the effectiveness of the proposed model by apply-        overall perception of the system first and foremost depends
ing it to a restaurant recommender system, and found that          on the quality and suitability of the recommended items. We
users highly appreciate proactive recommendations if they          therefore designed a general model for an item in our domain
are relevant and properly timed.                                   that can then be populated with data. Core data fields
   In another work, Dali et al. [5] presented different tim-       include: name, description, location, images, phone, rating,
ing models based on random forest to classify user contexts        street, city, country. While the core fields should always be
that are suitable for recommendations and user contexts in         populated, each data source’s crawler can define additional
which users are highly likely to refuse any recommendations.       fields it wants to persists. Based on this model, we examined
Results from a user study revealed that a hybrid model that        different, publicly accessible data sources: Foursquare, Yelp,
first decides whether it should use a personal or non-personal     Quermania, Facebook, Wikipedia, Open Street Maps. We
timing model, and then classifies whether the context is suit-     designed and implemented crawlers for each of those sources
able for recommendations is superior to both the personal          and aggregated over 175,000 items for the German State of
or non-personal timing models.                                     Bavaria.
   In another study, Pielot et al. [9] showed that boredom
can be inferred from patterns of mobile phone usage and
                                                                   3.2.2    Check-ins
that users are more likely to appreciate proactive recom-             Based on this knowledge base of 175,000 items, we want
mendations during inferred phases of boredom. Hence, they          to infer the popularity in accordance to the context model.
concluded that using boredom as trigger independent from           Our premise is that a place is popular if many people visit it.
content might help to make proactive recommendations a             It follows that a place is popular in a certain context (e.g. on
more pleasant experience for users.                                a sunny Saturday evening in summer) if many people visit
   Finally, Borrı́s et al. [3] survey intelligent recommender      it when this context condition applies.
systems in travel and tourism and also mention context and            To infer this knowledge, we must first define a model for
proactivity as important factors.                                  determining how popular a place is at a given time or any
                                                                   other context. We base this model on a generalized check-
3.   CONTEXT, DATA SOURCES AND SYS-                                in. In our model, a check-in can be any evidence that a
                                                                   user visited a place at a certain time. This includes an ex-
     TEM DESIGN                                                    plicit check-in on Foursquare or Facebook, as well as implicit
  In order to create a versatile system that can gather rele-      check-ins by taking a picture or generating a GPS trace on
vant data for any geographic area and infer the contextual         a smartphone. A check-in marks a singular point in time.
popularities of POIs, we first discuss the context model that      To make an educated judgement on how many people are
our work is based on. This leads to the features we need to        present at any point in time, we must further make an as-
extract from the data we crawl. We then discuss different          sumption about the average duration of a visit. There has
data sources for items, check-ins and context and present a        been research on the activity duration of different activities
brief system design of both the backend implementation and         [8] that we use to infer the number of present users from
a corresponding mobile client.                                     check-ins at any point in time based on the POI type.
   We looked at different publicly available data source to
crawl check-ins from including Flickr, Twitter and Foursquare.
Flickr is a photo sharing platform with a rich set of geo-
tagged photos. A geo-tagged photo contains the latitude
and longitude of the place it was taken as well as a level
of accuracy of this information. In addition, a textual de-
scription is provided for most of the images. We used Flickr
as the primary source of check-ins for rural areas, establish-
ing a place-to-check-in mapping in a sparsely populated area
which is more straightforward given the geo coordinates of
both places. In our research, we have sampled about 249,000
images to be used as check-ins.
Twitter offers a large number of tweets that can be associ-
ated with a place and hence counted as a check-in. There
are two main features, that can be used for association: geo-
tagged tweets and Twitter Places. Geo-tagged tweets carry
a latitude and longitude and can be associated to places
using geo-fencing. While this is a valid approach in rural
areas, it is insufficient for cities due to the number of places
being close to each other. Twitter places specify a specific
geographic place, such as a city or a restaurant and can be
mapped to a POI directly. In our research, we have sampled
29m tweets in about eight weeks using Twitter’s Streaming
API.
Foursquare has an explicit check-in feature - similar to Face-
book - that would let users check-in at a place using a button
in their app. In addition, Foursquare samples the user’s lo-       Figure 1: Screenshot of the Mobile App with the
cation on the smartphone to proactively recommend POIs.            Popularity Graph for Time of Day
While this data seems promising, none of it is publicly acces-
sible and was therefore not used for our prototype. On the
contrast, some users link their Twitter account with their         framework offers a modern web MVC architecture with a
Foursquare account resulting in each explicit check-in trig-       simple control flow and the advantage of using templates
gering a public tweet. Following the approach proposed by          in the views. We have combined this with Slick - a func-
Melia and Segui [8], we extracted this information from the        tional relational mapper - to have a persistent database layer
tweets we collected and linked them to Foursquare venues in        based on a performance-tuned MySQL instance. Slick offers
our database. Based on our Twitter dataset of 29m tweets,          a clean way of accessing and filtering persistent data sets
we successfully linked 2.9m tweets to a Foursquare Swarm           using Scala’s functional API.
POI. The association rate for the German state of Bavaria             Data aggregation is either done through a REST API (if
was 8 check-ins (tweets) per 1,000 POIs and enriched our           available) or through one of our crawlers. In the course of
dataset for cities.                                                this research, we have created multiple crawlers and spiders
                                                                   on top of JSoup to extract knowledge from publicly available
                                                                   sources. We used Amazon AWS resources to carry out parts
3.2.3    Context                                                   of these tasks with on-demand resources, while maintaining
   Based on the aggregated knowledge base of items and             only one dedicated server at all times. We used SQS, a dis-
check-ins we now want to add a third data source to en-            tributed pipe service, to communicate between the different
rich our data with context. We hereby focus primarily on           servers.
dimensions of the geographic and temporal context. Given
the timestamp of a single check-in we can infer all attributes     3.4   Mobile Application Design
of the temporal context using a static calendar library. We          We have also designed, developed and tested a user in-
therefore use java.util.Calendar to infer season, day of week,     terface concept to investigate how to communicate contex-
time of day and time of year. To infer the weather condi-          tual information about recommended items to the user in a
tion and temperature of check-ins we added Wunderground’s          mobile tourist guide [7]. Thereby, the user can retrieve in-
Weather History API that can be used to provide the weather        formation about interesting POIs and review various graphs
for a place at any given time in the past. Using these two         about the item popularity in an item detail screen. We show
sources, we were able to infer the temporal and geographic         a textual summary of the popularity peak for both weather
context for all check-ins.                                         and day/time. We also render line and bar charts to show
                                                                   the popularity across different context dimensions, such as
3.3     System Design and Server Implementation                    day of the week, time of day (see Figure 1 for an example)
   We implemented our prototype in Scala using the Play!           and season. The mobile application was implemented using
framework. Scala is a language that is executed on top of          the cross-platform framework Ionic and is fully functional.
the Java Virtual Machine and is fully interoperable with             To receive early feedback for our concept, we evaluated
Java. The language combines object-oriented programming            our system in a user study with 14 subjects. The partici-
with functional programming which makes operations on ar-          pants were asked to test the application for two weeks and
rays and lists easy to implement. On top, all Java libraries       then complete a survey about their experience with the user
are usable in Scala which is a major benefit. The Play!            interface elements. The study results indicated that the pop-
ularity inference and graphs provide benefits for users. Users      Merging co-referent POIs has been extensively studied
stated that popularity graphs assisted them while deciding        and there are multiple approaches to the problem, e.g., us-
which place to visit. More detailed results of this prelimi-      ing a fuzzy set and probability theory [12] or a DBSCAN,
nary study can be found in [7].                                   a common clustering algorithm [6]. The fuzzy set approach
  The focus in this paper is not on the user interface but on     assumes, that the majority of POIs are user-generated and
how to analyze the collected data and infer insights that can     therefore has large differences in between two versions of a
then be integrated in a mobile tourist guide. We present our      POI’s name. Our data differs from the assumptions of these
course of action and the gained results of the offline learning   papers in a way, that it is already pre-filtered by Yelp and
in the next section.                                              Foursquare. We therefore take a simple approach matching
                                                                  POIs from different sources: we compare the Levenshtein
4.     OFFLINE ANALYSIS AND PROBABIL-                             distance of the names of the two POIs in question and in-
                                                                  vestigate their geographic distance.
       ITY LEARNING
   To infer basic popularities for different conditions we fol-   4.2     Associating POIs with Check-Ins
low the data analytics process proposed by Runkler [11].
                                                                    Associating POIs with check-ins is a non-trivial task, given
The process decomposes the data analytics pipeline into
                                                                  that the data comes from entirely different sources. De-
four steps: preparation, preprocessing, analysis and post-
                                                                  pending on the source of the POI and the check-in, we have
processing. Following this process, we have identified the
                                                                  identified several ways of creating an association:
following tasks for each step:
     1. Preparation: identifying goals and research question;     4.2.1    POIs with Flickr/Twitter Check-ins
        data collection.                                             Flickr and Twitter both provide data records that have
     2. Pre-processing: merging POIs from different sources;      coordinates, a timestamp and some textual data like the
        associating POIs with check-ins filtering, sampling and   tweet’s content or the Flickr image’s caption. Associating
        discretization, normalization.                            these records with a POI presents a hard problem that can
                                                                  be tackled in many different ways:
     3. Analysis: visualization, popularity inference and pre-       Simple Geofencing: The computationally easiest op-
        diction.                                                  tion is to use a rectangular geofence around a POI and as-
                                                                  sociate each check-in record within this area with the POI.
     4. Post-processing: evaluation.                              This works well for exposed POIs (i.e., satellite POIs that
   To follow this process, we define an overall research ques-    have no other POIs around them), but is inapplicable to the
tion and subquestions that we seek to answer.                     majority of POIs in cities including restaurants and bars.
                                                                     Advanced Geofencing: To improve both the FPR (false
     • Overall research question: how can we learn (infer) the    positive rate) and FNR (false negative rate) of the simple
       popularity of POIs for a context-aware recommender         geofencing approach, we propose a more complex way of
       system?                                                    setting up the geofence. Depending on the POI’s type, a
                                                                  more complex geofence structure can range from a smaller
     • Subquestion 1: how can POIs from different sources         circle (suitable, e.g., for bars or restaurants in cities) to a
       be matched and duplicates be eliminated?                   polygon following the shape of ski slopes or trails.
     • Subquestion 2: how can POIs be associated with check-         Clustering: can be done in a supervised, unsupervised or
       ins?                                                       semi-supervised fashion. A supervised clustering approach
                                                                  would assume that we have a couple of check-ins per POI
     • Subquestion 3: given a set of check-ins for a POI, how     where we have obtained evidence that they belong to this
       can we infer the popularity under different temporal       POI. Other nearby check-ins could be associated using algo-
       conditions?                                                rithms like KNN (see Evidence-based Clustering below). An
                                                                  unsupervised approach could use algorithms like DBSCAN
     • Subquestion 4: given a set of check-ins for a POI, how     to discover clusters in unclassified data. Once the algorithm
       can we infer the popularity under different geographic     has discovered clusters, we could use different techniques to
       conditions?                                                associate POIs with clusters.
     • Subquestion 5: given a set of check-ins for a POI and         Evidence-based Clustering: As mentioned with simple
       the base popularities, which algorithms are suitable for   clustering, one approach could be to use supervised or semi-
       making a compound decision/recommendation?                 supervised clustering for association. To start this algorithm
                                                                  we would need a base dataset of check-ins that are associated
  In the following, we present our approaches and results on      with POIs. One approach to generate such a dataset would
these tasks according to the subquestions we are trying to        be to use evidence from the metadata. Most tweets/Flickr
answer.                                                           descriptions contain the topic of the tweet or image such
                                                                  as ”Neuschwanstein”. Using simple word-matching or more
4.1      Merging POIs from Different Sources                      complex NLP techniques we would obtain a base set of
  We have added different POI sources to our system, in-          check-ins to use for clustering and association.
cluding Foursquare, Yelp and Quermania. Especially Four-             We use Flickr and Twitter check-ins for exposed sights to
square and Yelp provide a lot of overlapping data, since both     deliver a proof of concept for our pipeline and model and
have restaurants and bars in their database. This leaves          could therefore use simple geofencing to associate check-ins
us with the problem of identifying and merging co-referent        with POIs (by a square whose size depends on the POI type).
POIs, as we do not want to show or recommend the same             Our approach has linked 280,983 check-ins with 177 sights.
POI multiple times.                                               While this approach was sufficient for our use case, future
work could lie in exploring other association techniques to         ble to infer.
make using these check-in sources viable for more densely              We therefore explored related work on activity duration
populated areas.                                                    [8] to assign a presence window to each check-in accounting
                                                                    for the time a user was present at the POI. The activity du-
4.2.2    Foursquare POIs to Check-ins using Twitter                 ration depends on the POIs category and ranges from 7:43
   As briefly outlined before, Melia and Segui [8] proposed an      min for breakfast to 19:01 min for dinner. Parks and out-
approach to aggregate public Foursquare (Swarm) check-ins           door have a mean activity duration of 11:21 min. Given
using Twitter. Foursquare users that have linked their ac-          this knowledge, we set a bucket-size of 5 min and count the
count with Twitter will automatically publish a tweet if they       check-in towards three buckets for sights. In this approach
check-in publicly. By analyzing the corresponding tweets            we model a user’s presence at a given time by adding 1 to
using our data processing pipeline, we obtain the unique            three buckets. With this information, we can accurately an-
Foursquare ID of the POI where the user checked-in. In ad-          swer questions in the form of ”How popular is this POI at
dition, we obtain the timestamp of the tweet and hence the          10:11am?”, as we have a bucket ranging from 10:10:00am to
check-in.                                                           10:14:59am. However, with this model we neglect the uncer-
   This approach is promising, as it established a definitive       tainty at the beginning and end of the activity interval. The
relation between a check-in and a POI (i.e., there are no           source of this uncertainty is the fact, that we only know one
false-positives). We have aggregated a mixed data set of            timestamp and infer the user presence window through (as-
tweets containing both geo-located tweets and tweets linked         sumed) activity durations yielding a high uncertainty at the
to public Foursquare and Swarm check-ins using the stream-          beginning and end of this interval. An alternative modeling
ing API over eight weeks. The dataset has 29m tweets                approach could be to use Gaussians to augment presence
in total, 2,9m of which we have successfully linked to a            intervals. This way, we can model the uncertainty in a sta-
Foursquare or Swarm POI.                                            tistically correct way.
   Our prototype only incorporates POIs in the German State            We regard the Gaussian modeling as future work and
of Bavaria. We could therefore only use a small subset of           base our presence interval on activity durations without aug-
the 2.9m tweets that link to a POI in our region. We could          menting Gaussians. We introduce feltTemperature as a dis-
match tweets and POIs at a rate of 8 check-ins (tweets) per         cretization of the continuous temperature as this simplifies
1,000 POIs. This number is relatively low compared to the           inference and makes our predictions easier to understand for
effort it took to obtain the data using the pipeline we out-        users. Table 1 shows our set of inferred contextual variables
lined earlier. While this was not an ideal fit four our use case,   for both the geographic and temporal context.
the approach can be a better choice in regions with higher
Foursquare adoption (such as New York or San Francisco).                  Variable        Type               Domain
                                                                        dayOfWeek          D              {Mon,...,Sun}
4.3     Filtering, Sampling and Normalization                           timeOfDay          C                  [0,23]
   Until this point, we have crawled POIs, check-ins and con-              season          D      {Spring,Summer,Fall,Winter}
text and associated POIs with check-ins. The next step is to                                          {Hot,Warm,Pleasant,
                                                                      feltTemperature       D
filter the dataset to increase its quality, decide on sampling                                         Mild,Cold,Freezing}
for context parameters and perform normalization if needed.          weatherCondition       D      {Sunny,Cloud,Rainy,Snowy}
   Filtering: For the qualitative evaluation and our mobile
app prototype we focus on exposed sights out of our large           Table 1: Temporal/Geographic Dimensions for Sam-
POI dataset and have identified 176 sights with a high POI          pling. D=Discrete, C=Continuous
to check-in matching having both a low FNR and FPR. Fur-
thermore, we filter out POIs that have less then 400 check-
ins (on average each POI has 1570 check-ins) to retain a               Normalization: Figure 2 shows an aggregation of all of
good accuracy for all contextual popularities. All contextual       our check-ins on a weekly basis using the presence window
popularity groups partition the remaining check-ins into a          approach based on a presence window of 1 hour. One can
maximum of 7 groups yielding 57 check-ins on average per            clearly see from the graph, that about twice as much check-
group. This filtering gives us a set of 114 sights in the greater   ins are made during weekends, than there are on a weekday.
area of Munich and the German State of Bavaria that we use          We have therefore thought about normalizing the data as
for further processing.                                             a whole to have the same relative amount of check-ins per
   Sampling: The next step to aggregate the popularity is           discrete bucket (e.g. Mon-Fri).
to define what dimensions should be explored and if a dimen-
sion is continuous or discrete. We hereby explore temporal
and geographic dimensions separately. Discrete variables are
easy to handle when it comes to inferring the popularity, as
they can be represented by a fixed number of buckets (e.g.,
seven for Day of Week ) and assigning check-ins to buckets is
trivial. Continuous variables however, are more difficult as
questions like ”How popular is this POI at 10am?” can not
be holistically answered using sampling and buckets, since
when settling on a fixed bucket size (e.g., half an hour) the       Figure 2: All Check-ins Aggregated on a Weekly
question ”How popular is this POI at 10:11am?” can not              View
be answered accurately. When decreasing the bucket-size,
buckets will only have a few check-ins as a check-in only             After investigating our data in close detail, we decided
marks a specific timestamp making the popularity impossi-           against normalization as users tend to visit more POIs on
                                                                                     Figure 4: Popularity


                                                                  into temporal and geographic dimensions and their respec-
                                                                  tive parameters (temperature t, weather condition wc, sea-
              Figure 3: Geofilter Analysis                        son s, weekday wd, etc.). This yields probabilities of the
                                                                  form:

the weekends/evenings when they spend leisure time. We                         p(P |t), p(P |wc), p(P |s), p(P |wd)           (2)
therefore anticipate, that the weekend cliffs (as well as some
                                                                    Having these base popularities would allow for compound
other data patterns) are correct and beneficial for the sake
                                                                  calculations yielding the probability for a visit V to a certain
of popularity inference.
                                                                  POI given a situation with fixed contextual parameters:
4.4     Visualization, Popularity Inference and Pre-                                        p(V |C, P )                       (3)
        diction
                                                                    The concept of a visit is that given that a user will cer-
4.4.1    Visualization                                            tainly visit a POI, what is the probability that the visit will
                                                                  happen at the context C.
   To effectively visualize our data, we created multiple anal-
                                                                  There are different approaches to model the statistical de-
ysis tools based on our server-side software. For effective
                                                                  pendence of context factors like weather condition and tem-
analysis of the check-in data we build a tool to visualize dif-
                                                                  perature (e.g., it does not snow when having 20◦ C) including
ferent features of geo-based check-ins without an association
                                                                  Bayesian networks. While a full Bayesian model can increase
to any POI. Our tool, as depicted in Figure 3, is able to ap-
                                                                  accuracy, it requires a high degree of domain knowledge
ply a geofence to filter check-ins and compare the selected
                                                                  about the data and all parameters that is hard to obtain.
area to a baseline of all known check-ins which makes it easy
                                                                  We therefore use summation to infer the plain popularities
to spot interesting patterns. Figure 3 shows all check-ins on
                                                                  for each context parameter:
a weekly level for the northern end of Starnberger See. This
is a good example for the effectiveness of our tool, showing                  p(P |wd = M onday, V = W alhalla)               (4)
that this part of the lake is popular on Friday afternoon as                  = p(wd = M onday|V = W alhalla)                 (5)
well as on the weekend.
   After an initial analysis using these tools, we started to
model the popularity inference. For this purpose, we created                    p(wd = M onday|V = W alhalla)                 (6)
                                                                                     P
different views, such as the one depicted in Figure 4, to vi-                           CheckinsF orP OIOnM onday
sualize the inference outcome. Our view shows the probabil-                        =       P                                  (7)
                                                                                             CheckinsF orP OI
ities (popularities) under different temporal and geographic
conditions highlighting them with a gradient in red color
such that one can easily spot patterns in the data.                 This approach yields a probabilistic distribution for each
                                                                  POI and each context dimension as depicted in Figure 4
4.4.2    Popularity Inference                                     which lets one judge under which conditions a place is pop-
  Until this point, our analysis and visualizations yielded       ular. We can use prediction and the Bayes’ theorem to make
promising patterns. We now take a probabilistic approach          compound recommendations.
to infer popularities for different contextual situations. The
outcome we seek is the popularity P of a POI given a context      4.4.3    Prediction
C:                                                                  With prediction or recommendation, we seek to answer
                           p(P |C)                         (1)    the question ”Where should I go (given the current times-
                                                                  tamp and weather)?”. With respect to our model, this would
  When thinking about context and different dimensions as         mean: what is the probability (or score) that I should choose
described before it would be most beneficial to split up C        a POI for my visit V given the inferred popularities of all
POIs P and the current context C:                                  when being relatively unpopular and therefore used weighted
                                                                   additive scoring.
                           p(V |C, P )                      (8)
                                                                     Using either one of those strategies leaves us with a prob-
We propose two different approaches to answer this question:       ability (popularity) for each POI in the database, which can
weighted additive scoring and using the Bayes’ theorem.            be used for ranking in combination with a standard weighted
                                                                   additive scoring approach for recommending a POI based on
Weighted Additive Scoring.                                         the different context factors.
  The first approach to obtain a popularity score given a
context situation C is to use weighted additive scoring.
                                                                   4.5    Evaluation of Post-Processing
                                                                      We discussed different types of evaluations for this part of
                               X                                   our research with peers from the field of machine learning.
              S(C, V ) =                    αi p(i, V )     (9)    While machine learning and data analytics applications are
                           i∈[wc,t,d,s,h]                          usually evaluated using cross-validation or any other sort of
   For each POI we add the popularity for a specific set of        quantitative offline evaluation, we did not see a fit for these
context dimension (weather condition wc, temperature t,            types of evaluations given our data and inference schema.
day d, season s, hour h) that we want to predict a score for.      We therefore decided to first evaluate our research by qual-
Furthermore, we multiply each dimension by a weighting             itatively assessing inferred popularities for selected results
factor α to make the model flexible. While we used static          in a case study and discussing interesting findings and pat-
weights, future work could include learning of α through           terns. The ultimate goal is to integrate the results about
online of offline learning techniques.                             item popularities into the mobile application (see Subsec-
   While this model works well, it does not respect the dif-       tion 3.4) and conduct a large-scale user study to get real
ferent number of check-ins between POIs. Thus a POI with           feedback.
only 400 check-ins might outperform a POI with 4,000 check-
ins, as the popularity values are better, while - in absolute      Inferred Seasonal Popularity.
visitor numbers - the second POI outperforms the first. This          The inferred seasonal popularity performed best among all
issue is addressed by an approach using Bayes’ theorem.            our inferred parameters. An excerpt of the POI data with
                                                                   seasonal popularity is shown in Table 2. While cities like
Bayes Theorem.                                                     Bad Tölz or Nürnberg are equally popular throughout the
  Bayes’ theorem can be used to inverse a dependent prob-          year, other sights peak in certain seasons. Kehlsteinhaus for
ability. Using summation to obtain the base probabilities as       instance - a tea house built for the Third Reich government
outlined in the previous section yields probabilities in the       that has been turned into an exhibition - is closed during
form of:                                                           spring and winter (November - April), as the road can not
                                                                   be maintained as soon as there is snowfall. It can be easily
                     p(wd = M onday|V )                    (10)    seen that this shutdown persists in the data making the
                                                                   sight less popular during winter and spring. Other places for
In other words, this means: ”given that I visit a POI, what
                                                                   outdoor activities show a clear tendency towards the warmer
is the probability I would visit it on Monday?” (or: ”what
                                                                   periods of the year, including Walchensee (being popular
is this POI’s Monday popularity”). When recommending
                                                                   during Summer and Fall), Starnberger See (Summer) and
items, we would like to answer questions of ”It is Monday,
                                                                   Königssee (Summer and Fall).
which POI should I visit?”:
                     p(V |wd = M onday)                    (11)      POI Name            Spring    Summer       Fall   Winter
                                                                     Bad Tölz            0.215     0.202      0.215   0.368
So for a concrete POI (Walhalla) we can use Bayes’ theorem
                                                                     Nürnberg            0.238     0.242      0.295   0.226
to get the probability for a visit given our limited set of POIs
                                                                     Walchensee           0.076     0.456      0.291   0.177
and the premise that the user will visit one of these:
                                                                     Kehlsteinhaus        0.044     0.572       0.35   0.034
              p(V = W alhalla|wd = M onday)                          Starnberger See      0.003     0.932      0.045   0.019
   p(wd = M onday|V = W alhalla)p(V = W alhalla)                     Kloster Andechs      0.314     0.253      0.365   0.067
 =                                               (12)                Königssee           0.193     0.367      0.305   0.135
                 p(wd = M onday)
All of the parameters from this model can be retrieved from        Table 2: Excerpt of Inferred Seasonal Popularity:
our dataset:                                                       p(V |s, P ). µ = 1, 660 Check-ins
              p(wd = M onday|V = W alhalla)                (13)

           (as obtained in the previous section)
                             P                                     Inferred Weather Condition Popularity.
                                CheckInsAtW alhalla
         p(V = W alhalla) =      P                         (14)      The weather condition overall has a clear tendency to-
                                            AllCheckIns            wards sunny weather, with more then 90% of the dataset
                             P                                     having a sunny popularity of 0.5 or higher. Nonetheless,
                                AllCheckInsOnM onday               there are still some patterns to get indications if the infer-
      p(wd = M onday) =            P                       (15)
                                       AllCheckIns
                                                                   ence technique is correct. While cities like Munich are within
                                                                   our average (mostly sunny), places for outdoor activities like
                                                                   Starnberger See, Andechs or Almbachklamm have a notably
   We found, that using a Bayesian approach disproportion-         higher sunny popularity. Table 3 shows an excerpt from
ally favors POIs that have a high number of check-ins even         inferred weather condition popularities.
 POI Name       Sunny    Cloudy     Rainy    Snowy     Unkn.
  Munich        0.532     0.138     0.324     0.005    0.001
  Andechs       0.711     0.072     0.209     0.006    0.002
 Roseninsel     0.796     0.127     0.072     0.005      0
 Almbachkl.     0.907       0       0.093       0        0

Table 3: Excerpt of Inferred Weather Condition
Popularity: p(V |wc, P ). µ = 1, 750 Check-ins



5.   CONCLUSIONS AND FUTURE WORK
   In this work, we have designed and implemented a data
analytics process to infer the popularity of POIs for a context-
aware recommender system using publicly accessible data
from various data sources. We have elaborated different ap-
proaches on individual subtasks, e.g., applying probabilistic
modeling to learn the popularity for POIs in different con-
textual situations such as weather condition, day of week
and time of day. We qualitatively evaluated our approach           Figure 5: Heatmap for Neuschwanstein Castle
in a case study and also implemented a corresponding mobile        Based on Check-in Data
application with a brief preliminary user study [7].
   In addition to the explained results, we discovered other
useful purposes for the dataset and the inferred information.       [6] M. Daszykowski and B. Walczak. Density-Based
For example, to determine and visualize popular areas on                Clustering Methods. Comprehensive Chemometrics,
a map. This could be useful for visitors to find spots for              2:635–654, 2010.
taking iconic pictures or maybe find a less-crowded spot and        [7] P. Hiesel, W. Wörndl, M. Braunhofer, and D. Herzog.
avoid the most popular areas. To do so, we filtered our data            A User Interface Concept for Context-Aware
by first selecting the check-ins associated with a POI and              Recommender Systems. In Mensch und Computer
then applying another filter to eliminate check-ins with an             2016 Tagungsband. De Gruyter, 2016.
accuracy worse then 10 meters. Then this filtered dataset is        [8] J. Melià-Seguı́, R. Zhang, and E. Bart. Activity
fed into a heatmap algorithm for visualization using Google             duration analysis for context-aware services using
Maps’ heatmaps extension. Figure 5 shows popular (photo)                foursquare check-ins. In Proceedings of the 2012
spots around Neuschwanstein Castle as an example.                       international workshop on Self-aware internet of
   Future work includes integrating the item popularities               things, pages 13–18, 2012.
into the mobile tourist guide application and proactively           [9] M. Pielot, L. Baltrunas, and N. Oliver.
recommending POIs based on the current user context. We                 Boredom-triggered proactive recommendations. In
then plan to conduct a larger user study to investigate whether         Proceedings of the 17th International Conference on
this approach leads to useful and timely recommendations                Human-Computer Interaction with Mobile Devices and
from a user’s perspective in a real setting. Another area for           Services Adjunct, pages 1106–1110. ACM, 2015.
improvement is not to solely rely on explicit user check-ins       [10] F. Ricci, L. Rokach, B. Shapira, and P. B. Kantor.
but also utilize tracking data from smartphones.                        Recommender Systems Handbook. Springer Verlag,
                                                                        New York, NY, USA, 2010.
6.   REFERENCES                                                    [11] T. A. Runkler. Data Analytics: Models and Algorithms
                                                                        for Intelligent Data Analysis. Springer, 2012.
 [1] G. Adomavicius and A. Tuzhilin. Context-aware                 [12] G. D. Tre and A. Bronselaer. Consistently handling
     recommender systems. In Recommender systems                        geographical user data: Merging of coreferent POIs. In
     handbook, pages 191–226. Springer, 2015.                           Proceedings of the 2010 Annual Meeting of the North
 [2] L. Baltrunas, B. Ludwig, S. Peer, and F. Ricci.                    American Fuzzy Information Processing Society
     Context relevance assessment and exploitation in                   (NAFIPS), 2010.
     mobile recommender systems. Personal and                      [13] D. G. Vico, W. Wörndl, and R. Bader. A study on
     Ubiquitous Computing, 16(5):507–526, 2012.                         proactive delivery of restaurant recommendations for
 [3] J. Borrı́s, A. Moreno, and A. Valls. Review: Intelligent           android smartphones. In ACM RecSys workshop on
     tourism recommender systems: A survey. Expert Syst.                personalization in mobile applications, Chicago, USA,
     Appl., 41(16):7370–7389, Nov. 2014.                                2011.
 [4] M. Braunhofer, M. Elahi, and F. Ricci. Usability              [14] W. Wörndl, J. Hübner, R. Bader, and
     assessment of a context-aware and personality-based                D. Gallego-Vico. A model for proactivity in mobile,
     mobile recommender system. In E-commerce and web                   context-aware recommender systems. In Proceedings of
     technologies, pages 77–88. Springer, 2014.                         the fifth ACM conference on Recommender systems,
 [5] N. Dali Betzalel, B. Shapira, and L. Rokach. Please,               pages 273–276. ACM, 2011.
     not now!: A model for timing recommendations. In
     Proceedings of the 9th ACM Conference on
     Recommender Systems, pages 297–300. ACM, 2015.