Recommendation systems attempt to provide a user with a list of relevant resources, whether it be music, movies, books, news articles, web pages, text documents, etc. Conventionally, the relevance of a resource is determined based on the user's profile and characteristics of the resource (i.e., in a content-based approach) and/or based on the user's profile and the user's social environment (i.e., in a collaborative filtering approach).
Recommendation systems can be used to excise non-relevant resources from the aforementioned list, and/or to order the list according to a relevancy determined for each resource. The determined relevancy of a resource is sometimes construed as a prediction of a rating which the user would give to the resource.
A user's profile typically includes information collected both explicitly from the user and implicitly (i.e., without any direct action from the user). The profile may provide a representation of the user's interests, beliefs, goals, situation, etc. The profile may evolve based on newly-collected information, such as user purchases and resource ratings provided by the user.
Google provides two examples of recommendation systems which are primarily content-based. Google Reader is a Real Simple Syndication (RSS) reader that allows users to subscribe to RSS feeds and to read articles within the feeds. Google Reader recommends feeds to a user based on the feeds to which the user has already subscribed, the content of articles associated with the subscribed-to feeds, and the articles actually read by the user. Google Ad Sense, on the other hand, suggests advertisements to a user based on the content of a piece of text (i.e., a search query) input by the user.
Amazon.com uses collaborative filtering to recommend items to a user based on items previously purchased by the user. The recommended items include items purchased by other users who also purchased one of the user's previously-purchased items. The suggested items may be filtered further based on ratings thereof provided by the other users.
Conventional user profiles fail to sufficiently capture spontaneous interests or current user actions that do not necessarily correspond to the user's usual focus. Accordingly, recommendations provided by recommendation systems which employ user profiles do not reflect these spontaneous interests or current user actions.
Also, some conventional recommendation systems (e.g., collaborative filtering systems) may base their recommendations on similarity measures which quantify similarities between users or resources. However, these similarity measures do not take into account a context in which resources will be suggested to a user. In other words, the similarity measures reflect an absolute similarity irrespective of the context of the users and/or the context in which the resources will be recommended.
Recommendation systems are desired which may account for a user's situational context and that can be applied to significantly heterogeneous resources. Such a system may introduce a new measure of the interest of a user for a given resource in a given context.
The following description is provided to enable any person in the art to make and use the described embodiments and sets forth the best mode contemplated for carrying out some embodiments. Various modifications, however, will remain readily apparent to those in the art.
System 100 of
Rating engine 110 may comprise a computer processor and hardware configured to execute one or more of the processes described herein. Rating engine 110 may also or alternatively comprise program code stored on a tangible medium and executable by a processor to perform one or more of the processes described herein. In some embodiments, rating engine 110 may receive an indication of a user, a resource and a context from client system(s) 130 and may determine an interest measure corresponding thereto.
Client device(s) 130 may comprise any combination of devices and systems to request an interest measure associated with a user, a resource and a context. Generally, client device(s) 130 may comprise any system(s) which are capable of determining one or more resources of potential interest to a user, but which require quantification of the user's respective level of interest in each of the one or more resources. Examples of client device(s) 130 include, but are not limited to, a search engine, a shopping engine, a Web server, and a recommendation engine.
Storage device 120 stores data used by rating engine 110 to determine an interest measure according to some embodiments. Storage device 120 stores data describing users 121, contexts 122, resources 123, and suggestions 124.
Users 121 are represented by User entities. A User entity specifies a user's interests, which may be represented as a list of weighted keywords in some embodiments. Some embodiments may link the user entity to an existing user server or user profile component.
Contexts 122 are stored as Context entities linked to a User entity. Any number of contexts can be stored for each user, and a given context is associated with only one user. A Context entity of data model 200 includes an action descriptor, a session descriptor, and a resource descriptor.
For a given Context entity, the action descriptor represents an action which a user identified in the entity intends to execute. The action descriptor can be sub-classed to represent increasingly precise intentions. Examples of actions include, but are not limited to, “Create a presentation”, “Analyze our revenue by country”, etc.
The session descriptor is to describe the current situation of the user. The situation may be represented by any number of subclasses, non-exhaustive examples of which include location, time, type of user device, currently-used application, etc. The resource descriptor describes the data universe in which the user is participating (i.e., the data to which the user is allowed access).
Resources 123 may comprise data describing any resource which may be of use to a user. Examples include a web page, a query, a dataset, a music file, a video file, etc. A Resource entity of data model 200 represents resources by a type and a Uniform Resource Identifier, but embodiments are not limited thereto.
Suggestions 124 are represented by Suggestion entities of data model 200. A Suggestion entity links a suggested resource to a user and to the context in which the resource was suggested. The Suggestion entity also stores a rating which the user has assigned to the suggestion.
The above-described elements may provide a history of resources which were suggested to a given user and of the contexts in which those resources were suggested. This history may be leveraged to compute a measure of a user's interest for a given resource in a given context, and to provide improved recommendations based thereon. Specific processes for doing so and according to some embodiments are described below.
Embodiments may utilize a common semantic projection model to create semantic projections 125 of users and resources. Semantic projections 125 may also include semantic projections of contexts based on the common semantic projection model. The common semantic projection model may facilitate the determination of similarities between users, between resources, and between contexts. For example, a first semantic projection may be created for a first user and a second semantic projection may be created for a second user based on the common semantic projection model. A similarity between the two users may then be determined simply by determining a similarity between the first semantic projection and the second semantic projection.
Advantageously, use of a common semantic projection model may also facilitate the determination of similarity between a user and a resource. More specifically, similarity between a user and a resource may be determined by determining a similarity between a semantic projection of the user and a semantic projection of the resource, where both semantic projections conform to a common semantic projection model.
A semantic projection may consist of a set of weighted concepts specified by a common semantic projection model. The weighted concepts may represent the content of a text document, a user's interests, a query, etc. Accordingly, one user, resource or context may have the same semantic projection as another user, resource or context.
Since a semantic projection is a set of weighted concepts taken from the concepts of a common semantic projection model, the semantic projection of an object O including two concepts “sales” and “time” could be represented as:
πsem(O)={(Sales,2);(Time,1)}.
Semantic projection similarities 126 indicate the similarities between pairs of semantic projections 125. A similarity may be represented by a value between 0 and 1 which indicates how similar two sets of weighted concepts (i.e., semantic projections) are to one another. Data model 200 provides UserSimilarity and ContextSimilarity entities to store pre-computed similarities between users and contexts, respectively, for use during run-time as described below. According to some embodiments, similarities between semantic projections are based on the hierarchical structure of the common semantic projection model from which they are derived. With reference to
In the following description, Isem(U, R, σ) represents the semantic interest of a user U for a resource R in a context σ. Isem(U, R, σ) may be determined based on a similarity between a semantic projection of the user U's interests (IU) and a semantic projection of the resource R. This similarity may be denoted as: simsem(πsem(IU),πsem(R)).
A rating prediction P(U, R, σ) is a prediction of a rating which would be assigned by a user U to a resource R in a context σ. In some embodiments, an interest measure I(U, R, σ) of a user U for a resource R in a context σ is a function of Isem(U, R, σ) and P(U, R, σ). Stated symbolically:
I(U,R,σ)=f(Isem(U,R,σ),P(U,R,σ))
The rating prediction P(U, R, σ) may take into account not only actual ratings previously assigned by the user U to a resource R in a context σ, but also suggestions of the same resource R in similar contexts σ′. Accordingly, the previously-computed context similarities may be used to retrieve a set a contexts σ′ which are suitably similar to the context σ. In a simple embodiment based on relational tables, similar contexts σ′ are retrieved from similarities 126 of storage device 120 with an SQL statement:
SELECT Context.Context_ID FROM Context, ContextSimilarity
WHERE ContextSimilarity.Context_ID=Context.Context_ID
AND ContextSimilarity.Similarity>=Kc,
where Kc is a constant that can be determined experimentally.
In some embodiments, determination of the interest measure I(U, R, σ) also considers the average rating prediction for users in the community of the user U for the resource R in the context σ, denoted Pcomm(U, R, σ). The previously-computed context similarities may be used to retrieve a set a users U′ which are suitably similar to the user U. The set of users U′ may be retrieved from similarities 126 of storage device 120 with the SQL statement:
SELECT User.User_ID FROM User, UserSimilarity
WHERE UserSimilarity.User_ID=User.User_ID
AND UserSimilarity.Similarity>=Ku.
The predicted rating P(U′, R, σ) is computed for each user U′ in the set and an average community rating Pcomm(U, R, σ) is determined as the average of each predicted rating P(U′, R, σ). According to the foregoing embodiments:
I(U,R,σ)=f(Isem(U,R,σ),P(U,R,σ),Pcomm(U,R,σ))
Each of Isem(U, R, σ), P(U, R, σ), and Pcomm(U, R, σ) may be computed in any suitable manner according to some embodiments. Non-exhaustive examples of such computations are provided below.
In this regard,
Embodiments are not limited to process 500 or to the particular formulas used to described examples of process 500. Process 500 may be implemented by rating engine such as rating engine 110. In this regard, process 500 may be embodied in computer-executable program code stored on a tangible computer-readable medium. Process 500 may be implemented by any combination of hardware and/or software.
Initially, at 510, a similarity is determined between a semantic projection of a set of interests of a first user (πsem(IU)) and a semantic projection of a first resource (πsem(R)). Each semantic projection conforms to a common semantic projection model. As mentioned above, the similarity may be denoted as: simsem(πsem(IU),πsem(R)).
Accordingly, certain concepts are introduced in the multi-level representation of a semantic projection, even though these concepts were not explicitly mentioned in the semantic projection. However, it is desirable to place less importance on these “implicit” concepts than placed on explicitly-mentioned concepts. The “explicitness” of a concept is represented in the multi-level representation by a coefficient of explicitness e(C). A concept may be completely explicit (i.e., e=1), completely implicit (i.e., e=0.5) or something in between (i.e., 0.5<e<1).
For a concept C with Wex(C) representing the explicit weight of C, and Wtot(C) representing its total weight:
The similarity between multi-level representations having a common parent node may be computed as a weighted average of the proximity of the different concepts' weights. For a given concept, its total weights in the two representations may be compared using the following proximity function:
Therefore, with wo(c) denoting the total weight of the concept c in the multi-level representations having a common parent node, the similarity simsem(S1, S2) is determined by comparing the concepts of all branches stemming from and including the first common parent concept as follows:
The above similarity measure places more importance on explicitly-referenced concepts and deeper levels in the multi-level representations, since the concepts located therein may be more precise. In the latter regard, the function depth(C) provides the depth of concept C with respect to the first common parent concept. For example, depth(A)=1 and depth(L)=4.
The similarity measure generally compares the concepts of two semantic projections inside comparable branches of a multi-level representation. Inside one branch, sub-trees are built in order to compare the two semantic projections by taking into account information exposed by the structure of the multi-level representation.
The following table illustrates intermediate results of the similarity determination with respect to representations 700 and 750.
Therefore, simsem(S1, S2)=5.6675/17.501=0.323839.
Next, at 520, a semantic interest of the first user to the first resource in a first context is determined. In some embodiments, the semantic interest Isem(U, R, σ) is simply equal to simsem(πsem(IU),πsem(R)) (i.e., 0.323839 in the above example).
According to some embodiments, the first user's interests (IU) include static aspects and dynamic (e.g., spontaneous) aspects (IU(σ)). Accordingly, the semantic interest Isem(U, R, σ) may be a function of simsem(πsem(IU),πsem(R)) and of simsem(πsem(IU(σ)),πsem(R)). For example, in some embodiments:
Therefore, 520 may comprise determining simsem(πsem(IU),πsem(R)) as described above and also determining simsem(πsem(IU(σ)),πsem(R)). Moreover, 520 may comprise determining the semantic interest of the first user to the first resource in the first context based on simsem(πsem(IU),πsem(R)) and simsem(πsem(IU(σ)),πsem(R)).
By way of example, a scenario is considered in which previously-described semantic projections S1 and S2 are semantic projections of a current context and a past context, respectively.
Static user interests (IU) and dynamic user interests (IU(σ)) are associated with the following semantic projections S3 and S4:
Lastly, semantic projection S5 of the resource R:
In view of the semantic projections S1-S5 and the above formula for computing the semantic interest Isem(U, R, σ), 520 may comprise determining the semantic interest Isem(U, R, σ) using the following calculation:
simsem(S3, S5) may be determined as described above:
Therefore, simsem(S3, S5)=6.6429/10.5=0.632657.
Similarly, simsem(S4, S5) may be determined as described above:
Therefore, simsem(S4, S5)=3.01429/14.5=0.207882, and:
Returning to process 500, one or more users similar to the first user are determined at 530. The one or more users are determined based on a similarity between the semantic projection of the first user and respective one or more semantic projections of the one or more users. As described above, storage device 120 may store pre-calculated semantic projection similarities 126 according to some embodiments. These similarities 126 may specify a similarity measure for each pair of users 121. Accordingly, 530 may simply comprise identifying users sufficiently similar to the first user based on pre-calculated semantic projection similarities 126. Alternatively, 530 may comprise determining the similarities simsem(πsem(IU), πsem(IU′)) between the semantic projection of the first user U and the semantic projection of each other user U′ of users 121 as described above with respect to 510, and then selecting one or more users U′ associated with similarities exceeding a predetermined threshold.
540 may proceed similarly to 530. In this regard, one or more contexts similar to the first context are determined based on a similarity between the semantic projection of the first context and respective one or more semantic projections of the one or more contexts. Similarities 126 may specify a similarity measure for each pair of contexts 122. 540 may therefore comprise identifying contexts sufficiently similar to the first context based on pre-calculated semantic projection similarities 126. 540 may, on the other hand, comprise determining the similarities simsem(πsem(σ), πsem(σ′)) between the semantic projection of the first context σ and the semantic projection of each other context σ′ of contexts 122, and then selecting one or more contexts σ′ which are associated with similarities that exceed a predetermined threshold.
A rating prediction is determined at 550. The rating prediction is a prediction for the first user to the first resource in the first context. In some embodiments, the rating prediction is determined based on a rating given by the user to the first resource in the first context, a number of times the first resource has been suggested to the first user, and a number of times the first resource has been suggested to the first user in the one or more contexts determined at 540.
Stated symbolically:
where P(U, R, σ) is the rating prediction, r(U, R, σ) is the rating given (explicitly or implicitly) by the user to the first resource in the first context, and S(σ, U) is the set of contexts associated with the user U and similar to the first context σ.
Continuing with the above example including semantic projections S1-S5, it will be assumed that in the past context S2, the user U assigned an implicit rating of 5/5 to the resource R. Accordingly, P(U, R, S1) may then be determined as:
A rating prediction is determined at 560 for each of the one or more similar users determined at 530. As described above with respect to 550, the rating prediction is a prediction for a user to the first resource in the first context. Generally, 560 may consist of determining P(U, R, σ) as described above for each similar user U′. Accordingly, the rating predictions may be determined based on a rating given by a user to the first resource in the first context, a number of times the first resource has been suggested to the user, and a number of times the first resource has been suggested to the user in the one or more contexts determined at 540.
An interest measure associated with the first user, the first resource and the first context is determined at 570. The interest measure may be based on the rating prediction determined at 550, the semantic interest determined at 520, and an average of the rating predictions determined at 560. This average may be denoted as a community rating prediction Pcomm(U, R, σ). Therefore, as set forth above, the interest measure I(U, R, σ) may be determined as:
According to some embodiments of 470,
Any other function based on Isem(U, R, σ), P(U, R, σ) and Pcomm(U, R, σ) may be employed to determine the interest measure I(U, R, σ) at 570. As also described above, some embodiments of 570 may omit the community rating prediction Pcomm(U, R, σ) from the determination of the interest measure I(U, R, σ), leaving:
I(U,R,σ)=f(Isem(U,R,σ),P(U,R,σ))
These embodiments may therefore omit the determinations at 530 and 560, which are used to determine the community rating prediction Pcomm(U, R, σ).
For example, Text2 Query client 820 initially provides a text string to Text2 Query runtime server 830. The text string may originate from an eMail, a document, or any other source. Runtime server 830 is expected to generate database queries based on the text string and return the database queries to client 820.
Runtime server 830 processes the text string and builds a first list of suggested database queries and forwards the list to rating system 810. Rating system 810 considers each query in the list as a resource, and determines an interest measure for each resource according to any of the processes described herein. The determined interest measures are used to filter and re-order the list of suggested database queries, and the re-ordered list is sent back to runtime server 830. Runtime server 830 may forward the list to client 820, through which the user may explicitly rate the queries.
Implicit ratings may be captured by noting actions of the user with respect to the queries. For example, client 820 may allow the user to select a query from the re-ordered list to get a corresponding chart preview. Since this action is a sign of interest from the user, an implicit rating (e.g., 3/5) may be assigned to the query. If the user then chooses to retrieve the complete chart and use the chart within another application, the implicit rating may be updated (e.g., to 5/5).
Embodiments described herein are solely for the purpose of illustration. Those in the art will recognize other embodiments may be practiced with modifications and alterations to that described above.
This application claims priority to U.S. Provisional Patent Application Ser. No. 61/184,996, filed Jun. 8, 2009 and entitled “Situational Resource Rating”, the contents of which are incorporated by reference herein for all purposes.
Number | Name | Date | Kind |
---|---|---|---|
20070106651 | Isaacson et al. | May 2007 | A1 |
20080114756 | Konig et al. | May 2008 | A1 |
Entry |
---|
Huanhuan Cao et al., “Context-Aware Query Suggestion by Mining Click-Through and Session Data”, KDD'08, Aug. 24-27, 2008, Las Vegas, Nevada, ACM 978-1-60558-193, pp. 875-883, total 9pgs.). |
Sven Schwarz, “A Context Model for Personal Knowledge Management Applications”, in T.R. Roth-Berghofer, S. Schulz, and D.B. Leake (Eds.), Lecture Notes in Computer Science, vol. 3946, pp. 18-33, 2006, ISSN:0302-9743, 16pgs. |
Zeina Jrad et al., “A Contextual User Model for Web Personalization”, Web Information Systems Engineering—WISE 2007 Workshops, 2007, retrieved date Nov. 29, 2012, download from http://link.springer.com/chapter/10.1007%2F978-3-540-77010-7—33?LI=true, 5pgs. |
Tao Gu et al., “A Middleware for Building Context-Aware Mobile Services”, 2004, In Vehicular Technology Conference, VTC 2004-Spring. 2004 IEEE 59th, Vo. 5, pp. 2656-2660, 5pgs. |
Kaiyu Wan et al., “An Architecture for Developing Context-aware Systems”, in T.R. Roth-Berghofer, S. Schulz, and D. B. Leake (Eds.), Lecture Notes in Computer Science, vol. 3946, pp. 119-123, 2006, ISSN:0302-9743, 5pgs. |
Harry Chen et al., “An Intelligent Broker for Context-Aware Systems”, Adjunct Proceedings of Ubicomp, vol. 3, 2003, pp. 183-184, 2pgs. |
Tao Gu et al., “An Ontology-based Context Model in Intelligent Environments”, 2004, In Proceedings of Communication Networks and Distributed Systems Modeling and Simulation Conference, vol. 2004, pp. 270-275, 6pgs. |
Norbert Fuhr, “A Probability Ranking Principle for Interactive Information Retrieval”, Information Retrieval, vol. 11, No. 3, Jan. 25, 2008, pp. 251-265. |
David Vallet et al., “A Semantically-Enhanced Personalization Framework for Knowledge-Driven Media Services”, In Proceedings of IADIS International Conference on WWW/Internet (ICWI 2005), 2005, 8pgs. |
Mohamed Ramzi Haddad et al., “A User-oriented Accessibility Measure for Spatial Web Personalization”, Presentation in Workshop on Geographic Information on the Internet Workshop (GIIW), Apr. 6, 2009, Toulouse, France, pp. 1-13. |
Manuele Kirsh-Pinheiro et al., “Context-Aware Filtering for Collaborative Web Systems: Adapting the Awareness Information to the User's Context”, In Proceedings of the 2005 ACM Symposium on Applied Computing, 2005, (pp. 1668-1673, 6 pages total). |
Alfred Kobsa, “Generic User Modeling Systems”, User Modeling and User-Adapted Interaction, vol. 11, No. 1, 2001, (pp. 49-63, 15 pages total). |
Michael Sutterer et al., “Managing and Delivering Context-Dependent User Preferences in Ubiquitous Computing Environments”, Proceedings of the 2007 International Symposium on Applications and the Internet Workshops (SAINTW'07), 2007 IEEE, pp. 1-4, 4pgs. |
Alessandro Micarelli et al., “Personalized Search on the World Wide Web” in Peter Brusilovsky, Alfred Kobsa, and Wolfgang Nejdl(Eds.), 2007, The Adaptive Web, pp. 195-230, LNSC vol. 4321, ISSN:0302-9743, Springer, 36pgs. |
Fang Liu et al., “Personalized Web Search for Improving Retrieval Effectiveness”, Knowledge and Data Engineering, IEEE transactions on, vol. 16, No. 1, 2004, pp. 28-40. |
Paul Resnick et al., “Recommender Systems”, Communication of the ACM, vol. 40, No. 3, (Mar. 1997), pp. 56-58, 3pgs. |
Dominik Heckmann “Situation Modeling and Smart Context Retrieval with Semantic Web Technology and Conflict Resolution”, T.R. Roth-Berghofer, S. Schulz, and D.B. Leake (Eds.), Lecture Notes in Computer Science, vol. 3946, ISSN:0302-9743, 2006, 14pgs. |
Oana Bucur et al., “Steps Towards Making Contextualized Decisions: How to Do What You Can, With What You Have, Where You Are”, Industrial Engineering and Computer Sciences Division IG21), Research Report 2005-700-013, Sep. 2005, International Journal of Pervasive Computing and Communications, Aug. 2005, pp. 34-37, ISSN:0302-9743. |
Moshen Jamali et al., “TrustWalker: A Random Walk Model for Combining Trust-based and Item-based Recommendation”, In Proceedings of the 15th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining (KDD'09), Jul. 28-Jul. 1, 2009, Paris, France, pp. 397-406, 9pgs. |
Anind K. Day, “Understanding and Using Context”, Human-Computer Interaction Institute, School of Computer Science, Jan. 1, 2001, vol. 5, No. 1, pp. 4-7. |
Anders Kofod-Petersen et al., “Using Activity Theory to Model Context Awareness”, In Modeling and Retrieval of Context, (2006), Springer, ISBN: 978-3-540-33587-0, pp. 1-17, 17pgs. |
Number | Date | Country | |
---|---|---|---|
20100312746 A1 | Dec 2010 | US |
Number | Date | Country | |
---|---|---|---|
61184996 | Jun 2009 | US |