UPComp – a PHP component for recommendation based on user behaviour

INTRODUCTION Recommender systems has got a lot of attention in a last few years mainly because of enormous expansion of internet and, from the scientific point of view, also thanks to the NetFlix prize challenge [1]. Most of the efforts were in developing algorithms that match most closely the preferences of the user. Especially in the final stages of NetFlix, the methods get very complex with little actual knowledge about the user preferences – what and why the user prefers. Implementing such methods for an average webmaster of a small webshop is very difficult. That was the motivation for developing a component for recommendation that would be simple enough to deploy for a ordinary webmaster, yet extendible and flexible. The main focus was on the ease of use, leaving the complex algorithms as future work and possible enhancements. Also the component shouldn’t require modification of existing user interface. In this paper, we propose a new PHP recommendation component UPComp. UPComp is a flexible and easy to embed. We do not want to propose a new recommendation strategy, but we want to allow average webmasters to implement of recommendation to their websites. We also present experiments on a real e-shop with considerable traffic, where naive recommendation was previously implemented. The paper is structured into five sections. The second section covers some of the related work, UPComp is described in the third section. Experiments on the real web shop are described in the fourth section and finally the paper concludes in the fifth section.

RELATED WORK Our motivation is an unknown user, which is just a new session in web server. For being able to recommend preferred products to the user, we have to have some sort of feedback from the user on his/her preferences. Two main types of user feedback are distinguished in [2] – explicit and implicit. A. Explicit feedback Explicit feedback is given by the user in order to express his/her preferences. A typical example is giving an object a rating, often in form of stars (1-5 stars). We can be sure that the object is preferred to the degree specified by the user. Having explicit feedback, recommendation is much simpler. There are many methods learning preferences from the ratings that are able to order the whole database according to the learnt preferences [3], [4], [5], [6]. The main drawback of explicit feedback is the possible unwillingness of the users to give it and that rating interrupts typical “workflow” of the user on the website. The user often does not know what is the benefit of giving the rating, so he/she is unwilling to do it. B. Implicit feedback Implicit feedback is actions that the user does while pursuing his/her goal – most often searching for the best product and buying it. The main difference to explicit feedback is that it does not require any special effort from the user, the user interface does not need to change and the user behaves in his/her usual pattern. There are many types of actions that can be captured. Viewing time and scrolling are used most often [7]; but the results are ambiguous. Some works state that there is a correlation between interest and viewing time, while others disagree. For example, in [8], the same amount of time was spent viewing relevant and irrelevant documents. The price we pay when using implicit feedback is that the user actions are very difficult to interpret. Does the long viewing time correspond to the high preference? There is also the difficulty in expressing negative preference – is not clicking on a product detail expression of negative preference or expression of not noticing the link? C. Other possibilities for recommendation There are open source systems that already contain the explicit recommendation possibility [9]. The description of various approaches is in [10] but there is no possibility to download source codes. To our best knowledge, UPComp is a first attempt to provide a standalone component that is able to be included in an existing system.

UPCOMP Our main objective was to develop a recommender system called UPComp suitable for e-shops. UPComp is easy to implement and it should increase the effectiveness of the eshop. The most important function of recommender systems in e-shops is to provide a set top-k “best” objects. The recommended set of objects may differ at different contexts, e.g. recommended items in shop cart would be related to the items in the cart, but recommended items in a category listing would be related to the selected category. Recommended objects are typically displayed in a small area, in addition to the main information on the page. This fact results into a small number of objects presented. According to the preliminary work, we have formulated the key features of our recommender system: • domain independence • focus on calculating the top-k objects (not to give an exact recommendation for a single object) • simple developer interface • capability to use different computational methods + possible extensions in the future. New methods may look similar to the code in Figure 1 • simple, developer friendly user preferences mining, important difference against the most of the other recommender system • easy switch from an existing trivial recommendation – only replacing the SQL query with a few lines of PHP UPComp requires following assumptions: • query → response communication style based on the same principles as querying the database. The items are recommended with respect to the current context of the page • using SQL for specifying satisfactory objects • UPComp results are lists of top-k objects.