<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta>
      <journal-title-group>
        <journal-title>ACM Conference on Recommender Systems (RecSys),
September</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>Learning the Popularity of Items for Mobile Tourist Guides</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Patrick Hiesel</string-name>
          <email>hiesel@in.tum.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Matthias Braunhofer</string-name>
          <email>mbraunhofer@unibz.it</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Wolfgang Wörndl</string-name>
          <email>woerndl@in.tum.de</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Free University of</institution>
          ,
          <addr-line>Bozen-Bolzano, Piazza Domenicani 3, 39100 Bolzano</addr-line>
          ,
          <country country="IT">Italy</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Technical University of Munich</institution>
          ,
          <addr-line>Boltzmannstraße 3, 85748 Garching</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <volume>15</volume>
      <issue>2016</issue>
      <abstract>
        <p>A context-aware recommender system incorporates the knowledge of di erent contextual factors such as time or weather information to improve item suggestions made to a user. This requires the system to have a large knowledge base for inferring contextual information and enabling accurate and timely recommendations. We present a versatile approach for a context-aware recommender system in the tourism domain by crawling publicly available information from a variety of sources and learning the contextual popularity of points of interest based on a generalized check-in model. We have deployed a test instance of our system for the greater area of Munich and the German state of Bavaria. Analyzing the results from the o ine learning has led to interesting insights including when and in which weather conditions certain items are popular.</p>
      </abstract>
      <kwd-group>
        <kwd>Information systems ! Recommender systems</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Recommender systems are a composition of software tools
and techniques that suggest items to users that are likely to
be interesting to them and relevant to their needs [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
Traditional recommender systems consider items liked/rated by
users in the past and possibly some additional information
such as item characteristics to estimate the ratings for items
that the users have not yet consumed [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Applications range
from suggesting products that have been bought together by
other users in the past over suggesting people a user might
know based on their existing list of friends to suggesting
music based on genres listened to.
      </p>
      <p>
        Context-aware recommenders enhance traditional
recommender systems by incorporating the knowledge of di erent
contextual factors - such as time or weather information
to further improve the item suggestions made to a user [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
These systems seek to better match users and their current
context with items that are popular in the same or similar
contexts.
      </p>
      <p>
        One major application area of context-aware recommender
systems is travel and tourism, where scenarios are signi
cantly more complicated than traditional user-product
matchings [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In addition to the general preferences of a user, the
utility and relevance that a point of interest (POI) has to
a user heavily depends on the user's current context. A
beer garden, for instance, would provide a higher value to
the user on sunny summer days rather than on rainy winter
days and a car that knows a driver's route, fuel level and gas
prices can make better suggestions for gas stations to refuel.
This is especially important in the scenario of a proactive
recommender system [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], 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
request.
      </p>
      <p>In our research, we propose, implement and evaluate a
novel approach for a context-aware recommender system in
the tourism domain by aggregating publicly available
information from a variety of sources and learning the
contextual popularity of POIs based on a generalized check-in
model. We aggregate di erent types of data, including POIs,
check-ins and contextual information to build a knowledge
base and infer knowledge about the contextual popularity of
items focussing on aspects of temporal and geographic
context. The gained knowledge can also be utilized to mitigate
cold-start problems when no or little information about the
user is available.</p>
      <p>In the following, we rst explore related work (Section 2),
describe the context model, data sources and system design
of our implementation (Section 3) and then present the
process and results of analyzing the data (Section 4). Finally,
Section 5 draws conclusions and discusses open future work
directions.
2.</p>
    </sec>
    <sec id="sec-2">
      <title>RELATED WORK</title>
      <p>
        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 speci c contextual situations of the user and the
recommended items (e.g., weather, temperature, season and
mood) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. There exist numerous commercial and research
systems, such as Foursquare, Yelp, South Tyrol Suggests
(STS) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and ReRex [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], that have already been
successfully implemented and that exploit the current user's and
item's context when recommending items. These systems
use di erent approaches to incorporate context into the
recommendation process. Roughly, these approaches can be
divided into three categories [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]: (i) contextual pre- ltering,
where context is used for selecting the relevant set of
ratings before computing predictions with a traditional,
twodimensional prediction model; (ii) contextual post- ltering,
where context is used to adjust the recommendation list
resulting from a two-dimensional rating prediction model; and
(iii) contextual modeling, where context is directly
incorporated into the prediction model.
      </p>
      <p>
        Most current context-aware recommender systems work
in pull mode, i.e., the user has to explicitly make a request
(pull) for recommendations, possibly by entering
information about her preferences, needs and constraints. A new
generation of context-aware recommender systems, called
proactive recommender systems, are instead pushing
recommendations to users without their speci c request, when
they are in a contextual situation that the system considers
as suitable for the recommendations [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Despite the
advantages of proactive recommender systems - especially in
mobile usage scenarios - relatively little research has been
conducted speci cally on this topic. One example is [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ],
where the authors proposed a proactive recommender
system model consisting of two phases: (i) the situation
assessment phase, which evaluates whether or not the current
contextual situation calls for a recommendation; and (ii)
item assessment phase, which is only executed when the rst
phase indicates a promising situation and assesses the
candidate items to nally decide which items should be pushed to
the user as recommendations. Subsequent work in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] has
evaluated the e ectiveness of the proposed model by
applying it to a restaurant recommender system, and found that
users highly appreciate proactive recommendations if they
are relevant and properly timed.
      </p>
      <p>
        In another work, Dali et al. [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] presented di erent
timing models based on random forest to classify user contexts
that are suitable for recommendations and user contexts in
which users are highly likely to refuse any recommendations.
Results from a user study revealed that a hybrid model that
rst decides whether it should use a personal or non-personal
timing model, and then classi es whether the context is
suitable for recommendations is superior to both the personal
or non-personal timing models.
      </p>
      <p>
        In another study, Pielot et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] showed that boredom
can be inferred from patterns of mobile phone usage and
that users are more likely to appreciate proactive
recommendations during inferred phases of boredom. Hence, they
concluded that using boredom as trigger independent from
content might help to make proactive recommendations a
more pleasant experience for users.
      </p>
      <p>
        Finally, Borr s et al. [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] survey intelligent recommender
systems in travel and tourism and also mention context and
proactivity as important factors.
      </p>
    </sec>
    <sec id="sec-3">
      <title>CONTEXT, DATA SOURCES AND SYS</title>
    </sec>
    <sec id="sec-4">
      <title>TEM DESIGN</title>
      <p>In order to create a versatile system that can gather
relevant data for any geographic area and infer the contextual
popularities of POIs, we rst discuss the context model that
our work is based on. This leads to the features we need to
extract from the data we crawl. We then discuss di erent
data sources for items, check-ins and context and present a
brief system design of both the backend implementation and
a corresponding mobile client.
3.1</p>
      <p>
        Our research is based on a context model for proactivity in
mobile recommender systems de ned by Worndl et.al. [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ].
The model relies on domain-dependent context modeling in
four distinct categories: user context, temporal context,
geographic context and social context. The recommendation
process itself is divided into two phases to rst analyze the
current situation and then examine the suitability of
particular items. This allows for both a proactive and passive
recommender system.
      </p>
      <p>The context model de nes the data we need to aggregate
and the features that should be extracted. In particular, we
want to infer the temporal and geographic context of items.
The user context is extracted directly in our mobile app
prototype in a later stage. The social context is neglected in our
prototype but could be integrated in our approach. Based
on this context model, we focus on the following
contextual features: weather condition, temperature, season, day
of week, time of day and time of year.
3.2</p>
    </sec>
    <sec id="sec-5">
      <title>Data Sources</title>
      <p>The overall goal of this work to recommend POIs in a
mobile tourist guide based on publicly available data sources.
We therefore need to acquire and aggregate data in three
categories: items (the POIs), check-ins (to determine the
popularity of items) and context.
3.2.1</p>
      <sec id="sec-5-1">
        <title>Items</title>
        <p>The POIs form the foundation of our system as the user's
overall perception of the system rst and foremost depends
on the quality and suitability of the recommended items. We
therefore designed a general model for an item in our domain
that can then be populated with data. Core data elds
include: name, description, location, images, phone, rating,
street, city, country. While the core elds should always be
populated, each data source's crawler can de ne additional
elds it wants to persists. Based on this model, we examined
di erent, publicly accessible data sources: Foursquare, Yelp,
Quermania, Facebook, Wikipedia, Open Street Maps. We
designed and implemented crawlers for each of those sources
and aggregated over 175,000 items for the German State of
Bavaria.
3.2.2</p>
      </sec>
      <sec id="sec-5-2">
        <title>Check-ins</title>
        <p>Based on this knowledge base of 175,000 items, we want
to infer the popularity in accordance to the context model.
Our premise is that a place is popular if many people visit it.
It follows that a place is popular in a certain context (e.g. on
a sunny Saturday evening in summer) if many people visit
it when this context condition applies.</p>
        <p>
          To infer this knowledge, we must rst de ne a model for
determining how popular a place is at a given time or any
other context. We base this model on a generalized
checkin. In our model, a check-in can be any evidence that a
user visited a place at a certain time. This includes an
explicit check-in on Foursquare or Facebook, as well as implicit
check-ins by taking a picture or generating a GPS trace on
a smartphone. A check-in marks a singular point in time.
To make an educated judgement on how many people are
present at any point in time, we must further make an
assumption about the average duration of a visit. There has
been research on the activity duration of di erent activities
[
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] that we use to infer the number of present users from
check-ins at any point in time based on the POI type.
        </p>
        <p>We looked at di erent 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
geotagged 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
description is provided for most of the images. We used Flickr
as the primary source of check-ins for rural areas,
establishing 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.</p>
        <p>Twitter o ers a large number of tweets that can be
associated with a place and hence counted as a check-in. There
are two main features, that can be used for association:
geotagged 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 insu cient for cities due to the number of places
being close to each other. Twitter places specify a speci c
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.</p>
        <p>
          Foursquare has an explicit check-in feature - similar to
Facebook - that would let users check-in at a place using a button
in their app. In addition, Foursquare samples the user's
location on the smartphone to proactively recommend POIs.
While this data seems promising, none of it is publicly
accessible and was therefore not used for our prototype. On the
contrast, some users link their Twitter account with their
Foursquare account resulting in each explicit check-in
triggering a public tweet. Following the approach proposed by
Melia and Segui [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ], we extracted this information from the
tweets we collected and linked them to Foursquare venues in
our database. Based on our Twitter dataset of 29m tweets,
we successfully linked 2.9m tweets to a Foursquare Swarm
POI. The association rate for the German state of Bavaria
was 8 check-ins (tweets) per 1,000 POIs and enriched our
dataset for cities.
3.2.3
        </p>
      </sec>
      <sec id="sec-5-3">
        <title>Context</title>
        <p>Based on the aggregated knowledge base of items and
check-ins we now want to add a third data source to
enrich our data with context. We hereby focus primarily on
dimensions of the geographic and temporal context. Given
the timestamp of a single check-in we can infer all attributes
of the temporal context using a static calendar library. We
therefore use java.util.Calendar to infer season, day of week,
time of day and time of year. To infer the weather
condition and temperature of check-ins we added Wunderground's
Weather History API that can be used to provide the weather
for a place at any given time in the past. Using these two
sources, we were able to infer the temporal and geographic
context for all check-ins.
3.3</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>System Design and Server Implementation</title>
      <p>We implemented our prototype in Scala using the Play!
framework. Scala is a language that is executed on top of
the Java Virtual Machine and is fully interoperable with
Java. The language combines object-oriented programming
with functional programming which makes operations on
arrays and lists easy to implement. On top, all Java libraries
are usable in Scala which is a major bene t. The Play!
framework o ers a modern web MVC architecture with a
simple control ow and the advantage of using templates
in the views. We have combined this with Slick - a
functional relational mapper - to have a persistent database layer
based on a performance-tuned MySQL instance. Slick o ers
a clean way of accessing and ltering persistent data sets
using Scala's functional API.</p>
      <p>Data aggregation is either done through a REST API (if
available) or through one of our crawlers. In the course of
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
of these tasks with on-demand resources, while maintaining
only one dedicated server at all times. We used SQS, a
distributed pipe service, to communicate between the di erent
servers.
3.4</p>
    </sec>
    <sec id="sec-7">
      <title>Mobile Application Design</title>
      <p>
        We have also designed, developed and tested a user
interface concept to investigate how to communicate
contextual information about recommended items to the user in a
mobile tourist guide [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Thereby, the user can retrieve
information about interesting POIs and review various graphs
about the item popularity in an item detail screen. We show
a textual summary of the popularity peak for both weather
and day/time. We also render line and bar charts to show
the popularity across di erent context dimensions, such as
day of the week, time of day (see Figure 1 for an example)
and season. The mobile application was implemented using
the cross-platform framework Ionic and is fully functional.
      </p>
      <p>
        To receive early feedback for our concept, we evaluated
our system in a user study with 14 subjects. The
participants were asked to test the application for two weeks and
then complete a survey about their experience with the user
interface elements. The study results indicated that the
popularity inference and graphs provide bene ts for users. Users
stated that popularity graphs assisted them while deciding
which place to visit. More detailed results of this
preliminary study can be found in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>The focus in this paper is not on the user interface but on
how to analyze the collected data and infer insights that can
then be integrated in a mobile tourist guide. We present our
course of action and the gained results of the o ine learning
in the next section.</p>
    </sec>
    <sec id="sec-8">
      <title>OFFLINE ANALYSIS AND PROBABIL</title>
    </sec>
    <sec id="sec-9">
      <title>ITY LEARNING</title>
      <p>
        To infer basic popularities for di erent conditions we
follow the data analytics process proposed by Runkler [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
The process decomposes the data analytics pipeline into
four steps: preparation, preprocessing, analysis and
postprocessing. Following this process, we have identi ed the
following tasks for each step:
1. Preparation: identifying goals and research question;
data collection.
2. Pre-processing: merging POIs from di erent sources;
associating POIs with check-ins ltering, sampling and
discretization, normalization.
3. Analysis: visualization, popularity inference and
prediction.
      </p>
      <sec id="sec-9-1">
        <title>4. Post-processing: evaluation.</title>
        <p>To follow this process, we de ne an overall research
question and subquestions that we seek to answer.</p>
        <p>Overall research question: how can we learn (infer) the
popularity of POIs for a context-aware recommender
system?
Subquestion 1: how can POIs from di erent sources
be matched and duplicates be eliminated?
Subquestion 2: how can POIs be associated with
checkins?
Subquestion 3: given a set of check-ins for a POI, how
can we infer the popularity under di erent temporal
conditions?
Subquestion 4: given a set of check-ins for a POI, how
can we infer the popularity under di erent geographic
conditions?
Subquestion 5: given a set of check-ins for a POI and
the base popularities, which algorithms are suitable for
making a compound decision/recommendation?
In the following, we present our approaches and results on
these tasks according to the subquestions we are trying to
answer.
4.1</p>
      </sec>
    </sec>
    <sec id="sec-10">
      <title>Merging POIs from Different Sources</title>
      <p>We have added di erent POI sources to our system,
including Foursquare, Yelp and Quermania. Especially
Foursquare and Yelp provide a lot of overlapping data, since both
have restaurants and bars in their database. This leaves
us with the problem of identifying and merging co-referent
POIs, as we do not want to show or recommend the same
POI multiple times.</p>
      <p>
        Merging co-referent POIs has been extensively studied
and there are multiple approaches to the problem, e.g.,
using a fuzzy set and probability theory [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] or a DBSCAN,
a common clustering algorithm [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The fuzzy set approach
assumes, that the majority of POIs are user-generated and
therefore has large di erences in between two versions of a
POI's name. Our data di ers from the assumptions of these
papers in a way, that it is already pre- ltered by Yelp and
Foursquare. We therefore take a simple approach matching
POIs from di erent sources: we compare the Levenshtein
distance of the names of the two POIs in question and
investigate their geographic distance.
4.2
      </p>
    </sec>
    <sec id="sec-11">
      <title>Associating POIs with Check-Ins</title>
      <p>Associating POIs with check-ins is a non-trivial task, given
that the data comes from entirely di erent sources.
Depending on the source of the POI and the check-in, we have
identi ed several ways of creating an association:
4.2.1</p>
      <sec id="sec-11-1">
        <title>POIs with Flickr/Twitter Check-ins</title>
        <p>Flickr and Twitter both provide data records that have
coordinates, a timestamp and some textual data like the
tweet's content or the Flickr image's caption. Associating
these records with a POI presents a hard problem that can
be tackled in many di erent ways:</p>
        <p>Simple Geofencing: The computationally easiest
option is to use a rectangular geofence around a POI and
associate each check-in record within this area with the POI.
This works well for exposed POIs (i.e., satellite POIs that
have no other POIs around them), but is inapplicable to the
majority of POIs in cities including restaurants and bars.</p>
        <p>Advanced Geofencing: To improve both the FPR (false
positive rate) and FNR (false negative rate) of the simple
geofencing approach, we propose a more complex way of
setting up the geofence. Depending on the POI's type, a
more complex geofence structure can range from a smaller
circle (suitable, e.g., for bars or restaurants in cities) to a
polygon following the shape of ski slopes or trails.</p>
        <p>Clustering: can be done in a supervised, unsupervised or
semi-supervised fashion. A supervised clustering approach
would assume that we have a couple of check-ins per POI
where we have obtained evidence that they belong to this
POI. Other nearby check-ins could be associated using
algorithms like KNN (see Evidence-based Clustering below). An
unsupervised approach could use algorithms like DBSCAN
to discover clusters in unclassi ed data. Once the algorithm
has discovered clusters, we could use di erent techniques to
associate POIs with clusters.</p>
        <p>Evidence-based Clustering: As mentioned with simple
clustering, one approach could be to use supervised or
semisupervised clustering for association. To start this algorithm
we would need a base dataset of check-ins that are associated
with POIs. One approach to generate such a dataset would
be to use evidence from the metadata. Most tweets/Flickr
descriptions contain the topic of the tweet or image such
as "Neuschwanstein". Using simple word-matching or more
complex NLP techniques we would obtain a base set of
check-ins to use for clustering and association.</p>
        <p>We use Flickr and Twitter check-ins for exposed sights to
deliver a proof of concept for our pipeline and model and
could therefore use simple geofencing to associate check-ins
with POIs (by a square whose size depends on the POI type).
Our approach has linked 280,983 check-ins with 177 sights.
While this approach was su cient for our use case, future
work could lie in exploring other association techniques to
make using these check-in sources viable for more densely
populated areas.
4.2.2</p>
      </sec>
      <sec id="sec-11-2">
        <title>Foursquare POIs to Check-ins using Twitter</title>
        <p>
          As brie y outlined before, Melia and Segui [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] proposed an
approach to aggregate public Foursquare (Swarm) check-ins
using Twitter. Foursquare users that have linked their
account with Twitter will automatically publish a tweet if they
check-in publicly. By analyzing the corresponding tweets
using our data processing pipeline, we obtain the unique
Foursquare ID of the POI where the user checked-in. In
addition, we obtain the timestamp of the tweet and hence the
check-in.
        </p>
        <p>This approach is promising, as it established a de nitive
relation between a check-in and a POI (i.e., there are no
false-positives). We have aggregated a mixed data set of
tweets containing both geo-located tweets and tweets linked
to public Foursquare and Swarm check-ins using the
streaming API over eight weeks. The dataset has 29m tweets
in total, 2,9m of which we have successfully linked to a
Foursquare or Swarm POI.</p>
        <p>Our prototype only incorporates POIs in the German State
of Bavaria. We could therefore only use a small subset of
the 2.9m tweets that link to a POI in our region. We could
match tweets and POIs at a rate of 8 check-ins (tweets) per
1,000 POIs. This number is relatively low compared to the
e ort it took to obtain the data using the pipeline we
outlined earlier. While this was not an ideal t four our use case,
the approach can be a better choice in regions with higher
Foursquare adoption (such as New York or San Francisco).
4.3</p>
      </sec>
    </sec>
    <sec id="sec-12">
      <title>Filtering, Sampling and Normalization</title>
      <p>Until this point, we have crawled POIs, check-ins and
context and associated POIs with check-ins. The next step is to
lter the dataset to increase its quality, decide on sampling
for context parameters and perform normalization if needed.</p>
      <p>Filtering: For the qualitative evaluation and our mobile
app prototype we focus on exposed sights out of our large
POI dataset and have identi ed 176 sights with a high POI
to check-in matching having both a low FNR and FPR.
Furthermore, we lter out POIs that have less then 400
checkins (on average each POI has 1570 check-ins) to retain a
good accuracy for all contextual popularities. All contextual
popularity groups partition the remaining check-ins into a
maximum of 7 groups yielding 57 check-ins on average per
group. This ltering gives us a set of 114 sights in the greater
area of Munich and the German State of Bavaria that we use
for further processing.</p>
      <p>Sampling: The next step to aggregate the popularity is
to de ne what dimensions should be explored and if a
dimension 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 xed number of buckets (e.g.,
seven for Day of Week ) and assigning check-ins to buckets is
trivial. Continuous variables however, are more di cult as
questions like "How popular is this POI at 10am?" can not
be holistically answered using sampling and buckets, since
when settling on a xed bucket size (e.g., half an hour) the
question "How popular is this POI at 10:11am?" can not
be answered accurately. When decreasing the bucket-size,
buckets will only have a few check-ins as a check-in only
marks a speci c timestamp making the popularity
impossible to infer.</p>
      <p>
        We therefore explored related work on activity duration
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] to assign a presence window to each check-in accounting
for the time a user was present at the POI. The activity
duration depends on the POIs category and ranges from 7:43
min for breakfast to 19:01 min for dinner. Parks and
outdoor have a mean activity duration of 11:21 min. Given
this knowledge, we set a bucket-size of 5 min and count the
check-in towards three buckets for sights. In this approach
we model a user's presence at a given time by adding 1 to
three buckets. With this information, we can accurately
answer questions in the form of "How popular is this POI at
10:11am?", as we have a bucket ranging from 10:10:00am to
10:14:59am. However, with this model we neglect the
uncertainty at the beginning and end of the activity interval. The
source of this uncertainty is the fact, that we only know one
timestamp and infer the user presence window through
(assumed) activity durations yielding a high uncertainty at the
beginning and end of this interval. An alternative modeling
approach could be to use Gaussians to augment presence
intervals. This way, we can model the uncertainty in a
statistically correct way.
      </p>
      <p>We regard the Gaussian modeling as future work and
base our presence interval on activity durations without
augmenting Gaussians. We introduce feltTemperature as a
discretization of the continuous temperature as this simpli es
inference and makes our predictions easier to understand for
users. Table 1 shows our set of inferred contextual variables
for both the geographic and temporal context.</p>
      <sec id="sec-12-1">
        <title>Variable</title>
        <p>dayOfWeek
timeOfDay</p>
        <p>season
feltTemperature
weatherCondition</p>
      </sec>
      <sec id="sec-12-2">
        <title>Type D C D</title>
        <p>D
D</p>
      </sec>
      <sec id="sec-12-3">
        <title>Domain</title>
        <p>fMon,...,Sung</p>
        <p>[0,23]
fSpring,Summer,Fall,Winterg
fHot,Warm,Pleasant,</p>
        <p>Mild,Cold,Freezingg
fSunny,Cloud,Rainy,Snowyg</p>
        <p>Normalization: Figure 2 shows an aggregation of all of
our check-ins on a weekly basis using the presence window
approach based on a presence window of 1 hour. One can
clearly see from the graph, that about twice as much
checkins are made during weekends, than there are on a weekday.
We have therefore thought about normalizing the data as
a whole to have the same relative amount of check-ins per
discrete bucket (e.g. Mon-Fri).</p>
        <p>After investigating our data in close detail, we decided
against normalization as users tend to visit more POIs on
the weekends/evenings when they spend leisure time. We
therefore anticipate, that the weekend cli s (as well as some
other data patterns) are correct and bene cial for the sake
of popularity inference.
4.4</p>
      </sec>
    </sec>
    <sec id="sec-13">
      <title>Visualization, Popularity Inference and Prediction</title>
      <p>4.4.1</p>
      <sec id="sec-13-1">
        <title>Visualization</title>
        <p>To e ectively visualize our data, we created multiple
analysis tools based on our server-side software. For e ective
analysis of the check-in data we build a tool to visualize
different features of geo-based check-ins without an association
to any POI. Our tool, as depicted in Figure 3, is able to
apply a geofence to lter check-ins and compare the selected
area to a baseline of all known check-ins which makes it easy
to spot interesting patterns. Figure 3 shows all check-ins on
a weekly level for the northern end of Starnberger See. This
is a good example for the e ectiveness of our tool, showing
that this part of the lake is popular on Friday afternoon as
well as on the weekend.</p>
        <p>After an initial analysis using these tools, we started to
model the popularity inference. For this purpose, we created
di erent views, such as the one depicted in Figure 4, to
visualize the inference outcome. Our view shows the
probabilities (popularities) under di erent temporal and geographic
conditions highlighting them with a gradient in red color
such that one can easily spot patterns in the data.
4.4.2</p>
      </sec>
      <sec id="sec-13-2">
        <title>Popularity Inference</title>
        <p>Until this point, our analysis and visualizations yielded
promising patterns. We now take a probabilistic approach
to infer popularities for di erent contextual situations. The
outcome we seek is the popularity P of a POI given a context
C:
p(P jC)
(1)</p>
        <p>When thinking about context and di erent dimensions as
described before it would be most bene cial to split up C
into temporal and geographic dimensions and their
respective parameters (temperature t, weather condition wc,
season s, weekday wd, etc.). This yields probabilities of the
form:</p>
        <p>p(P jt); p(P jwc); p(P js); p(P jwd)</p>
        <p>Having these base popularities would allow for compound
calculations yielding the probability for a visit V to a certain
POI given a situation with xed contextual parameters:</p>
        <p>The concept of a visit is that given that a user will
certainly visit a POI, what is the probability that the visit will
happen at the context C.</p>
        <p>There are di erent approaches to model the statistical
dependence of context factors like weather condition and
temperature (e.g., it does not snow when having 20 C) including
Bayesian networks. While a full Bayesian model can increase
accuracy, it requires a high degree of domain knowledge
about the data and all parameters that is hard to obtain.
We therefore use summation to infer the plain popularities
for each context parameter:
p(P jwd = M onday; V = W alhalla)
= p(wd = M ondayjV = W alhalla)</p>
        <p>=
p(wd = M ondayjV = W alhalla)</p>
        <p>P</p>
        <p>CheckinsF orP OIOnMonday</p>
        <p>P</p>
        <p>CheckinsF orP OI
(2)
(3)
(4)
(5)
(6)
(7)</p>
        <p>This approach yields a probabilistic distribution for each
POI and each context dimension as depicted in Figure 4
which lets one judge under which conditions a place is
popular. We can use prediction and the Bayes' theorem to make
compound recommendations.
4.4.3</p>
      </sec>
      <sec id="sec-13-3">
        <title>Prediction</title>
        <p>With prediction or recommendation, we seek to answer
the question "Where should I go (given the current
timestamp and weather)?". With respect to our model, this would
mean: what is the probability (or score) that I should choose
a POI for my visit V given the inferred popularities of all</p>
        <sec id="sec-13-3-1">
          <title>POIs P and the current context C:</title>
          <p>For each POI we add the popularity for a speci c set of
context dimension (weather condition wc, temperature t,
day d, season s, hour h) that we want to predict a score for.
Furthermore, we multiply each dimension by a weighting
factor to make the model exible. While we used static
weights, future work could include learning of through
online of o ine learning techniques.</p>
          <p>While this model works well, it does not respect the
different number of check-ins between POIs. Thus a POI with
only 400 check-ins might outperform a POI with 4,000
checkins, as the popularity values are better, while - in absolute
visitor numbers - the second POI outperforms the rst. This
issue is addressed by an approach using Bayes' theorem.</p>
        </sec>
      </sec>
      <sec id="sec-13-4">
        <title>Bayes Theorem.</title>
        <p>Bayes' theorem can be used to inverse a dependent
probability. Using summation to obtain the base probabilities as
outlined in the previous section yields probabilities in the
form of:</p>
        <p>p(wd = M ondayjV )
In other words, this means: "given that I visit a POI, what
is the probability I would visit it on Monday?" (or: "what
is this POI's Monday popularity"). When recommending
items, we would like to answer questions of "It is Monday,
which POI should I visit?":</p>
        <p>p(V jwd = M onday)
So for a concrete POI (Walhalla) we can use Bayes' theorem
to get the probability for a visit given our limited set of POIs
and the premise that the user will visit one of these:
p(V = W alhallajwd = M onday)
=
p(wd = M ondayjV = W alhalla)p(V = W alhalla)
p(wd = M onday)
(12)
All of the parameters from this model can be retrieved from
our dataset:
p(V = W alhalla) =</p>
        <p>p(wd = M ondayjV = W alhalla)
(as obtained in the previous section)</p>
        <p>P</p>
        <p>CheckInsAtW alhalla</p>
        <p>P</p>
        <p>AllCheckIns
p(wd = M onday) =</p>
        <p>P</p>
        <p>AllCheckInsOnMonday</p>
        <p>P</p>
        <p>AllCheckIns
(10)
(11)
(13)
(14)
(15)
when being relatively unpopular and therefore used weighted
additive scoring.</p>
        <p>Using either one of those strategies leaves us with a
probability (popularity) for each POI in the database, which can
be used for ranking in combination with a standard weighted
additive scoring approach for recommending a POI based on
the di erent context factors.
4.5</p>
      </sec>
    </sec>
    <sec id="sec-14">
      <title>Evaluation of Post-Processing</title>
      <p>We discussed di erent types of evaluations for this part of
our research with peers from the eld of machine learning.
While machine learning and data analytics applications are
usually evaluated using cross-validation or any other sort of
quantitative o ine evaluation, we did not see a t for these
types of evaluations given our data and inference schema.
We therefore decided to rst evaluate our research by
qualitatively assessing inferred popularities for selected results
in a case study and discussing interesting ndings and
patterns. The ultimate goal is to integrate the results about
item popularities into the mobile application (see
Subsection 3.4) and conduct a large-scale user study to get real
feedback.</p>
      <sec id="sec-14-1">
        <title>Inferred Seasonal Popularity.</title>
        <p>The inferred seasonal popularity performed best among all
our inferred parameters. An excerpt of the POI data with
seasonal popularity is shown in Table 2. While cities like
Bad Tolz or Nurnberg are equally popular throughout the
year, other sights peak in certain seasons. Kehlsteinhaus for
instance - a tea house built for the Third Reich government
that has been turned into an exhibition - is closed during
spring and winter (November - April), as the road can not
be maintained as soon as there is snowfall. It can be easily
seen that this shutdown persists in the data making the
sight less popular during winter and spring. Other places for
outdoor activities show a clear tendency towards the warmer
periods of the year, including Walchensee (being popular
during Summer and Fall), Starnberger See (Summer) and
Konigssee (Summer and Fall).</p>
        <sec id="sec-14-1-1">
          <title>POI Name</title>
          <p>Bad Tolz
Nurnberg
Walchensee
Kehlsteinhaus
Starnberger See
Kloster Andechs
Konigssee</p>
        </sec>
      </sec>
      <sec id="sec-14-2">
        <title>Inferred Weather Condition Popularity.</title>
        <p>The weather condition overall has a clear tendency
towards sunny weather, with more then 90% of the dataset
having a sunny popularity of 0.5 or higher. Nonetheless,
there are still some patterns to get indications if the
inference 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
higher sunny popularity. Table 3 shows an excerpt from
inferred weather condition popularities.</p>
        <p>
          We found, that using a Bayesian approach
disproportionally favors POIs that have a high number of check-ins even
In this work, we have designed and implemented a data
analytics process to infer the popularity of POIs for a
contextaware recommender system using publicly accessible data
from various data sources. We have elaborated di erent
approaches on individual subtasks, e.g., applying probabilistic
modeling to learn the popularity for POIs in di erent
contextual situations such as weather condition, day of week
and time of day. We qualitatively evaluated our approach
in a case study and also implemented a corresponding mobile
application with a brief preliminary user study [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ].
        </p>
        <p>In addition to the explained results, we discovered other
useful purposes for the dataset and the inferred information.
For example, to determine and visualize popular areas on
a map. This could be useful for visitors to nd spots for
taking iconic pictures or maybe nd a less-crowded spot and
avoid the most popular areas. To do so, we ltered our data
by rst selecting the check-ins associated with a POI and
then applying another lter to eliminate check-ins with an
accuracy worse then 10 meters. Then this ltered dataset is
fed into a heatmap algorithm for visualization using Google
Maps' heatmaps extension. Figure 5 shows popular (photo)
spots around Neuschwanstein Castle as an example.</p>
        <p>Future work includes integrating the item popularities
into the mobile tourist guide application and proactively
recommending POIs based on the current user context. We
then plan to conduct a larger user study to investigate whether
this approach leads to useful and timely recommendations
from a user's perspective in a real setting. Another area for
improvement is not to solely rely on explicit user check-ins
but also utilize tracking data from smartphones.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>G.</given-names>
            <surname>Adomavicius</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Tuzhilin</surname>
          </string-name>
          .
          <article-title>Context-aware recommender systems</article-title>
          .
          <source>In Recommender systems handbook</source>
          , pages
          <volume>191</volume>
          {
          <fpage>226</fpage>
          . Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>L.</given-names>
            <surname>Baltrunas</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Ludwig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Peer</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricci</surname>
          </string-name>
          .
          <article-title>Context relevance assessment and exploitation in mobile recommender systems</article-title>
          .
          <source>Personal and Ubiquitous Computing</source>
          ,
          <volume>16</volume>
          (
          <issue>5</issue>
          ):
          <volume>507</volume>
          {
          <fpage>526</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>J.</surname>
          </string-name>
          <article-title>Borr s, A. Moreno, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Valls</surname>
          </string-name>
          . Review:
          <article-title>Intelligent tourism recommender systems: A survey</article-title>
          .
          <source>Expert Syst. Appl.</source>
          ,
          <volume>41</volume>
          (
          <issue>16</issue>
          ):
          <volume>7370</volume>
          {
          <fpage>7389</fpage>
          ,
          <string-name>
            <surname>Nov</surname>
          </string-name>
          .
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>M.</given-names>
            <surname>Braunhofer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Elahi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricci</surname>
          </string-name>
          .
          <article-title>Usability assessment of a context-aware and personality-based mobile recommender system</article-title>
          .
          <source>In E-commerce and web technologies</source>
          , pages
          <volume>77</volume>
          {
          <fpage>88</fpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>N. Dali</given-names>
            <surname>Betzalel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Shapira</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L.</given-names>
            <surname>Rokach</surname>
          </string-name>
          . Please, not now!:
          <article-title>A model for timing recommendations</article-title>
          .
          <source>In Proceedings of the 9th ACM Conference on Recommender Systems</source>
          , pages
          <fpage>297</fpage>
          {
          <fpage>300</fpage>
          . ACM,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>M.</given-names>
            <surname>Daszykowski</surname>
          </string-name>
          and
          <string-name>
            <given-names>B.</given-names>
            <surname>Walczak</surname>
          </string-name>
          .
          <article-title>Density-Based Clustering Methods</article-title>
          .
          <source>Comprehensive Chemometrics</source>
          ,
          <volume>2</volume>
          :
          <fpage>635</fpage>
          {
          <fpage>654</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>P.</given-names>
            <surname>Hiesel</surname>
          </string-name>
          , W. Worndl, M. Braunhofer, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Herzog</surname>
          </string-name>
          .
          <article-title>A User Interface Concept for Context-Aware Recommender Systems</article-title>
          . In Mensch und Computer 2016 Tagungsband. De Gruyter,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>J.</given-names>
            <surname>Melia-Segu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Zhang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>E.</given-names>
            <surname>Bart</surname>
          </string-name>
          .
          <article-title>Activity duration analysis for context-aware services using foursquare check-ins</article-title>
          .
          <source>In Proceedings of the 2012 international workshop on Self-aware internet of things</source>
          , pages
          <volume>13</volume>
          {
          <fpage>18</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Pielot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Baltrunas</surname>
          </string-name>
          , and
          <string-name>
            <given-names>N.</given-names>
            <surname>Oliver</surname>
          </string-name>
          .
          <article-title>Boredom-triggered proactive recommendations</article-title>
          .
          <source>In Proceedings of the 17th International Conference on Human-Computer Interaction with Mobile Devices and Services Adjunct</source>
          , pages
          <volume>1106</volume>
          {
          <fpage>1110</fpage>
          . ACM,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>F.</given-names>
            <surname>Ricci</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Rokach</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Shapira</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P. B.</given-names>
            <surname>Kantor</surname>
          </string-name>
          .
          <source>Recommender Systems Handbook</source>
          . Springer Verlag, New York, NY, USA,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>T. A.</given-names>
            <surname>Runkler</surname>
          </string-name>
          .
          <article-title>Data Analytics: Models and Algorithms for Intelligent Data Analysis</article-title>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>G. D.</given-names>
            <surname>Tre</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Bronselaer</surname>
          </string-name>
          .
          <article-title>Consistently handling geographical user data: Merging of coreferent POIs</article-title>
          .
          <source>In Proceedings of the 2010 Annual Meeting of the North American Fuzzy Information Processing Society (NAFIPS)</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>D. G.</given-names>
            <surname>Vico</surname>
          </string-name>
          , W. Worndl, and
          <string-name>
            <given-names>R.</given-names>
            <surname>Bader</surname>
          </string-name>
          .
          <article-title>A study on proactive delivery of restaurant recommendations for android smartphones</article-title>
          .
          <source>In ACM RecSys workshop on personalization in mobile applications</source>
          , Chicago, USA,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>W.</given-names>
            <surname>Wo</surname>
          </string-name>
          <article-title>rndl</article-title>
          , J. Hubner, R. Bader, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Gallego-Vico</surname>
          </string-name>
          .
          <article-title>A model for proactivity in mobile, context-aware recommender systems</article-title>
          .
          <source>In Proceedings of the fth ACM conference on Recommender systems</source>
          , pages
          <volume>273</volume>
          {
          <fpage>276</fpage>
          . ACM,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>