Context-Aware Recommender Systems: A Service-Oriented Approach Sofiane abbar Mokrane bouzeghoub Stephane PRiSM Lab Versailles PRISM Laboratory, versailles university universit unIvers 45 avenue des Etats-Unis 45 avenue des Etats-U 45 avenue des Etats-U 78035. Versailles. France 78035. Versailles. France 78035. Versailles. france sofa@prism. uvsq fr mok@prism vsg. fr hal@prism. uvsq fr ABSTRACT Two important questions arise from the Netflix contest Recommender systems are efficient tools that overcome the What is a better RS? And(ii)How can a system provide information overload problem by providing users with the the best recommendations? Most relevant contents. This is generally done through users In our vision. a better Rs is the one which delivers reco preferences/ratings acquired from log files of his former ses. mendations that best match with users'preferences, needs ons. Besides these preferences, taking into account the and hopes at the right moment, in the right place and on interaction context of the user will improve the relevancy the right media. This cant be achieved without designing f recommendation process. In this paper, we propose a a rs that takes into account all information and parame context-aware recommender system based on both user pro- ters that influence user's ratings. These information may file and context. The approach we present is based on a oncern demographic data, preferences about user's domain revious work on data personalization which leads to the of interest, quality and delivery requirements as well as the definition of a Personalized Access Model that provides a time of the interaction, the location, the media, the cogni- set of personalization services. We show how these services tive status of the user and his availability. This knowledge can be deployed in order to provide advanced context-aware is organized into the two concepts of user profile and con- the user himself while the context encompasses a set of fea tures which describe the environment within which the user 1. INTRODUCTION interacts with the system. The last decade met a remarkable proliferation of P2P We claim that taking into account both profiles and con- networks, PDMS, semantic web, communitarian websites texts in a recommendation benefits to any Rs for electronic stores, etc. resulting in an overload of available many reasons:(i. Users' preferences/ratings change accord- information.Current information systems deal with a huge ing to their contexts [5, 12].(ii. The additive nature of amount of content, and deliver in consequence a high num- traditional RS (6 does not consider multiple ratings of the ber of results in resp user queries. Thus, users are not same content(iii )RS may fail in providing some valuable able to distinguish relevant contents from secondary ones recommendations as their similarity distance is uniformly Recommender systems(RS)are efficient tools designed applied to user preferences without analyzing the discrep- to overcome the information overload problem by provid- ancies introduced by the context ing users with the most relevant content 8. Recommen- In 2, we proposed a Personalized Access Model(PAM) dations are computed by predicting user's ratings on some a framework that provides a set of personalization concepts contents. Rating predictions are usually based on a user and services, generic enough to be applied to a large variet profiling model that summarizes former user's behaviour f applications. Based on the PAM, and following the efforts The importance of RS is now well established. Netflix started by Adomavicius et al. [3, 4] and Anand et al. [6] organizes a contest I in which one million dollar is offered we propose a Context-Aware Recommender System(CARS) for any better recommendation engine. This contest shows, which is based on both user profiles and contexts. In our in one hand, the importance that industrials give to RS, and approach the same user who interacts from different contexts in another hand that better recommendations worth a lot is provided with different recommendations Our main contributions include the follow http://www.netflixprize.com present a general architecture for context-aware rs based on a set of personalization services. (ii ) We extend the PAM with a new context learning service that enables concrete Permission to copy without fee all or part of this material is granted provided construction of users'contexts from their log files.(iii) the copies are not made or distributed for direct commercial advantage, the VLDB copyright notice and the title of the publication and its date app The contextualization service proposed in [1] is improved by Base Endowment. To copy otherwise permission of the very Large I combining both support and confidence of ratings within a o republish, to post on servers given context instead of considering their frequencies only. r to redistribute to lists, requires a fee and/or special permission from the Notice that this paper reports a conceptualization effort for integrating context into RS. The evaluation of CARS a VLDB 09, August 24-28, 2009, Lyon, france proach is under study. Copyright 2009 VLDB Endowment, ACM O0O-0-00000-000-0/00/00
Context-Aware Recommender Systems: A Service-Oriented Approach Sofiane Abbar PRiSM Lab, Versailles university 45 avenue des Etats-Unis 78035, Versailles, France sofa@prism.uvsq.fr Mokrane Bouzeghoub PRiSM Laboratory, Versailles university 45 avenue des Etats-Unis 78035, Versailles, France mok@prism.uvsq.fr Stéphane Lopez PRiSM Lab, Versailles university 45 avenue des Etats-Unis 78035, Versailles, France hal@prism.uvsq.fr ABSTRACT Recommender systems are efficient tools that overcome the information overload problem by providing users with the most relevant contents. This is generally done through user’s preferences/ratings acquired from log files of his former sessions. Besides these preferences, taking into account the interaction context of the user will improve the relevancy of recommendation process. In this paper, we propose a context-aware recommender system based on both user pro- file and context. The approach we present is based on a previous work on data personalization which leads to the definition of a Personalized Access Model that provides a set of personalization services. We show how these services can be deployed in order to provide advanced context-aware recommender systems. 1. INTRODUCTION The last decade met a remarkable proliferation of P2P networks, PDMS, semantic web, communitarian websites, electronic stores, etc. resulting in an overload of available information. Current information systems deal with a huge amount of content, and deliver in consequence a high number of results in response to user queries. Thus, users are not able to distinguish relevant contents from secondary ones. Recommender systems (RS) are efficient tools designed to overcome the information overload problem by providing users with the most relevant content [8]. Recommendations are computed by predicting user’s ratings on some contents. Rating predictions are usually based on a user profiling model that summarizes former user’s behaviour. The importance of RS is now well established. Netflix organizes a contest 1 in which one million dollar is offered for any better recommendation engine. This contest shows, in one hand, the importance that industrials give to RS, and in another hand that better recommendations worth a lot. 1http://www.netflixprize.com Permission to copy without fee all or part of this material is granted provided that the copies are not made or distributed for direct commercial advantage, the VLDB copyright notice and the title of the publication and its date appear, and notice is given that copying is by permission of the Very Large Data Base Endowment. To copy otherwise, or to republish, to post on servers or to redistribute to lists, requires a fee and/or special permission from the publisher, ACM. VLDB ‘09, August 24-28, 2009, Lyon, France Copyright 2009 VLDB Endowment, ACM 000-0-00000-000-0/00/00. Two important questions arise from the Netflix contest: (i) What is a better RS? And (ii) How can a system provide the best recommendations? In our vision, a better RS is the one which delivers recommendations that best match with users’ preferences, needs and hopes at the right moment, in the right place and on the right media. This can’t be achieved without designing a RS that takes into account all information and parameters that influence user’s ratings. These information may concern demographic data, preferences about user’s domain of interest, quality and delivery requirements as well as the time of the interaction, the location, the media, the cognitive status of the user and his availability. This knowledge is organized into the two concepts of user profile and context. The user profile groups information that characterizes the user himself while the context encompasses a set of features which describe the environment within which the user interacts with the system. We claim that taking into account both profiles and contexts in a recommendation process benefits to any RS for many reasons: (i.) Users’ preferences/ratings change according to their contexts [5, 12]. (ii.) The additive nature of traditional RS [6] does not consider multiple ratings of the same content. (iii.) RS may fail in providing some valuable recommendations as their similarity distance is uniformly applied to user preferences without analyzing the discrepancies introduced by the context. In [2], we proposed a Personalized Access Model (PAM), a framework that provides a set of personalization concepts and services, generic enough to be applied to a large variety of applications. Based on the PAM, and following the efforts started by Adomavicius et al. [3, 4] and Anand et al. [6], we propose a Context-Aware Recommender System (CARS) which is based on both user profiles and contexts. In our approach the same user who interacts from different contexts is provided with different recommendations. Our main contributions include the following: (i.) We present a general architecture for context-aware RS based on a set of personalization services. (ii.) We extend the PAM with a new context learning service that enables concrete construction of users’ contexts from their log files. (iii.) The contextualization service proposed in [1] is improved by combining both support and confidence of ratings within a given context instead of considering their frequencies only. Notice that this paper reports a conceptualization effort for integrating context into RS. The evaluation of CARS approach is under study. 1
This paper is organized as follow: Section 2 presents a ould be provided with appropriate recommendations evel architecture of CARS and poses the main require that CARS should satisfy. Section 3 recalls concept As a consequence of the separation of profile and context and services provided by the PAM Sections 4 and 5 focus applications may be only aware on profiles or contexts or on on the services applied to CARs. Section 6 provides a global both. The next section details a service-oriented approach w on CARs deployment using PAM services. Section 7 for designing CArs that satisfy above requirements ummarizes related works. Section 8 concludes the pape with further research 3. OVERVIEW OF PAM CONCEPTS AND SERVICES 2. REQUIREMENTS FOR CARS ur CARS proposal is based on a former work 2 in We focus on RS which combine content-based techniques we defined a Personalized Access Model(PAM) and Collabotrative Filtering(CF). The content-based ap- vides a set of personalization services. The PAM aims at proach permits to learn users' profiles by analyzing content providing a generic set of concepts and services which can descriptors. Resulting profiles are, then, matched and com- be deployed over a given architecture to make applications pared to determine similar users in order to make collabora aware of users' profiles and contexts ive recommendations. The CF approach allows exploiting The components of the PAM are built around profile and the ratings given by the Top K neighbors of the active user context meta models which are adaptable to a wide range of in order to derive the missing rating by aggregation function. applications and which are open to integrate specific knowl Figure 1 gives a flavour of the Cars global architecture. dge not included initially. Profile and context meta models organized into dimensions and sub dimensions which are Knowledge acquis ion processes escribed by(attribute, value) couples Acquis, 3.1 Main Concepts This section provides an informal definition of the con- cepts that will be used in the following sections User profile. Provides an extensive definition of the pref- erences that a user has in a given domain of interest. It is a et of (attribute, value) couples rated by the user or the RS Active User. In Rs, an active user is the one for whom Figure 1: Global architecture of context-aware Rs recommendations are calculated Context. Set of features characterizing the environment This architecture is composed of: the left-upper block thin which users interact with rs which concerns knowledge acquisition and the right-bottom Active context. It is the context within which the active Knowledge acquisition processes: This block is responsi Contextualized profile. It's a set of mappings that ble for the acquisition and the management of knowledge a relate a subset of profile preferences to the context in which CARS needs to process recommendations. This knowledge they are defined. is grouped into three entities: user profiles, content descrip- Operational profile. It's a runtime binding of a contex- ors, and contexts. We focus in this paper on:(i) context tualized profile to the current context of the user acquisition from log files, and (ii) discovery of relationships between these contexts and user profiles elements(called 3.2 PAM Services contextual profiles The PAM provides several services which have been Personalized recommendation: This block restively extended, following application requirements 2 ctual RS operations. The recommender engine(RE)takes Among these services, we distinguish offline(Contextual as inputs(i) contextual profiles generated in the knowledge ization, Context discovery)and online services(Binding acquisition block and (ii) the current context of the target user to compute a list of contextual recommendations. The a personalized application, while the latter is used at the behaviour of the target user when consuming these recom- mendations is stored in log files on which acquisition pl be used in personalized rs esses are based to update profiles, contexts and their map Contert discovery service. Discovers, for each user, regu pings; hence, closing the cycle between knowledge acquis lar contexts within which he interacts with RS(e.g. Holiday on and their exploit context, Office context) The design of such CARS is driven by the following re- Contextualization Service. Aims at identifying mappings quirements between user ratings and contexts in which these 1. Distinguish profiles from contexts for a well-understood R := Item: X ri, and si represents the importance definition and evolution of both entities rating ri over item within the context c 2. Enable contexts discovery through a concrete approach Binding Service. Exploits the mappings generated by the nd a widely available data(sta contextualization service to derive the operational profile Matching Services Allow capturing the semantic similarity 3. Consider both profiles and contexts into recommenda- etween two concepts. The similarity value takes into a tion such that a user interacting from different contexts count the structure of compared concepts, user ratings and
This paper is organized as follow: Section 2 presents a high level architecture of CARS and poses the main requirements that CARS should satisfy. Section 3 recalls concepts and services provided by the PAM. Sections 4 and 5 focus on the services applied to CARS. Section 6 provides a global view on CARS deployment using PAM services. Section 7 summarizes related works. Section 8 concludes the paper with further research. 2. REQUIREMENTS FOR CARS We focus on RS which combine content-based techniques and Collabotrative Filtering (CF). The content-based approach permits to learn users’ profiles by analyzing content descriptors. Resulting profiles are, then, matched and compared to determine similar users in order to make collaborative recommendations. The CF approach allows exploiting the ratings given by the Top K neighbors of the active user in order to derive the missing rating by aggregation function. Figure 1 gives a flavour of the CARS global architecture. Figure 1: Global architecture of context-aware RS This architecture is composed of: the left-upper block which concerns knowledge acquisition and the right-bottom block which concerns personalized recommendation. Knowledge acquisition processes: This block is responsible for the acquisition and the management of knowledge a CARS needs to process recommendations. This knowledge is grouped into three entities: user profiles, content descriptors, and contexts. We focus in this paper on: (i) context acquisition from log files, and (ii) discovery of relationships between these contexts and user profiles elements (called contextual profiles). Personalized recommendation: This block encompasses actual RS operations. The recommender engine (RE) takes as inputs (i) contextual profiles generated in the knowledge acquisition block and (ii) the current context of the target user to compute a list of contextual recommendations. The behaviour of the target user when consuming these recommendations is stored in log files on which acquisition processes are based to update profiles, contexts and their mappings; hence, closing the cycle between knowledge acquisition and their exploitation. The design of such CARS is driven by the following requirements: 1. Distinguish profiles from contexts for a well-understood definition and evolution of both entities. 2. Enable contexts discovery through a concrete approach and a widely available data (standard log files). 3. Consider both profiles and contexts into recommendation such that a user interacting from different contexts would be provided with appropriate recommendations. As a consequence of the separation of profile and context, applications may be only aware on profiles or contexts or on both. The next section details a service-oriented approach for designing CARS that satisfy above requirements. 3. OVERVIEW OF PAM CONCEPTS AND SERVICES Our CARS proposal is based on a former work [2] in which we defined a Personalized Access Model (PAM) that provides a set of personalization services. The PAM aims at providing a generic set of concepts and services which can be deployed over a given architecture to make applications aware of users’ profiles and contexts. The components of the PAM are built around profile and context meta models which are adaptable to a wide range of applications and which are open to integrate specific knowledge not included initially. Profile and context meta models are organized into dimensions and sub dimensions which are described by (attribute, value) couples. 3.1 Main Concepts This section provides an informal definition of the concepts that will be used in the following sections. User profile. Provides an extensive definition of the preferences that a user has in a given domain of interest. It is a set of (attribute,value) couples rated by the user or the RS on the basis of user’s actions. Active User. In RS, an active user is the one for whom recommendations are calculated. Context. Set of features characterizing the environment within which users interact with RS. Active context. It is the context within which the active user interacts with RS. It is also called current context. Contextualized profile. It’s a set of mappings that relate a subset of profile preferences to the context in which they are defined. Operational profile. It’s a runtime binding of a contextualized profile to the current context of the user. 3.2 PAM Services The PAM provides several services which have been progressively extended, following application requirements [2]. Among these services, we distinguish offline (Contextualization, Context discovery) and online services (Binding, Matching). The former set is used at the design time of a personalized application, while the latter is used at the execution time. We list hereafter those which are worth to be used in personalized RS. Context discovery service. Discovers, for each user, regular contexts within which he interacts with RS (e.g. Holiday context, Office context). Contextualization Service. Aims at identifying mappings between user ratings and contexts in which these ratings were defined. Mappings are of the form (Ri, cj , sij ), where Ri = Itemi × ri, and sij represents the importance of the rating ri over itemi within the context cj . Binding Service. Exploits the mappings generated by the contextualization service to derive the operational profile. Matching Services Allow capturing the semantic similarity between two concepts. The similarity value takes into account the structure of compared concepts, user ratings and 2
ontologies with which can be described. we distin- Device Content guish four matching services 2 profile/profile, context/context LIlY / item, and profile/ Due to space limitation, match ing services are not develloped in this paper Item1 4. OFFLINE SERVICES Figure 2: Log file This section details the two services that acquire the nec. essary knowledge to efficiently run the CArs. These services are an answer to the first two requirements imposed in sec. a given content. The second field informs about the device on CARS, and details on its operational semantics Date: the domain of date is organized into a hierarchy, 4.1 Context Discovery service in such a manner that we can know if it is a working day or a weekend, holiday or not, etc 4.1.1 Service definition Time: a day is partitioned into periods which are orga The goal of the context discovery service is to learn from nized into a hierarchy. The time can inform about the day user log files, the most recurrent contexts(situations )within period: day, night, morning, afternoon, etc which the user interacts in general. c-ip: The IP address in used to localize the user, the localities are organized into a hierarchy of continent, region C: Contert. Discovery(a, L) country, city, town, etc The context discovery service takes as input the user log file cs(User Agent): gives information about the user Browser (L)tracked from former recommendations and returns a set and OS(operating system) further than their languages of regular contexts C within which a user, whose profile is c- Device characterizes the used device for the user Pu, interacts with the personalized application interaction, devices can be segmented into a hierarchy Conjunction of these attribute represent contexts within 4.1.2 Service deployment on CARS which users interacts with the Rs. We propose to group The approach we propose to discover contexts is based on these contexts into clusters, each representing a regular con- the analysis of logs to capture regular contexts. Hereafter text or situation such as home, labs, etc. a motivating example is given to understand the approach. Example. Assume that a user, John, interacts frequently 4.1.4 Context Discovery Algorithm with RS. Then, thanks to information contained in his Log files are transformed and uploaded into a database files, the system can capture that John's interests(activi- ties)change according to the IP address, the date and time. relation having the schema of figure 2. Based on this ta ble, contexts are discovered by mining the five contextual file from where two contexts can be derived: office context attributes given above Let a context tuple be a conjunction of the five contextual hn/IP 192. 168.53.25/May 4 17h: 00/win XP, En, Firefox50 attributes which corresponds to one row(see figure 2) ohn/IP 192. 168.53. 25/May 5 17h: 30/win XP, En, Firefox50 The idea is to cluster the set of all tuples into a finite John/IP 192.168.53.25/May 4 17h: 33/win XP, En, Firefox50 set of clusters, each cluster representing a particular regu- John/IP 192. 168.70.1May 9 12h: 00/MacOS X, En, Safar lar context. Thus, we start by applying the agglomerative John/IP 192.168.70.1/May 9 20h: 00/MacOS X, En, Safari Hierarchical Clustering(AHC)[10 in order to estimate the number of clusters k, then, we apply the k-means algorithm Obviously, the content to be recommended change accord with the k center of resulting clusters in AHC algorithm ing to Johns context(e. g. scientific papers for office con- instead of choosing arbitrarily the initial k centers text and movies for home context ). Context discovery from gorithm 1 starts by extracting context instances from logs assumes the manipulation of well structured log file the user log file. In line 3, AHC is applied on these instances Hopefully, the analysis of the most known log file format in order to compute the initial k clusters. Then, from lines 4 such as Apache CLF, IIS LF and W3C LF [1l] reveals that to 13, k-means is applied as an iterative relocation algorithm most of them already contain contextual information( fields) in order to improve the initial clustering obtained with AHC. that correspond to the context meta model proposed in 2 The algorithm iterates until Squared Error achieves its Among these fields there are, for example, the IP Address minimal value the datE of the request, and the USER-AGENT(browser, 4.2 Contextualization service 4.1.3 Log File Format 4.2.1 Service definition The log file format we used is based on the w3C log file The main idea of the contextualization is to check whether format [11] which is enough extensible(thanks to ten W3 there are correlations between the user profile elements and General Purpose Fields)to adapt it to various applications. the user feedback within a given context eld: Date Time c-ip c-dns c-auth-id cs-method cs uri-stem cs -uri-query cs(User Agent)sessionId c-Action M(Pu, C): Contextualization(Pu, H)(2 c-Device. Notice that this log file format defines two ne Contextualization process takes as input a user profile Pu fields only which are c-action, and c-device. The first and the user history H corresponding to the user feedback one is well known in application server log files, it contains in contexts C discovered previously. It returns a set of con- usually the id of the action(e. g. Buy) that user applies to textual mappings M representing dependencies between el
ontologies with which items can be described. We distinguish four matching services [2]: profile/profile, context/context, item/item, and profile/item. Due to space limitation, matching services are not develloped in this paper. 4. OFFLINE SERVICES This section details the two services that acquire the necessary knowledge to efficiently run the CARS. These services are an answer to the first two requirements imposed in section 2. For each service, we give its definition, its deployment on CARS, and details on its operational semantics. 4.1 Context Discovery Service 4.1.1 Service definition The goal of the context discovery service is to learn from user log files, the most recurrent contexts (situations) within which the user interacts in general. C : Context Discovery(α, L) (1) The context discovery service takes as input the user log file (L) tracked from former recommendations and returns a set of regular contexts C within which a user, whose profile is Pu, interacts with the personalized application. 4.1.2 Service deployment on CARS The approach we propose to discover contexts is based on the analysis of logs to capture regular contexts. Hereafter, a motivating example is given to understand the approach. Example. Assume that a user, John, interacts frequently with RS. Then, thanks to information contained in his log files, the system can capture that John’s interests (activities) change according to the IP address, the date and time, the device, etc. This can be pointed by a lookup to his log file from where two contexts can be derived: office context during working days and home context during weekends. John / IP 192.168.53.25 /May 4 17h:00 /winXP,En,Firefox5.0 John / IP 192.168.53.25 /May 5 17h:30 /winXP,En,Firefox5.0 John / IP 192.168.53.25 /May 4 17h:33 /winXP,En,Firefox5.0 . . . John / IP 192.168.70.1 /May 9 12h:00 /MacOS X,En,Safari John / IP 192.168.70.1 /May 9 20h:00 /MacOS X,En,Safari Obviously, the content to be recommended change according to John’s context (e.g. scientific papers for office context and movies for home context). Context discovery from logs assumes the manipulation of well structured log file. Hopefully, the analysis of the most known log file formats such as Apache CLF, IIS LF and W3C LF [11] reveals that most of them already contain contextual information (fields) that correspond to the context meta model proposed in [2]. Among these fields there are, for example, the IP Address, the DATE of the request, and the USER-AGENT (browser, OS, . . . ). 4.1.3 Log File Format The log file format we used is based on the W3C log file format [11] which is enough extensible (thanks to ten W3C General Purpose Fields) to adapt it to various applications. field: Date T ime c − ip c − dns c − auth − id cs − method cs − uri − stem cs − uri − query cs(UserAgent) sessionId c − Action c − Device. Notice that this log file format defines two new fields only which are c − action, and c − device. The first one is well known in application server log files, it contains usually the id of the action (e.g. Buy) that user applies to Figure 2: Log file a given content. The second field informs about the device used (e.g. Laptop, a mobile phone, a remote control, etc.). Among the log file format fields, five are contextual: Date : the domain of date is organized into a hierarchy, in such a manner that we can know if it is a working day or a weekend, holiday or not, etc. T ime : a day is partitioned into periods which are organized into a hierarchy. The time can inform about the day period: day, night, morning, afternoon, etc. c − ip : The IP address in used to localize the user, the localities are organized into a hierarchy of continent, region, country, city, town, etc. cs(UserAgent) : gives information about the user Browser and OS (operating system) further than their languages. c − Device : characterizes the used device for the user interaction, devices can be segmented into a hierarchy. Conjunction of these attribute represent contexts within which users interacts with the RS. We propose to group these contexts into clusters, each representing a regular context or situation such as home, labs, etc. 4.1.4 Context Discovery Algorithm Log files are transformed and uploaded into a database relation having the schema of figure 2. Based on this table, contexts are discovered by mining the five contextual attributes given above. Let a context tuple be a conjunction of the five contextual attributes which corresponds to one row (see figure 2). The idea is to cluster the set of all tuples into a finite set of clusters, each cluster representing a particular regular context. Thus, we start by applying the Agglomerative Hierarchical Clustering (AHC) [10] in order to estimate the number of clusters k, then, we apply the k-means algorithm with the k center of resulting clusters in AHC algorithm instead of choosing arbitrarily the initial k centers. Algorithm 1 starts by extracting context instances from the user log file. In line 3, AHC is applied on these instances in order to compute the initial k clusters. Then, from lines 4 to 13, k-means is applied as an iterative relocation algorithm in order to improve the initial clustering obtained with AHC. The algorithm iterates until Squared Error E achieves its minimal value. 4.2 Contextualization Service 4.2.1 Service definition The main idea of the contextualization is to check whether there are correlations between the user profile elements and the user feedback within a given context. M(Pu, C) : Contextualization(Pu, H) (2) Contextualization process takes as input a user profile Pu and the user history H corresponding to the user feedback in contexts C discovered previously. It returns a set of contextual mappings M representing dependencies between el- 3
Algorithm 1 Automatic Contexts Discovery IS po (e. g. Buy) or ne Input: the user log file L, the threshold a ative(e. g. Ignore). Content-id and Features are obtained Output: the set of user contexts C=(C1,.,cmh, by transforming the URI of the consumed content(which 1:C←0.E:=∞0 is a log file field) into more significant information(e.g 2 CI +CONTEXT(C)extract context instances http://www.imdb.com/title/tt0448157/becomesTitle:Han- 3: C+ AHC(CI, a)fapply Agglomerative Hierarchical cock, Genre: Action, Comedy, Crime). Contextid specifie Clustering on CI. a a stopping threshold the context cluster within which the content was consumed; 4: for all cluster ec do it is computed by the context discovery service 5: update its mean mi:= New Mean(ci) 6: repeat 4.2.4 Contextualization algorithm The algorithm of contextual profile construction captures 8: for all context instance t,E CI do for each user rating(more precisely, predicate), its impor- ssign ti to its closest cluster c"EC such that Vcie tance in each user context. Notice that, in each context, use C, MATCH(G, Ci) mention hereafter one possible way that consists in measur- e.g. Genre= Drama. Concepts may be items(content) that a user consumed, features of these items or both of ing the conviction of the rule Based on this profile, a contextualized user profile CP Onv(pr;→*)= sp(*) is defined as a set M of contextual mappings which relates 1-cf(p;→*) Where takes one value among 1+,- at a time. Algorithm 2 shows the way contextual profiles are con- CP={m(R1,c,s)|R∈Pu,G;∈C,si∈[-1,1 structed based user's interaction histories Each contextual mapping mij is defined by a rating Ri context cj and a score sij. The score sij is a real number Algorithm 2 Automatic contextual mappings discovery xpressing the importance of taking into account the rating Input: the initial user profile Pu= p1,..., pn, the user R when the user interacts from the context cj. Hereafter, behavior H we describe the way a contextual user profile is constructed Output: the contextualized user profile CP using log file 2:C← CONTEXT() 4.2.3 Service deployment on CArs 3: for all p;∈Pudo 4: for all cj∈cdo The user history H on which the contextualization service 5: compute cf+:= confidence(pr:++, cj,h) is based, is obtained by transforming the user log file L (figure 2). A sample of this history is presented in figure 3 compute sp: support(pT:++,ci, H) 7: compute st: merge(cf+, sp+) IdConteod-cluster Content Feature C-Action 8:ifst≥then CP←CP∪(R4cy,st) 2「n 10: compute cf: con fidence(pr 3c2 support(pr;→ 12: compute sii: merge(ef, sp") Figure 3: a sample of user history H 13 if s >y then CPu←CPnU(R,cy,-) User behaviour is captured in a relational table 15: return CP ach row is of the form: expressing that a user consumed a The contextual profile constructed in algorithm 2 allows ontent(item)having some features(predicates) in a specific positioning each profile rating in each context through a ray (Action-type) within a given context (context-id). score. The next section discusses the manner this score is Action-type specifies whether the action applied by a user exploited to make contextual recommendations
Algorithm 1 Automatic Contexts Discovery Input: the user log file L, the threshold α. Output: the set of user contexts C = {c1, . . . , cm}, 1: C ← ∅, E := ∞ 2: CI ← CONT EXT(L) {extract context instances} 3: C ← AHC(CI, α) {apply Agglomerative Hierarchical Clustering on CI. α a stopping threshold} 4: for all cluster ci ∈ C do 5: update its mean mi := NewMean(ci) 6: repeat 7: Eold := E 8: for all context instance tj ∈ CI do 9: assign tj to its closest cluster c ∗ ∈ C such that ∀ci ∈ C, MAT CH(tj , ci) ≤ MAT CH(tj , c∗ ) 10: for all cluster ci ∈ C do 11: update its mean mi ← NewMean(ci) 12: compute E := Pk i=1 P t∈ci |MAT CH(t, mi)| 2 13: until E ≥ Eold 14: return C ements in Pu and contexts in C. 4.2.2 Contextual profile In traditional RS, a user profile is a set of ratings Pu = {R1, . . . , Rn}, where each rating Ri is composed of a predicate pri and a rate (weight) ri, i.e. Ri = (pri, ri). The rate ri is a real number expressing the importance of the predicate pri for the user. pri is a triplet , e.g. Genre = ’Drama’. Concepts may be items (content) that a user consumed, features of these items or both of them. Based on this profile, a contextualized user profile CPu is defined as a set M of contextual mappings which relates user ratings to a set of contexts C: CPu = {mij (Ri, cj , sij )|Ri ∈ Pu, cj ∈ C, sij ∈ [−1, 1]} Each contextual mapping mij is defined by a rating Ri, a context cj and a score sij . The score sij is a real number expressing the importance of taking into account the Rating Ri when the user interacts from the context cj . Hereafter, we describe the way a contextual user profile is constructed using log files. 4.2.3 Service deployment on CARS The user history H on which the contextualization service is based, is obtained by transforming the user log file L (figure 2). A sample of this history is presented in figure 3. Figure 3: a sample of user history H User behaviour is captured in a relational table where each row is of the form: expressing that a user consumed a content (item) having some features (predicates) in a specific way (Action type) within a given context (context id). Action type specifies whether the action applied by a user when consuming the content is positive (e.g. Buy) or negative (e.g. Ignore). Content id and Features are obtained by transforming the URI of the consumed content (which is a log file field) into more significant information (e.g. http://www.imdb.com/title/tt0448157/ becomes Title: Hancock, Genre:Action, Comedy, Crime). Context id specifies the context cluster within which the content was consumed; it is computed by the context discovery service. 4.2.4 Contextualization Algorithm The algorithm of contextual profile construction captures for each user rating (more precisely, predicate), its importance in each user context. Notice that, in each context, user activities may be of two kinds: positive (belongs to liked contents) and/or negative (relative to disliked contents), according to the type of actions a user applied on contents. Therefore the importance of each predicate must be captured in both positive and negative activities. As presented in [1], the importance of a predicate pri within a context cj is captured by computing its frequency in this context. However, we claim that the frequency does not reflect the real importance of a predicate for one user. Thus, we propose to model the importance of each predicate pri for the positive (resp. negative) activity within a given context as an association rules of the form hpri → +i (resp. hpri → −i). Then, the importance of pri is obtained by combining both the support (sp) and the confidence (cf) of its corresponding rules. Many approaches can be used as merging function, we mention hereafter one possible way that consists in measuring the conviction of the rule. conv(pri → ∗) = 1 − sp(∗) 1 − cf(pri → ∗) (3) Where ∗ takes one value among {+, −} at a time. Algorithm 2 shows the way contextual profiles are constructed based user’s interaction histories. Algorithm 2 Automatic contextual mappings discovery Input: the initial user profile Pu = {p1, . . . , pn}, the user behavior H. Output: the contextualized user profile CPu 1: CPu ← ∅, cf := 0, sp := 0 2: C ← CONT EXT(H) 3: for all Ri ∈ Pu do 4: for all cj ∈ C do 5: compute cf + := conf idence(pri → +, cj , H0 ) 6: compute sp+ := support(pri → +, cj , H0 ) 7: compute s + ij := merge(cf +, sp+) 8: if s + ij ≥ γ then 9: CPu ← CPu ∪ (Ri, cj , s+ ij ) 10: compute cf − := conf idence(pri → −, cj , H0 ) 11: compute sp− := support(pri → −, cj , H0 ) 12: compute s − ij := merge(cf −, sp−) 13: if s − ij ≥ γ then 14: CPu ← CPu ∪ (Ri, cj , −s − ij ) 15: return CPu The contextual profile constructed in algorithm 2 allows positioning each profile rating in each context through a score. The next section discusses the manner this score is exploited to make contextual recommendations. 4
5. ONLINE SERVICE: BINDING Algorithm 3 Contextual Top K Neighbors This section details a runtime service that constitutes an Input: CPua =(mil, .. mnm): Contextual active user answer to the last requirement imposed in section 2 profile, u: set of all users, Ca: the active context, C: the 5.1 Service definition set of all contexts, Item: the item candidate to recom- mendation, k: the number of neighbors to consider, The binding consists in identifying, at a runtime, user the threshold profile parts which are related to a given context Output: the TOP k neighbors OPu: Binding(CPu, ci) 1: CN +0 Set of Candidate Neighbors) c∈cNe∈C, MATCH(c,ca)≤ The profile binding takes as input the contextual user profile MATCH(c, c CPu and the active context of the user ci. It returns an perational profile OPu which contains only profile elements 4: for all CP∈ldo which have to be considered by applications within ci 5: if m ∈ CPu then 5.2 Service deployment on CArs 6: OPui: BIND(C Pui, ca) CN←CNu{OPa} The Operational Profile is produced by filtering user rat 8:TOPK←{OPn∈CN,i=1,k} such that VOP∈ ings which aren't relevant to the active context, and by com- CN,OPu TOPK, MATCH(OPuj, OPu bining the remaining user ratings with contextual mapping MATCH(OPui, OPua) 9: return TOPK Operational profile is always related to one context ca(ac- tive context), it can be defined as being a set of contextual Each contextual rating is of the form: CR = pr 6.2 Aggregating Neighbor ratings and is derived from a contextual maping mia(R, ca,3, Once Top k neighbors of the active user ua are deter- mined, ratings they gave to the item(It)to be recommended with Ri pri X ri. Notice that w aggregate(ri, Sia) must be aggregated. The result of this aggregation allows deciding whether it is relevant or not to recommend it to item) within the context ca the user ua. There exist several techniques for aggregating The two reals r; and sia have particular semantics. In these ratings [8, 6, the one we considered is the Weighted fact, ri represents the absolute importance of a given pred- Mean Aggregation (equation 6) where the contribution of icate pri: In other words, it is the preference that a user each neighbor rating is weighted with the similarity between has on the predicate independently of contexts. However this neighbor and the active user ua a daily analysis of the user behaviour can reveal that th s portance of the predicate pri on which ri was expressed anges w r t contexts, leading to the definition of a contex- Rate(u, It)=a Match(u, ui)x Rate(ui, It)(6) Aggregate(ri, Sia)=sia xr. a is normalizing factor. According to the value of the aggregated rating, the rs These two numeric can be aggregated with different man- decides whether It could be or not recommended ners, one possibility is given in equation 5 were ri is mul- plied by the contextual score sia. In this way, more the 6.3 Simple scenaric importance of the contextual score of a given pri is high The scenario below gives an intuition about the way cars more its related rating ri is preserved provides users with contextual recommendations. Figure 4 6. TOWARD A SERVICE-BASED CARS focuses on the recommender engine(RE)sketched in figure 1. Dashed arrows represent the inputs of the re Once contexts are learned and contextual profiles are co When recommendations are requested, explicitly by users structed for each user in the RS, we show how runtime ser-(here John) or implicitly by the applications, RE computes vices ing and Matching) can be deployed in CARS to them following three processes A, B, and C shown in fig 4. vide users with contextual recommendations. The next First of all, a parser extracts the active context (ca) of sections present the CARS algorithm, and a simple example the user, and designates the candidate content to recom- scenario of its usage. mendation(step Al). In step Bl, the active context(ca)is matched with all context clusters in order to determine that 6.1 Contextual Top k neighbors to which ca belongs(line 2 of the algorithm). This context The key idea behind the CArS we propose is to base the cluster is used in step B2 for binding Johns contextual pro- Top k neighbors detection only on the profile parts relevant file and producing his operational profile(line 3). At the to a given context (i.e. operational profile) instead of on same time, RE looks for the candidate neighbors of John whole user profile. Top k neighbors of the active user (ua) (process C: lines 4-7). A candidate neighbor is a user who re the k most similar users to him in term of their rated the content to be recommended(filtering: step C1) es. This means that profiles of all users are filtered and in a context cr similar to the active context ca(step C2) dapted to the context of the active user before comparing n step C3, the contextual profile of each candidate user is them. Algorithm 3 details the process of computing the Top bound to its correspondi o g symipg the top k neighbors of context cr, resulting in a set k contextual neighbors. operational profiles. Step A The algorithm is explained through the simple scenario B and C. It consists in determin John among the candidate users. This is done by capturing
5. ONLINE SERVICE: BINDING This section details a runtime service that constitutes an answer to the last requirement imposed in section 2. 5.1 Service definition The binding consists in identifying, at a runtime, user profile parts which are related to a given context. OPu : Binding(CPu, ci) (4) The profile binding takes as input the contextual user profile CPu and the active context of the user ci. It returns an operational profile OPu which contains only profile elements which have to be considered by applications within ci. 5.2 Service deployment on CARS The Operational Profile is produced by filtering user ratings which aren’t relevant to the active context, and by combining the remaining user ratings with contextual mapping scores. Operational profile is always related to one context ca (active context), it can be defined as being a set of contextual ratings (and not mappings): OPu = {CR11, . . . , CRnk}. Each contextual rating is of the form: CR =, and is derived from a contextual mapping mia(Ri, ca, sia) with Ri = pri × ri. Notice that w = aggregate(ri, sia) is the weight (contextual rating) of the predicate pri (e.g. itemi) within the context ca. The two reals ri and sia have particular semantics. In fact, ri represents the absolute importance of a given predicate pri. In other words, it is the preference that a user has on the predicate independently of contexts. However, a daily analysis of the user behaviour can reveal that the importance of the predicate pri on which ri was expressed changes w.r.t contexts, leading to the definition of a contextual importance sia. Aggregate(ri, sia) = sia × ri (5) These two numeric can be aggregated with different manners, one possibility is given in equation 5 were ri is multiplied by the contextual score sia. In this way, more the importance of the contextual score of a given pri is high, more its related rating ri is preserved. 6. TOWARD A SERVICE-BASED CARS Once contexts are learned and contextual profiles are constructed for each user in the RS, we show how runtime services (Binding and Matching) can be deployed in CARS to provide users with contextual recommendations. The next sections present the CARS algorithm, and a simple example scenario of its usage. 6.1 Contextual Top k neighbors The key idea behind the CARS we propose is to base the Top k neighbors detection only on the profile parts relevant to a given context (i.e. operational profile) instead of on whole user profile. Top k neighbors of the active user (ua) are the k most similar users to him in term of their pro- files. This means that profiles of all users are filtered and adapted to the context of the active user before comparing them. Algorithm 3 details the process of computing the Top k contextual neighbors. The algorithm is explained through the simple scenario given bellow. Algorithm 3 Contextual Top K Neighbors Input: CPua = {m11, . . . , mnm}: Contextual active user profile, U: set of all users, ca: the active context, C: the set of all contexts, Item: the item candidate to recommendation, k: the number of neighbors to consider, γ: the threshold. Output: the TOP k neighbors 1: CN ← ∅ {Set of Candidate Neighbors} 2: c ∗ := c ∈ C|∀ci ∈ C, MAT CH(ci, ca) ≤ MAT CH(c ∗ , ca) 3: OPu := BIND(CPu, c∗ ) 4: for all CPui ∈ U do 5: if m ∈ CPui then 6: OPui := BIND(CPui, ca) 7: CN ← CN ∪ {OPui} 8: T OPK ← OPui ∈ CN, i = 1, k such that ∀OPuj ∈ CN, OPuj ∈/ T OPK, MAT CH(OPuj , OPua) ≤ MAT CH(OPui, OPua) 9: return T OPK 6.2 Aggregating Neighbor Ratings Once Top k neighbors of the active user ua are determined, ratings they gave to the item (It) to be recommended must be aggregated. The result of this aggregation allows deciding whether it is relevant or not to recommend It to the user ua. There exist several techniques for aggregating these ratings [8, 6], the one we considered is the Weighted Mean Aggregation (equation 6) where the contribution of each neighbor rating is weighted with the similarity between this neighbor and the active user ua. Rate(u, It) = α X ui∈T opK Match(u, ui) × Rate(ui, It) (6) α is normalizing factor. According to the value of the aggregated rating, the RS decides whether It could be or not recommended. 6.3 Simple scenario The scenario below gives an intuition about the way CARS provides users with contextual recommendations. Figure 4 focuses on the recommender engine (RE) sketched in figure 1. Dashed arrows represent the inputs of the RE. When recommendations are requested, explicitly by users (here John) or implicitly by the applications, RE computes them following three processes A, B, and C shown in fig 4. First of all, a parser extracts the active context (ca) of the user, and designates the candidate content to recommendation (step A1). In step B1, the active context (ca) is matched with all context clusters in order to determine that to which ca belongs (line 2 of the algorithm). This context cluster is used in step B2 for binding John’s contextual pro- file and producing his operational profile (line 3). At the same time, RE looks for the candidate neighbors of John (process C: lines 4-7). A candidate neighbor is a user who rated the content to be recommended (filtering: step C1), in a context cr similar to the active context ca (step C2). In step C3, the contextual profile of each candidate user is bound to its corresponding context cr, resulting in a set of operational profiles. Step A2 synchronizes the two processes B and C. It consists in determining the top k neighbors of John among the candidate users. This is done by capturing 5
Recommendation ional view in which the context is an informa tion, stable, delineable, and separable from the activity More recently, there was attempts to define architectures for context-aware recommender 7]. However, author don't give details about the deployment of such architectures 8. CONCLUSION atcher In this paper, we have proposed a set of services that improve rs by introducing the notion of con- Binding text. Among these services, two of them( Context Discov- ery and Contextualization) are design services and two oth- rs(Binding and Matching) are recommendation For each service, we have defined its operational ser through one or several algorithms. Finally, we have how these services can be combined to form a CaRs. Fur- ther research on this topic will concentrate on the evaluation Figure 4: Contextual CF-RS of this approach by comparing traditional RS with CArS the similarity between each candidate profile and John pro- 9. REFERENCES 1 S. Abbar, M. Bouzeghoub, D Kostadinov, and A3 aggregates ratings given to the recommended co S. Lopes. A contextualization service for a person- the top k returned neighbors. Finally, a decision alized access model. In EGC, pages 265-270, 2009 to know whether it is interesting or not to recommend the 2S. Abbar, M. Bouzeghoub, D. Kostadinov, S. Lopes, candidate content(through a threshold for example) ccess model: concepts and services for content delivery platforms. In Proceedings of the 10th iiwas 7. RELATED WORK Linz, Austria, pages 41-47, 2008 Adomavicius et al. [4 discussed what a next generation of 3 G. Adomavicius, R. Sankaranarayanan, S Sen, and RS might be and proposed some possible extensions that will A. Tuzhilin. Incorporating contextual information improve recommender capabilities such as the integration of recommender systems using a multidimensional contextual information into recommendation processes. In approach. ACM Trans. Inf. Syst., 23(1): 103-145, 2005 3, a multidimensional approach is presented to incorporat 4 G. Adomavicius and A. Tuzhilin. Toward the next the context into recommendations. The approach is based generation of recommender systems: A survey of the on ratings that are captured in OlAP cubes and which are state-of-the-art and possible extensions. IEEE TKDE, ensitive to contextual information such as Time, Place, and 17(6):734-749,2005 Accompanying people. The same multidimensional cube 5 R. Agrawal, R Rantzau, and E. Terzi. Context-sens- based approach was proposed to manage contextual prefe itive ranking In ACM SIGMOD, pages 383-394, 2006 nces in the database field [13. Contextual preferences are usually of the form: Pref(item, c1,..., Cn)=w, where ci is 6S. S. Anand and B Mobasher Contextual recomm- a contextual attribute, and the weight W E [0, 1] expresses endation. Discovering and Deploying User and Conte- the interest a user has on the item. Notice that Contextual nt Profiles. Berlin, Germany, pages 142-160, 2007 preferences were subject to extensive research in database 7 L. Baltrunas. Exploiting contextual information in field [12, 5, 2. Hence, understanding these researches recommender systems. In RecSys 08, pages 295-298 help in designing more meaningful CARS. The difference New York. NY USA. 2008. ACM between these approaches and our is that, in the latter one 8J. S. Breese, D Heckerman, and C Kadie. Empirical contextual attributes are clustered to form a finite set of reg nalysis of predictive algorithms for collaborative ular contexts of users(e.g. Lab context, Walking contex filtering. Technical report, MSR-TR-98-12. Microsoft while in the former. each instance of contextual attribute is research, Redmond, WA 98052, 1998 considered itself as a context 9 P. Dourish. What we talk about when we talk about Inspired by human memory, Anand and Mobasher [6 pro- context. Pers. Ubig. Comput., pages 19-30, 2004 posed a contextual recommendation where users are mod [10 J. Han and M. Kamber. Data Mining: Concepts and eled through a short-term memory(STM) which stores cur- Techniques. Morgan Kaufmann Publishers, 550 pages rent interactions and a long-term memory(LTM) which ISBN1-55860-489-8,2000. stores previous interactions. Contextual Cues are generated [11 BB. Phillip M. Hallam-Baker. Extended log file ormat. Technical report, w3C Draf WD. logfile to the context (i.e. cues). These ratings are merged with 960323.http://www.w3.org/tr/wd-logfile,1996 the stm to provide user with contextual recommendations [12 K. Stefanidis and E. Pitoura. Fast contextual The Binding service we presented has some similarities with preference scoring of database tuples In EDBT, this approach in the manner it computes the operational Nantes, France, pages 344-355, 2008 ofile using both contextual profile(LTM) and active con- [13 K. Stefanidis, E. Pitoura, and P. Vassiliadis. A text(Cue). However, unlike Anand et al. who consider the ontext-aware preference database system. Interl interactional view of the context. we have considered the Jounal of PcC, pages 439-460, 2007
Figure 4: Contextual CF-RS the similarity between each candidate profile and John pro- file; only top k similar profiles are retained (line 8). Step A3 aggregates ratings given to the recommended content by the top k returned neighbors. Finally, a decision is made to know whether it is interesting or not to recommend the candidate content (through a threshold for example). 7. RELATED WORK Adomavicius et al. [4] discussed what a next generation of RS might be and proposed some possible extensions that will improve recommender capabilities such as the integration of contextual information into recommendation processes. In [3], a multidimensional approach is presented to incorporate the context into recommendations. The approach is based on ratings that are captured in OLAP cubes and which are sensitive to contextual information such as Time, Place, and Accompanying people. The same multidimensional cubebased approach was proposed to manage contextual preferences in the database field [13]. Contextual preferences are usually of the form: P ref(item, c1, . . . , cn) = w, where ci is a contextual attribute, and the weight w ∈ [0, 1] expresses the interest a user has on the item. Notice that Contextual preferences were subject to extensive research in database field [12, 5, 2]. Hence, understanding these researches can help in designing more meaningful CARS. The difference between these approaches and our is that, in the latter one, contextual attributes are clustered to form a finite set of regular contexts of users (e.g. Lab context, Walking context) while, in the former, each instance of contextual attribute is considered itself as a context. Inspired by human memory, Anand and Mobasher [6] proposed a contextual recommendation where users are modeled through a short-term memory (STM) which stores current interactions and a long-term memory (LTM) which stores previous interactions. Contextual Cues are generated from STM to extract relevant ratings from LTM according to the context (i.e. cues). These ratings are merged with the STM to provide user with contextual recommendations. The Binding service we presented has some similarities with this approach in the manner it computes the operational profile using both contextual profile (LTM) and active context (Cue). However, unlike Anand et al. who consider the interactional view of the context, we have considered the representational view in which the context is an information, stable, delineable, and separable from the activity [9]. More recently, there was attempts to define architectures for context-aware recommender [7]. However, author don’t give details about the deployment of such architectures. 8. CONCLUSION In this paper, we have proposed a set of personalization services that improve RS by introducing the notion of context. Among these services, two of them (Context Discovery and Contextualization) are design services and two others (Binding and Matching) are recommendation services. For each service, we have defined its operational semantics through one or several algorithms. Finally, we have shown how these services can be combined to form a CARS. Further research on this topic will concentrate on the evaluation of this approach by comparing traditional RS with CARS. To this end, a significant benchmark has to be defined. 9. REFERENCES [1] S. Abbar, M. Bouzeghoub, D. Kostadinov, and S. Lopes. A contextualization service for a personalized access model. In EGC, pages 265–270, 2009. [2] S. Abbar, M. Bouzeghoub, D. Kostadinov, S. Lopes, A. Aghasaryan, and S. Betge-Brezetz. A personalized access model: concepts and services for content delivery platforms. In Proceedings of the 10th iiWas, Linz, Austria, pages 41–47, 2008. [3] G. Adomavicius, R. Sankaranarayanan, S. Sen, and A. Tuzhilin. Incorporating contextual information in recommender systems using a multidimensional approach. ACM Trans. Inf. Syst., 23(1):103–145, 2005. [4] G. Adomavicius and A. Tuzhilin. Toward the next generation of recommender systems: A survey of the state-of-the-art and possible extensions. IEEE TKDE, 17(6):734–749, 2005. [5] R. Agrawal, R. Rantzau, and E. Terzi. Context-sensitive ranking. In ACM SIGMOD, pages 383–394, 2006. [6] S. S. Anand and B. Mobasher. Contextual recommendation. Discovering and Deploying User and Content Profiles. Berlin, Germany, pages 142–160, 2007. [7] L. Baltrunas. Exploiting contextual information in recommender systems. In RecSys ’08, pages 295–298, New York, NY, USA, 2008. ACM. [8] J. S. Breese, D. Heckerman, and C. Kadie. Empirical analysis of predictive algorithms for collaborative filtering. Technical report, MSR-TR-98-12. Microsoft research, Redmond, WA 98052, 1998. [9] P. Dourish. What we talk about when we talk about context. Pers. Ubiq. Comput., pages 19–30, 2004. [10] J. Han and M. Kamber. Data Mining: Concepts and Techniques. Morgan Kaufmann Publishers, 550 pages. ISBN 1-55860-489-8, 2000. [11] B. B. Phillip M. Hallam-Baker. Extended log file format. Technical report, W3C Draf WD- logfile -960323. http://www.w3.org/TR/WD-logfile, 1996. [12] K. Stefanidis and E. Pitoura. Fast contextual preference scoring of database tuples. In EDBT, Nantes, France, pages 344–355, 2008. [13] K. Stefanidis, E. Pitoura, and P. Vassiliadis. A context-aware preference database system. Interl. Journal of PCC, pages 439–460, 2007. 6