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/