US 20040172267 A1 Abstract A method for recommending items in a domain to users, either individually or in groups, makes user of users' characteristics, their carefully elicited preferences, and a history of their ratings of the items are maintained in a database. Users are assigned to cohorts that are constructed such that significant between-cohort differences emerge in the distribution of preferences. Cohort-specific parameters and their precisions are computed using the database, which enable calculation of a risk-adjusted rating for any of the items by a typical non-specific user belonging to the cohort. Personalized modifications of the cohort parameters for individual users are computed using the individual-specific history of ratings and stated preferences. These personalized parameters enable calculation of a individual-specific risk-adjusted rating of any of the items relevant to the user. The method is also applicable to recommending items suitable to groups of joint users such a group of friends or a family. A related method can be used to discover users who share similar preferences. Similar users to a given user are identified based on the closeness of the statistically computed personal-preference parameters.
Claims(89) 1. A statistical method for recommending items to users in one or more groups of users comprising:
maintaining user-related data including storing a history of ratings of items by users in the one or more groups of users; computing parameters associated with the one or more groups using the user-related data, including for each of the one or more groups of users computing parameters characterizing predicted ratings of items by users in the group; computing personalized statistical parameters for each of one or more individual users using the parameters associated with said user's group of users and the stored history of ratings of items by that user; enabling calculation of parameters characterizing predicted ratings of the items by the each of one or more users using the personalized statistical parameters. 2. The method of 3. The method of 4. The method of 5. The method of 6. The method of 7. The method of 8. The method of 9. The method of 10. The method of 11. The method of 12. The method of 13. The method of 14. The method of 15. The method of 16. The method of 17. The method of 18. The method of 19. The method of 20. The method of 21. The method of 22. The method of 23. The method of 24. The method of 25. The method of 26. The method of 27. The method of 28. The method of 29. The method of 30. The method of 31. The method of accepting additional ratings for one or more items by one or more users; and
updating the personalized statistics parameters for said user using the additional ratings.
32. The method of 33. The method of 34. The method of 35. The method of 36. The method of 37. The method of 38. The method of 39. The method of 40. The method of 41. The method of 42. The method of 43. The method of 44. The method of 45. The method of 46. The method of 47. The method of 48. The method of 49. The method of 50. The method of 51. The method of 52. The method of 53. The method of 54. The method of 55. The method of 56. The method of 57. The method of 58. The method of 59. The method of computing a score for each of multiple of the items for a first user, including computing predicted ratings for each of said items using the personalized statistical parameters for said user; and
recommending a subset of the multiple items using the computed scores.
60. The method of computing a score for each of multiple of the items for a set of the users, including computing predicted ratings for each of said items using the personalized statistical parameters for each of the users in said set; and
recommending a subset of the multiple items using the computed scores.
61. The method of 62. The method of 63. The method of 64. The method of 65. The method of 66. The method of 67. The method of 68. The method of 69. The method of 70. The method of 71. The method of 72. The method of 73. The method of 74. The method of 75. The method of 76. The method of 77. The method of 78. The method of 79. The method of 80. The method of 81. The method of 82. The method of 83. The method of 84. A method for identifying similar users comprising:
maintaining a history of ratings of the items by users in a group of users; computing parameters using the history of ratings, said parameters being associated with the group of users and enabling computation of a predicted rating of any of the items by an unspecified user in the group; computing personalized statistical parameters for each of one or more individual users in the group using the parameters associated with the group and the history of ratings of the items by that user, said personalized parameters enabling computation of a predicted rating of any of the items by that user; identifying similar users to a first user using the computed personalized statistical parameters for the users. 85. The method of 86. The method of 87. The method of 88. Software stored on computer readable media comprising instructions for causing a computer system to perform functions comprising:
maintaining user-related data including storing a history of ratings of items by users in one or more groups of users; computing parameters associated with the one or more groups using the user-related data, including for each of the one or more groups of users computing parameters characterizing predicted ratings of items by users in the group; computing personalized statistical parameters for each of one or more individual users using the parameters associated with said user's group of users and the stored history of ratings of items by that user; computing predicted ratings of the items by the each of one or more users using the personalized statistical parameters. 89. Software stored on computer readable media comprising instructions for causing a computer system to perform functions comprising:
maintaining a history of ratings of the items by users in a group of users; computing parameters using the history of ratings, said parameters being associated with the group of users and enabling computation of a predicted rating of any of the items by an unspecified user in the group; computing personalized statistical parameters for each of one or more individual users in the group using the parameters associated with the group and the history of ratings of the items by that user, said personalized parameters enabling computation of a predicted rating of any of the items by that user; identifying similar users to a first user using the computed personalized statistical parameters for the users. Description [0001] This application claims the benefit of U.S. Provisional Application No. 60/404,419, filed Aug. 19, 2002, U.S. Provisional Application No. 60/422,704, filed Oct. 31, 2002, and U.S. Provisional Application No. 60/448,596 filed Feb. 19, 2003. These applications are incorporated herein by reference. [0002] This invention relates to an approach for providing personalized item recommendations to users using statistically based methods. [0003] In a general aspect, the invention features a method for recommending items in a domain to users, either individually or in groups. Users' characteristics, their carefully elicited preferences, and a history of their ratings of the items are maintained in a database. Users are assigned to cohorts that are constructed such that significant between-cohort differences emerge in the distribution of preferences. Cohort-specific parameters and their precisions are computed using the database, which enable calculation of a risk-adjusted rating for any of the items by a typical non-specific user belonging to the cohort. Personalized modifications of the cohort parameters for individual users are computed using the individual-specific history of ratings and stated preferences. These personalized parameters enable calculation of a individual-specific risk-adjusted rating of any of the items relevant to the user. The method is also applicable to recommending items suitable to groups of joint users such a group of friends or a family. In another general aspect, the invention features a method for discovering users who share similar preferences. Similar users to a given user are identified based on the closeness of the statistically computed personal-preference parameters. [0004] In one aspect, in general, the invention features a method, software, and a system for recommending items to users in one or more groups of users. User-related data is maintained, including storing a history of ratings of items by users in the one or more groups of users. Parameters associated with the one or more groups using the user-related data are computed. This computation includes, for each of the one or more groups of users, computation of parameters characterizing predicted ratings of items by users in the group. Personalized statistical parameters are computed for each of one or more individual users using the parameters associated with that user's group of users and the stored history of ratings of items by that user. Parameters characterizing predicted ratings of the items by the each of one or more users are then enabled to be calculated using the personalized statistical parameters. [0005] In another aspect, in general, the invention features a method, software, and a system for identifying similar users. A history of ratings of the items by users in a group of users is maintained. Parameters are then calculated using the history of ratings. These parameters are associated with the group of users and enable computation of a predicted rating of any of the items by an unspecified user in the group. Personalized statistical parameters for each of one or more individual users in the group are also calcualted using the parameters associated with the group and the history of ratings of the items by that user. There personalized parameters enable computation of a predicted rating of any of the items by that user. Similar users to a first user are identified using the computed personalized statistical parameters for the users. [0006] Other features and advantages of the invention are apparent from the following description, and from the claims. [0007]FIG. 1 is a data flow diagram of a recommendation system; [0008]FIG. 2 is a diagram of data representing the state of knowledge of items, cohorts, and individual users; [0009]FIG. 3 is a diagram of a scorer module; [0010]FIG. 4 is a diagram that illustrates a parameter-updating process; 1) [0011] Referring to FIG. 1, a recommendation system [0012] The system maintains a state of knowledge [0013] To generate a recommendation [0014] Additional information about a user is also typically elicited. For example, the user's demographics and the user's explicit likes and dislikes on selected item attributes are elicited. These elicitation questions are selected to maximize the expected value of the information about the user's preferences taking into account the effort required to elicit the answers from the user. For example, a user may find that it takes more “effort” to answer a question that asks how much he or she likes something as compared to a question that asks how often that user does a specific activity. The elicitation mode yields elicitations [0015] Recommendation system [0016] Users are indexed by n which ranges from 1 to N. Each user belongs to one of a disjoint set of D cohorts, indexed by d. The system can be configured for various definitions of cohorts. For example, cohorts can be based on demographics of the users such as age or sex and on explicitly announced tastes on key broad characteristics of the items. Alternatively, latent cohort classes can be statistically determined based on a weighted composite of demographics and explicitly announced tastes. The number and specifications of cohorts are chosen according to statistical criteria, such as to balance adequacy of observations per cohort, homogeneity within cohort, or heterogeneity between cohorts. For simplicity of exposition below, the cohort index d is suppressed in some equations and each user is assumed assigned on only one cohort. The set of users belonging to cohort d is denoted by D 130 (FIG. 2) [0017] Referring to FIG. 2, state of knowledge [0018] State of knowledge of items [0019] Data [0020] Data [0021] For movies, examples of explicit features and attributes are the year of original release, its MPAA rating and the reasons for the rating, the primary language of the dialog, keywords in a description or summary of the plot, production/distribution studio, and classification into genres such as a romantic comedy or action sci-fi. Examples of latent attributes are a degree of humor, of thoughtfulness, and of violence, which are estimated from the explicit features. [0022] State of knowledge of users [0023] Data for each user n includes an explicit user “preference” z [0024] Data [0025] User data [0026] State of knowledge of cohorts [0027] The cohort data also includes a K-dimensional vector γ [0028] A discussion of how the various variables in state of knowledge 3) [0029] Recommendation system [0030] For an item i that a user n has not yet rated, recommendation system [0031] The scorer [0032] a. A cohort-based prior rating f [0033] b. An explicit deviation [0034] c. An inferred deviation [0035] The specific computation performed by scorer [0036] Here the three parenthetical terms correspond to the three components (a.-c.) above, and {tilde over (z)} [0037] As discussed further below, f f [0038] where {overscore (r)} [0039] Along with the expected rating for an item, scorer [0040] Scorer [0041] Cohort data [0042] In many instances, N [0043] One alternative estimator employs ratings of item i by users outside of cohort d. Let N [0044] A second alternative estimator is a regression of r [0045] All the parameter for the estimators, as well as parameters that determine the relative weights of the estimators, are estimated together using the following non-linear regression equation based on the sample of all ratings from the users of cohort d: [0046] Here {overscore (r)} [0047] The φ [0048] All the parameters in equation (3) are invariant across users in the cohort d. However, with small N [0049] The key estimates obtained from fitting the non-linear regression (3) to the sample data, whether by classical methods for each cohort separately or by pooled Bayesian estimation under assumptions of exchangeability, are: γ [0050] Referring to FIG. 4, state updater [0051] State updater [0052] The initial value of P [0053] Parameters of state of users [0054] State updater [0055] The recommendation system is based on a model that treats each unknown rating r [0056] Under this model, the unknown random rating is expressed as: [0057] where ε [0058] For a user n who has rated item i with a rating r [0059] As the system obtains more ratings by various users for various items, the estimate of the mean and the precision of that variable are updated. At time index t, using ratings up to time index t, the random parameters are distributed as π [0060] At time index t+1, the system has received a number of ratings of items by users n, which we denote h, that have not yet been incorporated into the estimates of the parameters π [0061] The updated estimate of the parameters π π [0062] Equation (5) is applied at time index t=1 to incorporate all the user's history of ratings prior to that time. For example, time index t=1 is immediately after the update to the cohort parameters, and subsequent time indices correspond to later times when subsequent of the user's ratings incorporated. In an alternative approach, equation (5) is reapplied using t=1 repeatedly starting from the prior estimate and incorporating the user's complete rating history. This alternative approach provides a mechanism for removing ratings from the user's history, for example, if the user re-rates an item, or explicitly withdraws a past rating. [0063] Referring to FIGS. 1-2, item attributizer [0064] Information available to item attributizer [0065] In a movie domain, examples of input variables associated with a movie include its year of release, its MPAA rating, the studio that released the film, and the budget of the film. Examples of text fields are plot keywords, keyword that the movie is an independent-film, text that explains the MPAA rating, and a text summary of the film. The vocabularies of the text fields are open, in the range of 5,000 words for plot keywords and 15,000 words for the summaries. As is described further below, the words in the text fields are stemmed and generally treated as unordered sets of stemmed words. (Ordered pairs/triplets of stemmed words can be treated as unique meta-words if appropriate.) [0066] Attributes x [0067] Latent attributes are estimated from the inputs for an item using one of a number of statistical approaches. Latent attributes form two groups, and a different statistical approach is used for attributes in each of the groups. One approach uses a direct mapping of the inputs to an estimate of the latent attribute, while the other approach makes use of a clustering or hierarchical approach to estimating the latent attributes in the group. [0068] In the first statistical approach, a training set of items are labeled by a person familiar with the domain with a desired value of a particular latent attribute. An example of such a latent attribute is an indication of whether the film is an “independent” film. For this latent variable, although an explicit attribute could be formed based on input variables for the film (e.g., the producing/distributing studio's typical style or movie budget size), a more robust estimate is obtained by treating the attribute as latent and incorporating additional inputs. Parameters of a posterior probability distribution Pr (attr. k|input i), or equivalently the expected value of the indicator variable for the attribute, are estimated based on the training set. A logistic regression approach is used to determine this posterior probability. A robust screening process selects the input variables for the logistic regressions from the large candidate set. In the case of the “independent” latent attribute, pre-fixed inputs include the explicit text indicator that the movie is independent-film and the budget of the film. The value of the latent attribute for films outside the training set is then determined as the score computed by the logistic regression (i.e., a number between 0 and 1) given the input variables for such items. [0069] In the second statistical approach, items are associated with clusters, and each cluster is associated with a particular vector of scores of the latent attributes. All relevant vectors of latent scores for real movies are assumed to be spanned by positively weighted combinations of the vectors associated with the clusters. This is expressed as: [0070] where S [0071] The parameters of the probability functions on the right-hand side of the equation are estimated using a training set of items. Specifically, a number of items are grouped into clusters by one or more persons with knowledge of the domain, hereafter called “editors.” In the case of movies, approximately 1800 movies are divided into [0072] The right-hand side probabilities are estimated using a multinomial logistic regression framework. The inputs to the logistic regression are based on the numerical and categorical input variables for the item, as well as a processed form of the text fields. [0073] In order to reduce the data in the text fields, for each higher-level cluster C, each of the words in the vocabulary is categories into one of a set of discrete (generally overlapping) categories according to the utility of the word in discriminating between membership in that category versus membership in some other category (i.e., a 2-class analysis for each cluster). The words are categorized as “weak,” “medium,” or “strong.” The categorization is determined by estimating parameters of a logistic function whose inputs are counts for each of the words in the vocabulary occurring in each of the text fields for an item, and the output is the probability of belonging to the cluster. Strong words are identified by corresponding coefficients in the logistic regression having large (absolute) values, and medium and weak words are identified by corresponding coefficients having values in lower ranges. Alternatively, a jackknife procedure is used to assess the strength of the words. Judgments of the editors are also incorporated, for example, by adding or deleting works or changing the strength of particular words. [0074] The categories for each of the clusters are combined to form a set of overlapping categories of words. The input to the multinomial logistic function is then the count of the number of words in each text field in each of the categories (for all the clusters). In the movie example with 6 higher-level categories, and three categories of word strength, this results in 18 counts being input to the multinomial logistic function. In addition to these counts, additional inputs that are based on the variables for the item are added, for example, an indicator of the genre of a film. [0075] The same approach is repeated independently to compute Pr(cluster c|cluster C, input i) for each of the clusters C. That is, this procedure for mapping the input words to a fixed number of features is repeated for each of the specific clusters, with different with different categorization of the words for each of the higher-level clusters. With C higher-level clusters, an additional C multinomial logistic regression function are determined to compute the probabilities Pr(cluster c|cluster C, input i). [0076] Note that although the training items are identified as belonging to a single cluster, in determining values for the latent attributes for an item, terms corresponding to each of the clusters contribute to the estimate of the latent attribute, weighted by the estimate of membership in each of the clusters. [0077] The V explicit features, v [0078] Referring to FIG. 1, recommender [0079] A first function relates to the difference in ranges of ratings that different users may give. For example, one user may consistently rate items higher or lower than another. That is, their average rating, or their rating on a standard set of items may differ significantly from than for other users. A user may also use a wider or narrower range of rating than other users. That is, the variance of their ratings or the sample variance of a standard set of items may differ significantly from other users. [0080] Before processing the expected ratings for items produced by the scorer, the recommender normalizes the expected ratings to a universal scale by applying a user-specific multiplicative and an additive scaling to the expected ratings. The parameters of these scalings are determined to match the average and standard deviation on a standard set of items to desired target values, such as an average of 3 and a standard deviation of 1. This standard set of items is chosen such that for a chosen size of the standard set (e.g., 20 items) the value of the determinant of X′X is maximized, where X is formed as a matrix whose columns are the attribute vectors x [0081] A second function is performed by the scorer is to limit the items to consider based on a preconfigured floor value of the normalized expected rating. For example, items with normalized expected ratings lower than 1 are discarded. [0082] A third function performed by the recommender is to combine the normalized expected rating with its (normalized) variance as well as some editorial inputs to yield a recommendation score, s [0083] The term Φ [0084] The term Φ [0085] The third term Φ [0086] When a new user first begins using the system, the system elicits information from the new user to begin the personalization process. The new user responds to a set of predetermined elicitation queries [0087] Initially, the new user is asked his or her age, sex, and optionally is asked a small number of additional questions to determine their cohort. For example, in the movie domain, an additional question related to whether the watch independent films is asked. From these initial questions, the user's cohort is chosen and fixed. [0088] For each cohort, a small number of items are pre-selected and the new user is asked to rate any of these items with which he or she is familiar. These ratings initialize the user's history or ratings. Given the desired number of such items, with is typically set in the range of 10-20, the system pre-selects the items to maximize the determinant of the matrix X′X where the columns of X are the stacked attribute and feature vectors (x′ [0089] The new user is also asked a number of questions, which are used to determine the value of the user's preference vector z [0090] The approach described above, the correlation structure of the error term ε [0091] An expected rating {circumflex over (r)} [0092] where {circumflex over (ε)} [0093] The terms Λ=[{circumflex over (λ)} [0094] One approach to estimating these terms is to assume that the entries of Λ have the form {circumflex over (λ)} [0095] One approach to precomputing the constants is as {tilde over (λ)} [0096] In the analogous approach, the terms {tilde over (ω)} [0097] Another approach to computing the constant terms uses a Bayesian regression approach using E({circumflex over (ε)} [0098] Similarly, the Bayesian regression E({circumflex over (ε)} [0099] 9.1 Joint Recommendation [0100] In a first alternative recommendation approach, the system described above optionally provides recommendations for a group of users. The members of the group may come from different cohorts, may have histories of rating different items, and indeed, some of the members may not have rated any items at all. [0101] The general approach to such joint recommendation is to combine the normalized expected ratings {circumflex over ({tilde over (r)})} [0102] Joint recommendation scores s [0103] The risk term is conveniently the standard deviation (square root of variance) {tilde over (σ)} [0104] Alternatively, the weighted combination is performed after recommendation scores for individual users Sin are computed. That is, [0105] Computation of a joint recommendation on behalf of one user requires accessing information about other users in the group. The system implements a two-tiered password system in which a user's own information in protected by a private password. In order for another user to use that user's information to derive a group recommendation, the other user requires a “public” password. With the public password, the other user can incorporate the user's information into a group recommendation, but cannot view information such as the user's history of ratings, or even generate a recommendation specifically for that user. [0106] In another alternative approach to joint recommendation, recommendations for each user are separately computed, and the recommendation for the group includes at least a best recommendation for each use in the group. Similarly, items that fall below a threshold score for any user are optionally removed from the joint recommendation list for the group. A conflict between a highest scoring item for one user in the group that scores below the threshold for some other user is resolved in one of a number of ways, for example, by retaining the item as a candidate. The remaining recommendations are then included according to their weighted ratings or scores as described above. Yet other alternatives include computing joint ratings from individual ratings using a variety of statistics, such as the maximum, the minimum, or the median individual ratings for the items. [0107] The groups are optionally predefined in the system, for example, corresponding to a family, a couple, or some other social unit. [0108] 9.2 Affinity Groups [0109] The system described above can be applied to identifying “similar” users in addition to (or alternatively instead of) providing recommendations of items to individuals or groups of users. The similarity between users is used to can be applied to define a user's affinity group. [0110] One measure of similarity between individual users is based on a set of standard items, J. These items are chosen using the same approach as described above to determine standard items for normalizing expected ratings, except here the users are not necessarily taken from one cohort since an affinity group may draw users from multiple cohorts. [0111] For each user, a vector of expected ratings for each of the standard items is formed, and the similarity between a pair of users is defined as a distance between the vector of ratings on the standard items. For instance, a Euclidean distance between the ratings vectors is used. The size of an affinity group is determined by a maximum distance between users in a group, or by a maximum size of the group. [0112] Affinity groups are used for a variety of purposes. A first purpose relates to recommendations. A user can be provided with actual (as opposed to expected) recommendations of other members of his or her affinity group. [0113] Another purpose is to request ratings for an affinity group of another user. For example, a user may want to see ratings of items from an affinity group of a well known user. [0114] Another purpose is social rather than directly recommendation-related. A user may want to find other similar people, for example, to meet or communicate with. For example, in a book domain, a user may want to join a chat group of users with similar interests. [0115] Computing an affinity group for a user in real time can be computationally expensive due to the computation of the pair wise user similarities. An alternative approach involves precomputing data that reduces the computation required to determine the affinity group for an individual user. [0116] One approach to precomputing such data involves mapping the rating vector on the standard items for each user into a discrete space, for example, by quantizing each rating in the rating vector, for example, into one of three levels. For example, with 10 items in the standard set, and three levels of rating, the vectors can take on one of 3 [0117] Alternative approaches to forming affinity groups involve different similarity measures based on the individuals' statistical parameters. For example, differences between users' parameter vectors π (taking into account the precision of the estimates) can be used. Also, other forms of pre-computation of groups can be used. For example, clustering techniques (e.g., agglomerative clustering) can be used to identify groups that are then accessed when the affinity group for a particular user is needed. [0118] Alternatively, affinity groups are limited to be within a single cohort, or within a predefined number of “similar” cohorts. [0119] 9.3 Targeted Promotions [0120] In alternative embodiments of the system, the modeling approach described above for providing recommendations to users is used for selecting targeted advertising for those users, for example in the form of personalized on-line “banner” ads or paper or electronic direct mailings. [0121] 9.4 Gift Finders [0122] In another alternative embodiment of the system, the modeling approach described above for providing recommendations to users is used to find suitable gifts for known other users. Here the information is typically limited. For example, limited information on the targets for the gift may be demographics or selected explicit tastes such that the target may be explicitly or probabilistically classified into explicit or latent cohorts. [0123] In another alternative embodiment, users may be assigned to more than one cohort, and their membership may be weighted or fractional in each cohort. Cohorts may be based on partitioning users by directly observable characteristics, such as demographics or tastes, or using statistical techniques such as using estimated regression models employing latent classes. Latent class considerations offer two important advantages: first, latent cohorts will more fully utilize information on the user; and, second, the number of cohorts can be significantly reduced since users are profiled by multiple membership in the latent cohorts rather than a single membership assignment. Specifically, we obtain a cohort-membership model that generates user-specific probabilities for user n to belong to latent cohort d, Pr(n∈D [0124] Estimates of Pr(n∈D [0125] For the scores, the increased burden with latent cohorts is very small, which allows the personalized recommendation system to remain very scalable. [0126] The approach described above considers a single domain of items, such as movies or books. In an alternative system, multiple domains are jointly considered by the system. In this way, a history in one domain contributes to recommendations for items in the other domain. One approach to this is to use common attribute dimensions in the explicit and latent attributes for items. [0127] It is to be understood that the foregoing description is intended to illustrate and not to limit the scope of the invention, which is defined by the scope of the appended claims. Other embodiments are within the scope of the following claims. Referenced by
Classifications
Legal Events
Rotate |