2009 IEEE Conference on Commerce and Enterprise Computing
Context-Aware Recommendation by Aggregating User Context
Dongmin Shin
Jae-won Lee
Samsung SDS Seongnam-Si 463-870, Republic of Korea
[email protected]
School of Computer Science and Engineering Seoul National University Seoul 151-742, Republic of Korea
[email protected]
Jongheum Yeon
Sang-goo Lee
School of Computer Science and Engineering Seoul National University Seoul 151-742, Republic of Korea
[email protected]
School of Computer Science and Engineering Seoul National University Seoul 151-742, Republic of Korea
[email protected]
consider these characteristics. For example, a user‟s preferred music in summer and the preferred music in winter are different. In this paper, we propose a context-aware approach to exploit users‟ context information for more accurate recommendation. Since the users‟ raw context cannot be applied to recommendation systems directly, it should be abstracted into a concept level by analyzing the semantics of context information. Context-awareness means 1) passively to preserve the context which appears newly or changes, and 2) actively to adapt to given context automatically by changing services [4]. In this paper, context-awareness means to provide services which fit to the users‟ context by recommending appropriate items. Our approach consists of 3 parts: 1) the abstraction of the given context, 2) the definition of the user context, and 3) the recommendation by linking appropriate items. Each part is performed in an abstract context layer, an aggregated context layer, and an item layer, respectively. In the abstract
Abstract— Traditional recommendation approaches do not consider the changes of user preferences according to context. As a result, these approaches consider the user’s overall preferences, although the user preferences on items varies according to his/her context. However, in our context-aware approach, we take into account not only user preferences, but also context information. Our approach can be easily adopted for content-based and collaborative filtering based recommendations. To exploit raw context information in recommendation, we abstract the raw context information to a concept level. Moreover, by aggregating the context information, we can improve the quality of recommendation. The results of several experiments show that our method is more precise than the traditional recommendation approaches. Keywords: Aggregation, Recommendation
Context-awareness,
ODP
and
I. INTRODUCTION The number of documents available on the Web has grown continuously since the advent of the Web. As a result of the growth, it becomes increasingly difficult for users to find appropriate items that are relevant to the needs of the users. In this situation, a research issue related to recommendation systems has become one of the most important research issues since the papers on collaborative filtering published in the 1990s [1]. Recommendation systems can be largely categorized into two categories: content-based recommendation and collaborative filtering based recommendation. Although the former recommends items whose contents are similar to what a user preferred in the past, the latter recommends the items which are preferred by others whose preferences are similar to the user [2]. Collaborative filtering based approaches assume that user preferences are indirectly represented by rating (or score) data on a specific item [3]. Since the preferences on an item vary according to user‟s context such as time, location and occasion, recommendation systems should
978-0-7695-3755-9/09 $25.00 © 2009 IEEE DOI 10.1109/CEC.2009.38
context layer, the raw context (e.g., 21:30, 25℃, and etc.) having the characteristic of consecutive data is abstracted into a set of concepts (e.g., night, warm, and etc.). Therefore, it should be abstracted to conceptual context by applying fuzzy set theory. The importance of each context depends on the type of users. For example, if a user is sensitive to monthly context, then the concepts related to months are weighted higher than the others. If the user is sensitive to seasonal context, the concepts related to seasons are also weighted higher. The appropriate weight for each concept is determined in the aggregated context layer. In an item layer, we represent items as a set of concepts in a large scale knowledge base such as the Web directory 1 , which represents the semantics of items. 1
We refer to each category of the Web directory as a concept.
423
The rest of this paper is organized as follows. In section 2, we introduce recommendation systems, and review collaborative filtering and content-based approaches that are representative approaches in recommendation. In section 3, we propose a technique which recognizes and utilizes users‟ context by context analysis. In section 4, we introduce the advantage of user context aggregation. In section 5, we explain experiment setting and analyze experiment results. Finally, in section 6, we conclude this paper. II. RELATED WORK A. Recommendation System In order to provide adequate items to the users, two types of techniques are widely used; Recommendation and Search. Recommendation systems look for the users‟ needs more actively, whereas search systems receive the needs passively. That is, while most search systems ask users to submit information needs with queries, recommendation systems do not [5]. Generally, recommendation systems regard users‟ rating data as a clue for recommendation [2]. The main goal of recommendation is to predict ratings (or preferences) of a user on unrated items [2-3]. As predicting ratings on items not yet accessed, the item which has the highest rating can be recommended. For example, Table I represents ratings of the users on music. The scale of rating is from 1 to 5. In this example, user urisj27 gave 5 points to Music_1. N/A means that a user has not accessed the music yet. A recommendation system uses the extrapolation which infers unknown ratings from known ratings on music. Users urisj27 hoyusnd happyton1212
TABLE I. USER-MUSIC MATRIX Music_1 Music_2 Music_3 5 3 1 3 4 5 4 2 4
Music_4 N/A 5 N/A
TABLE II. MUSIC-MUSIC CORRELATION Music_1 Music_2 Music_3 0.86 0.35 Music_4 0.92
computed. Generally the similarity between items, such as the correlation of music-music, can be computed by using cosine similarity and items‟ metadata. For example, genre, singer and music title can be used as metadata of music. In CB, the candidates of recommendation are limited to items whose contents are similar to highly rated items. This is the drawback of CB. For example, heavy metals may not be recommended to the user who has never listened to them before. Moreover, since CB uses the ratings of an active user, it is impossible to recommend correctly to a new user who does not have any ratings. CF uses users‟ ratings unlike the content-based approach which uses metadata of items. It consists of two steps: 1) finding a similar user group, 2) recommending an item which is preferred by the similar user group. In step 1), preference information is used to find the similar user group. To find preference information, the ratings of items given by the user are used. The values of Table III show the cosine similarity between users. Using the similarity between users in Table III, urisj27‟s expected preferences on Music_4 can be computed, as seen in Table IV. There are also some drawbacks in CF. First, there is a problem on a new user, which also appears in a contentbased approach. This is because CF is also based on ratings on items. Second, there is a problem that new items cannot be recommended. This is because an item can be used for recommendation when it is evaluated by many users. A new user problem and a new item problem are called as „cold start problem‟ altogether. Lastly, there is a sparsity problem. This is because there are few number of rated items compared to the number of unrated items. CB and CF have advantages and drawbacks respectively. Since two approaches are based on users‟ ratings, users‟ changeable context cannot be considered. However, since the preferences on item can be changed according to the context of users, recommendation systems should consider the characteristic. B. Context-awareness Context-aware computing is to collect the user context automatically and to extract information which is relevant to current context in collected information [6]. There are various definitions of context and contextawareness. Schilit et al. [7] defined context as location, nearby people and things, and change which happens to them. Brown et al. [8] used location, nearby people, time, season, and temperature. Ryan et al. [9] used location, environment, identity, and time. Dey [10] defined context as emotion, focus of concentration, location, adaptation, date and time, nearby things, and nearby people. Brown [11] used user‟s environment which computer knows. Franklin et al. [12] used user‟s environment. Many researches discussed how to use context. Schilit et al. [7] defined context-aware computing by categorizing context-aware applications into proximate selection, automatic context reconfiguration, contextual information
TABLE III. SIMILARITY BETWEEN USERS urisj27 hoyusnd happyton1212 0.764946 0.845154 urisj27 0.942809 hoyusnd happyton1212 TABLE IV. USER urisj27‟s MUSIC PREFERENCES Music_1 Music_2 Music_3 Music_4 5 3 1 3.871268 urisj27
To predict the rating of a user on a given item, the most popular and widely used approaches are content-based recommendation (CB) and collaborative filtering-based recommendation (CF). CB analyzes the contents on items which a user preferred, and recommends items which have similar contents. With the ratings of music which urisj27 listened in Table I and the correlation of music-music in Table II, urisj27‟s expected preferences on Music_4 can be
424
and commands, and context-triggered actions. Dey [6] categorized the characteristics which context-aware applications should provide into the presentation of information and services to a user, the automatic execution of a service, and the tagging of context to information for later retrieval.
In this paper, we propose a layered structure for abstracting context information. In the structure, 1) user preferences are abstracted to context concepts, and 2) items are recommended based on the user‟s preferences. The proposed recommendation system consists of three layers: a raw context layer, an abstract context layer, and an item layer, as seen in Figure 1.
III. CONTEXT-AWARE RECOMMENDATION USING LAYERED ABSTRACTION OF CONTEXT A. Overview While conventional recommendation systems have exploited user preferences, user context information is not yet considered. However, the user preferences are changeable according to the user‟s context. Hence, it cannot give appropriate recommendation in changeable context. In this paper, we define user context and propose a methodology which improves the quality of recommendation by analyzing user preferences with the context. An example of context-aware recommendation approaches is as follows. TABLE V. USER A‟s MUSIC LISTENING LOG User_ID Context Music User A 2007.07.20 21:30 Catch me User A 2007.11.05 19:10 November rain
Figure 1. Layered Abstraction of Context
The raw context (RC) means the signal data created in a recommendation system. Runtime such as „2008/02/25 08:30 a.m.‟ is an example of the raw context. Since RC is dynamic and consecutive information, it cannot be used in the system directly. An abstraction process, which abstracts a user‟s raw context to context concepts, is required to apply raw context to the system. We refer to this process as the context abstraction. As consecutiveness of raw context is hard to manage in the system, dispersion is required to represent the raw context to context concepts such as Sunny, Cloudy, Snowy, Rainy, Spring ~ Winter, Dawn ~ Midnight, and Monday ~ Sunday. Various weight functions, such as a triangular function, a trapezoidal function, a Gaussian function, a bell function and a sigmoid function, are introduced to disperse the consecutive data [13]. As considering the characteristics of context information (particularly, temporal information), we applied a trapezoidal function to our model. In the item layer, an item is originally represented by attributes such as genre and singer, and their values. Particularly, since the values consist of some keywords, it is hard to represent the potential semantics of each keyword, exactly. Hence, we use Open Directory Project (ODP) [14] to represent the semantics as a set of concepts which are the domain concepts (denoted dci in Figure 1).
TABLE VI. MUSIC-MUSIC CORRELATION Music Music Harvest moon Beechwood Park Blue Jay Way Let it be me
Catch me
November rain
0.4 0.2 0.9 0.8
0.8 0.9 0.4 0.1
TABLE VII. USER A‟s EXPECTED MUSIC PREFERENCES Context Music 2008.07.22 20:50 2008.11.22 21:14 Harvest moon 1.0 1.2 Beechwood Park 0.9 1.2 Blue Jay Way 1.1 1.2 Let it be me 1.0 1.2
Table V shows that user A‟s listening log on specific contexts. Table VI shows the correlation between music data. Depending on data in Tables V and VI, the user A‟s preferences on four music candidates can be computed, as seen in Table VII. Though the user A‟s preferences are changed according to the context, conventional recommendation systems do not reflect the change in recommendation. That is, they consider the whole preferences of a user. However, a context-aware recommendation gives high weights to items which are the most relevant to the given context. For example, in the first context (2008.07.22 20:50) of Table VII, the weights of „Blue Jay Way‟ and „Let it be me‟ are greater than those of „Harvest moon‟ and „Beechwood Park‟. Similarly, in the second context (2008.11.22 21:14), the weights of „Harvest moon‟ and „Beechwood Park‟ are greater than those of „Blue Jay Way‟ and „Let it be me‟.
B. Models This section explains how to model a user, an item, and the user‟s context. In addition, it also contains functions to compute the similarity between user‟s current context and context history, and the correlation between context history
425
and item. Based on these functions, a function to compute the correlation between a user and an item can be also introduced.
The domain concept set is a set of concepts (actually, a set of categories) from ODP to represent the semantics of an item. As denoting a user as context concepts, the relation between the user and context history can be computed, and the relation between the context history and an item also can be computed.
Definition 1 User set U = {u1, …, uk} is a set of users. Let ui be the ith user in U, then ui = where ucij is the correlation between the ith user’s current context and the jth context concept.
fUH(i,j) = The correlation between the ith user‟s current context and the jth context history
The user set contains k users. Each user is denoted as a concept vector which consists of q-dimensional context concepts. ucij means the correlation between the ith user‟s current context and the jth context concept.
=
𝑞 𝑥 =1 𝑞 𝑥 =1
𝑢𝑐 𝑖𝑥 × ℎ𝑐𝑐 𝑗𝑥 𝑞 𝑥 =1
𝑢𝑐 𝑖𝑥 2 ×
ℎ𝑐𝑐 𝑗𝑥
2
(1)
fHI(j,k) = The correlation between the jth context history and the kth item
Definition 2 Item set I = {i1, …, in} is a set of items. Let ik be the kth item in I, then ik = where ickj is the correlation between the kth item and the jth domain concept.
=
Item set contains n items. Each item is denoted as a concept vector which consists of p-dimensional domain concepts. ickj means the correlation between the kth item and the jth domain concept, which is computed using term frequency – inverse document frequency (TF-IDF) approach.
𝑝 𝑥 =1 𝑝 𝑥 =1
ℎ𝑐𝑑 𝑗𝑥 × 𝑖𝑐 𝑘𝑥
ℎ𝑐𝑑 𝑗𝑥
2
×
𝑝 𝑥 =1
(2) 𝑖𝑐 𝑘𝑥 2
fUI(i,k) = The ith user‟s expected preferences on the kth item = 𝑙𝑗 =1 𝑓𝑈𝐻 𝑖, 𝑗 × 𝑓𝐻𝐼 𝑗, 𝑘 (3) These functions compute an expected user preferences on the item by computing correlation. The computation of an expected user preferences on an item consists of two steps: 1) compute the similarity between a user‟s current context and context history, and 2) compute the correlation between the context history and an item, and derive an expected preferences by multiplying the similarity with the pre-computed correlation. The item that has the highest value is the most appropriate to recommend to the user. In step 1), to compute the similarity between a user‟s current context and context history, the user is represented as context concepts. Since context history is also represented as context concepts, the similarity between a user and context concepts can be computed by the cosine similarity. In step 2), in the case of context history and an item, they can be represented by a set of domain concepts. Hence, the similarity between them can be also computed by the cosine similarity.
Definition 3 Context history set H = {h1, …, hl} is a set of context histories. Let hi be the ith item in H, then hi = (, ) where hccij is the correlation between the ith context history and the jth context concept, and hcdir is the correlation between the ith context history and the rth domain concept. The context history set links users with items. Each element of H represents a user‟s log for an item in the context. The context history set consists of one context history. Each context history is denoted as a pair of hccij and hcdir. hccij means the correlation between the ith context history and the jth context concept. Moreover, hcdir means the correlation between the ith context history and the rth domain concept. The reason why context history is denoted as the set of context concept vector and domain concept vector is that context history consists of a user‟s context and the item used in that context. The forms of the first vector and second vector of hi are the same as those of the user model and the item model, respectively. That is, context history is the form which can link a user with an item. The system contains not only a user, an item, and context history set, but also other sets which are a domain concept set and a context concept set to represent the potential semantics of a user, an item, and context history.
IV.
CONTEXT-AWARE RECOMMENDATION USING AGGREGATED USER CONTEXT
A. Overview The abstract context layer disperses raw context to a set of context concepts. The context concepts have different values according to the raw context. 2008/09/05 17:00 | tommy82 | Catch me | Muse
Definition 4 Domain concept set DC = {dc1, …, dcp} is a set of domain concepts.
The raw context of this log can be represented as a context concept vector. For example, it can be represented as follows:
Definition 5 Context concept set CC = {cc1, …, ccq} is a set of context concept.
426
=
different number of aggregated context can be acquired according to user.
The raw context of the above example is autumn close to summer and afternoon close to evening. From the context concept vector, we can know the membership degree of raw context to context concepts, while we cannot know the important factor determining the current choice of tommy82. That is, it is hard to know whether a user tommy82 listened to this music due to time information of a day, afternoon, or seasonal information, autumn. Figure 3. Number of Aggregated Context according to Number of Context History
Figure 3 shows the number of aggregated context according to the number of context history. The number of aggregated context is proportional to the number of context history. B. Aggregated Model In previous section, we explained the needs of aggregation of context information. Hence, this section explains how to model the aggregated context in details. Figure 4 shows our aggregated model in which aggregated context is added to the model shown in Figure 1.
Figure 2. Aggregating of User‟s Contexts in Logs
Figure 2 shows users‟ music listening context related to the time of day and the days of the week. There are specific context patterns on music listening. As aggregating similar contexts, the contextual characteristic which does not exist in the individual abstract context can be found. All approaches assume that a user accesses items with preferences and patterns. The proposed approach in this paper assumes that there is a specific pattern between a user‟s context and the accessed item. That is, there is preferred contextual characteristic according to users. This characteristic can be found by aggregating context. This set of abstract context is called as aggregated context.
Definition 6 Aggregated context set A = {a1, …, as} is a set of aggregated contexts. Let ai be the ith aggregated context in A, then ai = (, () where accij is the correlation between the ith aggregated context and the jth context concept. In addition, adcir is the correlation between the ith aggregated context and the rth domain concept.
TABLE VIII. EXAMPLE OF AGGREGATED CONTEXT user ID spring summer autumn winter tommy82 25 0.24 0.261 0.214 0.286 morning afternoon dawn noon evening night 0 0 0.009 0 0 0.991
Table VIII shows an example of user youngjewboy‟s aggregated context. Each value of season is almost the same, while the value of afternoon is very high compared to other values of the time of the day. The result shows that the time of the day is the important factor when the user chooses items. The k-means algorithm [15] is applied to represent aggregated context. However, since it is hard to determine the exact number of context history to represent the aggregated user context, we use the advanced k-means algorithm [16] to change the number of context history dynamically. By the advanced k-means algorithm, the
427
Figure 4. Aggregation of Layered Context
Aggregated context is denoted as a vector set which consists of a context concept vector and a domain concept vector. fUA(i,j) = The similarity between the ith user‟s current context and the jth aggregated context =
𝑞 𝑥 =1
𝑞 𝑥 =1
𝑢𝑐 𝑖𝑥 × 𝑎𝑐𝑐 𝑗𝑥 𝑞 𝑥 =1
𝑢𝑐 𝑖𝑥 2 ×
𝑎𝑐𝑐 𝑗𝑥
2
(4)
th
fAM(j,k) = The similarity between item used on the j aggregated context and the kth item =
𝑝 𝑥 =1
𝑝 𝑥 =1
𝑎𝑑𝑐 𝑗𝑥 × 𝑖𝑐 𝑘𝑥
𝑎𝑑𝑐 𝑗𝑥
2
×
𝑝 𝑥 =1
(5) 𝑖𝑐 𝑘𝑥 2
fUM(i,k) = The ith user‟s expected preferences on the kth item = 𝑠𝑗=1 𝑓𝑈𝐴 𝑖, 𝑗 × 𝑓𝐴𝑀 𝑗, 𝑘 (6) These functions are used to recommend an appropriate item to a user on the proposed system. There are three steps for recommendation: 1) computing the similarity between user‟s current context and aggregated context, 2) computing the correlation between aggregated context and an item, and 3) deriving the expected preferences as multiplication of two results. fUA is a function to compute step 1). It uses the cosine similarity since user‟s current context and aggregated context are denoted as context concepts. fAM is a function to compute the similarity between aggregated context and an item in step 2). fUM is a function to compute preferences on user‟s item in step 3). The multiplication of the results of steps 1) and 2) is performed on all aggregated contexts, and the sum value indicates the preferences on the item. Items are recommended to the user in order of high value of preferences. V.
Figure 5. Elements of Abstract Context
For evaluation, we introduce a performance measure that is used hereafter which is Success Rate (SR). When the recommendation system returns top-k list of music, we examine whether they are actually listened by the user in the given time. If the results contain the music that the user had listened in the given time, we consider the test is a success. However, if there does not exist the music in the recommended result, we consider the test is a fail. We do the test through n time experiments. Then we count the number of success test. SR is defined as follows where n is 10 in our experiments. 𝑆𝑅 =
𝑛𝑢𝑚𝑏𝑒𝑟 𝑜𝑓 𝑠𝑢𝑐𝑐𝑒𝑠𝑠 𝑡𝑒𝑠𝑡 𝑛
(7)
Figure 6 shows the overall view of our experiments. For example, if a user „urisj27‟ inputs time information such as „2008.02.25, 8:30‟, a recommender system returns top 5 results like Figure 6. If the user had listened to the music, Fire and Rain – James Taylor, we consider the test is a success. However, if the user actually had listened to the music, Wicked Little Town – John Cameron Mitchell, the test result is a fail.
EXPERIMENT
A. Experiment Settings Data sets used in experiments are music data and user history crawled from last.fm, which is a famous internet radio broadcasting site. Domain concepts for items, abstract context, and aggregated context are gathered from „Top/Arts/Music‟ category of ODP, which is related to the target data [14]. Data are a music listening history of 200 users from November 1st, 2007 to October 31th, 2008 in last.fm. There are 1,913,261 logs, and average 7,247 logs per user. The number of distinct music crawled is 22,214, and the number of concepts from ODP is 11,584. Moreover, the elements of the abstract context layer are as follows. The raw context data are abstracted to these elements.
Figure 6. Performance Evaluation
In this paper, several recommendation methodologies are compared for experiments. These are denoted as follows:
428
CB (Content-Based Recommendation) CF (Collaborative Filtering-based Recommendation) CAR-LA (Context-Aware Recommendation using Layered Approach) CAR-AUC (Context-Aware Recommendation by Aggregating User Context)
To recommend music in case of CF, it is necessary to find others who have similar preferences to the active user. For experiments, we set the number of similar users to 200.2 The proportion of training set is 80%. Moreover, the computation of similarity between users (CF) or documents (CB) is based on Cosine Similarity that is widely used in information retrieval fields. B. Performance Evaluation
Figure 8. Type of Context Information
In this experiment, we can see that „full‟ is the greatest in performance, which means that using full context concepts is the best. The meaning of each curve is as follows. For example, we can see that the result of „w/o day week‟ is lower than that of „w/o season‟. That means that day information has more affection in recommendation than that of season information. In summary, we can see that „time of the day‟ information is the most important in recommendation. The next is „day of week‟ information is more important than „season‟ information in our experimental data set.
Figure 7. Recommendation Approaches
Figure 7 is a comparison of SR to show the effect of aggregation. When top-k is less than 10, the performance of CAR outperforms CB and CF. When k is greater than 10 and less than 20, the performance of CAR-AUC outperforms the others. However, when k is greater than 20, the performance of CF is the best. These results show that, in all cases, CAR provides more accurate results than CB and CF, because CAR considers users‟ contextual information. In the use-cases of recommendation systems, it is critical to recommend more meaningful and accurate items in top-10 or top-20 to users in general. Thus, our approach is reasonable in recommendation. Moreover, CF outperforms CB, which means that CF satisfies users better than CB in all cases.
VI.
In this paper, we propose a context-aware recommendation approach. With a layered approach, we propose a technique to abstract raw context information to a semantic level to apply to recommendation system. In addition, we show a technique to apply the user context to a recommendation system by denoting it as abstract concepts. However, since the importance between context concepts cannot be known, we introduced aggregated context model. Thus, we can compute the importance between context concepts which cannot be found in individual context and analyze the characteristic of context more correctly. In the experiment, we verify performance improvement with only context information compare to conventional recommendation approaches. In addition, by applying aggregated context information, we clarify the accuracy of recommendation is improved compared to not applying aggregated context information. In future work, we will hybrid context-aware approach and conventional recommendation approaches that may improve the quality of recommendation more. In addition, although we apply a trapezoidal function in this paper, the effects of applying different functions on recommendation can be also an interesting topic.
Figure 8 shows the effect of context concepts on user‟s music listening by CAR-AUC. In this figure, each curve denoted as follows;
CONCLUSION AND FUTURE WORK
full : There is no information elimination w/o season : Seasonal information such as spring is eliminated w/o time of the day : Time information of the day such as dawn is eliminated w/o day of the week : Day information of the week such as Monday is eliminated
ACKNOWLEDGMENT 2
Although we did not include the effect of the number of similar users in CF, we observed that the performance of CF is best when the number of similar users is 200.
This research was supported by the Ministry of Knowledge Economy, Korea, under the Information Technology
429
Research Center support program supervised by the Institute of Information Technology Advancement (grant number IITA-2009-C1090-0801-0031).
Neural Network”, Studies in Fuzziness and Soft Computing, vol. 224, 2008, pp. 151-161. [14] http://www.dmoz.org [15] J. B. MacQueen, “Some Methods for classification and Analysis of Multivariate Observations”, Proceedings of 5-th Berkeley Symposium on Mathematical Statistics and Probability, Berkeley, University of California Press, vol. 1, 1967, pp. 281-297. [16] Y. Ohura, K. Takahashi, I. Pramudiono, M. Kitsuregawa, “Experiments on Query Expansion for Internet Yellow Page Services Using Log Mining”, In Proc. of VLDB 2002, 2002, pp. 1008-1018.
REFERENCES [1] U. Shardanand and P. Maes, “Social Information Filtering: Algorithms for Automating "Word of Mouth” Proc. Conf. on Human Factors in Computing Systems, vol. 1, 1995, pp. 201-217. [2] G. Adomavicius and A. Tuzhilin, “Toward the next generation of recommender systems: A survey of the stateof-the-art and possible extensions”, IEEE Transactions on Knowledge and Data Engineering, vol. 17, no. 6, 2005, pp. 734-749. [3] G. Adomavicius , R. Sankaranarayanan , S. Sen, A. Tuzhilin, “Incorporating contextual information in recommender systems using a multidimensional approach”, ACM Transactions on Information Systems (TOIS), vol. 23 no. 1, 2005, pp. 103-145. [4] G. Chen , D. Kotz, “A Survey of Context-Aware Mobile Computing Research”, Dartmouth College, Hanover, NH, 2000. [5] J. S. Breese, D. Heckerman, C. Kadie, “Empirical analysis of predictive algorithms for collaborative filtering”, Proc. of the 14th Conference on Uncertainty in Artificial Intelligence, 1998, pp. 43-52. [6] G. D. Abowd, A. K. Dey, P. J. Brown, Nigel Davies, Mark Smith, Pete Steggles, “Towards a Better Understanding of Context and Context-Awareness”, Proceedings of the 1st international symposium on Handheld and Ubiquitous Computing, September 27-29, 1999, pp. 304-307. [7] B. Schilit, M. D. Theimer, “Active Map Information to Mobile Hosts”, IEEE Network, 8(5), 1994, pp. 22-32. [8] P. J. Brown, J. D. Bovey, X. Chen, “Context-Aware Applications: From the Laboratory to the Marketplace”, IEEE Personal Communications, 4(5), 1997, pp. 58-64. [9] N. Ryan, J. Pascoe, D. Morse, “Enhanced Reality Fieldwork: the Context-Aware Archaeological Assistant”, Computer Applications in Archaeology, 1997. [10] A. K. Dey, “Context-Aware Computing: The CyberDesk Project”, AAAI 1998 Spring Symposium on Intelligent Environments, Technical Report SS-98-02, 1998, pp. 51-54. [11] P. J. Brown, “The Stick-e Document: a Framework for Creating Context-Aware Applications”, Electronic Publishing ‟96, 1996, pp. 259-272. [12] D. Franklin, J. Flaschbart, “All Gadget and No Representation Makes Jack a Dull Environment”, AAAI 1998 Spring Symposium on Intelligent Environments, Technical Report SS-98-02, 1998, pp. 155-160. [13] Y. Rodriguez, R. Falcon, A. Varela and M. M. Garcia, “Learning Membership Functions for an Associative Fuzzy
430