USER-TAILORED RECOMMENDATIONS
A facility for producing an item recommendation for a selected user is described. The facility accesses an information resource that, for each of a number of buckets that each correspond to a different collection of personal information, identifies users for a members of the bucket into each of whom the entire collection of personal information applies. The facility selects a bucket among the plurality of buckets of which the selected user is a member. The facility accesses a number of item ratings that were each contributed by a member of the selected bucket other than the selected user. For each item rated among the accessed item ratings, the facility aggregates the ratings of the item. On the basis of items' aggregated ratings, the facility selects one or more rated items for recommendation to the selected user.
This application is a continuation of U.S. application Ser. No. 14/719,207, filed May 21, 2015 which is incorporated herein in its entirety. Any and all applications, if any, for which a foreign or domestic priority claim is identified in the Application Data Sheet of the present application are hereby incorporated by reference in their entireties under 37 CFR 1.57.
TECHNICAL FIELDThe described technology is directed to the field of decision-support tools
BACKGROUNDNewspapers and magazines have long published editorial reviews of restaurants, bars, movies, books, cars, etc. These reviews generally offer one person's perspective on the suitability of the reviewed item.
More recently, websites and mobile apps have become available that allow any user to offer free-text reviews and ratings of similar items. Someone using these tools to decide whether to visit a restaurant can typically read all of the reviews and ratings of the restaurant accumulated from other users and see average ratings across all ratings of the restaurant.
The inventors have recognized that conventional tools for supporting choices of restaurants, bars, movies, books, cars, etc. have significant disadvantages. In particular, these tools are invariably designed for the mass market, providing essentially the same information irrespective of their users' differing needs, preferences, and traits.
In order to overcome these disadvantages, the inventors have conceived and reduced to practice a software and/or hardware facility for providing user-tailored recommendations (“the facility”). In particular, the facility seeks to organize its users into a potentially large number of groups, or “buckets,” designed to collect together users whose needs, preferences, and traits that are relevant to choosing an item are similar enough that choices and evaluations by some members of a bucket are predictive of the experience that other members of the bucket will have if they make the same choices. While the recommendation of restaurants is discussed extensively herein, in various embodiments, the facility recommends items of a wide variety of types, such as items of types including bars, movie theatres, concert venues, sports venues, vacation destinations, movies, television shows, televisions channels, books, magazines, blogs, airlines, cars, motorcycles, car rental agencies, salons, online merchants, brick-and-mortar merchants, political candidates, etc.
In various embodiments, the facility defines the buckets based upon various combinations of information about the users, including demographic information (e.g., age, sex, income, etc.), personality type (e.g., introverted-sensing-feeling-perceiving) preferences (e.g., “Do you enjoy loud places?”), subjectivity measures (e.g., “Do you regard libraries as loud places?”), and actions (e.g., restaurants chosen, ratings given, places visited, destinations traveled to).
In various embodiments, the facility obtains this information in various combinations of ways, including explicitly posing questions to users; inferring additional information from questions answered (e.g., from a positive answer to the question “I enjoy good late-night street vendor hotdog,” an inference that the same user would negatively answer the question “is essential to you that restaurants be neat and tidy?”); and observing user actions that demonstrate certain information (e.g., a user repeatedly rating restaurants highly that are known to be loud, despite having answered an explicit question about sound levels in a way that indicates that the user does not like loud places).
In some embodiments, the facility organizes the buckets into a classifying decision tree data structure, in which each bucket is represented by a node. As the facility progresses in obtaining relevant information about a user, the facility navigates the user to nodes deeper and deeper in the decision tree, corresponding to progressively more fully-specified buckets of users, who have more and more in common. When seeking to recommend a restaurant to a user, the facility analyzes restaurant ratings from users in the same bucket. Where the user's bucket contains few restaurant ratings—either because there are few other users in the bucket, or because they have been relatively inactive in rating restaurants—the facility also uses restaurant ratings from users in buckets that are nearby in the tree, such as parent nodes and sibling nodes, or are otherwise similar.
In some embodiments, a user can tailor a recommendation to a particular dining scenario, or “channel,” such as a business lunch, casual lunch, outside dining, happy hour, formal date, casual date, dinner with the kids, etc. In some embodiments, the facility tailors recommendations to channels by qualifying certain restaurant ratings by one or more channels to which they relate. For example, where a user rates a restaurant immediately after receiving it from the facility as a recommendation for the channel “business lunch,” in some embodiments, that rating is qualified by the “business lunch” channel. In some embodiments, where the facility is recommending a restaurant to another user for the “business lunch” channel, the facility uses only ratings qualified with the “business lunch” channel, omitting or significantly discounting other ratings not so qualified.
In some embodiments, before combining ratings from users from the same or similar buckets, the facility uses a confidence level to adjust ratings to make them more applicable to the user to whom the recommendation is being provided. For example, a restaurant's service rating may be adjusted downward when given by a user who grades all restaurants highly on service, or has answered a question in a way indicating indifference to good service.
A user can rate a restaurant that the facility recommended to the user, or may rate a restaurant that the user visited for another reason. In some embodiments, the facility collects multiple categories of ratings for each restaurant rated by each user. For example, in some embodiments, the user rates a restaurant in some combination of these categories: atmosphere, clientele, service, quality of food, food quality vs. cost, food quantity vs. cost, and overall experience, such as by selecting a number of stars, typing a value, moving a slider, etc. In some embodiments, where the facility recommends a restaurant to a user, the facility indicates a score in each of these categories. In some embodiments, when the facility generates a restaurant recommendation for a user, it includes a quantitative probability that the user will enjoy the recommended restaurant.
In some embodiments, the facility periodically reorganizes its decision tree to more effectively distinguish between users with different tendencies toward restaurants, causing its new buckets and their members to be more predictive of what their members will like. In some embodiments, the facility merges buckets having similar ratings of the same restaurants, and splits buckets having divergent ratings of the same restaurants.
In some embodiments, the facility allows a user to receive recommendations for a hypothetical person who has different characterizing information, such as to select items that another person will enjoy. In some embodiments, the facility enables a user to share his or her profile with another user for this purpose.
In some embodiments, the facility provides recommendations to a group of users, indicating for each item a likelihood that each user in the group will like the restaurant. In some such embodiments, for at least one recommended restaurant, the facility generates a separate likelihood that each user in the group will restaurant the item. In some such embodiments, for each user in the group, the facility separately performs categorical aggregation of the ratings of the recommended restaurant contributed by other members of the user's bucket.
By behaving in some or all of these ways, the facility is able to provide recommendations for restaurants and items of a variety of other types that are highly relevant—and therefore frequently useful—to the users receiving the recommendations.
In some embodiments, a user's position in the decision tree is affected by inferences drawn by the facility. For example, a user who had reached node 211 but had not explicitly answered a question about regarding libraries as loud may nonetheless be navigated to node 422 based upon his answer that he does not regard an audio recording of operating construction machinery as loud. A user's position in the tree may also be affected by actions he or she takes other than answering questions, such as rating restaurants, even where they contradict explicit answers given to questions by the same user. For example, a user who has answered a question to indicate that they are a world traveler might be moved from node 231 to a child of node 222 (not shown) that reflects that the user is not a world traveler if, during a certain extended period of time, the user does not appear to leave his or home state based upon his or her smartphone's report of GPS-indicated geographic location.
While
Those skilled in the art will appreciate that the steps shown in
As an example of expanding the set of selected nodes in accordance with steps 403-404, consider generating a recommendation for one of the users in bucket 251 shown in
In steps 405-408 the facility loops through each restaurant rated by the filtered ratings of the selected nodes. In step 406, the facility adjusts, then aggregates the filtered ratings that rate the current restaurant, such as by averaging them per category, or applying another statistical aggregation or summarization function, such as median, mode, etc. In step 407, the facility determines a score for the restaurant, such as a score reflecting the likelihood that the user to whom the recommendation is targeted will like the restaurant. In some embodiments, this score determination involves comparing the per-category aggregated ratings to an indication of how sensitive the user is to each of the rating categories. In step 408, if additional restaurants remain to be processed, then the facility continues in step 405, else the facility continues in step 409. In step 409, the facility displays for the top-scoring restaurants—such as the three highest-scoring restaurants—their aggregated ratings and their scores. After step 409, these steps conclude.
While
a channel column 813 indicating a dining scenario in the context of which the user rated the restaurant; a date column 814 containing the date on which the user contributed the rating; an atmosphere column 815 containing the user's rating value for the restaurant's atmosphere; a clientele column 816 containing the user's rating value for the restaurant's clientele; an service column 817 containing the user's rating value for the restaurant's service; a food quality column 818 containing the user's rating value for the restaurant's food quality; and an overall column 819 containing the user's rating value for the overall desirability of the restaurant. For example, it can be seen from row 801 that, on Apr. 11, 2015, the user having user id 116231 rated the restaurant having restaurant id 5687 for the casual lunch channel, and assigned an atmosphere rating of 5, a clientele rating of 3, a service rating of 5, a food quality rating of 1, and an overall rating of 3.
In various embodiments, the facility uses various questions to elicit information from the user, such as various combinations of questions including those shown in Table 1 below.
It will be appreciated by those skilled in the art that the above-described facility may be straightforwardly adapted or extended in various ways. While the foregoing description makes reference to particular embodiments, the scope of the invention is defined solely by the claims that follow and the elements recited therein.
Claims
1. A computer-readable hardware device storing a data structure for making user-tailored recommendations, the data structure comprising:
- a tree-structure comprising a plurality of entries, each entry corresponding to a different collection of at least two pieces of personal information, each entry identifying users to each of whom the entire collection of personal information of the entry applies, and a number of item ratings contributed by the users, such that: evaluations by a first set of members of a bucket are predictive of an experience that a second set of members of the bucket will have when the second set of members make a same choice as the first set of members, and for a selected user identified by a selected entry, the contents of the selected entry are usable to recommend items to the selected user that have been rated by users identified by the selected entry other than the selected user.
2. The computer-readable hardware device of claim 1 wherein the data structure further comprises, for each of the plurality of entries, item ratings contributed by users identified by the entry.
3. The computer-readable hardware device of claim 1 wherein the data structure is a decision tree having a root in which each entry is a node connected by an edge to its parent, and wherein each entry corresponds to a proper superset of the collection of personal information to which its parent corresponds.
4. The computer-readable hardware device of claim 3 wherein, for each of at least one distinguished entry, the portion of the distinguished entry's collection of personal information not among the distinguished entry's parent's collection of personal information has been determined to be of less predictive value than the portion of the distinguished entry's parent's collection of personal information not among the distinguished entry's grandparent's collection of personal information.
5. The computer-readable hardware device of claim 3 wherein, for each of at least one distinguished entry, the portion of the distinguished entry's collection of personal information not among the distinguished entry's parent's collection of personal information comprises demographic information, personality type information, preference information, subjectivity measure information, information about actions performed by users, information about at least three regions on a gender continuum, or any combination thereof.
6. The computer-readable hardware device of claim 1 wherein, for each of the plurality of entries, the entry's corresponding collection of personal information comprises at least one observed user behavior.
7. The computer-readable hardware device of claim 1 wherein, for each of the plurality of entries, the entry's corresponding collection of personal information comprises at least one item of user demographic information.
8. A method in a computing system for organizing a plurality of users, comprising:
- for each of the plurality of users, posing a plurality of questions and receiving responses thereto;
- establishing a tree-structure including a plurality of buckets each representing a different combination of particular responses to particular questions among the plurality of questions; and
- assigning each user to a bucket representing a distinct combination of responses to questions that apply to all members of the bucket, wherein evaluations by a first set of members of the bucket are predictive of an experience that a second set of members of the bucket will have when the second set of members make a same choice as the first set of members,
- such that the assignments of users to buckets are usable to generate item recommendations tailored to any particular user.
9. The method of claim 8, further comprising, upon receiving a response to question among the plurality of questions from a distinguished user among the plurality of users, awarding a reward to the distinguished user.
10. The method of claim 9 wherein the reward awarded to the distinguished user is a virtual reward.
11. The method of claim 9 wherein the reward awarded to the distinguished user is one of a plurality of badges.
12. The method of claim 9, further comprising, in response to an action by the distinguished user selected from among (1) making a referral of the facility to another prospective user, (2) using the facility at at least a threshold frequency, (3) using the facility with respect to a particular geographic location, and (4) discovering new features of the facility, awarding an additional award to the distinguished user.
13. The method of claim 8, further comprising:
- for a selected user, using responses to posed questions received from the selected to user to infer for the selected user a response to a question for which no response was received from the selected user,
- wherein assigning each user to a bucket assigns a selected user to a bucket representing a combination of responses to questions received from the selected user and the response inferred for the selected user.
14. The method of claim 8, further comprising:
- for a selected user, where a first response is received from the selected user for a selected question, using actions taken by the selected to user as a basis for imputing to the selected user a second response to the selected question that is different from the first response,
- wherein assigning each user to a bucket assigns a selected user to a bucket representing a combination of responses to questions for the selected user that include the second response to the selected question and excludes the first response to the selected question.
15. The method of claim 8, further comprising organizing the established buckets into a first decision tree, and wherein the first decision tree is used in assigning each user to a bucket.
16. The method of claim 8, further comprising organizing the established buckets into a first decision tree, and wherein the first decision tree is used in assigning each user to a bucket, the method further comprising:
- during a first period of time: generating a plurality of first item recommendations for a set of users among the plurality of users using the assignments of users to buckets performed using the first decision tree; causing the plurality of first item recommendations to be presented to the users for which they were generated;
- for each of one or more alternate decision trees that are distinct from the first decision tree, generating a plurality of second item recommendations for the set of users;
- identifying an alternate decision tree whose second item recommendations have proven more apt than the first item recommendations;
- during a second period of time following the first period of time: generating a plurality of third item recommendations for a group of users among the plurality of users using the assignments of users to buckets performed using the identified alternate decision tree; and causing the plurality of third item recommendations to be presented to the users for which they were generated.
17. A computer-readable hardware device having contents adapted to cause a computing system to perform a method for organizing a plurality of users, the method comprising:
- for each of the plurality of users, posing a plurality of questions and receiving responses thereto;
- establishing a tree-structure including a plurality of buckets each representing a different combination of particular responses to particular questions among the plurality of questions; and
- assigning each user to a bucket representing a distinct combination of responses to questions that apply to all members of the bucket, wherein evaluations by a first set of members of the bucket are predictive of an experience that a second set of members of the bucket will have when the second set of members make a same choice as the first set of members,
- such that the assignments of users to buckets are usable to generate item recommendations tailored to any particular user.
18. The computer-readable hardware device of claim 17, wherein the method further comprises:
- upon receiving a response to question among the plurality of questions from a distinguished user among the plurality of users, awarding a reward to the distinguished user, wherein the reward awarded to the distinguished user is a virtual reward; and
- in response to an action by the distinguished user selected from among (1) making a referral of the facility to another prospective user, (2) using the facility at at least a threshold frequency, (3) using the facility with respect to a particular geographic location, and (4) discovering new features of the facility, awarding an additional award to the distinguished user.
19. The computer-readable hardware device of claim 17, wherein the method further comprises:
- for a selected user, using responses to posed questions received from the selected to user to infer for the selected user a response to a question for which no response was received from the selected user,
- wherein assigning each user to a bucket assigns a selected user to a bucket representing a combination of responses to questions received from the selected user and the response inferred for the selected user.
20. The computer-readable hardware device of claim 17, wherein the method further comprises:
- for a selected user, where a first response is received from the selected user for a selected question, using actions taken by the selected to user as a basis for imputing to the selected user a second response to the selected question that is different from the first response,
- wherein assigning each user to a bucket assigns a selected user to a bucket representing a combination of responses to questions for the selected user that include the second response to the selected question and excludes the first response to the selected question.
Type: Application
Filed: Sep 23, 2020
Publication Date: Jan 14, 2021
Inventors: Dennis Duckworth (Seattle, WA), Yong Hui Ma (Seattle, WA), Fran Duckworth (Seattle, WA), Dillon Hicks (Seattle, WA), Grant Hogan (Seattle, WA)
Application Number: 17/030,359