=Paper= {{Paper |id=Vol-1438/paper10 |storemode=property |title=Recommender Systems for the People - Enhancing Personalization in Web Augmentation |pdfUrl=https://ceur-ws.org/Vol-1438/paper10.pdf |volume=Vol-1438 |dblpUrl=https://dblp.org/rec/conf/recsys/WischenbartFRW15 }} ==Recommender Systems for the People - Enhancing Personalization in Web Augmentation== https://ceur-ws.org/Vol-1438/paper10.pdf
                Recommender Systems for the People —
            Enhancing Personalization in Web Augmentation ∗

           Martin Wischenbart                                        Sergio Firmenich,                             Manuel Wimmer
     CIS, Johannes Kepler University                                  Gustavo Rossi                            BIG, Vienna University of
              Linz, Austria                                 LIFIA, Universidad Nacional de La                    Technology, Austria
             martin@cis.jku.at                                Plata and CONICET, Argentina                  wimmer@big.tuwien.ac.at
                                                                  [firstname].[lastname]
                                                                  @lifia.info.unlp.edu.ar

ABSTRACT                                                                             ins such as GreaseMonkey1 , and without the inclusion of
Web augmentation techniques allow the adaptation of web-                             the sites’ webmasters. These user scripts are often publicly
sites on client side using browser extensions or plug-ins de-                        shared, and to date there are several large repositories pro-
signed to run dedicated user scripts. However, while number                          viding a vast amount of various scripts for all kinds of Web
and variety of such scripts from publicly available reposito-                        pages and modification tasks. For instance, GreaseFork2
ries have grown remarkably in recent years, they usually                             has more than six thousand scripts, some of which are in-
neglect the user’s personal profile or individual preferences,                       stalled more than fifty thousand times. Another well-known
and therefore fail to provide enhanced personalized services.                        repository, called UserScripts3 , hosts more than one hun-
At the same time recommender systems have become power-                              dred thousand scripts. Examples range from layout modifi-
ful tools to improve personalization on the Web. Yet, many                           cation and tweaks (e. g., regarding video player size, video
popular websites lack this functionality, e. g., for missing fi-                     & audio customizations, etc.) on youtube.com4 , managing
nancial incentive. Therefore, we present a novel approach to                         comments on geocaching.com5 , to improving navigation on
empower user script developers to build more personalized                            dropbox.com by rendering a Tree View panel6 .
augmenters by utilizing collaborative filtering functionality                           Unfortunately, as pointed out by a recent survey [8], and
as an external service. Thus, script writers can build rec-                          according to our own experience, current technologies for
ommender systems into arbitrary websites, in fact operating                          adapting the Web browsing experience still do not suffi-
across multiple website domains, while guarding privacy and                          ciently support individual personalization, as it is provided
supplying provenance information. This paper discusses the                           by applications incorporating recommender system function-
architecture of the proposed approach, including real-world                          ality. Consequently, with a single Web augmentation artifact
application scenarios, and presents our tool kit and pub-                            (i. e., script) every user has the same experience.
licly available prototype. The results show the feasibility of                          Recommender systems meanwhile have a longer standing
combining Web augmentation with recommender systems,                                 history in various domains, such as e-commerce or music
to empower the crowd to build new kinds of applications for                          recommendations, and have become one of the most popu-
a more personalized browsing experience.                                             lar ways to personalize services and user experience. Com-
                                                                                     monly, they are classified [17] into content-based, collabo-
                                                                                     rative, knowledge-based, as well as hybrid approaches. Al-
1.     INTRODUCTION                                                                  though all these approaches rely on a user model, they dif-
  In recent years web augmentation techniques, i. e., the                            fer in how they build this model, and they exploit different
addition of external content or behaviour to Web pages,                              kinds of additional information and algorithms for present-
have become a popular means for end users to adapt pages                             ing personalized recommendations of items to the user. For
according to their own requirements, with reduced depen-                             instance, collaborative approaches, also known as collabo-
dency on the website provider. Thereby, advanced users                               rative filtering or community-based, take into account the
with knowledge of JavaScript, so-called scripters, write (user)                      opinions of large amounts of users to make predictions about
scripts to modify web pages, which are then executed within                          a specific user’s preferences for items. Despite their poten-
the browser on client side – using dedicated browser plug-                           tial, however, oftentimes websites do not implement recom-
                                                                                     mendation services, either because of lack of economic incen-
∗This work has been funded by grants Mincyt-bmwf
                                                                                     tives, or simply for lack of know-how on these techniques.
AU/14/02, AU/14/09, öad AR13/2015, ICM-2013-06624.                                     To alleviate these problems, we aim to introduce rec-
                                                                                     ommender system functionality for enhancing personaliza-
                                                                                     tion in Web augmentation, combining the benefits of both
                                                                                     approaches. To illustrate the use of collaborative filtering
                                                                                     1
Permission to make digital or hard copies of all or part of this work for              http://www.greasespot.net (Firefox)
personal or classroom use is granted without fee provided that copies are            2
                                                                                       http://greasyfork.org
not made or distributed for profit or commercial advantage and that copies           3
                                                                                       http://userscripts-mirror.org
bear this notice and the full citation on the first page. To copy otherwise, to      4
                                                                                       http://greasyfork.org/es/scripts/943-youtube-center
republish, to post on servers or to redistribute to lists, requires prior specific   5
permission and/or a fee.                                                               http://userscripts-mirror.org/scripts/show/75959
                                                                                     6
Copyright 20XX ACM X-XXXXX-XX-X/XX/XX ...$15.00.                                       http://greasyfork.org/es/scripts/4955-dropbox-plus/code
for realizing Personalization in Web Augmentation Appli-          orative filtering, in contrast, such explicit domain knowledge
cations (paa) we exhibit an example: The website cock-            is not required, but instead, only explicit or implicit user rat-
tailscout.de is one of largest German language websites           ings (i. e., weighted relations between users and items) are
for cocktail recipes7 , having a community of almost 4000         required. Therefore, for the paa approach we propose to
registered users, who can search, rate and comment recipes        share ratings and compute recommendations using collab-
for drinks. A rating mechanism is used for ranking of recipes,    orative filtering on a dedicated server, not least because of
and averages and distributions of ratings for each drink can      the current trend to cloud services, and protection of users’
be viewed. Yet the users’ individual ratings are not exploited    privacy. Consequently, providing a restful api for standard
to give them personalized recipe recommendations. Instead,        http requests (and a corresponding object-oriented library
the site provides a random link to a recipe on each page.         in JavaScript, the prevailing language in the Web augmen-
Containing more than 1500 recipe items, however, the site         tation community), a recommendation service can be of-
is a perfect target for implementing a collaborative filtering    fered to the exemplary cocktail-drinking hobby JavaScript
recommender system. Based on the tastes of similar users,         programmer. Providing a generic service, the approach has
personalized recommendations for drinks could be presented        the potential to reach and benefit a large existing web aug-
in one of the sidebars, as shown in Figure 1.                     mentation community, and can be employed for arbitrary
                                                                  websites, under control of users and on client-side, and it
                                                                  may even go beyond single domains or the scope of a sin-
                                                                  gle site provider. Thereby, providing a simple and clear api
                                                                  and complete documentation is a key requirement, as we
                                                                  also discovered in the context of the composition language
                                                                  for building personalized recommenders and services in our
                                                                  research project TheHiddenYou [19].
                                                                     In the upcoming Section 2 we discuss related work in the
                                                                  context of our approach. The following Section 3 presents an
                                                                  overview of the approach, including the tasks for scripters.
                                                                  Next, Section 4 introduces several real-world application sce-
                                                                  narios, and demonstrates the approach as seen by the users.
                                                                  Section 5 elaborates on the architecture in detail, in partic-
                                                                  ular the server part, and the paa-api for scripters, which
                                                                  provides the functionality to store and retrieve item ratings,
                                                                  and to retrieve rating predictions and recommendations. In
                                                                  this context important issues are privacy and provenance,
                                                                  issues that are commonly disregarded in the Web augmenta-
                                                                  tion community, but gain importance in the light of a central
                                                                  repository for collecting ratings. Finally, Section 6 discusses
                                                                  our prototype and some practical issues, before Section 7
Figure 1: Adopted cocktailscout.de website with                   presents conclusions and future work.
personalized recommendations augmented (right).
                                                                  2.   RELATED WORK
   Typically, the implementation of such functionality heav-
ily depends on the website provider, and in the world of on-         This section discusses related research in several fields,
line shopping there is a lot of incentive for service providers   such as adaptive hypermedia, Web personalization, recom-
to introduce such recommenders for increasing sales and           mender systems, as well as Web augmentation, and finally
profit. In contrast, for non-commercially oriented websites,      compares our approach to similar approaches which are used
or when items and monetization are not related directly,          in practice.
as with cocktail recipes, there is no such incentive for the         Research on Web personalization has been steadily grow-
site provider. For end users, however, recommender system         ing, and in order to satisfy the huge number of end-users,
techniques are commonly beyond the scope and to complex           several approaches for personalizing Web content have emerged,
to be employed. Nevertheless, users of the CocktailScout          e.g. user profiling for personalization [14], or recommender
website who are hobby JavaScript programmers, might be            systems [17]. In this context different ways for rating have
interested, and have the skills to implement a user script for    been studied [24], and classifications of user feedback have
utilizing the ratings and adding personalized recommenda-         been surveyed (including their correlation to ratings) [18].
tions of recipes. They do, however, lack access to a recom-          Although usually recommenders work on server-side, some
mender system providing them with item recommendations.           approaches for client-side personalization have been devel-
   Such a system could theoretically be implemented as a          oped [2, 16]. In such scenarios, since different Web ap-
content-based recommender on client-side, given a catalog         plications can share a single user profile (e.g. managed on
of items with features (such as a drink’s ingredients), and       client-side using a browser extension), and recommendations
the user’s interests (such as preferences for ingredients). If    may cover different sites. Regardless whether personaliza-
no such item catalog is as available, however, the alterna-       tion mechanisms work on server or client side, these mech-
tive, namely to collect all possible items manually in the Web    anisms are usually specified by website owners, and they
augmentation script, seems to be a tedious task. For collab-      are always limited by the information available on the user
                                                                  profile. Meanwhile browser extensions monitoring user navi-
7                                                                 gation can be used to populate user profiles (with navigation
  Highest global Alexa rank (http://www.alexa.com/) in a
comparison of 13 German language cocktail websites.               history, bookmarks, keywords, etc.) and thereupon recom-
mend relevant Web pages to users [10, 12]. Although there         3.   THE APPROACH IN A NUTSHELL
are some works aiming to define and extract [25] compre-             This section gives an overview of the approach, in partic-
hensive profiles, and analyze their interoperability [5], it      ular as seen by the script writer, referring to the example
is difficult to implement an adaptation mechanism which is        outlined in the introduction. The complete architecture and
broad enough to contemplate every user requirement, espe-         technical details about the server will be explained in Sec-
cially while protecting privacy [20] and providing prove-         tion 5. In short, the paa approach supports the scripter to
nance information [21].                                           make adaptations to the website, as outlined in Figure 2. At
   Web augmentation techniques are another way to achieve         first ratings are collected in the browser by the scripter 1
personalization; augmentation allows users to customize web-      and sent to the server using dedicated api methods 2 . After
site user interfaces (UIs) in terms of content and function-      processing on the server 3 , another set of methods may be
ality, according to their own requirements [11]. Most Web         used to retrieve previous ratings, rating predictions, as well
augmentation approaches are developed as browser exten-           as recommendations 4 , to be finally employed to modify the
sions, and once installed by the user, they modify loaded         page 5 , for instance for link ordering, link hiding, link an-
Web pages, thus altering what the user perceives. In this         notation, or link generation, as classified by Brusilovsky [4].
way, end users with programming skills are the ones cre-          In the following, the five steps are outlined in detail.
ating Web augmentation artifacts. However, most recent               Data Collection 1 : Scripters may rely on an existing
research about Web augmentation do not target personal-           rating mechanism to measure the user’s interest in an item.
ization, but aim to provide tools (frameworks, or languages)      If no such mechanism exits, it can be implemented by the
to solve domain-specific adaptations (i.e., support recurrent     scripter, either in terms of an explicit rating (e. g., 1-5 stars,
tasks, automate tasks, improve accessibility, etc.) or raise      like vs. dislike, etc.) or implicitly computing a score (e. g.,
the abstraction level in order to allow more users (without       based on page visit, time spent on the page, activities such as
advanced programming skills) to specify how they want to          posting comments or uploading pictures). For modeling the
augment their preferred Web sites. For instance, CSWR             user’s interest, we rely on events relating users with items
[13] aims to improve Web accessibility, and WebMakeUp             (both identified with unique ids) and including a numeric
[9] allows end-users to specify their own augmentations. All      score for rating. For presentation purposes later on (cf. 5 ),
these approaches propose a way to customize the Web, but          here we also require additional features about an item, in-
most of them work without an underlying user profile. Web         cluding a human readable name, or meta-info such as an
augmentation may be employed for guiding the user through         image, to be shown as link in the web browser. For the use-
content, whereas the navigation mechanisms are not imple-         case regarding cocktails, this means we will need the drink’s
mented by the content provider himself. Using a collabo-          url, its name, an image url, as well as a user id and the
rative system for recommending items on the Web, in this          numeric rating from the page. Tasks for the scripter: To
context, represents a ‘social mechanism’ with an ‘open cor-       extract all this information, the scripter usually reads the
pus of documents’.                                                Web page’s document object model (dom): 1. Extract a
   A similar kind of systems to adapt existing third-party        unique user id from dom (or rely on user’s login on the paa
Web content are intermediaries [3], which intercept the con-      server’s web interface; cf. Sect. 5); 2. Extract a unique item
tent in a proxy server and not on client-side. From our point     id from dom; 3. Extract further information about the item
of view, and in comparison with intermediaries, Web aug-          from dom, such as name (to be used as link text), or links
mentation approaches are usually more powerful as adapta-         (to be used for image links); 4. Extract the rating value, or
tion mechanisms. Web augmentation tools usually extend            compute a numeric rating from collected explicit or implicit
the Web Browser, and consequenlty these tools give more           user feedback (or rely on default scores of predefined event
information about the users activity than a those systems         types; cf. Sect. 5).
working on a proxy server.                                           Send to Server 2 : As a next step, the previously col-
   Some authors have proposed personalization as a service        lected data must be sent to the server, to ultimately collect
[15], and nowadays there are several companies offering rat-      a large number of such events as basis for the recommender
ing8 and recommendation9 as Web services. Despite simi-           algorithm. Tasks for the scripter: Send data to the server
larities to the proposed paa approach in terms of the em-         via the api, using our provided JavaScript library (parame-
ployed technology, these approaches require changes in the        ter string, or object-oriented), or using http post requests.
”original” Web site, and these changes need to be performed          Processing on Server 3 : On the server events are
by the provider, for instance, by integrating a JavaScript        stored, a timestamp is added, and they are processed to be
library. Furthermore, these approaches require an upload          in a format for being used by the recommender (cf. Sect. 5).
of a complete product catalog beforehand9 , thereby caus-            Retrieval from Server 4 : As a next step, queries may
ing additional maintenance effort. In our proposed paa ap-        be performed from the script, either for any page on the site
proach, this catalog is built on-the-fly, i.e., product details   or pages representing or containing items (i. e., automat-
are pushed to our repository alongside with ratings. Finally,     ically), or on demand of the user (i. e., manually, cf. ‘pull
whereas in recommendation as a service, concrete recom-           recommendations’ [23]). The following data can be retrieved
mendations are rather generic; we argue that a scripter who       from the server: firstly, previously stored ratings including
is an active member from both Web site community and              meta-information, such as average ratings and their distri-
Web augmentation community may have further insight to            butions; secondly, predictions for user ratings; and finally,
exploit domain knowledge about human decision making in           recommendations for items, with the latter two being com-
that community (cf. [6]) for giving item recommendations.         puted on-the-fly using a recommender system library on the
                                                                  server. Tasks for the scripter: Via several dedicated api
8
    Rating-Widget: http://rating-widget.com/                      methods, the scripter can query this information from the
9
    Strands: http://retail.strands.com/                           server, again using our provided JavaScript library or http
                          Collection of user ratings                   addEvent( Tom, http://cocktail.de/pinacolada.htm, "Piña Colada",
                      1 and item data in browser                                "http://cocktail.de/pinacolada.jpg", "rating", 4 )                     Post-Processing
                                                 White Russian: 5
                                                  Piña Colada: 4                               Send data
                                                                                                                                                    3 and storage
                         Tom                        Margarita: 2
                                                    Pisco Sour: 5                          2 to server                    Database
                                                                                                                                                       on server

                                                 White Russian: 4
     Client/Browser


                                                    Pisco Sour: 3
                      Roger                       Piña Colada: 5
                                                    Margarita: 1




                                                                                                                                                                          PAA Server
                                                 White Russian: 1
                                                    Margarita: 4                                                PAA
                      Becky                         Pisco Sour: 5
                                                                                                                API
                                                 White Russian: 4               Recommendations:
                                                  Piña Colada: 5                • 'Pisco Sour'
                                                                                • 'Black Russian'

                         Bob                                        Prediction: 'Black Russian': 4.5

                                                              Rating: 'White Russian': 4; avg: 3.5
                                                                                                                      Recommender
                        Augmentation of ratings, predictions                                      Retrieval
                      5 and recommendations in the page                                       4 from server getRating( Bob, http://cocktail.de/whiterussian.htm )
                                                                                                                 reply: { rating: 4 , avg: 3.5 }
                      getRecommendations( Bob )
                      reply: [ { http://cocktail.de/piscosour.htm, "Pisco Sour", ".../piscosour.jpg"          getPrediction( Bob, http://cocktail.de/blackrussian.htm )
                      } , { http://.../blackrussian.htm, "Black Russian", ".../blackrussian.jpg" } ]          reply: { 4.5 }


Figure 2: Overview of the five steps of the proposed PAA approach as seen by end users and script writers,
including a simplified representation of the communication between client and server.


post requests.
   Augmentation in Page 5 : The previously retrieved
information may finally be augmented in the page. Previ-
ous and average ratings as well as their distributions may
be shown as additional information on the item page, or
for link annotation (cf. [4]), e. g., as popups for all links re-
ferring to drinks. Rating predictions may be employed for
re-ordering items or links on the page, or, if the predicted
score is below a certain threshold, for hiding a link (cf. [4]).
Finally, the provided list of recommendations can be used to
generate (cf. [4]) personalized links on the page, referring to
items the user could be interested in, e. g., as a list of recom-
mended drinks. Tasks for the scripter: The desired results
are displayed on the page by modifying the dom. For show-
ing drink recommendations, this can be achieved by using
the response from the server to add elements and set their
properties. The complete script source code for this example
is available online with our prototype (cf. Sect. 6).
                                                                                                       Figure 3: Example modified bookstore website with
                                                                                                       an augmented rating mechanism (bottom).
4.   APPLICATION SCENARIOS
   This section elaborates on several user script use-cases
that can be realized with our approach, and focuses on ben-
efits for the end user.                                                                                and statistics, as well as to generate personalized recom-
   Cocktail Recipes – Recommendation Scenario. In                                                      mendations. For the scripter this scenario is slightly more
the previous sections and example we based on the example                                              complicated, since it requires the definition of what items
of cocktailscout.de, a site which has almost 4000 regis-                                               can be rated in the first place, i. e., a definition of items to
tered users and more than 1500 recipe items, and an existing                                           be processed by the user script.
rating mechanism. Only by exploiting these ratings on the                                                 Board Games #1 – Using Predictions. In addition
paa server, personalized drink item recommendations can                                                to annotation and generation of links, to improve the visi-
be generated for the user.                                                                             bility of relevant items for the user, rating predictions may
   Bookstore – Rating Mechanism. The Argentinean                                                       be exploited for link hiding and re-ordering. This is partic-
online bookstore cuspide.com provides functionality to com-                                            ularly useful for sites with a large catalog of items, such as
ment on books, but does neither offer ratings nor personal-                                            the board gaming community website boardgamegeek.com,
ized recommendations. In such scenarios without a re-usable                                            with around 77.000 games grouped by publishers, artists, as
rating mechanism, a rating widget may be added to the page                                             well as various categories and families (and more than one
(cf. Fig. 3), to show items annotated with previous ratings                                            million of registered users). Even though a rating mecha-
                                                                    Figure 5: Example modified literature search web-
                                                                    site with augmented recommendations (right).
Figure 4: Example modified BoardGameGeek web-
site with augmented recommendations (left) and
rating prediction (center/top).                                     from any of the sites to the user, as shown exemplary in
                                                                    Figure 5.
nism exits, personalized recommendations of games are not
given to users. Instead, the site displays a list of 50 currently   5.       ARCHITECTURE
‘hot’ games. To personalize this list using the paa approach,          As it was explained in the introduction, on client-side ded-
e. g., it can be re-ordered according to rating predictions for     icated plug-ins enable the execution of user scripts to ma-
these items and users, and games having a particularly bad          nipulate the dom in the browser. Such user scripts, written
prediction (e. g., below a certain threshold) can be hidden.        in JavaScript language, may execute http requests to exter-
   Board Games #2 – Feedback & Event Types. As                      nal restful apis. This is shown in Figure 6, alongside with
an alternative to the previous scenarios, where users are re-       the proposed paa architecture and components of the server,
quired to give explicit ratings, other kinds of user feedback       which will be explained in more detail in the following. In
may be exploited, such as explicit feedback without numeric         paa, requests can be made manually using standard script-
ratings, or implicit user feedback. On boardgamegeek.com,           ing tools (e. g., functions provided by Firefox or GreaseMon-
besides explicit ratings, users can become fan of a game,           key), or using our JavaScript library, which provides func-
subscribe, tag, record plays, add games to collections, and         tions for sending parameters concatenated as a single strings
much more. In addition to these explicit events, implicit           (e. g., userName=Bob&rating=4&...), or in an object-oriented
feedback may be recorded directly in the browser (i. e., be-        manner. The latter option is shown exemplary in Figure 7,
haviors exhibited by the user while using the site; cf. [18] –      including code to extract the parameters from the dom, and
paa does not require a special browser for this functionality,      the interal library implementation is presented in Figure 8.
but it can be implemented as scripts). Based on this, a script         Processing of Events. As mentioned in step 3 in Sec-
can compute a single numeric rating value to be communi-            tion 3, events that are stored on the server are equipped
cated to the server. Alternatively, to relieve the scripter of      with a timestamp, before all parameters are checked for va-
this task, we further propose a mechanism to allow putting          lidity, and events are stored to the database. Furthermore,
multiple events to the server, and compute an aggregated            provided userNames and item ids (itemIri11 ) are mapped
single rating value to estimate the user’s interest in an item      to numeric ids, and stored along with the rating and the
on server-side. Thus, for the scripter the task of comput-          timestamp in a separate table to be accessed directly by the
ing a rating value is broken down to recording different user       recommender engine.
actions (i. e., events), and defining how the events should            Different Types of Events. To distinguish between dif-
be accumulated to a collective score (sum, average, median,         ferent types of events, such as explicit numeric ratings and
logarithmic, etc.). Details about how this is achieved will be      other kinds of feedback, the scripter can choose to supply a
explained in detail below in Section 5.                             custom eventType (e. g., ‘pictureUpload’). Except for the
   Scientific Literature – Cross Domain. Finally, since             distinction, this allows us to provide a default rating value
Web augmentation scripts can be defined to run on mul-              for several pre-defined event types (following a classification
tiple websites, going beyond the scope of a single content          of observable user behaviour found in literature [18]). These
provider, the paa approach enables personalized link rec-           default ratings, however, are currently assigned in unschol-
ommendations across multiple domains. This feature is spe-          arly manner, and thus can also be overridden by the scripter.
cially useful for those Web sites sharing an underlying do-            Rating Accumulation. Whereas events represent user
main. For instance, for scientific literature search, a script      actions, for the recommender engine we rely on ratings only.
can track user activities such as page visits and downloads         For this, the rating values provided with the events may
on sites such as acm dl, Springer, ieee Xplore, or Science          be used directly. Defined by a parameter insertAs, first,
Direct10 . In every site of this list, the same item (Paper)        events may simply be added as ‘new’ ratings (i. e., several
may be defined with similar properties (url, title, authors,        ratings per user for a single item are provided to the recom-
abstract). Based on events collected from these user activi-        mender engine). Second, the rating specified by the event
ties, a recommendations pane can be added to each of these          may ‘replace’ the previous one. Finally, as an alternative
websites to present potentially relevant scientific literature      multiple events may be accumulated – in a way that can be
10
                                                                    configured by the scripter – to compute the rating value to
 http://dl.acm.org/, http://link.springer.com/,
                                                                    11
http://ieeexplore.ieee.org/, http://www.sciencedirect.com/               commonly uris/iris (http://tools.ietf.org/html/rfc3987)
                                    PAA Library                                                                 User Management &                  Object




                                                                                    Web UI
                                     (JavaScript)                                                           Authentication (Spring-Security)      Relational
                                                                                                                                                  Mapping
                                                                                                                                                  (Hibernate)



                  +
                                                                                                                 Event Processing &
                                    User Script                                                                 Rating Accumulation
                                                               HTTP                                                                            Relational




                                                                                          (JAX-RS/Jersey)
                                                                               PAA REST API
                                     (JavaScript)
                                                                                                                                               Database
                                                                                                             Query/Retrieval Subsystem          (MySQL)
      Web Page                    Augmentation
                                     Engine                                                                 Recommender System                    Relational
                                  e.g. GreaseMonkey                                                                 (LensKit)                       Views
                           Augmentation Layer                                     API                                PAA Logic                    Storage

                 Client-Side                                                                                           Server-Side
 Figure 6: Architecture of the proposed PAA approach: client-side, server-side, communication via HTTP.




                                                                                                                                                 }
                                              }   Item data
                                                  obtained from DOM                                                                                  Define and serialize
                                                                                                                                                     data (current script,


                                              }
                                                                                                                                                     website, user)
                                                  Item creation and
                                                                                                                                                     for requesting
                                                  initizialization
                                                                                                                                                     recommendations
                                                                                                                                                     from the server

                                              }   User creation (username
                                                  obtained from the DOM)




                                                                                                                                                 }
                                              }   Rating creation (value
                                                  obtained from DOM)                                                                                 Perform the request
                                                                                                                                                     and execute the callback
                                              }   Event creation and
                                                  sending to server
                                                                                                                                                     function (defined by the
                                                                                                                                                     scripter) to handle

                                              }
                                                  Obtain recommendations                                                                             the server’s response
                                                  and handle the result with                                                                         (i.e., recommendations)
                                                  receiveRecommendations()


Figure 7: Example JavaScript code for creating and
storing an event object, and for retrieval of recom-                                Figure 8: Example internal JavaScript library func-
mendations using the object-oriented PAA library.                                   tion of client-side API to request recommendations.


                                                                                    making calls to the server’s api. Via the Web user interface,
be used by the recommender. Since user scripts are typically                        users can furthermore manage their profile data and view
run once per page load, this may be a particularly useful op-                       coarse grained provenance information. Thereby, the user
tion to track implicit user feedback in terms of potentially                        may be provided with insights to what data is being stored
many events regarding a single item. For this accumulation,                         and how it is used, including information on why specific rec-
ratings may be derived as ‘sum’, ‘average’, or ‘median’                             ommendations were given. This increases transparency and
of event scores. While summing or averaging, weights for                            helps to gain the users’ trust, and to satisfy users who might
older events may be decreased, e. g., linearly or logarithmic.                      normally be reluctant to share personal data with providers
Furthermore, the aggregationScope can optionally be lim-                            of (commercially oriented) personalization services.
ited to a certain number of most recent events, or using a                             Recommender Engine on Server. For adding events,
time window. As a result, the rating scale must allow float                         as well as for queries to the recommender engine, every api
values, and consequently also the ratings provided from the                         query must provide the script’s pluginName, pluginNames-
user script can be continuous, allowing different scales or                         pace, and the site domain. These define the operation do-
binary ratings. For the future we are planning extensions,                          main for the recommender, i. e., the view for ratings that
and we aim to make this computation more customizable,                              are seen by the recommender engine (also user names must
for instance, to enable that different event types contribute                       be unique within this operation domain). For computing
to the accumulation in different manners.                                           predictions and recommendations the current generic pro-
   Authentication & Web UI. User authentication is not                              totype implementation relies on the open-source framework
required if while making api calls the user script provides                         LensKit12 , configured to perform item-item collaborative fil-
a userName. Clearly this is security issue, because in this                         tering for scoring items (cf. [7, 22], LensKit doc.13 ), and
basic form there is no authentication involved. This option                         directly accessing the database for building models.
was enabled for the sake of simplicity, and for simple scenar-                         Provision to Client. Finally, for answering queries re-
ios where security is not an issue. Alternatively, instead of                       garding ratings, predictions, and recommendations, again
providing a user name, the parameter paaAuthRequired can                            user names and item ids are mapped to numeric ids and
be set to true, enabling authentication via the paa website                         vice versa, and previously stored itemNames and meta infor-
(the current status can be queried using getLoginStatus(),
                                                                                 12
to open the login form if necessary). Once logged in, the                                http://lenskit.org/ – Recommender Toolkit
                                                                                 13
corresponding cookie is being included by the browser when                               http://lenskit.org/documentation/algorithms/item-item/
mation (stored per event) are added where applicable. Ex-         deal with, this may cause additional database maintenance
ample responses are shown online along with the prototype,        efforts if the ids of items are affected.
as discussed in the following section.
                                                                  7.   CONCLUSIONS & FUTURE WORK
6.   PROTOTYPE & EVALUATION                                          We have shown the feasibility for providing collaborative
   The implemented paa prototype is publicly available on-        filtering recommender system functionality as a service for
line14 , including our object-oriented JavaScript library with    Web augmentation. By providing a simple api and corre-
example scripts and instructions for their usage. The im-         sponding object-oriented JavaScript library, user script writ-
plementation bases on Jersey15 for handling restful http          ers may employ ratings, predictions, as well as recommenda-
requests, and employs Spring Security16 for authentication,       tions of items, to develop new kinds of recommender appli-
which also allows the future integration of identity providers    cations for arbitrary websites. Thus, end users benefit from
such as Openid (supported by Google) or Facebook Connect,         personalization of the Web browsing experience through an-
to lower the barrier for acquiring users. In general, persis-     notation, re-ordering, hiding, and generation of links. Sev-
tence is realized with Hibernate17 , however, using relational    eral real world world application scenarios were discussed,
views LensKit12 accesses the underlying database directly.        and we presented our publicly available server prototype.
   The prototype shows the feasibility of combining Web aug-         To improve and further evaluate the proposed approach,
mentation with recommender systems. It was not yet op-            we foresee several lines of potential future work. Therefore,
timized for performance (prediction accuracy and response         we are currently working on an extended prototype, mainly
times), yet it shows that the approach is suitable for em-        to add some minor features, improve response times, and
powering scripters to build new kinds of augmentations.           add further means of configuration for the scripter. In a
   Since we base on established item-item collaborative fil-      profound evaluation we aim to cover the issues outlined in
tering algorithms, the evaluation of prediction accuracy was      the previous section: recommendation relevancy, the server-
not a goal for this paper. However, we do plan to do this in      side computation of scores, response times and their effect
the future, along with an evaluation of our methods for com-      on users’ browsing experience, and methods to cope with
puting the cumulative score from different event types. In        the removal of items or changing urls. In this kind of sys-
this context, an interesting question is how well does the cho-   tems another very well known issue is the cold start problem,
sen LensKit configuration generalize for all kinds of items,      in this sense, we plan to provide scripters with some mecha-
and how can it be made configurable by the scripter.              nisms to define how the script adapts the Web page when the
   Concerning response times, on one hand, the approach is        available ratings are not enough. A possibility we are study-
limited by the connection to the server through Internet,         ing is to allow a scripter to use a single user profile in several
however, with optimizations possible, for instance by pro-        scripts. In this context, we also plan to conduct several user
viding api methods to combine several http requests into          studies, first, with scripters to evaluate the comprehensibil-
one (e. g., storage of multiple events as a batch, or combining   ity of the api for implementing pre-defined tasks, and how
the storage of an event with a query for recommendations),        the provided service is being accepted. Second, we intend to
or by reducing the amount of redundantly transferred event        evaluate performance, quality of recommendations, as well
meta information. On the other hand, the computation of           as scalability, in terms of a larger case study with users,
recommendations on the server is currently made on demand         employing experts or a number of end users, e. g., from the
for each request, but could be made configurable, such that       boardgamegeek.com community. There, publicly available
the scripter may define whether recommendations should be         ratings can be exploited to reduce the cold start problem, or
computed in advance, or if they have to reincorporate all the     to build a dataset for an offline evaluation of the employed
latest added events.                                              recommender algorithm. Finally, with a complete prototype
   As with collaborative filtering recommenders in general,       and documentation, downloads of our scripts and usage of
the known cold start problem is an issue to be considered,        the api can be evaluated in long term study.
also for script writers. To mitigate this problem, in sit-           In terms of functionality, we foresee several expansions.
uations where ratings are publicly available, the scripter        Support for different data formats for the api (e. g., json,
may add them as a batch, e. g., by extracting user ratings        xml, rdf) allows the reduction of technical heterogeneity,
from cocktailscout.de, or using the xml api of board-             and enables simpler integration with arbitrary websites –
gamegeek.com. Additionally, to support early development          also to give the scripters more options. Moreover, using
of new scripts, our prototype can be configured to append         rdf facilitates the use of semantic Web technologies and re-
random items to the list of recommendations, until the rec-       sources, not least to supply further structured information
ommender algorithm can compute enough actual ones.                about items from resources such as dbpedia. Together with
   Finally, so far our approach does not foresee the removal      user profile data and item features collected in the browser,
of items. In an open environment, where every end user can        or extracted from online social networks, this information
add items, maybe role-based user management, a reputa-            may be exploited by the recommender algorithms, for in-
tion based approach, or a voting mechanism can be used to         stance to better determine user-user or item-item similari-
decide which items to remove. In this context, it also may        ties, or for improving recommendation results with content-
happen that websites change their url structure. While this       based and hybrid recommender mechanisms on server side.
is something that every Web augmentation approach has to          In this context it is particularly interesting how well the
                                                                  current implementation recommends newly added items or
14
   http://paa.cis.jku.at/                                         items with few ratings, and if the algorithms can be made
15
   http://jersey.java.net/ – jax-rs Reference Impl.               configurable for end users or scripters, to include items from
16
   http://projects.spring.io/spring-security/                     the long tail for increasing serendipity in recommendations.
17
   http://hibernate.org/ – Object Relational Mapping              In this context, the recommender system algorithms may
also be configured via the api in a more elaborate way,            [11] D. Firmenich, S. Firmenich, J. Rivero, and
for instance using LensKit’s Groovy-based dsl18 . Further-              L. Antonelli. A platform for web augmentation
more, feedback on recommendations may be exploited to                   requirements specification. In Web Engineering,
improve recommendations (i. e., when the user follows a rec-            volume 8541 of LNCS. Springer, 2014.
ommended link, or rates the corresponding item afterwards),        [12] X. Fu, J. Budzik, and K. J. Hammond. Mining
and item recommendations that are constantly ignored may                navigation history for recommendation. In Proc. of 5th
be excluded in the future. The set of items considered by               Int. Conf. on Intelligent User Interfaces, IUI ’00, New
the recommender may also be defined by the scripter, for                York, NY, USA, 2000. ACM.
instance, by providing a specific set or filter criteria via the   [13] A. Garrido, S. Firmenich, G. Rossi, J. Grigera,
api, as with a Recommendation Query Language (cf. [1]).                 N. Medina-Medina, and I. Harari. Personalized web
   To decentralize the approach, giving even more control to            accessibility using client-side refactoring. Internet
the user script writer, we plan to investigate how the server           Computing, IEEE, 17(4), 2013.
functionality can be hosted by a generic ”platform as a ser-       [14] S. Gauch, M. Speretta, A. Chandramouli, and
vice” provider of cloud computing services, and if the api              A. Micarelli. User profiles for personalized information
functionality can be provided as a downloadable and con-                access. In The Adaptive Web, volume 4321 of LNCS.
figurable bundle. Going beyond the server side approach,                Springer, 2007.
the question remains whether the architecture can be re-           [15] H. Guo, J. Chen, W. Wu, and W. Wang.
implemented to be independent of a single third party rec-              Personalization as a service: The architecture and a
ommendation service provider, with recommendations being                case study. In Proc. of 1st Int. Workshop on Cloud
computed on client-side, and exchanging anonymized data                 Data Management, CloudDB ’09, New York, NY,
via a dedicated data exchange server only, or relying on a              USA, 2009. ACM.
peer-to-peer architecture.
                                                                   [16] Hendry, H. Pramadharma, and R.-C. Chen. Building
   Finally, we foresee the implementation of a browser plug-
                                                                        browser extension to develop website personalization
in to offer a graphical user interface for configuration and
                                                                        based on adaptive hypermedia system. In Current
augmentation of recommendations, to be used by scripters
                                                                        Approaches in Applied Artificial Intelligence, volume
or even end-users, based on a dsl to define extraction and
                                                                        9101 of LNCS. Springer, 2015.
placement of item and user information in the dom (cf. [11]).
                                                                   [17] D. Jannach, M. Zanker, A. Felfernig, and G. Friedrich.
                                                                        Recommender Systems: An Introduction. Cambridge
                                                                        University Press, 2010.
8.       REFERENCES                                                [18] G. Jawaheer, P. Weller, and P. Kostkova. Modeling
 [1] G. Adomavicius and A. Tuzhilin. Toward the next
                                                                        user preferences in recommender systems: A
     generation of recommender systems: A survey of the
                                                                        classification framework for explicit and implicit user
     state-of-the-art and possible extensions. IEEE Trans.
                                                                        feedback. ACM Trans. Interact. Intell. Syst., 4(2),
     on Knowledge and Data Eng., 17(6), 2005.
                                                                        2014.
 [2] A. Ankolekar and D. Vrandecic. Kalpana - enabling
                                                                   [19] G. Kappel et al. TheHiddenYou - A Social Nexus for
     client-side web personalization. In Proc. of HT’08 -
                                                                        Privacy-Assured Personalisation Brokerage. In 12th
     Hypertext 2008. ACM, 2008.
                                                                        Int. Conf. on Enterprise Information Systems
 [3] R. Barrett and P. P. Maglio. Intermediaries: New                   (ICEIS), 2010.
     places for producing and manipulating web content.
                                                                   [20] A. Kobsa, B. P. Knijnenburg, and B. Livshits. Let’s
     Computer Networks, 30(1-7):509–518, 1998.
                                                                        do it at my place instead? attitudinal and behavioral
 [4] P. Brusilovsky. Adaptive navigation support. In The                study of privacy in client-side personalization. In
     Adaptive Web, volume 4321 of LNCS. Springer, 2007.                 SIGCHI Conference on Human Factors in Computing
 [5] F. Carmagnola, F. Cena, and C. Gena. User model                    Systems (CHI 2014), Toronto, Canada, 2014.
     interoperability: a survey. User Modeling and                 [21] L. Moreau et al. The open provenance model core
     User-Adapted Interaction, 21(3), 2011.                             specification (v1.1). Future Generation Computer
 [6] L. Chen et al. Human decision making and                           Systems, 27(6), 2011.
     recommender systems. ACM Trans. Interact. Intell.             [22] B. Sarwar, G. Karypis, J. Konstan, and J. Riedl.
     Syst., 3(3), 2013.                                                 Item-based collaborative filtering recommendation
 [7] M. Deshpande and G. Karypis. Item-based top-n                      algorithms. In Proc. of 10th Int. Conf. on World Wide
     recommendation algorithms. ACM Trans. Inf. Syst.,                  Web, New York, NY, USA, 2001. ACM.
     22(1), 2004.                                                  [23] J. Schafer, D. Frankowski, J. Herlocker, and S. Sen.
 [8] O. Dı́az and C. Arellano. The augmented web:                       Collaborative filtering recommender systems. In The
     Rationales, opportunities, and challenges on                       Adaptive Web, volume 4321 of LNCS. Springer, 2007.
     browser-side transcoding. ACM Transactions on the             [24] E. I. Sparling and S. Sen. Rating: How difficult is it?
     Web, 9(2), 2015.                                                   In Proceedings of the Fifth ACM Conference on
 [9] O. Diaz et al. Towards the personal web: Empowering                Recommender Systems, RecSys ’11, New York, NY,
     people to customize web content. In Web Information                USA, 2011. ACM.
     Systems Eng., volume 8786 of LNCS. Springer, 2014.            [25] M. Wischenbart et al. Automatic data transformation:
[10] D. Eynard. Using semantics and user participation to               Breaching the walled gardens of social network
     customize personalization. Technical report, HP Labs,              platforms. In Proc. of APCCM - vol. 143, Adelaide,
     2008.                                                              Australia, 2013. Australian Computer Society.
18
     http://lenskit.org/documentation/basics/configuration/