WO2013181636A2 - System and method for eliciting information and generating pricing information - Google Patents

System and method for eliciting information and generating pricing information Download PDF

Info

Publication number
WO2013181636A2
WO2013181636A2 PCT/US2013/043782 US2013043782W WO2013181636A2 WO 2013181636 A2 WO2013181636 A2 WO 2013181636A2 US 2013043782 W US2013043782 W US 2013043782W WO 2013181636 A2 WO2013181636 A2 WO 2013181636A2
Authority
WO
WIPO (PCT)
Prior art keywords
item
user
preference
items
processing instructions
Prior art date
Application number
PCT/US2013/043782
Other languages
French (fr)
Other versions
WO2013181636A3 (en
Inventor
Kurt L. KIMMERLING
Original Assignee
Kimmerling Kurt L
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US13/795,168 external-priority patent/US20130325627A1/en
Priority claimed from US13/905,625 external-priority patent/US20130325555A1/en
Priority claimed from US13/905,645 external-priority patent/US20130325556A1/en
Application filed by Kimmerling Kurt L filed Critical Kimmerling Kurt L
Publication of WO2013181636A2 publication Critical patent/WO2013181636A2/en
Publication of WO2013181636A3 publication Critical patent/WO2013181636A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0283Price estimation or determination

Definitions

  • the disclosure relates generally to a system and a method for eliciting information. More particularly, the disclosure relates to a system and a method for eliciting information applying dimensionality reduction analysis techniques. The disclosure also relates to a system and a method for generating pricing information applying dimensionality reduction analysis techniques.
  • User preferences can also be obtained directly from users. For example, users can be asked to rank items. Ranked ordered data is useful. However, ranking items can require a significant amount of time and many users are unwilling or unable to spend the necessary time
  • a method and a system for eliciting information from a user are provided.
  • the method includes, by a processing device, processing instructions embedded in one or more non-transitory computer readable medium.
  • the processing instructions are configured for reducing the dimensionality of item preference data corresponding to items and identifying pseudo-independent items, from the items, based on the reduced dimensionality item preference data.
  • the method further includes outputting information for presenting questions based on the pseudo-independent items, the questions configured to elicit explicit pseudo independent items relative information from the user and receiving responses.
  • each of the questions includes at least two pseudo-independent items and each of the responses includes an item selection.
  • each of the questions includes two pseudo-independent items question pairs, and each of the responses includes an item selection.
  • the outputting and the receiving are performed by processing application programming interface instructions.
  • the method includes, by a user device application, presenting the questions and outputting the responses.
  • the method includes generating second item preference data for additional items and performing a regression computation based on the second item preference data to fold-in the additional items into the item preference data.
  • the method includes composing a user preference vector based on the responses and outputting an item recommendation based on the user preference vector.
  • the method includes outputting the information to elicit the explicit pseudo independent items relative information from users in a group, and outputting an item recommendation based on the responses from the users in the group.
  • the method includes receiving item reviews from reviewers, identifying from the reviewers those reviewers whose preferences are similar to the user's preferences, and outputting an item recommendation including a recommended item and the item reviews received from the identified reviewers and relating to the recommended item.
  • the item preference data comprises preference data from respondents and a content driver
  • dimensionality reduction has a content discriminating effect on the pseudo-independent items due to the content driver.
  • the discriminating effect discriminates likely watched movies from likely not watched movies, such that the questions will relate to more likely watched movies than if the content driver were not included in the item preference data.
  • reducing the dimensionality of the item preference data generates item preference vectors corresponding to the items
  • the method further comprises generating increased dimensionality item preference vectors by appending a content driver to the item preference vectors.
  • the items are movies
  • the content driver includes a genre selected from the group comprising one or more of action, drama, comedy, horror/thriller, romance, and animated, wherein the content driver discriminates the items based on the genre.
  • the method includes calculating item scores for the items, outputting an item recommendation including a recommended item and a preference value indicative of a predicted preference strength of the user for the recommended item, the item recommendation and the preference value based on the item scores, receiving an idiosyncratic feedback from the user indicative of the user's actual preference strength, and adjusting a future item score of the recommended item by an idiosyncratic amount related to the idiosyncratic feedback.
  • the questions configured to elicit explicit pseudo independent items relative information from the user are operable to determine a user preference vector, and the method further includes outputting idiosyncratic questions configured to elicit idiosyncratic preferences.
  • the questions further include saving the responses in a preference profile and outputting advertisements for the user based on the preference profile.
  • a method for serving advertisements to a user includes, by a processing device processing instructions embedded in one or more non-transitory computer readable medium, identifying the user when the user accesses a website and accessing a user preference profile of the user, the preference profile based on pseudo independent items relative information elicited from the user.
  • the method also includes identifying preferred items based on item preference vectors and the user preference profile, the item preference vectors resulting from dimensionality reduction of item preference data corresponding to the items and serving advertisements relating to the preferred items.
  • processing instructions are configured to elicit information from the user.
  • the processing instructions include: first processing instructions configured for reducing the dimensionality of item preference data corresponding to items and identifying pseudo-independent items, from the items, based on the reduced dimensionality item preference data; and second processing instructions configured for outputting information for presenting questions and receiving responses, the questions based on the pseudo-independent items to elicit explicit pseudo independent items relative information from the user.
  • processing instructions are configured to serve advertisements to a user.
  • the processing instructions include: first processing instructions configured for identifying the user when the user accesses a website; accessing a user preference profile of the user, the preference profile based on pseudo independent items relative information elicited from the user; identifying preferred items based on item preference vectors and the user preference profile, the item preference vectors resulting from dimensionality reduction of item preference data corresponding to the items; and second processing instructions configured for serving advertisements relating to the preferred items.
  • a method and a system for generating pricing information and making pricing recommendations are also disclosed.
  • the methods may be combined to make recommendations based on pricing computations.
  • the pricing information generating method may also be applied independently of the recommendation method, for example to advise merchants regarding profit or sales maximizing pricing choices.
  • item preference data is used to recommend items to users.
  • the item preference data is initially obtained from respondents.
  • the item preference data is statistically analyzed to generate a reduced dimensionality item preference data.
  • the reduced dimensionality item preference data may be structured in a matrix, which may be referred to as a feature matrix.
  • a survey designed based on the pseudo independent items is administered to the user to efficiently determine a user preference data.
  • Item scores are computed based on the user preference data and the reduced dimensionality item preference data.
  • Preference-price efficient items are identified based on the item scores and recommended.
  • a method for generating pricing information executable at least in part by a processing device according to processing instructions embedded in one or more non-transitory computer readable medium
  • the method is configured for accessing a data- structure including a plurality of items and generating pricing information based on information about the plurality of items.
  • Exemplary pricing information includes item prices; preference- price efficient items; relative demand for an item; price elasticity for an item; cross-price elasticity for demand of an item and a price of a second item; a demand curve for an item; demand curves for an item corresponding to different subpopulations; and any other information suitable for making pricing decisions.
  • the pricing information may be based on simulated preferences of users and simulated user decisions.
  • the demand curve for an item is simulated by determining the relative demand for the item at each of a plurality of prices.
  • the results of the simulation provide simulated user preferences and prices that would influence the purchasing behavior of actual users.
  • pricing sensitivities may be determined.
  • the pricing information may be accessed by or output to a merchant to implement pricing strategies developed for specific user and user subgroups based on user preferences.
  • the pricing strategies may include upcharging and discounting of items.
  • the pricing method comprises accessing a data-structure including a plurality of items, item vectors and item prices, the item vectors and item prices corresponding to the plurality of items; computing a user preference vector; and identifying, from the plurality of items based on the user preference vector, at least one of a preference-price efficient item and a preference-price inefficient item.
  • the method further comprises outputting a recommendation for the user the recommendation including the preference-price efficient item.
  • the recommendation includes preference-price efficient items and excludes the preference-price inefficient item.
  • the method further comprises computing a discount amount by which the preference-price inefficient item can be discounted to become preference- price efficient.
  • the method comprises identifying a subset population from a total population based on characteristics of the user; and discounting the preference-price inefficient item at least by the discount amount for the subset population.
  • the system comprises a processing device; a non-transitory computer readable medium; and a computer program stored in the non-transitory computer readable medium, the computer program operable to cause the processing device to: access a data-structure including a plurality of items, item vectors and item prices, the item vectors and item prices corresponding to the plurality of items; compute a user preference vector; and identify, from the plurality of items, at least one of a preference-price efficient item and a preference-price inefficient item.
  • the computer program is further operable to cause the processing device to output a recommendation for the user, the recommendation including the preference-price efficient item.
  • the recommendation includes preference-price efficient items and excludes the preference-price inefficient item.
  • the computer program is further operable to cause the processing device to compute, based on the user preference vector, preference scores for the plurality of items; identify, from the plurality of items, a preference- price efficient item based on the preference scores and the item prices; and compute an up- charge amount by which the preference-price efficient item can be up-charged without becoming preference-price inefficient.
  • the computer program is further operable to cause the processing device to identify a subset population from a total population based on characteristics of the user; receive an approved up-charge amount based on the computed up-charge amount; and up-charge the preference-price efficient item by the approved up-charge amount for the subset population.
  • the method is configured for accessing a data-structure including a plurality of items and generating pricing information based on information about the plurality of items.
  • the pricing information may be based on simulated preferences of users and simulated user decisions.
  • the demand curve for an item is simulated by determining the relative demand for the item at each of a plurality of prices.
  • the results of the simulation provide simulated user preferences and prices that would influence the purchasing behavior of actual users. With the demand curve, pricing sensitivities may be determined.
  • the pricing information may be accessed by or output to a merchant to implement pricing strategies developed for specific user and user subgroups based on user preferences.
  • the pricing strategies may include upcharging and discounting of items.
  • the pricing method comprises accessing item preference data; reducing the dimensionality of the item preference data to obtain item preferences of items; simulating preferences of users with the item preferences; and simulating user decisions with the simulated user preferences to generate simulated pricing information.
  • the pricing method is executable at least in part by a processing device according to processing instructions embedded in one or more non-transitory computer readable medium.
  • the system includes the non-transitory computer readable medium and the processing device for executing the processing instructions to implement the foregoing method.
  • the pricing information generating method comprises identifying a user based on website access information; outputting information about the user to a reduced dimensionality preference simulation application via an information network, the reduced dimensionality preference simulation application configured to simulate preferences of users based on reduced dimensionality item preference data and generate simulated pricing information with the information about the user and the simulated preferences of users; receiving the simulated pricing information from the reduced dimensionality preference simulation application; and offering a price for an item to the user based on the simulated pricing information.
  • the pricing information generating method is executable at least in part by a processing device according to processing instructions embedded in one or more non-transitory computer readable medium.
  • the pricing information generating system comprises one or more physical servers; a web server software residing in the one or more physical servers and operable to output item information including item prices for viewing by potential customers; and a pricing software module operable to receive simulated pricing information and generate the item information based on the simulated pricing information, the simulated pricing information generated by a reduced dimensionality preference simulation application operable to reduce the dimensionality of item preference data to obtain item preferences of items, simulate preferences of users with the item preferences, and simulate user decisions with the simulated user preferences to generate the simulated pricing information.
  • the web server software is further operable to process an item transaction based on the item prices presented for viewing by the potential customers.
  • non-transitory computer readable medium and a system including the non-transitory computer readable medium, the non- transitory computer readable medium having processing instructions embedded therein for implementing the foregoing methods when processed by a processing device.
  • the system includes the processing device.
  • FIG. 1 is a block diagram of an information elicitation and transaction facilitation system according with an example set forth in the disclosure
  • FIG. 2 is a graph illustrative of an information elicitation method according with an example set forth in the disclosure
  • FIGS. 3 and 3A are block diagrams of information elicitation systems according with examples set forth in the disclosure.
  • FIG. 4 is a flowchart depicting a recommendation method according with yet another example set forth in the disclosure.
  • FIG. 5 is a flowchart depicting another recommendation method according with an example set forth in the disclosure.
  • FIG. 6 is a block diagram of a recommendation and transaction facilitation system according with another example set forth in the disclosure.
  • FIG. 7 is a flowchart depicting another recommendation and transaction facilitation method according with an example set forth in the disclosure.
  • FIG. 8 is a block diagram of a transaction facilitation system according with an example set forth in the disclosure.
  • FIGS. 9 to 1 1 are visual representations of recommendation information presented with a graphical user interface according with a further example set forth in the disclosure.
  • FIG. 12 and 13 is a visual representations presented with a graphical user interface for pre-survey filtering according with a further example set forth in the disclosure
  • FIGS. 14 and 15 are preference/price graphs illustrating an embodiment of a pricing recommendation method according with a further example set forth in the disclosure.
  • FIG. 16 is a flowchart illustrating an embodiment of a pricing method according with a yet further example set forth in the disclosure.
  • a system and a method for eliciting information elicit better data by asking better questions.
  • the questions are derived from item preference data.
  • the item preference data is processed to identify pseudo-independent items. Questions are then generated based on the pseudo-independent items.
  • the questions solicit explicit pseudo-independent items relative information. For example, a question may ask a user to choose one of a few pseudo-independent items.
  • the user's response may comprise information about the pseudo-independent item chosen by the user.
  • the user's responses are processed to determine the user's preferences.
  • the user's preferences can then be used to present item recommendations to the user, in marketing or political campaigns, and in any other manner. Better data results in better recommendations.
  • the information eliciting system and method may be used to recommend multiple items to the user.
  • the user may then choose to enter into a transaction with a provider of a recommended item. For example, the user may choose to order a movie from an online vendor.
  • the system may include an application programming interface (API) hosted by a web server.
  • the API accesses an application program and a database including the item preference data.
  • the application program and the API may execute processing instructions to generate the questions and select the item based on the responses.
  • Online vendors may utilize their own web servers and databases to access the API and use the information elicitation method and system to promote transactions involving items they trade in commerce. For example, online vendors may use the information elicitation system to recommend digital items to a user. The user may then rent or purchase a recommended item and may download it from the vendor. The owner of the information elicitation system may grant access to the API to the online vendors in exchange for fees or other benefits.
  • the API may also access a reduced dimensionality preference simulation application to generate pricing information based on item preference data.
  • Online vendors may utilize their own web servers and databases to access the API and use the pricing information generated by the reduced dimensionality preference simulation application to promote transactions involving items they trade in commerce. For example, online vendors may use the pricing information to recommend items and services to a user and to implement targeted pricing based on user preferences. The user may then rent or purchase a recommended item. The owner of the information elicitation system may grant access to the API to the online vendors in exchange for fees or other benefits.
  • the questions to solicit explicit pseudo-independent items relative information may be referred to as a user survey or a user item survey.
  • the user item survey is designed to retain the user's attention. To that end, the choices are explicit, relative, current, intuitive and easy to undertake by a user.
  • the user item survey is explicit because users chose from items related to the objective of the survey. In a movie recommendation system, for example, the survey may require the user to choose movies. They are relative because the responses are ranked relative to each other rather than in relation to an arbitrary rating, e.g. a value from an arbitrary scale. Also, items that have already been ranked may be constantly reassessed to keep current the survey information. Due to these characteristics, the user item survey is well suited for effectively eliciting user information.
  • Another characteristic of the user survey is anonymity.
  • the information elicitation system may be designed to require a user to create a virtual identity, the system does not have to require such identification.
  • a user can anonymously use the information elicitation system since it is quick and also is not based on prior usage data.
  • the discreet nature of the user survey makes it suitable for recommending adult items in the fields of entertainment, medicine and exercise, for example.
  • FIG. 1 is a block diagram of an embodiment of an information elicitation system 100 including a user application 102 residing in a user device 104, and a system 130.
  • the present embodiment may be described below with reference to movie items, although the embodiment is not limited to movies. Other items include songs, photos, software, any other digital content, and items that require physical delivery.
  • System 130 may comprise one or more servers, such as a web server and a database server. System 130 is configured to transmit questions 1 10 to user application 102.
  • a question 1 10 to solicit explicit pseudo-independent items relative information may include representations 1 12, 1 14, 1 16 and 1 18 corresponding to four items.
  • Representations 1 12, 1 14, 1 16 and 1 18 may include text or images.
  • the titles of four movies are shown (Aliens, The Deer Hunter, Airplane and Citizen Kane).
  • User application 102 receives responses to the questions from the user and transmits responses 120 to system 130 via an information network 142.
  • a response 120 may comprise, for example, an indication that the user chose the movie Aliens, the choice being explicit pseudo-independent items relative information.
  • system 130 Based on responses 120, system 130 generates scores for the items.
  • the scores represent the user's preferences. In one example, the highest score corresponds to the item most likely preferred by the user based on his/her responses.
  • System 130 may include an API 132, an application program 134, and a database 140.
  • Database 140 may include item preference data 158 and item scores 160 computed based on a user preference vector 170, which is computed by processing responses 120.
  • Database 140 may also include a feature matrix 150 including item preference vectors 152 obtained from item preference data 158. Pseudo-independent items 154 are determined from item preference vectors 152 to generate questions 1 10.
  • System 130 may also include a reduced dimensionality preference simulation application 136 accessible by a pricing software module 198 of an online vendor.
  • the vendor may transfer user identification information to reduced dimensionality preference simulation application 136 and receive simulated pricing information 196 in return.
  • simulated pricing information 196 which may be based on the user identification information and therefore targeted to the user, the vendor can make pricing recommendations to the user, and other users with similar preferences, to engage in item transactions.
  • Application program 134 may include reduced dimensionality preference simulation application 136.
  • system 130 transmits a recommendation to user application 102 including one or more preference item 172.
  • the user can choose one of the one or more preference item 172 and initiate an item transaction 184 with user application 102.
  • a chosen item 180 and an item transaction indication 182 are transmitted to a web server 190, which resides in a physical server 188 of an online vendor to execute item transaction 184.
  • Web server 190 may include a database 192 including a multitude of items 194.
  • Preference item 172 may be selected from items 194 to ensure the online vendor can supply chosen item 180.
  • items 194 include digital items and item identifiers corresponding to physical and/or digital items.
  • the questions are determined from pseudo-independent item pools based on thresholds.
  • FIG. 2. shows a graph 200 illustrating preference driver values corresponding to items (e.g. movies). The preference driver values are computed from item preference data 158. Each item has a preference driver 1 value and a preference driver 2 value. A circular symbol is shown in graph 200 at the intersection of the preference driver values for each movie.
  • Graph 200 includes thresholds 210, 212 corresponding to preference driver 1 and thresholds 214, 216 corresponding to preference driver 2.
  • Graph 200 also includes pseudo-independent item pool areas 220, 222, corresponding to positive and negative pool areas for preference driver 2, respectively, and pseudo-independent item pool areas 224, 226, corresponding to positive and negative pool areas for preference driver 1 , respectively.
  • Pool areas 220, 222, 224, 226 are defined by thresholds 210, 212, 214, 216.
  • the pool areas do not include the center and corner areas of graph 200.
  • Movies graphed in the pseudo-independent item pool areas exhibit relatively large positive or negative values for one preference driver, indicating high preference, and relatively small positive or negative values for the other preference driver, indicating mild or neutral preference.
  • Fourteen symbols are shown corresponding to fourteen movies. The values for each movie are shown in Table 1 below.
  • the values for the movie The Deer Hunter (graphed in pseudo-independent item pool area 220) are (0.2500) and 1.1200, which indicate a strong positive preference for preference driver 2 and a mild or almost neutral preference for preference driver 1 .
  • the values for the movie Aliens (graphed in pseudo-independent item pool area 222) are (0.1768) and (1.0900), which indicate a strong negative preference for preference driver 2 and a mild or almost neutral preference for preference driver 1 .
  • the movies graphed in a pseudo-independent item pool area comprise a pseudo-independent item pool, positive or negative.
  • the pseudo-independent item pools for preference driver 1 include the movies Citizen Kane (positive pool) and Airplane (negative pool).
  • the pseudo- independent item pools for preference driver 2 include the movies The Deer Hunter (positive pool) and The Fly, Dune, Juno and Aliens (negative pool). Questions are drawn from the positive and negative pools.
  • the information elicitation system and method are configured to eliciting group information. Making decisions in groups can often be frustrating and time consuming. For choosing an item to consume as a group (such as what movie to watch) the decision can be made easier with the help of the information elicitation system.
  • the system administers a separate user survey to one, more than one, or all of the members of the group to generate user preference vectors for the members.
  • the information elicitation system then generates item scores based on the user preference vectors of the group's members.
  • the system may recommend items to the group based on the item scores.
  • the item preference data is initially obtained from respondents and is statistically analyzed to generate a reduced dimensionality item preference data, which includes the preference drivers and the preference driver values discussed with reference to FIG. 2.
  • the reduced dimensionality item preference data may be structured as a matrix, which may be referred to as a feature matrix of item preference vectors.
  • the item preference data includes a listing of items previously experienced or judged by respondents and item drivers obtained based on the respondent's experience or judgment.
  • a respondent is an individual providing input for the determination of item drivers
  • a user is an individual that provides survey information.
  • the user is also the recipient of the recommendation. In the case of a group of users, one, more than one, or all of the users are also recipients of the recommendation.
  • the item preference data is updated by folding-in additional items so that the system and method for eliciting information stays current.
  • the item preference data is updated over time by folding-in additional items.
  • a group of respondents is surveyed and a multivariate regression is performed with the responses to determine the item preference vectors for the additional items.
  • the additional item preference vectors are then combined with the existing item preference vectors in the feature matrix.
  • additional items may include movies not included in the item preference data, such as movies released after the last update of the item preference data.
  • the system and method for eliciting information are configured to be easy to use.
  • a user can switch-out items from the questions, essentially redesigning the questions so that the responses are more relevant.
  • the system may perform a likelihood computation with the switch-out information to refine the selection of future questions by excluding from the questions items that are similar to the switched out items. For example, a user may switch-out a movie from a question if he/she has not watched the movie.
  • the likelihood computation enables the system to ask future questions based on movies that are different and dissimilar from the switched out movies. In one example, all movies that have been watched by the user are rated a positive 1 and the movies that have not been watched are rated a negative 1 .
  • the movies are then sorted into groupings based on whether the movies are likely to have been watched or not been watched by the user.
  • the preference drivers thus comprise a user's "likely watched" vector.
  • the likely watched vector is then used to select survey candidates, thereby avoiding likely not watched movies and improving the user's experience.
  • the foregoing embodiments of the system and method for eliciting information may be used to make recommendations.
  • Individual preferences vary between individuals and between items being considered by the individuals. Preferences can be correlated and can be determined based on individual preference drivers. The ability to define items to make a recommendation based on a handful of independent drivers is very powerful.
  • Input from respondents can be analyzed to identify the most important uncorrelated preference drivers for a group of individuals. Principal component analysis, matrix factorization, and singular value decomposition are exemplary known analytical techniques for identifying drivers. After input from respondents is analyzed using these techniques, the preferences of any individual can be summarized with a vector of real numbers.
  • a user's preference vector [1.3, -0.2, - 1.8, 0.1], where each number represents a preference of the user for each driver, indicates the user likes driver 1 , dislikes driver 3, and does not have a strong preference, positive or negative, for drivers 2 and 4.
  • an item can also be summarized with a vector of real numbers, wherein each number represents the degree to which the item exhibits the corresponding driver.
  • the product of the individual's preference vector and the item's vector is indicative of how much the individual should like the item, with higher numbers indicating an item that should be more preferred.
  • An item's vector can also be viewed as a point in space, wherein closely spaced points indicate similarly preferred items.
  • FIG. 3 is a block diagram of an embodiment of an information elicitation system according with the disclosure.
  • the system is denoted by numeral 300.
  • System 300 comprises a processing device 310, API 132 and a non-transitory computer readable medium, or memory, 320.
  • Memory 320 has embedded therein item preference data 158 and a plurality of processing sequences, including a dimensionality reduction processing sequence 332, a facet processing sequence 336, a survey candidates processing sequence 340, a survey processing sequence 344, a recommendation processing sequence 348 and a recommendation presentation processing sequence 352.
  • Dimensionality reduction processing sequence 332 may process the item preference data by computing principal components, transposing matrices, computing sum-products and generating a feature matrix, as explained with reference to FIG. 4.
  • Reduced dimensionality preference simulation application 136 may include dimensionality reduction processing sequence 332.
  • Facet processing sequence 336 receives facet data from users and applies the facet data to filter item preference data or recommendations.
  • Survey candidates processing sequence 340 takes the output from dimensionality reduction processing sequence 332 or facet processing sequence 336 and identifies items for inclusion in survey questions.
  • Survey processing sequence 344 takes the items and presents them as questions, receives survey information from users, uses the information to replace or select items in the questions and outputs a list of selected items. Exemplary survey information includes responses, veto commands and switch-out commands.
  • Recommendation processing sequence 348 generates item scores based on the selected items and the feature matrix.
  • Recommendation presentation processing sequence 352 presents the recommended items to the user based on the scores.
  • system 300 includes a veto feature to make the system easier to use.
  • recommendation presentation processing sequence 352 presents the recommended items to the user and also presents control buttons for vetoing a recommendation. The user vetoes one item after another until only one item remains.
  • the system is used by a group of users to arrive at a group recommendation.
  • Recommendation presentation processing sequence 352 presents the recommended items to the users in order. After a user vetoes an item, a subsequent user is presented the recommendation list, less the vetoed item(s). The subsequent user vetoes another item by activating the control button. The veto process may continue until only one recommended item remains.
  • recommendation presentation processing sequence 352 reverses the user order such that the last user to veto an item in one round of vetoing becomes the first user to veto an item in the subsequent round.
  • system 300 comprises a server system.
  • system 300 comprises a user device.
  • Exemplary user devices include personal computers, portable computers, an IPAD(TM), IPHONE(TM) or BLACKBERRY (TM) mobile device, a set-top box, a smart TV, a digital video disc player, a kiosk, and any device including a processing device, memory and an I/O interface operable to receive user commands and establish communications with other systems or devices.
  • a set-top box, a smart TV, a digital video disc player, and a kiosk connect to the internet and to a television.
  • a remote control associated with the set-top box, smart TV, digital video disc player, or kiosk is operable to access the internet and download media from remote services.
  • user device 104 connected to recommendation system
  • Exemplary information networks include the Internet, WiFi wireless networks, cellular communication networks, and any communications system suitable to transfer information digitally between two systems or devices.
  • User device 104 comprises a processing device 380, API 382, a display device 384 and a non-transitory computer readable medium, or memory, 390.
  • Memory 390 has, embedded therein, an operating system 394 and user application 102.
  • Operating system 394 is operable to cause processing device 380 to establish communications with system 300, and also to receive user commands or instructions or input via one or more user input devices including a keyboard, a mouse, a touch-screen and a voice-command driven input device.
  • API 132 and API 382 are operable to share information between system 300 and user device 104.
  • API 132 and API 382 transfer survey information 314 and recommendation information 316.
  • Recommendation information 316 includes the user's inputs pertaining to the selection or rejection of an item. Selection or rejection is described with reference to FIG. 5.
  • FIG. 3A is a block diagram of another embodiment of an information elicitation system according with the disclosure.
  • the system is denoted by numeral 300A.
  • System 300A includes processing device 310, one or more non-transitory computer readable medium 320; and processing instructions embedded in the non-transitory computer readable medium, the processing instructions configured to elicit information from the user when processed by the processing device.
  • the processing instructions include first processing instructions 361 , second processing instructions 362, third processing instructions 363, fourth processing instructions 364, fifth processing instructions 365, and sixth processing instructions 366.
  • First processing instructions 361 are configured for reducing the dimensionality of item preference data 158 corresponding to items 194 and identifying pseudo- independent items 154, from the items, based on the reduced dimensionality item preference data.
  • the reduced dimensionality item preference data comprises item preference vectors 152.
  • Second processing instructions 362 are configured for outputting information 354 for presenting questions 378 and receiving responses 356, the questions based on the pseudo-independent items to elicit explicit pseudo independent items relative information from the user.
  • Survey information 314 may include information 354, responses 356, experience information 372, idiosyncratic questions 374 and questions 378.
  • Survey information 314 may be used to generate content drivers 370 which can be used to filter items and to bias the responses in favor of, for example, types of users.
  • the system includes API 132, which includes the second processing instructions.
  • the system includes a user device application 102 operable to present questions 378 and output responses 356.
  • third processing instructions are configured for generating second item preference data for additional items and performing a regression computation based on the second item preference data to fold-in the additional items into the item preference data.
  • fourth processing instructions 364 are configured to generate third item preference data from responses from respondents, the third item preference data being different than the item preference data, wherein the regression computation is based on the second item preference data and the third item preference data.
  • fifth processing instructions 365 are configured for receiving item reviews 360 from reviewers and identifying from the reviewers those reviewers whose preferences are similar to the user's preferences, wherein the second processing instructions are further configured for outputting an item recommendation including a recommended item and the item reviews received from the identified reviewers and relating to the recommended item.
  • sixth processing sequence 366 is configured for appending content driver 370 to item preference vectors 152 to generate increased dimensionality item preference vectors 376.
  • Item preference data 158 comprises one or more data structures, each relating a list of items to corresponding respondent data.
  • a plurality of respondents provide preference information in connection with the items in a list to calibrate the system.
  • An initial calibration may be enhanced with subsequent calibrations to incorporate information about new items in the item preference data 158.
  • An initial calibration will be described with reference to movies. The same process is applicable to other items.
  • a number of respondents rank-order a set of commonly watched movies. Ideally, all the respondents have watched all the movies. If all the respondents rate all the items, the dataset may be referred to as a "dense dataset". For example, a set of 100 commonly watched movies would be compiled and presented to a set of 50 respondents.
  • images of two movies are presented to the respondent, and the respondent chooses the movie he prefers.
  • the process is repeated until, by comparing movies to other movies, the 100 movies are rank ordered.
  • the rank-ordered responses are transformed so that they exhibit a uniform or normal distribution. Other distributions are also suitable.
  • the item preference data data structure comprises an array of items and respondent data.
  • items are listed in rows and respondent data is listed in columns. The intersection of each row and column includes the data for the corresponding respondent (column) and item (row).
  • each respondent ranks all the items in the list, and the ranked data is transformed so that it is uniformly distributed with a mean equal zero and a range between -0.5 and 0.5.
  • An exemplary portion of item preference data comprising four movies and six respondents is shown in Table 2.
  • Item preference data may further include facet information.
  • the facet information is used to filter items. Therefore, the facet information relates to desired filtering.
  • Exemplary movie facets include movie length, release date, rating, availability by service, genre, and any other characteristic suitable to categorize movies. Movie ratings include ratings from Common Sense Media, Inc., critics.com, Motion Picture Association of America, Inc., Film Advisory Board, Inc., and any other organization or individual based on the content of the rated movie. Movie ratings also include other rating mechanisms such as most viewed, release week gross sales and the like.
  • item preference data may include an indicator indicating whether a respondent or user has watched the movie.
  • Exemplary service provider facets include distance from current location, venue type, cost, rating and the like. For example, a user may be willing to drive 30 miles to eat at a highly rated but not expensive Chinese restaurant. With the appropriate system, including facet information, the user can choose the appropriate facets to receive recommendations meeting the criteria.
  • Assumptions may be used to substitute missing information. For example, if a respondent or user does not provide a response relative to an item, it may be assumed that the respondent is indifferent to the item. However, the density of the dataset (and the accuracy of the results based on it) decreases as the number of substitutions increases.
  • An alternative approach is to fold-in new items, respondents and users into the existing dataset. Generally, folding-in is a process by which new items and users are calibrated to the existing dataset based on a reduced number of survey questions used to identify a corresponding vector. An embodiment of a fold-in method is described below.
  • Embodiments of the method disclosed herein can be implemented using a variety of dimensionality reduction techniques.
  • Dimensionality reduction techniques are used to reduce the dimensionality, or complexity, of data without losing significant information.
  • the techniques in general, identify patterns in the data and characterize the information in the data based on the patterns. Less important patterns are removed or ignored, thereby reducing dimensionality without discarding significant information.
  • One known technique is principal component analysis ("PCA").
  • PCA is mathematically defined as an orthogonal linear transformation of data to a new coordinate system such that the greatest variance by any projection of the data lies on the first coordinate (called the first principal component), the second greatest variance on the second coordinate (called the second principal component), and so on.
  • the data referred herein as item based data or item preference data, comprises information obtained from respondents concerning items.
  • the item preference data is obtained in a system calibration and, optionally, in subsequent calibrations.
  • the item preference data is organized in a m x n matrix comprising M items data generated from information provided by each of N respondents.
  • An exemplary portion of an item preference data matrix was presented above in Table 2. The mean user score is subtracted for each score.
  • a matrix X results which has a zero empirical mean and is mathematically expressed as:
  • FIG. 4 is a flowchart 400 of an embodiment of a method according with the disclosure for recommending items.
  • the method begins with receiving item preference data.
  • Item preference data comprises an array of items and corresponding respondent information and can be received in any form, including user input and a data structure such as a file.
  • the system receives item preference data and then transfers the item preference data or a feature matrix to a user device, in the same or a different data format.
  • Item preference data includes a sufficient number of items to permit computation of preference drivers, e.g. principal components. An exemplary portion of item preference data was presented in Table 2.
  • processing continues at 410 with performing pre-survey facet filtering.
  • Facet filtering comprises selection of a facet and filtering items according to the facet.
  • Exemplary filtering includes inclusive and exclusive filtering. After filtering, a reduced number of items are available for further processing.
  • facet filtering is applied to the item preference data, therefore a reduced number of items is available in the item preference data for computation of principal components.
  • facet filtering is applied subsequent to the computation of principal components.
  • facet filtering is applied to a feature matrix before selection of potential question candidates. Computation of the feature matrix is described below. Exemplary GUI windows configured to select facets are described with reference to FIGS. 12 and 13.
  • item preference data comprises rank data which is first normalized by a Cox-Box transformation to transform the ranked data to normally distributed data with a mean of 0.0.
  • the normal data is scaled to have a standard deviation equal to about 1.0. to simplify matrix computations.
  • the Cox-Box transformation can also be used to scale the item preference data.
  • respondent information is uniformly distributed with a range equal to about 1 .0 and centered, and processing continues to the computation of principal components. As described above, a number of techniques are known for determining principal components to enable dimensionality reduction.
  • a matrix Y of dimension N is computed as the Karhunen-Loeve transform (KLT) of matrix X.
  • KLT Karhunen-Loeve transform
  • a number of PCA computational methods are known, including the covariance, matrix factorization and singular value decomposition methods.
  • a notable characteristic of dimensionality reduction techniques is that the principal components are determined analytically based on the respondent's input as opposed to being predetermined.
  • Matrix Y comprises N rows (respondents) and N columns (principal components, e.i. PC1 to PCN).
  • the principal components (eigenvectors) are ordered from left to right in order of importance.
  • the elements of the matrix are referred to as the principal component loadings and may be referred to herein as the item attributes.
  • An exemplary portion of a matrix Y computed from item preference data presented in Table 2 is shown in Table 3.
  • the number of items and respondents may be large. The number of items may exceed one-hundred and the number of respondents may exceed fifteen. Only six respondents and principal components, and four movies (items), are shown in Tables 3-5 to simply the illustrations, while ellipsis are shown to indicate that additional matrix elements exist.
  • the next step is to transpose matrix Y and apply the principal component loadings to the items. This is accomplished by calculating the sum-products of transpose Y and matrix X to obtain a matrix Z, in which ⁇ ⁇ ⁇ ⁇ ( ⁇ 1 * X 11 + ⁇ 2 * ⁇ 2 + ⁇ * ⁇ )
  • ⁇ 21 ⁇ ( ⁇ 11 * ⁇ 21 + ⁇ 2 * *22 + ⁇ * ⁇ 2 ⁇ )
  • ⁇ 12 ⁇ ( ⁇ 21 * Xl1 + ⁇ 22 * ⁇ 2 + ⁇ 2 ⁇ * ⁇ )
  • ⁇ 22 ⁇ ( ⁇ 21 * ⁇ 21 + ⁇ 22 * ⁇ 22 + ⁇ 2 ⁇ * ⁇ 2 ⁇ )
  • matrix ⁇ is obtained by multiplying matrices X and Y.
  • Matrix functions including multiplication and principal component analysis, are available in MatLab(TM) software available from MathWorks, Inc. Principal component analysis can also be computed with GNU Octave software, available for download from ftp://ftp.gnu.org/gnu/octave.
  • each element of matrix Z represents the degree to which each principal component is present in each item, based on the information from all the respondents.
  • the elements in a row represent an item vector and may be referred to herein as item attributes.
  • An exemplary portion of a transpose Y and matrix Z computed from item preference data presented in Table 2 is shown in Tables 4 and 5.
  • the next step is the selection of an arbitrary number of principal components to form a feature matrix.
  • more or fewer principal components are selected to form the feature matrix.
  • the feature matrix will be described as having four principal components, the four left-most principal components of matrix Z, also described as principal components A, B, C and D.
  • An exemplary feature matrix is shown in Table 6, illustrating reduction of the dimensionality of matrix Z. Above each column, the standard deviation for the attributes in the column is shown, i.e. 0.3329, 0.1532, etc.
  • Reduced dimensionality preference simulation application 136 may perform the method steps to generate the feature matrix. Reduced dimensionality preference simulation application 136 may then perform simulations, as described further below, based on the feature matrix. Reduced dimensionality preference simulation application 136 may receive user preference information to perform the simulation by implementing the following method steps, or may receive preference information by any other known methods. User preference information may be stored in database 140.
  • the present method embodiment continues, at 424, with determining the pseudo-independent items for inclusion as survey candidates.
  • Pseudo-independent items may be selected by evaluating the feature matrix values to identify the items with the largest positive and negative attributes for a single principal component and with small attributes for the remaining principal components are selected. As seen in Table 6, the attribute corresponding to PC3 and the movie Mars Attacks! equals 0.8880 while the remaining attributes for the movie are less than 0.3; therefore, the movie Mars Attacks! is a positive question candidate for a question requiring PC3 (or C).
  • the pseudo-independent items may also be determined as described with reference to FIG. 2.
  • the pseudo-independent items may be selected from pools of pseudo- independent items in random or predetermined order.
  • the items are selected after comparing their attributes to a variation factor comprising a constant times the standard deviation of the attributes for a principal component of the feature matrix. This calculation distinguishes items based on the relative size of their attributes with respect to the same principal component so that a single threshold, or constant value, can be used.
  • the constant is 1 .25
  • the selection threshold can be expressed as:
  • the second attribute, 0.4475 is not very different from the absolute value of the third attribute, 0.5603, yet, as shown below in Table 7, the second attribute does not result in a positive comparison in a case where the third attribute does.
  • the distinction is based on the standard deviation of the columns and the constant, which can be adjusted to be more or less inclusive.
  • a threshold is predetermined for each principal component.
  • each predetermined threshold is smaller than the threshold for the preceding, more important, principal component. Thresholds were disclosed above with reference to FIG. 2.
  • the next step is to select items by comparing attributes and thresholds.
  • attributes and thresholds In one example, in the case of four principal components there are four thresholds, and eight comparisons are made. The first four comparisons identify candidates for the positive preference and the other four identify candidates for the negative preference. In the latter comparisons, the threshold is first multiplied by (-1 ). If only one comparison is positive, meaning that the attribute exceeds the threshold, then the item is a question candidate. If none or more than one comparison is positive, the item is not a candidate. In another example, four comparisons are made to the absolute value of each attribute. If only one comparison is positive, then the item is a question candidate. If none or more than one comparison is positive, the item is not a candidate.
  • the sign of the value determines if the item is a candidate for a positive or a negative preference choice. In both examples, if the positive comparison results from an attribute in the first column, the item is a candidate for a question including principal component A. If the positive comparison results from an attribute in the second column, the item is a candidate for a question including principal component B, etc.
  • An example implementing the foregoing method using the standard deviation formula to calculate the threshold is shown below in Table 7, where the number 1 represents a positive comparison. A count column indicates the number of positive comparisons. Therefore, according to the method, the first and third items, having a count of 1 , are pseudo-independent and, therefore, are question candidates. The second and fourth items are not question candidates.
  • the method continues, at 430, with determining survey questions.
  • the survey questions may be posed as a choice between pseudo-independent items.
  • two items are selected for the questions.
  • four items are selected. Requiring a user to choose one of four items effectively addresses the relative importance of each principal component.
  • four principal components are used to determine a user's current preferences by asking only six questions. The first question requires the user to choose an item from a set of items exhibiting preferences A+, A-, B+ and B-. Subsequent questions pair principal components A/C, A/D, B/C, B/D and C/D, each possible pair of principal components defining a question.
  • the method essentially identifies an orthogonal set of items.
  • the degree to which orthogonality is preserved depends on whether items correlated to a single principal component can be found. However, even without complete orthogonality the method described herein enables a recommendation of items to be made to a user matching the user's current mood, represented by the answers to the six questions.
  • the degree of orthogonality can be defined in a computational step.
  • All the pseudo-independent items for a particular category comprise a pool.
  • potential candidates are selected sequentially from the pool. According to Table 6, for example, Mars Attacks! would be the first question candidate for a PC3+ question and Braveheart would be the first question candidate for a PC3- question.
  • the pool of potential candidates is randomized and then item candidates are selected sequentially from the pool. Randomization ensures that the item candidates in a first usage instance and subsequent usage instances will be different.
  • the pool of potential candidates is ordered according to the score of the uncorrelated principal component, such that items with higher attributes are presented before items with lower attributes. [0101]
  • the pool of candidates is filtered to include previously watched movies.
  • the user can switch-out or reject items in the question so that the questions focus on previously experienced items.
  • the user can answer a question by choosing a movie from among four previously watched movies.
  • the recommendation system is used by a user, and the user identifies previously watched movies, the system stores this information and, in subsequent instances, the system identifies question candidates from the sub-pool of previously watched movies to minimize the time wasted switching out movies and, thus, enhancing the user experience.
  • the user completes a "previously seen” survey in which the answers to the question "have you seen this movie” include seen (1 ), not seen (-1 ), and no information (0).
  • the sub-pool includes movies likely to have been watched.
  • the likely to have been watched movies are selected by comparing the vectors of the previously watched movies to the vectors of the items in the pool in a nearest-neighbors analysis.
  • the present method embodiment continues, at 440, with administering the survey.
  • four items are presented, which are selected based on paired principal components, positive and negative.
  • the user is required to choose one of the four items.
  • the next question is presented, until all the questions have been presented.
  • the user is given the choice to exclude or switch-out an item from a question. For example, the user may not be familiar with an item in the question. If an item is rejected, the item is replaced with another candidate from the pool of potential question candidates. Selection and rejection are described in more detail with reference to FIG. 5.
  • the present embodiment of the method continues, at 450, with analyzing survey results to determine the user's preference vector.
  • preference vector In the case where four principal components are used, there are six chosen items and eighteen rejected items, therefore, there are twenty four item vectors representing the current mood of the user.
  • the attributes of the six vectors corresponding to the six chosen items are averaged to generate the preference vector.
  • the preference vector is weighed with the attributes of the rejected items.
  • the average of the vectors corresponding to the not chosen items is subtracted from the average of the vectors corresponding to the chosen items.
  • the recommendation method and system described herein is not limited by the form of the survey. While a multiple-choice survey has been described hereinabove, other inquiry forms are suitable for obtaining question responses from users relative to pseudo- independent items.
  • the method comprises asking each user to rank-order a limited number of items.
  • the users answer whether they like or dislike items.
  • the question responses are then analyzed to define user preference vectors utilizing any computational method, including those described above.
  • the next step is to generate item scores.
  • the items are then ranked according to the scores.
  • the items with the highest scores are the recommended items.
  • the sum-product of the preference vector and the feature matrix generates the item scores.
  • the feature matrix is multiplied by the preference vector to generate the item scores.
  • faceted filtering is applied to filter out items from a potential recommendation list.
  • the recommendation system recommends items based on group preferences.
  • a user may first associate members of the group. Association may be performed with a GUI that enables the user to check boxes related to friends or family members. The preference vectors of the members and the user are then used to make recommendations, in the manner described previously with reference to FIG. 3.
  • the present embodiment may be applicable, for example, to help parents and their kids shop together and find solutions that both can be happy with, especially for back to school shopping.
  • a person may send his/her spouse or partner a user survey so that the preferences of the spouse or partner can be determined and shown next to each item recommended for the woman. The person can then consider those preferences in her purchase decision.
  • the person may also elect to get group recommendations instead, where the group consists of the person and the spouse or partner.
  • a person may also take the user survey and make the results available to those who wish to buy for the person, such as parents or friends.
  • a bridal system may incorporate the future bride's preferences and recommend items for wedding guests to purchase based on her preferences.
  • the system makes recommendations for a user, which may be referred to as the direct user, based on the preferences of the user and of another person, which may be referred to as the indirect user.
  • the system treats the preference vectors of the user and of the indirect user (e.g. the indirect preference vector) as if the user and the indirect user were a group and makes a recommendation as described above with reference to group recommendations.
  • the indirect user completes a user survey directed to the subject matter.
  • the date may complete a user survey directed to boys' clothes.
  • the survey may be completed by the indirect user with a mobile application, a website, via social media, on in any other manner.
  • an indirect preference vector is compiled based on the demographics of the indirect user.
  • an indirect preference vector is computed based on a survey taken by the direct user directed to complementary subject matter.
  • the boy may take a survey directed to the clothes the date typically wears.
  • the system then computes a complementary preference vector and compares the complementary preference vector to vectors based on responses from individuals sharing the personal traits or characteristics of the indirect user and who have also completed surveys relating to the subject matter at issue.
  • the system requires input from the boy to characterize the date, and input from individuals similar to the date pertaining to boys' clothes.
  • the system makes recommendations based on the user's preference vector and also recommendations based on the group member's preferences.
  • the system may also present information indicative of the difference between the two lists of recommendations.
  • the differences information may include a description of the preference drivers or the difference in the preference driver values.
  • the user's preference vectors are computed based on the item vectors of the items chosen and not chosen by each of the users in the group.
  • the computation can be based on the chosen items alone or it can be based on the chosen and unchosen items.
  • a vector is computed for each user by summing the attributes of the items chosen by the user, for each principal component. Then, the vectors are normalized to the same magnitude by dividing each vector by its length. This results in a user preference vector, normalized, for each user.
  • the item scores are then computed for each user as in the case of a single user.
  • the items are rank ordered for the user and given a percentile ranking.
  • the scores per user are then used to determine the recommendations.
  • the group item score is the smallest of the users' scores for the item, which may be referred to as the "least misery" score.
  • the item score is the average of the users' scores for the item.
  • the group recommendation is intentionally biased in favor of a user. For instance, a couple may chose "more for her" one week and "more for him" the next week. Biasing may be accomplished by weighing the group preference vector to reflect one person's misery being more important than another person misery.
  • the present method embodiment continues, at 460, with presenting recommended items.
  • a list of recommended items is presented.
  • the top item is presented along with "next" and "last" icons for presenting previously presented (last) and the next recommended item (next).
  • a dynamic recommendation engine switches between content filtering and collaborative filtering according with the strength of the users' responses.
  • the item preference data comprises preference data from respondents and a content driver. The dimensionality reduction has a content discriminating effect on the pseudo-independent items due to the content driver.
  • increased dimensionality item preference vectors are generated by the processing instructions by appending a content driver to the item preference vectors.
  • exemplary content drivers include types of items (e.g. movie genre), experience factors (e.g. watch or not watched, loved or hated), and any other type of content.
  • content drivers enable filtering.
  • An item may be included or excluded based on the content attributes (i.e. the weight of a driver for a particular item) regardless of the preference attributes of the item preference vector.
  • An R-rated attribute may cause exclusion of all R-rated movies, for example.
  • the dynamic recommendation engine determines item scores based on the preference attributes as determined from the survey responses and the content attributes.
  • the six drivers represent action, drama, comedy, horror/thriller, romance, animated genres. Of course, more or fewer drivers may be used.
  • Each movie in a particular genre is assigned a weight of positive one for the corresponding driver and 0 otherwise.
  • a movie may fit in more than one genre.
  • the assigned weights are then scaled so that the standard deviation of each content driver is some relationship with the other preference drivers.
  • the six genre drivers are scaled so that their collective standard deviation is approximately equal to the standard deviation of the second preference driver.
  • the six genre drivers are scaled so that their collective standard deviation is approximately equal to the third or fourth preference driver. Matching the standard deviation of a content driver to a specific preference driver ensures that both drivers have the same influence on the item's score.
  • the content weights are then normalized across all movies to have a mean of 0.
  • the weights of all drivers are normalized so that the total distance of a vector is equal to 1 . If the user chooses an animated movie in every question, for example, despite some animated movies being good and some bad, a score calculated with only the preference drivers will have a weak value due to averaging positive and negative weights. On the other hand, the weight of the animated movie content driver will be high, so the score calculated by the dynamic recommendation engine will also be high.
  • the dynamic recommendation engine uses collaborative filtering drivers, e.g. preference drivers, and content filtering drivers according to the strength of the signal of each to provide a better recommendation. If the responses to the questions do not express a strong collaborative filter signal, then the content drivers will dominate. If the responses express a strong signal, then the collaborative filter drivers will dominate. Use of content drivers by the dynamic recommendation system does not affect the formulation of questions. The survey questions are still based on the item preference drivers.
  • FIG. 5 is a flowchart 500 of an embodiment of a general recommendation method according with the disclosure for navigating the recommendation system and selecting items.
  • a GUI embedded in memory comprises instructions for presenting visual representations of questions and control icons, and receiving user information. Visual representations comprise a user selection screen 510, a survey initiation screen 520, a survey question screen 530, a recommendation process screen 560 and an item recommendation screen 570.
  • the GUI is embedded in a system, e.g. system 130 or 300, and the visual representations are visible in a user device functioning as a web client.
  • the GUI is included in a recommendation application operable in a user device, such as the recommendation application 610 described below with reference to FIG. 6.
  • the method begins after the user activates the GUI, at which time user selection screen 510 is presented by the GUI.
  • the GUI receives a user input indicating how many users will participate in the recommendation process.
  • the GUI presents survey initiation screen 520 to indicate to the user that information is required to assess the current mood of the user.
  • each user accesses the user device, in turn, to complete the survey.
  • users log into the system and take the surveys with different personal devices.
  • Survey question screen 530 is presented next showing four item images 532, i.e. movies.
  • Switch-out buttons 534 enable the user to switch-out the item located next to each button 534.
  • One of the items must be selected to proceed.
  • An item may be selected by touch in the case of touch-screens, with a mouse pointer or with any other user interface.
  • the process is repeated for as many survey questions as are coded in the system.
  • the process is repeated for as many users as were selected with user selection screen 510. The value of X is incremented accordingly, until the last user survey has been completed.
  • the method continues with presentation by the GUI of recommendation process screen 560.
  • item recommendation screen 570 is presented showing the first recommendation.
  • Navigation buttons 580 are presented to navigate to the previous or next item recommendation.
  • a "watch trailer” button 584 is provided to enable the user to preview the recommended movie.
  • a button 588 is provided to enable the user to order the movie from an online service provider.
  • a system API communicates with an API of the service to authenticate the user's account and authorize the transaction. The user may authenticate the account at any time prior to ordering an item.
  • the user logs into the system of the service provider and the recommendation system API automatically downloads movie availability information from the service provider.
  • the recommendation system limits recommendations to available movies.
  • FIG. 6 is a block diagram of another embodiment of a recommendation system according with the disclosure.
  • the system comprises system 300 and a recommendation application 610.
  • Recommendation application 610 is stored in the memory of a user device and comprises a GUI operable to administer a survey and present recommendations.
  • User device 104 including non-transitory computer readable medium, or memory 390, is shown.
  • exemplary user devices include personal computers, portable computers, an IPAD(TM), IPHONE(TM) or BLACKBERRY(TM) mobile device, a set-top box, a smart TV, a digital video disc player, a kiosk, and any device including a processing device, memory and an I/O interface operable to receive user commands and establish communications with other systems or devices.
  • a dashed line illustrates the transfer of a feature matrix 620 from system 300 to user device 104. The transfer occurs through information network 142 and is shown separately for clarity.
  • a service 650 e.g. a movie delivery service, connected to the recommendation system through information network 142.
  • Service 650 comprises a processing device 652, an I/O interface 654, and a memory 656.
  • Memory 656 has embedded therein an operating system 660, applications 662, and an available items list 670.
  • An exemplary application is an API for delivering available items list 670 to either system 300 or user device 104.
  • all communications concerning the recommendation system except those in connection with login, authentication and payment, flow between user device 104 and system 300, and between system 300 and service 650.
  • user device 104 communicates through system 300 to service 650.
  • user device 104 communicates directly with service 650, and service 650 updates system 300 with respect to movie transactions and compensation based on items ordered using the recommendation system.
  • System 130 is equivalent to, and interchangeable with, system 300. Exemplary business processes in which a service, or online vendor, communicates with system 300 and a user device application such as recommendation application 610 is described with reference to FIG. 8.
  • FIG. 7 is a flowchart 700 of another embodiment of a method according with the disclosure in which the recommendation system provides information to a user device, and the user device performs some of the item preference or feature matrix processing.
  • the method may be implemented with the system described with reference to FIG. 6.
  • the method begins, at 710, with selection of a service.
  • the GUI presents the user with a number of service options (e.g. as shown on FIG. 8) and the user activates a control button to choose one of the services.
  • the service refreshes the item list stored in the user device.
  • the item list may include additional information operable for facet filtering.
  • system 300 computes and pushes the feature matrix and, at 734, the feature matrix is downloaded by the application.
  • system 300 also pushes item images for the survey questions.
  • system 300 receives the available items list and pushes a feature matrix based on the available items.
  • the recommendation application in the user device has a feature matrix, the application may run without internet access.
  • the recommendation application in the user device is operable, at 740, to download item preference data from system 300 and compute the feature matrix.
  • the GUI administers the survey.
  • the application administers and analyzes the survey results and, at 746, presents recommended items, in the manner previously described with reference to FIG. 5.
  • the administration, analysis and presentation functions are performed by processing sequences such as survey processing sequence 344, recommendation processing sequence 348 and recommendation presentation processing sequence 352.
  • presentation includes providing users control buttons with which to veto items, as described previously with reference to recommendation presentation processing sequence 352.
  • the recommendation application downloads the survey questions from system 300 and uploads the survey results to system 300. System 300 analyzes the survey results and then provides the recommendations to the application.
  • the application receives an item transaction indication.
  • An exemplary transaction indication is a user command to order a movie. The user may order the movie by activating the appropriate control button, such as control button 588 described previously with reference to FIG. 5.
  • the recommendation application orders the selected item from the service. Then, at 770, the service provides compensation to system 300.
  • the order includes a token referencing the recommendation system, which enables the service to compensate system 300 with payment equal to a portion of the transaction or a fixed amount.
  • FIG. 8 is a block diagram of an implementation of system 800 configured to enable a plurality of user device applications, exemplified as user applications 102A-F, to engage in transactions with various services, or online vendors, exemplified as web servers 190X-Z.
  • System 800 includes a system 810 including API 132 and an updating application 820.
  • System 810 may be configured as system 130 or 300 to implement any of the methods described above.
  • FIG. 8 also illustrates two business processes enclosed in dashed lines and denoted by numerals 802 and 806. Both business processes rely on API 132 administer surveys and generate recommendations.
  • lines 803 and 804 represent communication lines
  • Web server 190X and application 102A are online vendor components, illustratively a Netflix server and a Netflix application.
  • the online vendor develops and implements its servers and applications as it desires, and accesses API 132 to administer surveys to users of its applications and to receive recommendations which the online vendor then provides to its applications.
  • the applications include mobile applications and also web pages.
  • System 810 includes the necessary databases and applications to receive survey requests and output survey questions via API 132, to process the survey information provided by the online vendor, and to output the recommendations, also via API 132.
  • system 810 is a recommendation server
  • the online vendor is a recommendation client.
  • line 807 represents communication lines (copper lines or wireless lines or both) between API 132 and applications 102B-F.
  • Line 808 represents communication lines (copper lines or wireless lines or both) between web servers 190Y and 190Z and applications 102B-F, illustratively online vendors Amazon and Redbox.
  • the online vendors communicate with updating application 820 to provide lists of current offerings, such as available movies. Updating application 820 updates the recommendation system databases with the up-to-date items.
  • An application program (not shown), illustratively application program 134, accesses API 132 to administer surveys to users of applications 102B-F and to send recommendations to applications 102B-F, also via API 132.
  • applications 102B-F are the recommendation clients.
  • Applications 102B-F may then access web servers 190Y and 190Z via line 808 to request a movie preview or enter into an online transaction with the online vendors.
  • a new item is folded in by performing a multivariate regression analysis.
  • the method includes generating second item preference data for additional items and performing a regression computation based on the second item preference data to fold-in the additional items into the item preference data.
  • the initial respondents rank additional items by comparing them to the initial items.
  • the preference vectors of the initial respondents are known.
  • second preference data is generated based on the responses from the initial respondents.
  • the new item's vector is determined by a multivariate regression in which each respondent's response is an observation, the dependent variable is the set of ranks from each user, and the independent variables are the preference vectors of each user.
  • the regression coefficients (without intercept) produce the most likely vector describing the new item.
  • the method further includes generating third item preference data from responses from respondents, the third item preference data being different than the item preference data.
  • the regression computation is based on the second item preference data and the third item preference.
  • new respondents are surveyed based on the initial item preference data to generate third item preference data.
  • the new respondent's preference drivers are computed with the third item preference data.
  • the survey is prepared in the same manner as the survey described above for determining the preference drivers of users. The survey calibrates input from the new respondents with the input from the initial respondents. Each new respondent then rates the additional items, for example relative to the items in the survey questions, generating the second item preference data.
  • a regression analysis based on the second and a third item preference data is performed, in the manner described in the preceding paragraph, to project the most likely item vectors for the additional items.
  • the additional items, and the corresponding most likely item vectors, are then incorporated into the feature matrix.
  • the new respondents are surveyed based on the initial item preference data and the new items to generate the third item preference data.
  • the new respondent's preference drivers are computed with the third item preference data.
  • the survey is prepared in the same manner as the survey described above for determining the preference drivers of users.
  • a regression analysis based on the second item preference data is performed, in the manner described in the preceding paragraph, to project the most likely item vectors for the additional items.
  • the additional items, and the corresponding most likely item vectors, are then incorporated into the feature matrix.
  • the survey taker is asked to provide supplemental information pertaining to the items.
  • the supplemental information may comprise ratings, rankings or any other information.
  • the user preference vector and the supplemental information have many uses. In one example, the user preference vector and the supplemental information are used to fold-in additional items. In other examples, the user preference vector and the supplemental information are used to make pricing decisions, forecast sales and manage inventories and organize items. The data may also be used to ensure that the sample of respondents is representative of a larger set of respondents exhibiting the defined drivers (i.e. do the respondents exhibit a range of preference vectors? Are there preference vectors that are missing or under represented?).
  • the system recommends movies or itineraries for movie festivals.
  • movie festivals such as Sundance and SXSW
  • over 100 movies could be playing at multiple locations.
  • the audience may be surveyed to obtain rankings and reviews from which the item preference vectors for the movies can be generated. They would also be given a survey as described above to determine their preference vectors.
  • Other moviegoers may be surveyed in the manner described above (by themselves or with a group) and be provided with movie recommendations.
  • the movie recommendations may be paired with planning information.
  • Exemplary planning information includes showing schedules, locations, maps and other information pertaining to the festival to help users to find the best movie to watch right now or to plan the remaining festival time.
  • an exemplary recommendation method starts when a user (or members of a group) takes a quick survey based on a set of multiple choice questions pertaining to movie choices meant to quickly capture the preference vectors of the user(s). Based on the preference vectors and the previously computed item vectors (based on a dense item dataset), movie preference scores are computed. Then, a set of recommendations is produced.
  • the movie recommendations are affected by whether every respondent has watched every movie. Recommendations can be improved by improving the item dataset so that it is less sparse.
  • the item dataset may include a "not viewed" field to track whether a respondent viewed a movie. When the respondent completes the initial survey, the respondent can also check the "not viewed" field to indicate he/she has not watched the movie.
  • the "not viewed" facet is used as an exclusionary pre-filter. By pre-filter it is meant that filtering occurs before computation of the item vectors. The initial responses are pre-filtered on the "not viewed" facet. The filtered dataset is used to compute the item vectors.
  • the "not viewed" facet is used as an exclusionary post- filter.
  • post-filter it is meant that filtering occurs after computation of the item vectors.
  • the feature matrix is filtered on the "not viewed" facet.
  • the "not viewed" movies are not available as survey candidates.
  • Recommendations can also be improved by increasing the power of the item dataset by removing average movies from the computations.
  • average movies and movies not viewed by many people are excluded from the pool of movies available as survey candidates, to improve the recommendations.
  • a polarizing movie is a movie that is not rated as average. Typically, a polarizing movie has been rated as highly positive or negative by at least one person.
  • a training set is generated to identify polarizing movies that have been watched by many people. To find a suitable set of movies for the training set, a small group of respondents (e.g. 20) are asked to rank their favorite movies of all time (e.g. thousands of movies per respondent).
  • the responses are normalized to a mean of 0 and a standard deviation of 1 .
  • the sum of squares of the responses is obtained, and the movies are ranked based on the sum of squares. Highly ranked movies are included in the training set, as they represent highly polarizing movies. Average and not watched movies generate scores near or at the mean and, therefore, are not highly ranked.
  • the training set may comprise, for example, 200 movies.
  • the training set is then used in a survey given to a large number of respondents to generate the item preference data. In other words, the sum of squares analysis is used as an inclusionary pre-filter.
  • the item preference data is then used to generate item vectors and select survey candidates, as described above.
  • Recommendations can also be improved by excluding from the user survey movies that the user has not watched and movies the user probably has not watched. If the survey presents many movies the user has not watched, the user has to switch the movie choices, and the user experience degrades due to the extra steps needed to complete the user survey and the consequent loss of time.
  • the system tags the movies switched out, which represent the movies the user has not watched. In a subsequent user survey, the tagged movies are excluded from the survey.
  • the user may also indicate, after taking a survey, that he/she has watched one of the recommended movies. The user may do so, for example, by ordering the movie from a movie delivery service. Alternatively, an icon may be presented by the GUI to enable such indication by the user.
  • the system tags the movie as a watched movie. The system thus improves the user experience and the recommendations as the user takes more surveys or provides more feedback.
  • the user's indication that he/she has or has not watched a movie is used to identify user survey candidates based on a likelihood computation.
  • the training set described above is developed. Then, all movies that have been watched by the user receive a positive 1 and the movies that have not been watched receive a negative 1. The watched and not watched attributes are added to a "watched" driver added to the item preference data. The dimensionality of the modified training set is then reduced, for example by performing a principal component analysis.
  • the PCA drivers sort movies into groupings, where movies in groups are likely to have been watched or not been watched by the user. The PCA drivers thus comprise a user's "likely watched" vector.
  • An average of two or more vectors corresponding to watched movies is calculated and the average vector is multiplied by the vectors of the items to compute likely watched scores.
  • the movies with the highest scores are the most likely watched movies.
  • the PCA "likely watched" computation may be updated as the survey is being taken so that each subsequent question incorporates the information received from the previous questions.
  • the PCA likely watched vectors may be computed while the preference vector is computed, which computation may be repeated after each survey answer is received by the system.
  • the likely watched vector is then used to select survey candidates for subsequent questions.
  • Question candidates are selected from pools of potential candidates excluding items identified as not watched and including items identified as likely watched based on the likely watched vectors. For example, one likely watched driver might be movie vintage, where positive values relate to older movies and negative values relate to newer movies. When a user switches out an older movie, subsequent questions may include movies whose likely watched vectors have large negative values for the vintage driver.
  • the likely watched vector is fairly stable over time since it is not impacted by current mood.
  • the likely watched vectors from preceding surveys are recorded and then combined with the watched indications from the user to further improve the selection of survey candidates.
  • a user is provided a "watched" survey from which the likely watched vector is computed.
  • the survey may include, for example, 200 movies.
  • the survey enables the user to identify movies watched and not watched.
  • the likely watched vector may identify that the user is more likely to have watched older movies that are block busters and less likely to have watched movies that are not horror movies.
  • the likely watched vector is recalculated to incorporate this information, which may remove the bias toward only including older movies in subsequent survey questions.
  • the new information is incorporated by computing the weighted average of the likely watched vector with the vector of the switched out movie. A negative weight is applied to convert the likely watched vector to a likely not watched vector. A higher weight is given to the likely not watched vector computed based on the watched survey since the watched survey includes more information than the small user survey. The weighted likely not watched vector is multiplied by the attributes of any movie to forecast the likelihood that the user has not watched that movie. [0143]
  • the movie recommendation system also recommends new releases.
  • the item preference data does not include new release ratings as soon as a new movie is released.
  • recommendations are improved to include new releases by folding-in new releases and, potentially, new respondents.
  • individuals who have watched the newly released movie take a quick survey configured to determine the relative rating of the new release. If an individual is not a respondent, the survey is also configured to determine the individual's preference vector. The user survey is then conducted using the improved item preference data as described above.
  • Respondent and group characteristics can be used to improve the recommendations by matching or neutralizing biases.
  • Recommendations may be imbalanced if the item preference data is biased based on a characteristic of the respondents, for example.
  • the item vectors may indicate imbalance if one of the principal components is highly correlated to a characteristic of the respondents. For example, if the item preference data includes a disproportionate number of male respondents, or the male respondents disproportionately prefer a subset of movies, as indicated by correlation with a principal component, then the recommendation system may produce recommendations biased towards the subset of male preferred movies.
  • the characteristics of the group are matched to the characteristics of the item preference data.
  • the recommendation method comprises pre-filtering excess respondents exhibiting the biasing characteristic so that the item preference data used to generate the recommendation includes an even number of respondents relative to the characteristic (e.g. equal number of male and female respondents). If a principal component indicates bias, the excess respondents may be selected from the subset of respondents exhibiting the biasing characteristic so as to neutralize the biasing effect. For example, the male respondents highly correlated to the biased principal component may be selected as the excess respondents and filtered out of the item preference data.
  • Any user characteristic may be chosen as the matching, or balancing, characteristic.
  • Exemplary user characteristics include age, gender, sexual bias, profession, hobby, political affiliation, and any other characteristic which can be used to filter respondents.
  • the users may indicate that they do not wish to balance the recommendations.
  • the users may indicate a balancing characteristic. An example of a screen for selecting a balancing characteristic corresponding to who will watch the movie is described with reference to FIG. 12.
  • the recommendation method comprises pre-filtering excess respondents not exhibiting the characteristic so that the item preference data includes only respondents exhibiting the characteristic.
  • Any user characteristic may be chosen as the inclusion characteristic. Exemplary user characteristics include age, gender, sexual bias, profession, hobby, political affiliation, and any other characteristic which can be used to filter respondents.
  • the users may indicate that they do not wish to bias the recommendations. In another variation, the users may indicate the inclusion characteristic.
  • a television show series comprises seasons. Each season includes a plurality of episodes.
  • an item preference data is comprised of respondents' survey data corresponding to, for example, an overall rating for the series, a season rating for each season, and an episode rating for each or selected episodes.
  • the episode rating may be in relation to other episodes in the season or the series.
  • the information may be used to determine if the show is improving. For example, preceding and succeeding episodes may be compared to determine an improving or worsening trend.
  • the rating for the season may be computed as the average of the episode's ratings.
  • respondents indicate whether an episode may be enjoyed before watching preceding episodes. If a user seeks a show series recommendation, the recommendation system may recommend a series and also a highly rated episode in the series based on the ratings and the indication whether the episode can be enjoyed without watching the preceding episodes first. The recommendation system may additionally recommend the pilot episode of the show series. In a further embodiment, if the rating of a recommended series decreases compared to previous seasons, the recommendation system provides an indication of the decrease to the user and recommends another series.
  • the item preference data may be updated from time to time with data from supplementary surveys as new episodes become available, in the manner described with reference to new movie releases.
  • the effect of recommendations may improve if the users trust the recommendation system.
  • User trust may increase if the recommendation system provides to the user additional information.
  • the recommendation system may provide information describing how the recommendations were made or providing reviews from other users. The more affine the descriptions are, the more trust that can be earned.
  • the preferences of the user are used to provide recommendation information.
  • the preference vectors of respondents or users writing reviews are first evaluated for commonality. Based on the preference vectors, the respondents are grouped. For example, a first group may include individuals whose preference drivers are +1 , ⁇ 0, -1 , -1 indicating a positive driver 1 , neutral driver 2, and negative drivers 3 and 4.
  • a second group may include individuals whose preference drivers are -1 , ⁇ 0, -1 , -1 indicating a negative driver 1 , neutral driver 2, and negative drivers 3 and 4.
  • the user's preference driver is matched with the group exhibiting similar preferences, and the reviews from the matched group are provided to the user. For example, if the user has a positive driver 1 , then reviews from the first group are presented. In another variation, the reviewers can be ranked based on the individual's preference vector to find the reviewer with the most similar preference vector. The highest recommended reviews will be presented to the user.
  • the recommendation system provides a review summary reflecting common themes. Key term frequencies may be utilized to summarize the reviews from the group's members. For example, “excellent” may be used to describe the recommendation if the word is used more frequently than the word "good” in the reviews from the group's members.
  • the reviews are tailored to each member of the user's group based on the member's preference vector.
  • the recommendation information comprises a visual representation.
  • an exemplary visual representation 900 includes a two- dimensional axis graphic 902.
  • Graphic 902 divides the visual representation into four quadrants.
  • the item representations are the movies from the user survey that represent the opposite values of the first two drivers, e.g. movies having vectors [+1 , 0, 0, 0], [-1 , 0, 0, 0], [0,+1 , 0, 0] and [0,-1 , 0, 0] (or as closed to such vectors as possible).
  • These movies describe the range of preference in the first two dimensions.
  • these movies are Wolverine, Present Thunder, Zodiac and Shrek.
  • the values of the first two user preference drivers for two users of a group are represented by images 920 and 922 located at the intersection of the values. Based on the location of images 920 and 922, the user preference driver attributes are positive for the first driver and negative for the second driver.
  • Images 930 and 932, representing the top two movie recommendations, A Beautiful Mind and Blood Diamond, are also shown. Their locations of images 930 and 932 in the visual representation are determined in the same manner as the locations of by images 920 and 922 are determined. Additional images may be shown, such as the survey candidate movies and additional recommendations.
  • the visual recommendation information may help users to better understand the range of options and how the recommendations fit within the range, thereby instilling trust in the recommendation system.
  • the axis of the graph is determined using PCA to explain the most variation.
  • a PCA is run on all of the points and the two most important drivers (2 newly calculated principal components based on the original four principal components) are plotted to explain the multi-dimensionality of the survey responses.
  • the second driver may be movies geared toward males versus geared toward females. If two males take the survey together and both are positive driver 2, running the second principal component analysis on their responses will not identify the 2 nd driver as important and will exclude that driver in the second principal component analysis.
  • the points are the set of survey item vectors, the recommended movie vectors, and the user preference vectors.
  • the recommended items and users are also plotted for the same reasons described above.
  • the user vectors are weighed so that they drive the dimensions of the graph more. Weighing is accomplished by including the user vector multiple times in the data set before the PCA is run.
  • images representing the responses from the user survey, or a number of them are presented scaled proportionately to the similarity of the response to the recommended item. For example, the cosine similarity may be used to determine the scale of each images. Referring to FIG. 10, a representation 1000 of a GUI window is shown illustrating, on the left side, an image 1010 of a recommended movie (The avengers).
  • images 1012, 1014, 1016 and 1018 are shown, each being smaller than image 1010.
  • the sizes of the four images are proportional to the similarity of each of the four movies to the recommended movie.
  • the four images shown can be arranged differently, for instance as a pie chart.
  • a transaction object 1020 and a navigation object 1022 also shown.
  • a user can activate transaction object 1020 on the GUI window to order delivery of the recommended item.
  • the item is a movie and transaction object 1020 is a link to an online vendor where the user can order the movie. If the user orders the movie, the online vendor may compensate the system for making the recommendation.
  • the user selects the delivery service, which is used as a facet for filtering.
  • Facet filtering enables the system to recommend movies to the user that are presently available for delivery by the online vendor while excluding movies that are not available. As described below, inclusive or exclusive filtering is performed. Movie rating is another facet which users may use to limit the recommendations. The user may activate navigation object 1022 to return to the previous webpage or window.
  • FIG. 1 1 shows a graphical representation 1 100 of a GUI window presented by the recommendation system.
  • the GUI window is configured to provide recommendation information and make the system easy to use.
  • Images 1 102, 1 104 and 1 106 representing recommended items ordered according to their scores.
  • An object 1 124 is shown above each image. The user can activate object 1 124 to indicate to the recommendation that the user is not in the mood at the present time to select the item.
  • An information box 1 108 is shown above each item to show a rating indicative of how well the item scored relative to other items.
  • Below each image are transaction objects 1 120 and navigation objects 1 122. As before, the user can activate a transaction object 1 120 to order the item from an online vendor.
  • the user can activate a navigation object 1 122 to view a trailer of the movie.
  • Genre, vendor and "include R-rated" facets are shown.
  • the recommendations may be based on the availability of movies by the chosen vendor. For example, the user may choose Amazon.com as the online vendor. The system may then determine which movies Amazon.com can deliver and only recommend movies from the available movies. Images 1 120 may be changed based on the vendor selection.
  • a recommendation can be viewed as a forecast of the user's actual preferences.
  • the difference, or error, between the forecasted preference and the actual preference may be referred to as the "idiosyncratic" preference for the item for that user.
  • the idiosyncratic preference may reflect the difference between how the user perceives the quality of the movie and the feelings evoked by the movie, which may be based on the circumstances at the time the user last watched the movie.
  • FIG. 1 1 shows objects 1 1 16 and 1 1 18, which the user may activate to provide feedback to the system reflecting the idiosyncratic preference for the item.
  • the user may activate one object to indicate that the system overrated the movie and the other to indicate that the system underrated the movie.
  • the score of the item is weighed down by a predetermined amount each time the user indicates the movie is overrated.
  • the score is weighed up if the movie has been underrated.
  • the recommendation system may record the feedback and the idiosyncratic adjustment of the item and adjust the score accordingly when making subsequent recommendations.
  • This adjustment can be absolute (e.g. subtract 5 points off the rating on a 100 point scale) or multiplicative (e.g. reduce the score by 20%).
  • the adjustment may be constrained to ensure no scores exceed 100 or fall below 0. As the user continues to provide feedback over time, the idiosyncratic adjustments can stack.
  • the recommendation system determines that the feedback reflects a different mood based on the amount of feedback. For example, the system may determine a mood shift if the user adjust 3 out of 6 recommended movies. In that case, the recommendation system may recalculate the user preference vector based on the additional data and then recalculate the scores and update the recommendation. A multivariate regression may be run against the drivers expressed by the movies using the idiosyncratic adjustment to determine the new user preference vector.
  • Another way to collect information about the user is for the user to rank a large set of movies. This can be done by repeatedly asking the user to choose a favorite among two movies to build a list of movies in rank order. This is the actual ranking. The average of the least liked movies can be subtracted from the average of the most liked movies to calculate a user preference vector. The user preference vector may then be used to estimate the expected ranking of each movie based on the score. The difference between the expected and the actual ranking for a movie is the idiosyncratic rating for the movie. In the future, the idiosyncratic rating can be used to adjust future expected rankings even if the user's mood has changed.
  • the list of ranked movies is started with the user survey results.
  • the ranking of each of the twenty-four movies from the six-question survey can be estimated. Then, question-by-question, the user can confirm that the chosen movie is at least as highly rated as the unchosen movies. In other words, to confirm that the chosen movie ranks higher than the unchosen movies from the same question. If this is not true, the ranking of the chosen movie is increased in the ranking list to be above the highest unchosen movie from the same question.
  • the idiosyncratic preferences can also be used to check if the user has a strong opinion on lower importance drivers (PC5, PC6, etc .), which are not part of the survey.
  • PC5, PC6, etc . The average PC5 value for movies that are overrated are subtracted from the average PC5 value for movies that are underrated to determine the users' view of PC5. If so, the PC5 driver can be implied and applied in the user's recommendation calculations, even though the PC5 driver was not included in the user survey. Additional preference drivers may be implied in the same manner.
  • a user can name and save his/her responses as a "mood.” Subsequently, the user can choose a saved mood instead of taking another survey.
  • the user may also name and save the preferences of one or more friends.
  • each user may take a survey or choose a saved mood. Alternatively, the user may link his/her account with friends' accounts so that all of the friends' saved moods can be added to a group for determining group recommendations.
  • FIG. 1 1 also shows a number of group and other objects configured to manage group membership. Item 1 140 shows the responses of user 1. When there are more than one user, then each user's name and responses will be shown.
  • Item 1 142 allows the user to save the responses and to name the preference as a mood of the user or as a friend of the user.
  • Item 1 144 allows the user to remove his or her information from the group. When removed, the recommendations are recalculated based on the remaining users in the group.
  • the user's saved moods are used to target advertisements to the user.
  • the advertisements may be targeted by the recommendation system or by external systems (i.e. advertisements on other websites, emails and direct mailings).
  • the advertisements may be directly related to the recommended items (i.e. data from a movie recommendation used to determine movie advertisements to show the user).
  • the advertisements may also be inferred from the recommended items (i.e. data from a movie recommendation used to infer TV show advertisements).
  • the advertisements can be based on an average of the moods, on the mood most often used by the user or on the most recently used mood. Note the moods of the user have been saved separately from moods of the friends.
  • multiple advertisements can be shown, each corresponding to each of the moods.
  • one mood can be chosen at random from the set of moods.
  • the odds of a particular mood being chosen is proportional to the frequency that mood is chosen by the user. (i.e. the user has moods A and B, exhibits mood A 90% of the time and mood B 10% of the time. Advertisements corresponding to mood A will therefore be shown more frequently).
  • a user preference vector is compiled based on user inputs without a survey.
  • the user inputs one movie or a list of movies.
  • the user preference vector is computed as the average of the vectors corresponding to the inputted movie(s).
  • FIG. 12 shows a graphical representation 1200 of a GUI window presented by the recommendation system to filter items before a survey is taken.
  • the GUI window displays objects 1210, 1212, 1214 and 1216 corresponding to different pre-survey filter criteria.
  • items are movies.
  • the user may activate object 1210 if the user wishes to watch a movie alone, object 1212 if a couple will watch the movie, object 1214 if a family will watch the movie, and object 1216 if a group of friends will watch the movie.
  • Each object has an associated filter profile.
  • the family filter may exclude R-rated movies while the couple filter may exclude violent movies but include movies rated R due to nudity or sexual language.
  • the filters may be pre-defined in the system according to the type of items being recommended.
  • the user survey is then administered based on the filters selected by the user.
  • the filters the user can quickly and effectively exclude from the survey certain items based on content.
  • the filtered items do not appear in the user survey and, therefore, the user does not have to switch them out during the survey.
  • An object 1220 is provided to enable the user to receive recommendations based on a previous survey taken by the user.
  • FIG. 13 shows a graphical representation 1300 of a GUI window presented by a recommendation system configured to give a user the option to take different surveys, which may be referred to as "quizzes" or "quiz.”
  • the GUI window displays images 1310-1315 to show the user the types of items available within a category and objects 1320-1325 to show the types of items available within another category.
  • the GUI window includes objects 1302 and 1304, which the user may activate to select one or the other category.
  • the items are movies, and the user may choose between a quiz with older movies (e.g. 1009-2005) and a quiz with newer movies (e.g. 2005-2010).
  • the user may be asked his/her age and the recommendation system then infers a quiz choice.
  • the movie drivers and questions for each quiz are calibrated using separate training sets.
  • Rental movies can typically be rented from a service at a low cost.
  • the rental cost may, in fact, be the same for most movies. Even when prices differ, for example between regular and high definition movies, the price difference does not generally drive the user's preferences.
  • Other items are very price sensitive. Clothing, fragrance and jewelry items, athletic equipment, restaurants, vacations and other expensive items, for example, can differ significantly in price.
  • user preference vectors are used to recommend prices, make recommendations that incorporate pricing as a driver or provide simulated pricing information. These recommendations and information enable merchants to adjust pricing to increase sales volume, increase profits and adjust inventories by tailoring pricing to use preferences on individual and group basis.
  • the method comprises accessing a data- structure including a plurality of items; computing a user preference vector; and identifying, from the plurality of items based on the user preference vector, at least one of a preference-price efficient item and a preference-price inefficient item. Identifying at least one of a preference- price efficient item and a preference-price inefficient item may include computing preference scores for the plurality of items and comparing the preference scores and item prices to identify the at least one item. The method may include accessing item vectors and item prices, the item vectors and item prices corresponding to the plurality of items.
  • the method further comprises outputting a recommendation for the user, the recommendation including the preference-price efficient item.
  • the method further comprises computing a discount amount by which the preference-price inefficient item can be discounted to become preference-price efficient.
  • the method further comprises computing an up-charge amount by which the preference-price efficient item can be up-charged without becoming preference-price inefficient.
  • preference-price efficient items are recommended.
  • Preference-price efficient items are the most preferred items at given prices or in given price ranges.
  • price-sensitive methodologies are applied to identify the items which are most preferred within given price ranges.
  • a given price-point is $100
  • the most preferred items priced at or below $100 are recommended.
  • a plurality of price-points are given, and the most preferred items priced at or below each given price-point are recommended.
  • the recommendation may include, for example, three items priced at or below $150, three items priced at or below $100, and three items priced at or below $50.
  • the recommendations are based on the user's preference vector.
  • the given price-points are arbitrary and can be set based on the type of item being recommended and the user's characteristics.
  • inefficient items can be discounted so that they become preferred to every lower priced item.
  • Inefficient items present discounting opportunities.
  • Known forecasting techniques can be used to predict how many potential buyers would purchase the item at the discounted price versus the initial price. For example, a merchant may offer coupons to selected customers or temporarily test a discounted price on a website to assess its impact. Customers may also be selected for testing a discounted price based on their characteristics after matching their characteristics with the preference vector used to compute the discounts.
  • preference vectors of respondents or users are correlated to individual characteristics, and discounts computed as described above are provided to potential buyers matching the individual characteristics.
  • the individual characteristics may include demographic, purchase history, and other individual characteristics.
  • FIG. 14 a graph 1400 is presented to illustrate the selection of preference-price efficient items.
  • fifteen preference/price points are shown corresponding to fifteen items. These items may be, for example, dresses of different brands, materials and styles.
  • the vertical axis represents a preference score having a range [0, 1 ].
  • the horizontal axis represents a price having a range [0, 150].
  • the fifteen preference/price points are numbered 1401 -1415. The numbers correspond to the preference ranking of the items. Thus, point 1415 represents an item more preferred than item 1414 (for a given user) etc.
  • Also shown are three loops numbered 1420, 1424 and 1428.
  • Each loop encloses three preference-price efficient items.
  • Loop 1420 encloses points 1413, 1414 and 1415, which are the three most preferred items below $150.
  • Loop 1424 encloses points 1409, 1410 and 141 1 which are the three most preferred items below $100.
  • Loop 1428 encloses points 1404, 1406 and 1409 which are the three most preferred items below $50.
  • the items inside each loop are the recommended items at the given price point.
  • the preference scores are computed as the product of the item vectors and the user's preference vector, as described previously in connection with the generation of the item preference data, and are not affected by pricing.
  • the pricing information is obtained from the seller of the items, for example, and added to the item preference data.
  • the graph is provided for illustration only. Given the price points, the system computes the scores and selects the items to be recommended at each price point.
  • the pricing method comprises identifying items which may be discounted to make the items preference-price efficient. If the items are appropriately discounted, the recommendation system will recommend them. For example, if the price-point is $100 and two items, A and B, are priced at $1 10, the question arises whether it would be beneficial to price both items at or below $100. If the preferences of the user would not lead the system to recommend item A, then discounting item A would not cause the system to recommend it and discounting is therefore not beneficial. On the other hand, if the preferences of the user would lead the system to recommend item B at the right price, then discounting item B would cause the system to recommend it and discounting is therefore beneficial.
  • the system should recommend (to the user) a discounted item A and should not recommend (to the business) discounting item B.
  • items A and B are preference-price efficient at a higher price-point, and therefore would be recommended at the $1 10 price, then the system should not recommend (to the business) discounting of either item.
  • FIG. 15 a graph 1500 is presented to illustrate the selection of items which, if discounted, become preference-price efficient items.
  • Graph 1500 is like graph 1400 except that the prices of two preference/price points, numbered 1407 and 1412, have been discounted to illustrate how to select discount candidates and discount amounts.
  • the preference scores, initial prices (corresponding with graph 1400), new prices (corresponding with graph 1500) and discount amounts are shown in Table 8.
  • Figure 15 also shows the initial preference/price points corresponding with points
  • 1407 and 1412 which are represented by dashed squares numbered 1407' and 1412'. Arrows connect the initial and discounted points. As illustrated by graph 1500 and Table 8, discounting point 1412 from $1 10 to $95 shifts point 1412 so that it becomes the most preferred item below $100. Of course, point 1412 could also be priced at $99.99 to achieve the same effect.
  • FIGS. 14 and 15 also illustrate that the most preferred items below given price points could be up-charged without causing them to lose their place in the recommendation.
  • point 1409 is the most preferred item under $50, so it could be priced between $1 and $49 without changing its place in the recommendation, as the most preferred item priced under $50 for that user.
  • the difference between the price of an item and the next highest given price barrier represents an up-charge opportunity
  • the difference between the price of an item that would not be recommended at its current price and the next lowest given price barrier represents a discount opportunity.
  • the price difference between two items, in which the more preferred item is priced lower than the less preferred item represents an up- charge opportunity for the more preferred item and a discount opportunity for the less preferred item, which would make each item the most preferred at their new price.
  • discounted item 1407 (FIG. 15) is less preferred.
  • the system computes discounts and up-charges to maximize sales or profit.
  • the system identifies a number of discounts which may be applied to an item to cause the system to recommend the item based on the preference-pricing methods described above. Each discount will result in a different ranking for the item. For example, the item may be recommended first at a steep discount and third at a smaller discount.
  • the system For each discount, sales volume and profit increases are forecasted. Based on the forecast, the system recommends a discount to maximize sales or profit or both. In a variation thereof, the system also forecasts volume loses of other items that would be recommended by the system if the discount to another item were not applied, and selects a discount that maximizes sales volume or profit overall. With reference to FIG. 15, for example, the system would compute the impact on sales and profit of (a) discounting item 1412 so that it is recommended, and (b) not recommending item 1404, as a consequence of recommending item 1412.
  • the preference drivers of a user are used to select how search results are presented.
  • Users may, for example, perform a text search for an item on a website.
  • the website displays items based on the text search and the preference driver of the user.
  • the items are then sorted and presented according to the user's preferences. In this manner, the user is more likely to find what he/she is looking for at the top of the search results, thereby improving the user experience.
  • the system identifies and presents similarly preferred items. The system may also find less expensive alternatives that are similar to the original item not just on content filters (e.g. color or brand) but on preference drivers, which may be intangible.
  • preferred items are items that have small euclidean distances between them.
  • Alternative recommendations may include items with similar content (e.g. color, type, designer) and similar vector attributes (based on the euclidean distances), and perhaps similar or lower price.
  • the system identifies if discounted items/outlet items (past seasons) are still trendy, and to whom. Items are still trendy if they are still highly preferred based on their item vector relative to the item vector of the item computed at an earlier point in time (e.g. when the item was not on sale).
  • a system as described with reference to FIG. 1 is utilized to collect retail data.
  • the retail data relates to a merchant.
  • the retail data is collected across merchants.
  • a plurality of respondents utilizing user devices for example user device 104, complete surveys which are processed by system 130 to compute preference vectors.
  • System 130 may also receive information concerning the characteristics of the respondents sufficient to group the respondents based on similar characteristics.
  • System 130 then computes group preference vectors.
  • the surveys may be directed to a plurality of item types (e.g. movies, clothing etc.) and subtypes (e.g. dresses, shirts).
  • the respondents may complete the surveys to obtain a recommendation, as discussed previously.
  • the respondents may complete the surveys in exchange for rewards, such as points.
  • the respondents may also complete the surveys because they find the surveys fun or for any other reason.
  • System 130 also collects pricing information on a multitude of items. For example, system 130 may obtain pricing information by mining the websites of merchants and may also receive pricing information directly from merchants in the form of databases or data files. With the pricing and survey information, system 130 then identifies pricing discount and up-charge opportunities for the merchants of the items.
  • a party receives the survey information, (b) receives the pricing information, (c) computes item vectors based on the survey information, (d) identifies pricing opportunities, and (d) recommends the pricing opportunities to the merchant.
  • the party transmits a pricing opportunity list to the merchant on a periodic basis. In one variation, the period basis is twenty-four hours. In another variation, the party transmits a pricing opportunity list to the merchant at least twice daily.
  • the system described above is utilized to promote sales by a merchant.
  • a party other than the merchant receives the survey information, (b) receives the pricing information, (c) computes item vectors based on the survey information, (d) identifies pricing opportunities, and (d) executes sales contracts implementing pricing changes based on the pricing opportunities.
  • the sales are fulfilled by the merchant based on the sales contracts.
  • the party receives pricing changes limits from the merchant, and the pricing changes are implemented by the party within the limits.
  • the party makes sales offers and receives offer acceptances via a virtual storefront, and receives commissions from the merchant based on the sales contracts.
  • the commissions are based on the pricing changes.
  • a trade-off value is received and used to recommend prices.
  • a trade-off value can be thought of as the amount of preference score bought for a unit of price.
  • the trade-off value can be thought of as the difference in preference scores for an item as compared to the item plus a unit of price. For example, if an item has a preference score of 90, and the same item plus one dollar has a preference score of 92, the trade-off value is 2.
  • scores considering the trade-off values are compared to scores of other items to predict the amount of trade-off that results in a different user decision.
  • Pricing information including a price for an item considering the trade-off can be output, with the expectation that the price will affect the user's decision e.g. purchase the item at the given price instead of another item.
  • the tradeoff value can be obtained empirically and provided in a data structure or via a user interface, and is thereby received by a computing device and stored in memory for immediate or later use.
  • the trade-off value is determined by discounting an item until it sells, in which case the trade-off value is the discount amount that results in the sale.
  • the trade-off value can also be determined by offering choices to respondents, such as two items priced at different prices, and asking the respondents to select one or the other. Price differences can then be used as trade-off values.
  • scores are calculated with the trade-off values.
  • the preferences of users can also be used to simulate or model pricing information.
  • the simulated pricing information may be simulated by a merchant or may be output by a service provider for the merchant.
  • user preferences are simulated by reduced dimensionality preference simulation application 136, and the simulated user preferences are used in a further simulation of user decisions, also by reduced dimensionality preference simulation application 136, to generate simulated pricing information.
  • the simulated pricing information can be used by the merchant to price items and to implement pricing strategies to advance business objectives.
  • the simulated pricing information may be input into known or future developed pricing software, e.g. pricing software module 198, that implements the pricing strategies.
  • simulated pricing information comprises information generated by simulating user decisions based on user preferences, actual or simulated.
  • exemplary simulated pricing information includes item prices; relative demand for an item; price elasticity for an item; cross-price elasticity for demand of an item and a price of a second item; a demand curve for an item; demand curves for an item corresponding to different subpopulations; and any other information suitable for making pricing decisions. While pricing is generally described herein with reference to items, it should be understood that items include any good or service which may be priced. Exemplary items include goods which may be purchased, leased or rented, and services which may be received or attended. For example, a roller-coaster ride in an amusement park is a service which is attended, while a lawn treatment service is a service which is received.
  • a pricing method is executable in part by a processing device according to processing instructions embedded in one or more non-transitory computer readable medium.
  • executable with a reduced dimensionality preference simulation application by a service provider or a merchant, the method comprises accessing item preference data; reducing the dimensionality of the item preference data to obtain item preferences of items; simulating preferences of users with the item preferences; and simulating user decisions with the simulated user preferences to generate simulated pricing information.
  • the item preferences are based on a predetermined number of preference drivers, and the method further comprises calculating variation unexplained by the predetermined number of preference drivers.
  • simulated pricing information comprises at least one of relative demand for an item; price elasticity for an item; cross-price elasticity for demand of an item and a price of a second item; a demand curve for an item; and demand curves for an item corresponding to different subpopulations.
  • the method comprises identifying a user based on website access information; outputting information about the user to a reduced dimensionality preference simulation application via an information network, the reduced dimensionality preference simulation application configured to simulate preferences of users based on reduced dimensionality item preference data and generate simulated pricing information with the information about the user and the simulated preferences of users; receiving the simulated pricing information from the pricing system; and offering a price, corresponding to an item, to the user based on the simulated pricing information.
  • the simulated pricing information comprises at least one of relative demand for an item; price elasticity for an item; cross-price elasticity for demand of an item and a price of a second item; a demand curve for an item; and demand curves for an item corresponding to different subpopulations.
  • a reduced dimensionality preference simulation application assumes that, at least sometimes, a potential purchaser will not purchase the preferred item.
  • a probability is introduced, e.g. 80%, to account for this behavior. The probability affects the frequencies of the analysis item and thereby the demand curve.
  • the actual user may choose different items for many reasons, such as already having the preferred item. Another possibility is that the preferred item is similar to other items the user has.
  • This variation can be simulated by assigning lower probabilities to similar items.
  • the similarity of items can be calculated by performing a likelihood analysis with content attributes associated with the items.
  • the content attributes may include color, accessories, material, brand, country of manufacture, and the like.
  • FIG. 16. The method includes:
  • the item preference data may be accessed, at 1602, by reading a data structure from non-transitory memory including item preference information received from respondents.
  • item preferences are calculated, at 1610, using any known dimensionality reduction technique, e.g. PCA, including those described hereinabove with reference to FIGS. 3, 3A, 4 and 7.
  • the item preferences comprise attributes of drivers which may be expressed as item vectors (if four drivers are selected, each vector includes four attributes) or equivalent mathematical representations.
  • the dimensionality reduction technique also yields variances for each driver, including for the unselected drivers.
  • the variances of the unselected drivers represent the variation unexplained by the selected drivers.
  • the selection of drivers occurs automatically by programming the system to identify a number of drivers, e.g. four drivers. The drivers which explain the most variation are identified, and the variation corresponding to the remaining drivers represents unexplained variation.
  • user preferences are simulated.
  • the simulation is performed to predict the decision behavior of purchasers.
  • the simulation is performed by simulating as many preference attributes as there are selected drivers.
  • unexplained variation is calculated.
  • the item preferences are based on the selected preference drivers, as explained above.
  • the variation of the unselected drivers is calculated, which represents variation unexplained by the subset of preference drivers.
  • the variation of the unselected drivers can be calculated as the standard deviation of the unselected drivers, as follows: ⁇ var(all attributes)— ⁇ var selected driver attributes) [0191]
  • user decisions are simulated with the simulated user preferences to generate simulated pricing information. User decisions may be simulated using item scores calculated by multiplying, for each item, the attributes of the user preferences and the item preferences, and adding an error value, calculated as a random value times the standard deviation of the unselected drivers. Other means of calculating error values may also be used.
  • an error value may be predetermined in an arbitrary manner and improved empirically over time for different types of items.
  • an item may be identified based on the score, as described hereinabove. As the simulation is repeated, different items will have the maximum score. The frequency at which a particular item receives the maximum score is used to simulated user decisions relative to the item. The user decisions can be affected by changing item prices, for example, to determine the effect of pricing on the decisions.
  • a price limit, or budget is received and the identified item is the item priced at or below the price limit and having the maximum score.
  • the price limit is simulated and the identified item is the item priced at or below the price limit and having the maximum score.
  • Many price limits can be simulated to simulate pricing information including demand curves and pricing sensitivities.
  • the present embodiment of a pricing method, and variations thereof, may be performed by a reduced dimensionality preference simulation application, which may include dimensionality reduction processing sequence 332.
  • item prices and price limits may be associated with items.
  • the association comprises appending to each item vector the price of the item and/or the price limit.
  • the price limit may be a received budget (e.g. a budget input with a user interface to simulate a purchaser's budget) or a simulated price limit.
  • the price limit represents a maximum amount a purchaser may wish to spend. The computations take the price limit into account so that the identified item is not priced above the price limit.
  • Decision behavior may be simulated using Monte Carlo simulation.
  • a number of user decisions may be simulated to determine pricing elasticity, cross-pricing elasticity and other pricing relationships.
  • Preference vectors may be simulated from probability distributions for each user. The preference vectors may then be used to identify simulated decisions for a number of simulated users. The number of times that an item was "chosen" in a simulation divided by the total number of simulations run gives the relative demand of the item.
  • the simulations may be constrained by price limits and other suitable factors.
  • decision behavior is simulated based on a budget distribution.
  • the budget distribution may be derived from information received via a merchandizing website.
  • the merchandising website may permit users to select maximum prices for items.
  • a filtering engine associated with the website may limit the item choices presented to the users based on the limits selected by the users.
  • a budget distribution may comprise the relative frequency of the maximum prices selected by the users.
  • a demand curve for an item is simulated by determining the relative demand for the item at each of a plurality of prices. Normal distributions may be assumed for the user preferences to simulate purchasing behaviors dependent on prices of items. The results of the simulation provide simulated user preferences and prices that would influence the purchasing behavior of actual users.
  • a threshold price is determined at which, in the simulation, a user decisions items at or below the threshold. In other words, the system finds a price low enough that the item becomes preferred to all other items with equal or lower prices. The item may be priced at or near $0, if necessary.
  • the process of determining thresholds is repeated for multiple simulated users.
  • the relative demand for an item at a given price is the percentage of times that the threshold price is at or above the given price. Preferred items were described above in connection with price-efficient items with reference to FIGS. 14 and 15.
  • the price elasticity of demand for an item is calculated using the demand curve.
  • Price elasticity represents the effect of a price change on demand at a given starting price.
  • price elasticity may be calculated as the percent change in demand for a given change in price for a given starting price.
  • Price elasticity may be derived from the demand curve by finding relative demand at two prices, finding the ratio of the absolute difference between the relative demands and the difference between the two prices, and then dividing the ratio by the relative demand at a price intermediate the two prices. For example, relative demand may be calculated by finding the relative demand at the given starting price, a second relative demand at a price of 1 % above the starting price and a third relative demand at a price of 1 % below the starting price.
  • the second and third relative demands are subtracted from each other and then divided by 2 (e.g. 1 %+1 %).
  • the absolute value of the resulting number is then divided by the first relative demand. If the relative demands were calculated at prices +/- 10% instead of 1 %, the difference between the relative demands is divided by 20 instead of 2.
  • the demand curve is fitted with a smooth function before the elasticity is calculated.
  • the cross-price elasticity of demand is calculated for an item relative to a second item.
  • the cross-price elasticity is the change in demand for an item relative to a change in price for the second item, given starting prices for both items.
  • the demand curve for the item with respect to the price of the second item is calculated (e.g. y axis is demand for the item and x axis is the price of the second item). The calculation is as described above with reference to a demand curve, except that the threshold price is the price for the second item at which the user will decide to purchase the first item. It is possible that a threshold price will not exist to satisfy the preceding statement.
  • the cross-price elasticity is then calculated from the demand curve as described above.
  • a budget elasticity of demand is calculated for an item.
  • the budget elasticity is the change in demand for an item given a change in budget.
  • the budget elasticity may be calculated by determining the relative demand for the item given an assumed budget distribution. Then, the relative demand is recalculated using another budget distribution assumption.
  • the budget distribution can be shifted up and down by 1 % to determine the percentage increase in demand for each percentage increase in budget.
  • price elasticity is used to maximize revenue.
  • the price of an item at which price elasticity equals 1 maximizes revenue.
  • Price elasticity can be used to maximize or minimize many business metrics based on known economic equations.
  • subpopulation preferences are simulated to determine demand curves for different types of actual users.
  • a large set of user decisions are simulated.
  • simulated users are grouped according to their preferences.
  • users are grouped into four subpopulations based on the attributes of the second and third preference drivers, (e.g. PC2+ PC3+, PC2+ PC3-, PC2- PC 3+, and PC2- PC 3-).
  • users are grouped into eight subpopulations based on the attributes of the second, third and fourth preference drivers.
  • the relative demand, demand curve, price elasticity, cross-price elasticity, budget elasticity, and any other suitable pricing relationship may be calculated to simulate the purchasing behaviors of the subpopulations.
  • Additional granularity may be obtained by selecting, via programming, additional preference drivers to permit grouping into more subpopulations. Before or after the simulations, the actual preferences of actual users are obtained, as described below. The user's preferences are then matched to one of the subpopulations, and the pricing relationships of the subpopulation are used to make pricing decisions for the user.
  • the simulations may be performed by a reduced dimensionality preference simulation application.
  • the preferences of actual users can be obtained in any suitable manner.
  • user preferences are obtained beforehand with user surveys configured to elicit said preferences, as described above.
  • User preferences may also be obtained based on the user's historical information, such as browsing or purchasing history.
  • a merchant's website may track historical information based on a user's access to the website. Historical information may also be purchased from marketing organizations.
  • simulated pricing information representing pricing relationships generated with a first software program are provided to a second software program.
  • the first software program comprises instructions to reduce the dimensionality of item preference data and simulate the simulated pricing information based on the reduced dimensionality item preference data.
  • the second software program comprises known pricing software configured to implement business drivers or pricing goals. Exemplary pricing goals include defining pricing strategies to increase profit, volume or both, and optimizing mark-downs to clear inventories.
  • Simulated pricing information includes demand curves, relative demand, price elasticities, cross-price elasticities, budget elasticities, and any other pricing relationship information simulated as described above.
  • a third software program is provided which is configured to communicate information from the second software program to the first software program so that the first software program can determine the pricing parameters.
  • the second and third software programs may reside in a merchant's physical server while the first software program may reside in a remote server and be accessible to the third software program via an information network.
  • the first software program may be referred to as a reduced dimensionality preference simulation application.
  • a merchant may access an API, for example, to access a database of potential purchaser preferences and demand curves.
  • the merchant can access the API, for example, to provide a user identification and information about an item, which may be referred to as the analysis item.
  • the first software program may comprise a reduced dimensionality preference simulation application that matches the user to the user preferences stored in the computer memory, and outputs a demand curve (or any other pricing parameters or relationships) for the analysis item.
  • the demand curve flows through the API to the merchant.
  • the merchant can then make a pricing decision for the analysis item based on the demand curve for the particular user based on existing user preferences of the user.
  • the merchant can select a price for the analysis item to maximize a desired business driver or objective.
  • Exemplary business drivers or objectives include profits, volume, inventory reduction, under-pricing competition on particular items, maximizing the value of promotions, etc.
  • a pricing system may comprise one or more physical servers and a web server software residing in the one or more physical servers and operable to output item information including item prices for viewing by potential customers.
  • the pricing system also includes a pricing software module or application operable to receive simulated pricing information and generate the item information based on the simulated pricing information.
  • the simulated pricing information is generated by a reduced dimensionality preference simulation application operable to reduce the dimensionality of item preference data to obtain item preferences of items, simulate preferences of users with the item preferences, and simulate user decisions with the simulated user preferences to generate the simulated pricing information.
  • the web server software is further operable to process a sales transaction based on the item prices presented for viewing by the potential customers.
  • an application, algorithm or, processing sequence is a self consistent sequence of instructions that can be followed to perform a particular task.
  • Computer software, or software executes an algorithm and can be divided into application software, or application, and systems software.
  • An application executes instructions for an end-user, or user, where systems software consists of low-level programs that operate between an application and hardware.
  • Systems software includes operating systems, compilers, and utilities for managing computer resources. While computing systems typically include systems software and applications software, they may also operate with software that encompasses both application and systems functionality.
  • Applications may use data structures for both inputting information and performing the particular task. Data structures greatly facilitate data management. Data structures are not the information content of a memory, rather they represent specific electronic structural elements which impart a physical organization on the information stored in memory. More than mere abstraction, the data structures are specific electrical or magnetic structural elements in memory which simultaneously represent complex data accurately and provide increased efficiency in computer operation.
  • a computing device may be a specifically constructed apparatus or may comprise general purpose computers selectively activated or reconfigured by software stored therein.
  • the computing device whether specifically constructed or general purpose, has at least one processor, or processing device, for executing machine instructions, which may be grouped in processing sequences, and access to memory for storing instructions and other information.
  • a processor may be a microprocessor, a digital signal processor ("DSP"), a central processing unit (“CPU”), or other circuit or equivalent capable of interpreting instructions or performing logical actions on information.
  • DSP digital signal processor
  • CPU central processing unit
  • Memory includes both volatile and non-volatile memory, including temporary and cache, in electronic, magnetic, optical, printed, or other format used to store information.
  • Exemplary computing devices include workstations, personal computers, portable computers, portable wireless devices, mobile devices, and any device including a processor, memory and software.
  • Computing systems encompass one or more computing devices and include computer networks and distributed computing devices.
  • a computer network is a system of computers or computing devices interconnected in such a manner that messages may be transmitted between them.
  • computers operate as a “server”, a computer with access to large storage devices such as hard disk drives and communication hardware to operate peripheral devices such as printers, routers, or modems.
  • workstations provide a user interface so that users of computer networks can access the network resources, such as shared data files, common peripheral devices, and inter workstation communication.
  • portable wireless devices include mobile phones, personal digital assistants, tablets, laptop computers, and any other portable devices with wireless connectivity.
  • Embodiments of the disclosure may be implemented in "object oriented” software.
  • the "object oriented” software is organized into “objects”, each comprising a block of computer instructions describing various procedures to be performed in response to "messages” sent to the object or "events” which occur with the object.
  • Such operations include, for example, the manipulation of variables, the activation of an object by an external event, and the transmission of one or more messages to other objects.
  • Messages are sent and received between objects having certain functions and knowledge to carry out processes. Messages are generated in response to user instructions, for example, by a user activating an icon with a mouse pointer or touch-screen to generate an event. Also, messages may be generated by an object in response to the receipt of a message. When one of the objects receives a message, the object carries out an operation (a message procedure) corresponding to the message and, if necessary, returns a result of the operation. Each object has a region where internal states (instance variables) of the object itself are stored and where the other objects are not allowed to access.
  • Embodiments of an information elicitation and recommendation method and system have been described for eliciting information from users and for recommending items to users based on the elicited information.
  • item preference data initially obtained from respondents, is analyzed to identify pseudo-independent items.
  • the pseudo-independent items are used to administer a survey to one or more users.
  • the user's responses define the user's preference drivers.
  • Recommendation items are identified based on the user's preference drivers.
  • the identified items are presented to the user(s).
  • User can also switch-out items presented in the survey questions if they are unfamiliar with the items. The switch-out information can be used to better select questions for the same user in the future so as to not ask redundant questions that degrade the user experience.
  • processing sequences embedded in memory. Some or all of the processing sequences may be embedded in the memory of a system according to one embodiment of the disclosure. Some of the processing sequences may be imbedded in a memory of a user device operable to administer the survey and present the recommendations.
  • the functions implemented by the processing sequences may be distributed in different arrangements defining variations of the foregoing system embodiments without departing from the teaching of the disclosure.
  • Several embodiments and examples were described with reference to movies for illustration purposes. However, the concepts illustrated by the embodiments and examples are also applicable to any items. Exemplary items include clothing, jewelry, electronics, food items etc.
  • preference drivers enable the system to simulate pricing information for making pricing decisions to maximize income or profit or both.
  • pricing relationships and parameters characteristic of the pricing relationships are provided to known pricing software and the pricing software makes the pricing decision based on business drivers and objectives.
  • the pricing information is generated by simulating user preferencesusing reduced dimensionality preference data to simulate user decisions. In this manner, merchants can price items in a targeted manner based on user preferences more efficiently than, for example, collecting implicit information about users or target pricing based on user characteristics which do not include preferences, such as demographic and geographic information, which may be less predictive of purchasing behavior.

Abstract

The disclosure relates generally to a system and a method for eliciting information from a user by reducing the dimensionality of an item preference data and computing user preferences based on question responses received from the user. The questions include information about pseudo-independent items based on the reduced dimensionality item preference data. The recommendation system and method are operable to make item recommendations to a group of users and for initiating a transaction involving at least one of the recommended items. A method and system for generating pricing information may be configured for accessing a data-structure including a plurality of items; identifying, from the plurality of items, a preference-price efficient item; and outputting a recommendation for the user, the recommendation including the preference-price efficient item. The method and system may also be configured for reducing the dimensionality of item preference data to obtain item preferences of items; simulating preferences of users with the item preferences; and simulating user decisions with the simulated user preferences to generate simulated pricing information.

Description

System and Method for Eliciting Information and Generating Pricing Information
CROSS-REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of priority from U.S. Patent Application Serial
Nos. 61/654, 1 19, filed on June 1 , 2012; 61/683,750, filed on August 16, 2012; 61/683,752, filed on August 16, 2012; 13/795,168, filed on March 12, 2013; 61/800,338, filed on March 15, 2013; 13/905,625, filed on May 30, 2013; and 13/905,645, filed on May 30, 2013, the disclosures of all said applications expressly incorporated by reference herein in their entirety.
FIELD OF THE DISCLOSURE
[0002] The disclosure relates generally to a system and a method for eliciting information. More particularly, the disclosure relates to a system and a method for eliciting information applying dimensionality reduction analysis techniques. The disclosure also relates to a system and a method for generating pricing information applying dimensionality reduction analysis techniques.
BACKGROUND OF THE DISCLOSURE
[0003] Understanding user preferences is desirable to target advertising information and to improve user experiences while users engage web pages and mobile device applications. The value of predicted user preferences increases with their ability to predict user actions, such as purchasing decisions. User preferences can be inferred from implicit information by searching through user information such as purchasing history, credit card usage, demographic information, and other types of public and proprietary information. Such inferences are based on a large volume of information seemingly unrelated to the action to be predicted.
[0004] User preferences can also be obtained directly from users. For example, users can be asked to rank items. Ranked ordered data is useful. However, ranking items can require a significant amount of time and many users are unwilling or unable to spend the necessary time
[0005] A need exists to obtain information from users quickly and efficiently, and to determine the preferences of a user from a small amount of information. Further, a need exists to improve business results based on better user preference and pricing information.
SUMMARY OF THE DISCLOSURE
[0006] A method and a system for eliciting information from a user are provided. In one embodiment, the method includes, by a processing device, processing instructions embedded in one or more non-transitory computer readable medium. The processing instructions are configured for reducing the dimensionality of item preference data corresponding to items and identifying pseudo-independent items, from the items, based on the reduced dimensionality item preference data. The method further includes outputting information for presenting questions based on the pseudo-independent items, the questions configured to elicit explicit pseudo independent items relative information from the user and receiving responses.
[0007] In one example, each of the questions includes at least two pseudo-independent items and each of the responses includes an item selection. In another example, each of the questions includes two pseudo-independent items question pairs, and each of the responses includes an item selection.
[0008] In another example, the outputting and the receiving are performed by processing application programming interface instructions.
[0009] In a further example, the method includes, by a user device application, presenting the questions and outputting the responses.
[0010] In one variation, the method includes generating second item preference data for additional items and performing a regression computation based on the second item preference data to fold-in the additional items into the item preference data. [0011] In another variation, the method includes composing a user preference vector based on the responses and outputting an item recommendation based on the user preference vector.
[0012] In another variation, the method includes outputting the information to elicit the explicit pseudo independent items relative information from users in a group, and outputting an item recommendation based on the responses from the users in the group.
[0013] In another variation, the method includes receiving item reviews from reviewers, identifying from the reviewers those reviewers whose preferences are similar to the user's preferences, and outputting an item recommendation including a recommended item and the item reviews received from the identified reviewers and relating to the recommended item.
[0014] In another variation, the item preference data comprises preference data from respondents and a content driver, and dimensionality reduction has a content discriminating effect on the pseudo-independent items due to the content driver. In one example thereof, wherein items are movies and the content driver reflects whether the user has watched the movies, the discriminating effect discriminates likely watched movies from likely not watched movies, such that the questions will relate to more likely watched movies than if the content driver were not included in the item preference data.
[0015] In another variation, reducing the dimensionality of the item preference data generates item preference vectors corresponding to the items, and the method further comprises generating increased dimensionality item preference vectors by appending a content driver to the item preference vectors. In one example thereof, the items are movies, and the content driver includes a genre selected from the group comprising one or more of action, drama, comedy, horror/thriller, romance, and animated, wherein the content driver discriminates the items based on the genre.
[0016] In another variation, the method includes calculating item scores for the items, outputting an item recommendation including a recommended item and a preference value indicative of a predicted preference strength of the user for the recommended item, the item recommendation and the preference value based on the item scores, receiving an idiosyncratic feedback from the user indicative of the user's actual preference strength, and adjusting a future item score of the recommended item by an idiosyncratic amount related to the idiosyncratic feedback.
[0017] In another variation, the questions configured to elicit explicit pseudo independent items relative information from the user are operable to determine a user preference vector, and the method further includes outputting idiosyncratic questions configured to elicit idiosyncratic preferences.
[0018] In another variation, the questions further include saving the responses in a preference profile and outputting advertisements for the user based on the preference profile.
[0019] A method for serving advertisements to a user is also presented. In one embodiment, the method includes, by a processing device processing instructions embedded in one or more non-transitory computer readable medium, identifying the user when the user accesses a website and accessing a user preference profile of the user, the preference profile based on pseudo independent items relative information elicited from the user. The method also includes identifying preferred items based on item preference vectors and the user preference profile, the item preference vectors resulting from dimensionality reduction of item preference data corresponding to the items and serving advertisements relating to the preferred items.
[0020] In one embodiment, processing instructions are configured to elicit information from the user. The processing instructions include: first processing instructions configured for reducing the dimensionality of item preference data corresponding to items and identifying pseudo-independent items, from the items, based on the reduced dimensionality item preference data; and second processing instructions configured for outputting information for presenting questions and receiving responses, the questions based on the pseudo-independent items to elicit explicit pseudo independent items relative information from the user.
[0021] In another embodiment, processing instructions are configured to serve advertisements to a user. The processing instructions include: first processing instructions configured for identifying the user when the user accesses a website; accessing a user preference profile of the user, the preference profile based on pseudo independent items relative information elicited from the user; identifying preferred items based on item preference vectors and the user preference profile, the item preference vectors resulting from dimensionality reduction of item preference data corresponding to the items; and second processing instructions configured for serving advertisements relating to the preferred items.
[0022] A method and a system for generating pricing information and making pricing recommendations are also disclosed. The methods may be combined to make recommendations based on pricing computations. The pricing information generating method may also be applied independently of the recommendation method, for example to advise merchants regarding profit or sales maximizing pricing choices. In one embodiment, item preference data is used to recommend items to users. The item preference data is initially obtained from respondents. The item preference data is statistically analyzed to generate a reduced dimensionality item preference data. The reduced dimensionality item preference data may be structured in a matrix, which may be referred to as a feature matrix. A survey designed based on the pseudo independent items is administered to the user to efficiently determine a user preference data. Item scores are computed based on the user preference data and the reduced dimensionality item preference data. Preference-price efficient items are identified based on the item scores and recommended.
[0023] In one embodiment of a method for generating pricing information executable at least in part by a processing device according to processing instructions embedded in one or more non-transitory computer readable medium, the method is configured for accessing a data- structure including a plurality of items and generating pricing information based on information about the plurality of items. Exemplary pricing information includes item prices; preference- price efficient items; relative demand for an item; price elasticity for an item; cross-price elasticity for demand of an item and a price of a second item; a demand curve for an item; demand curves for an item corresponding to different subpopulations; and any other information suitable for making pricing decisions. The pricing information may be based on simulated preferences of users and simulated user decisions. The demand curve for an item is simulated by determining the relative demand for the item at each of a plurality of prices. The results of the simulation provide simulated user preferences and prices that would influence the purchasing behavior of actual users. With the demand curve, pricing sensitivities may be determined. The pricing information may be accessed by or output to a merchant to implement pricing strategies developed for specific user and user subgroups based on user preferences. The pricing strategies may include upcharging and discounting of items.
[0024] In another embodiment, the pricing method comprises accessing a data-structure including a plurality of items, item vectors and item prices, the item vectors and item prices corresponding to the plurality of items; computing a user preference vector; and identifying, from the plurality of items based on the user preference vector, at least one of a preference-price efficient item and a preference-price inefficient item. In a variation of the present embodiment, the method further comprises outputting a recommendation for the user the recommendation including the preference-price efficient item. In one example, the recommendation includes preference-price efficient items and excludes the preference-price inefficient item. In another variation of the present embodiment, the method further comprises computing a discount amount by which the preference-price inefficient item can be discounted to become preference- price efficient. In one example, the method comprises identifying a subset population from a total population based on characteristics of the user; and discounting the preference-price inefficient item at least by the discount amount for the subset population.
[0025] In one embodiment, the system comprises a processing device; a non-transitory computer readable medium; and a computer program stored in the non-transitory computer readable medium, the computer program operable to cause the processing device to: access a data-structure including a plurality of items, item vectors and item prices, the item vectors and item prices corresponding to the plurality of items; compute a user preference vector; and identify, from the plurality of items, at least one of a preference-price efficient item and a preference-price inefficient item. In one variation of the present embodiment, the computer program is further operable to cause the processing device to output a recommendation for the user, the recommendation including the preference-price efficient item. In one example, the recommendation includes preference-price efficient items and excludes the preference-price inefficient item. In another variation of the present embodiment, the computer program is further operable to cause the processing device to compute, based on the user preference vector, preference scores for the plurality of items; identify, from the plurality of items, a preference- price efficient item based on the preference scores and the item prices; and compute an up- charge amount by which the preference-price efficient item can be up-charged without becoming preference-price inefficient. In one example, the computer program is further operable to cause the processing device to identify a subset population from a total population based on characteristics of the user; receive an approved up-charge amount based on the computed up-charge amount; and up-charge the preference-price efficient item by the approved up-charge amount for the subset population.
[0026] In additional embodiments of a method for generating pricing information and making pricing recommendations, the method is configured for accessing a data-structure including a plurality of items and generating pricing information based on information about the plurality of items. The pricing information may be based on simulated preferences of users and simulated user decisions. The demand curve for an item is simulated by determining the relative demand for the item at each of a plurality of prices. The results of the simulation provide simulated user preferences and prices that would influence the purchasing behavior of actual users. With the demand curve, pricing sensitivities may be determined. The pricing information may be accessed by or output to a merchant to implement pricing strategies developed for specific user and user subgroups based on user preferences. The pricing strategies may include upcharging and discounting of items. In one variation, the pricing method comprises accessing item preference data; reducing the dimensionality of the item preference data to obtain item preferences of items; simulating preferences of users with the item preferences; and simulating user decisions with the simulated user preferences to generate simulated pricing information. In the present embodiment, the pricing method is executable at least in part by a processing device according to processing instructions embedded in one or more non-transitory computer readable medium. In an embodiment of a system for generating pricing information and making pricing recommendation, the system includes the non-transitory computer readable medium and the processing device for executing the processing instructions to implement the foregoing method.
[0027] In a yet further embodiment, the pricing information generating method comprises identifying a user based on website access information; outputting information about the user to a reduced dimensionality preference simulation application via an information network, the reduced dimensionality preference simulation application configured to simulate preferences of users based on reduced dimensionality item preference data and generate simulated pricing information with the information about the user and the simulated preferences of users; receiving the simulated pricing information from the reduced dimensionality preference simulation application; and offering a price for an item to the user based on the simulated pricing information. In the present embodiment, the pricing information generating method is executable at least in part by a processing device according to processing instructions embedded in one or more non-transitory computer readable medium.
[0028] In another variation, the pricing information generating system comprises one or more physical servers; a web server software residing in the one or more physical servers and operable to output item information including item prices for viewing by potential customers; and a pricing software module operable to receive simulated pricing information and generate the item information based on the simulated pricing information, the simulated pricing information generated by a reduced dimensionality preference simulation application operable to reduce the dimensionality of item preference data to obtain item preferences of items, simulate preferences of users with the item preferences, and simulate user decisions with the simulated user preferences to generate the simulated pricing information. The web server software is further operable to process an item transaction based on the item prices presented for viewing by the potential customers.
[0029] Also presented herein are embodiments of a non-transitory computer readable medium and a system including the non-transitory computer readable medium, the non- transitory computer readable medium having processing instructions embedded therein for implementing the foregoing methods when processed by a processing device. In addition to the non-transitory computer readable medium and the processing instructions, the system includes the processing device.
BRIEF DESCRIPTION OF THE DRAWINGS
[0030] The above-mentioned and other disclosed features, and the manner of attaining them, will become more apparent and will be better understood by reference to the following description of disclosed embodiments taken in conjunction with the accompanying drawings, wherein: [0031] FIG. 1 is a block diagram of an information elicitation and transaction facilitation system according with an example set forth in the disclosure;
[0032] FIG. 2 is a graph illustrative of an information elicitation method according with an example set forth in the disclosure;
[0033] FIGS. 3 and 3A are block diagrams of information elicitation systems according with examples set forth in the disclosure;
[0034] FIG. 4 is a flowchart depicting a recommendation method according with yet another example set forth in the disclosure;
[0035] FIG. 5 is a flowchart depicting another recommendation method according with an example set forth in the disclosure.
[0036] FIG. 6 is a block diagram of a recommendation and transaction facilitation system according with another example set forth in the disclosure;
[0037] FIG. 7 is a flowchart depicting another recommendation and transaction facilitation method according with an example set forth in the disclosure;
[0038] FIG. 8 is a block diagram of a transaction facilitation system according with an example set forth in the disclosure;
[0039] FIGS. 9 to 1 1 are visual representations of recommendation information presented with a graphical user interface according with a further example set forth in the disclosure;
[0040] FIG. 12 and 13 is a visual representations presented with a graphical user interface for pre-survey filtering according with a further example set forth in the disclosure;
[0041] FIGS. 14 and 15 are preference/price graphs illustrating an embodiment of a pricing recommendation method according with a further example set forth in the disclosure; and [0042] FIG. 16 is a flowchart illustrating an embodiment of a pricing method according with a yet further example set forth in the disclosure.
[0043] Corresponding reference characters indicate corresponding parts throughout the several views. Although the drawings represent embodiments of various features and components according to the present invention, the drawings are not necessarily to scale and certain features may be exaggerated in order to better illustrate and explain the present invention. The exemplification set out herein illustrates embodiments of the invention, and such exemplifications are not to be construed as limiting the scope of the invention in any manner.
DETAILED DESCRIPTION OF EMBODIMENTS OF THE DISCLOSURE
[0044] For the purposes of promoting an understanding of the principles of the invention, reference will now be made to the embodiments illustrated in the drawings, which are described below. The embodiments disclosed below are not intended to be exhaustive or limit the invention to the precise form disclosed in the following detailed description. Rather, the embodiments are chosen and described so that others skilled in the art may utilize their teachings. It will be understood that no limitation of the scope of the invention is thereby intended. The invention includes any alterations and further modifications in the illustrated devices and described methods and further applications of the principles of the invention which would normally occur to one skilled in the art to which the invention relates.
[0045] Generally, a system and a method for eliciting information elicit better data by asking better questions. The questions are derived from item preference data. The item preference data is processed to identify pseudo-independent items. Questions are then generated based on the pseudo-independent items. The questions solicit explicit pseudo-independent items relative information. For example, a question may ask a user to choose one of a few pseudo-independent items. The user's response may comprise information about the pseudo-independent item chosen by the user. The user's responses are processed to determine the user's preferences. The user's preferences can then be used to present item recommendations to the user, in marketing or political campaigns, and in any other manner. Better data results in better recommendations. [0046] Questions that involve choosing between pseudo-independent items are very efficient, so only a few questions are needed to determine a user's preferences. Therefore, users are less likely to lose interest in answering the questions and participating in the process. The information eliciting system and method may be used to recommend multiple items to the user. The user may then choose to enter into a transaction with a provider of a recommended item. For example, the user may choose to order a movie from an online vendor.
[0047] The system may include an application programming interface (API) hosted by a web server. The API accesses an application program and a database including the item preference data. The application program and the API may execute processing instructions to generate the questions and select the item based on the responses. Online vendors may utilize their own web servers and databases to access the API and use the information elicitation method and system to promote transactions involving items they trade in commerce. For example, online vendors may use the information elicitation system to recommend digital items to a user. The user may then rent or purchase a recommended item and may download it from the vendor. The owner of the information elicitation system may grant access to the API to the online vendors in exchange for fees or other benefits.
[0048] The API may also access a reduced dimensionality preference simulation application to generate pricing information based on item preference data. Online vendors may utilize their own web servers and databases to access the API and use the pricing information generated by the reduced dimensionality preference simulation application to promote transactions involving items they trade in commerce. For example, online vendors may use the pricing information to recommend items and services to a user and to implement targeted pricing based on user preferences. The user may then rent or purchase a recommended item. The owner of the information elicitation system may grant access to the API to the online vendors in exchange for fees or other benefits.
[0049] In aggregate, the questions to solicit explicit pseudo-independent items relative information may be referred to as a user survey or a user item survey. The user item survey is designed to retain the user's attention. To that end, the choices are explicit, relative, current, intuitive and easy to undertake by a user. The user item survey is explicit because users chose from items related to the objective of the survey. In a movie recommendation system, for example, the survey may require the user to choose movies. They are relative because the responses are ranked relative to each other rather than in relation to an arbitrary rating, e.g. a value from an arbitrary scale. Also, items that have already been ranked may be constantly reassessed to keep current the survey information. Due to these characteristics, the user item survey is well suited for effectively eliciting user information.
[0050] Another characteristic of the user survey, whether a user item survey or another type of survey is used, is anonymity. Although the information elicitation system may be designed to require a user to create a virtual identity, the system does not have to require such identification. A user can anonymously use the information elicitation system since it is quick and also is not based on prior usage data. The discreet nature of the user survey makes it suitable for recommending adult items in the fields of entertainment, medicine and exercise, for example.
[0051] An embodiment of a system and method for eliciting information from a user to promote an online transaction will now be described with reference to FIGS. 1 and 2. FIG. 1 is a block diagram of an embodiment of an information elicitation system 100 including a user application 102 residing in a user device 104, and a system 130. The present embodiment may be described below with reference to movie items, although the embodiment is not limited to movies. Other items include songs, photos, software, any other digital content, and items that require physical delivery. System 130 may comprise one or more servers, such as a web server and a database server. System 130 is configured to transmit questions 1 10 to user application 102. A question 1 10 to solicit explicit pseudo-independent items relative information may include representations 1 12, 1 14, 1 16 and 1 18 corresponding to four items. Representations 1 12, 1 14, 1 16 and 1 18 may include text or images. The titles of four movies are shown (Aliens, The Deer Hunter, Airplane and Citizen Kane). User application 102 receives responses to the questions from the user and transmits responses 120 to system 130 via an information network 142. A response 120 may comprise, for example, an indication that the user chose the movie Aliens, the choice being explicit pseudo-independent items relative information. Based on responses 120, system 130 generates scores for the items. The scores represent the user's preferences. In one example, the highest score corresponds to the item most likely preferred by the user based on his/her responses. [0052] System 130 may include an API 132, an application program 134, and a database 140. Database 140 may include item preference data 158 and item scores 160 computed based on a user preference vector 170, which is computed by processing responses 120. Database 140 may also include a feature matrix 150 including item preference vectors 152 obtained from item preference data 158. Pseudo-independent items 154 are determined from item preference vectors 152 to generate questions 1 10.
[0053] System 130 may also include a reduced dimensionality preference simulation application 136 accessible by a pricing software module 198 of an online vendor. The vendor may transfer user identification information to reduced dimensionality preference simulation application 136 and receive simulated pricing information 196 in return. With simulated pricing information 196, which may be based on the user identification information and therefore targeted to the user, the vendor can make pricing recommendations to the user, and other users with similar preferences, to engage in item transactions. Application program 134 may include reduced dimensionality preference simulation application 136.
[0054] In one variation of an embodiment of a recommendation system, system 130 transmits a recommendation to user application 102 including one or more preference item 172. The user can choose one of the one or more preference item 172 and initiate an item transaction 184 with user application 102. Upon the initiation, a chosen item 180 and an item transaction indication 182 are transmitted to a web server 190, which resides in a physical server 188 of an online vendor to execute item transaction 184. Web server 190 may include a database 192 including a multitude of items 194. Preference item 172 may be selected from items 194 to ensure the online vendor can supply chosen item 180. As used herein, items 194 include digital items and item identifiers corresponding to physical and/or digital items.
[0055] In one variation, the questions are determined from pseudo-independent item pools based on thresholds. FIG. 2. shows a graph 200 illustrating preference driver values corresponding to items (e.g. movies). The preference driver values are computed from item preference data 158. Each item has a preference driver 1 value and a preference driver 2 value. A circular symbol is shown in graph 200 at the intersection of the preference driver values for each movie. Graph 200 includes thresholds 210, 212 corresponding to preference driver 1 and thresholds 214, 216 corresponding to preference driver 2. Graph 200 also includes pseudo-independent item pool areas 220, 222, corresponding to positive and negative pool areas for preference driver 2, respectively, and pseudo-independent item pool areas 224, 226, corresponding to positive and negative pool areas for preference driver 1 , respectively. Pool areas 220, 222, 224, 226 are defined by thresholds 210, 212, 214, 216. The pool areas do not include the center and corner areas of graph 200. Movies graphed in the pseudo-independent item pool areas exhibit relatively large positive or negative values for one preference driver, indicating high preference, and relatively small positive or negative values for the other preference driver, indicating mild or neutral preference. Fourteen symbols are shown corresponding to fourteen movies. The values for each movie are shown in Table 1 below.
[0056] Table 1 :
Figure imgf000015_0001
[0057] As shown in Table 1 , the values for the movie The Deer Hunter (graphed in pseudo-independent item pool area 220) are (0.2500) and 1.1200, which indicate a strong positive preference for preference driver 2 and a mild or almost neutral preference for preference driver 1 . The values for the movie Aliens (graphed in pseudo-independent item pool area 222) are (0.1768) and (1.0900), which indicate a strong negative preference for preference driver 2 and a mild or almost neutral preference for preference driver 1 . The movies graphed in a pseudo-independent item pool area comprise a pseudo-independent item pool, positive or negative. In the present example, the pseudo-independent item pools for preference driver 1 include the movies Citizen Kane (positive pool) and Airplane (negative pool). The pseudo- independent item pools for preference driver 2 include the movies The Deer Hunter (positive pool) and The Fly, Dune, Juno and Aliens (negative pool). Questions are drawn from the positive and negative pools.
[0058] In one variation, the information elicitation system and method are configured to eliciting group information. Making decisions in groups can often be frustrating and time consuming. For choosing an item to consume as a group (such as what movie to watch) the decision can be made easier with the help of the information elicitation system. The system administers a separate user survey to one, more than one, or all of the members of the group to generate user preference vectors for the members. The information elicitation system then generates item scores based on the user preference vectors of the group's members. The system may recommend items to the group based on the item scores.
[0059] The item preference data is initially obtained from respondents and is statistically analyzed to generate a reduced dimensionality item preference data, which includes the preference drivers and the preference driver values discussed with reference to FIG. 2. The reduced dimensionality item preference data may be structured as a matrix, which may be referred to as a feature matrix of item preference vectors. The item preference data includes a listing of items previously experienced or judged by respondents and item drivers obtained based on the respondent's experience or judgment. As used herein, a respondent is an individual providing input for the determination of item drivers, and a user is an individual that provides survey information. In a recommendation system, the user is also the recipient of the recommendation. In the case of a group of users, one, more than one, or all of the users are also recipients of the recommendation.
[0060] In another variation, the item preference data is updated by folding-in additional items so that the system and method for eliciting information stays current. The item preference data is updated over time by folding-in additional items. In one example, a group of respondents is surveyed and a multivariate regression is performed with the responses to determine the item preference vectors for the additional items. The additional item preference vectors are then combined with the existing item preference vectors in the feature matrix. In the case of movies, additional items may include movies not included in the item preference data, such as movies released after the last update of the item preference data.
[0061] In a further variation, the system and method for eliciting information are configured to be easy to use. In one example, a user can switch-out items from the questions, essentially redesigning the questions so that the responses are more relevant. The system may perform a likelihood computation with the switch-out information to refine the selection of future questions by excluding from the questions items that are similar to the switched out items. For example, a user may switch-out a movie from a question if he/she has not watched the movie. The likelihood computation enables the system to ask future questions based on movies that are different and dissimilar from the switched out movies. In one example, all movies that have been watched by the user are rated a positive 1 and the movies that have not been watched are rated a negative 1 . The movies are then sorted into groupings based on whether the movies are likely to have been watched or not been watched by the user. The preference drivers thus comprise a user's "likely watched" vector. The likely watched vector is then used to select survey candidates, thereby avoiding likely not watched movies and improving the user's experience.
[0062] The foregoing embodiments of the system and method for eliciting information may be used to make recommendations. Individual preferences vary between individuals and between items being considered by the individuals. Preferences can be correlated and can be determined based on individual preference drivers. The ability to define items to make a recommendation based on a handful of independent drivers is very powerful. Input from respondents can be analyzed to identify the most important uncorrelated preference drivers for a group of individuals. Principal component analysis, matrix factorization, and singular value decomposition are exemplary known analytical techniques for identifying drivers. After input from respondents is analyzed using these techniques, the preferences of any individual can be summarized with a vector of real numbers. For example, a user's preference vector [1.3, -0.2, - 1.8, 0.1], where each number represents a preference of the user for each driver, indicates the user likes driver 1 , dislikes driver 3, and does not have a strong preference, positive or negative, for drivers 2 and 4. Likewise, an item can also be summarized with a vector of real numbers, wherein each number represents the degree to which the item exhibits the corresponding driver. The product of the individual's preference vector and the item's vector is indicative of how much the individual should like the item, with higher numbers indicating an item that should be more preferred. An item's vector can also be viewed as a point in space, wherein closely spaced points indicate similarly preferred items.
[0063] FIG. 3 is a block diagram of an embodiment of an information elicitation system according with the disclosure. In the present embodiment, the system is denoted by numeral 300. System 300 comprises a processing device 310, API 132 and a non-transitory computer readable medium, or memory, 320. Memory 320 has embedded therein item preference data 158 and a plurality of processing sequences, including a dimensionality reduction processing sequence 332, a facet processing sequence 336, a survey candidates processing sequence 340, a survey processing sequence 344, a recommendation processing sequence 348 and a recommendation presentation processing sequence 352. Dimensionality reduction processing sequence 332 may process the item preference data by computing principal components, transposing matrices, computing sum-products and generating a feature matrix, as explained with reference to FIG. 4. Reduced dimensionality preference simulation application 136 may include dimensionality reduction processing sequence 332. Facet processing sequence 336 receives facet data from users and applies the facet data to filter item preference data or recommendations. Survey candidates processing sequence 340 takes the output from dimensionality reduction processing sequence 332 or facet processing sequence 336 and identifies items for inclusion in survey questions. Survey processing sequence 344 takes the items and presents them as questions, receives survey information from users, uses the information to replace or select items in the questions and outputs a list of selected items. Exemplary survey information includes responses, veto commands and switch-out commands. Recommendation processing sequence 348 generates item scores based on the selected items and the feature matrix. Recommendation presentation processing sequence 352 presents the recommended items to the user based on the scores.
[0064] In one variation, system 300 includes a veto feature to make the system easier to use. In the present embodiment, recommendation presentation processing sequence 352 presents the recommended items to the user and also presents control buttons for vetoing a recommendation. The user vetoes one item after another until only one item remains. In another variation, the system is used by a group of users to arrive at a group recommendation. Recommendation presentation processing sequence 352 presents the recommended items to the users in order. After a user vetoes an item, a subsequent user is presented the recommendation list, less the vetoed item(s). The subsequent user vetoes another item by activating the control button. The veto process may continue until only one recommended item remains. In one example, after each of the users vetoed an item, recommendation presentation processing sequence 352 reverses the user order such that the last user to veto an item in one round of vetoing becomes the first user to veto an item in the subsequent round.
[0065] Also embedded in memory 320 are one or more operating systems and software applications operable to cause API 132 to establish communications with another system or device, for example user device 104. In one variation, system 300 comprises a server system. In another variation, system 300 comprises a user device. Exemplary user devices include personal computers, portable computers, an IPAD(TM), IPHONE(TM) or BLACKBERRY (TM) mobile device, a set-top box, a smart TV, a digital video disc player, a kiosk, and any device including a processing device, memory and an I/O interface operable to receive user commands and establish communications with other systems or devices. Generally, a set-top box, a smart TV, a digital video disc player, and a kiosk connect to the internet and to a television. A remote control associated with the set-top box, smart TV, digital video disc player, or kiosk is operable to access the internet and download media from remote services.
[0066] Also shown in FIG. 3 are user device 104 connected to recommendation system
300 through information network 142. Exemplary information networks include the Internet, WiFi wireless networks, cellular communication networks, and any communications system suitable to transfer information digitally between two systems or devices. User device 104 comprises a processing device 380, API 382, a display device 384 and a non-transitory computer readable medium, or memory, 390. Memory 390 has, embedded therein, an operating system 394 and user application 102. Operating system 394 is operable to cause processing device 380 to establish communications with system 300, and also to receive user commands or instructions or input via one or more user input devices including a keyboard, a mouse, a touch-screen and a voice-command driven input device. [0067] API 132 and API 382 are operable to share information between system 300 and user device 104. API 132 and API 382 transfer survey information 314 and recommendation information 316. Recommendation information 316 includes the user's inputs pertaining to the selection or rejection of an item. Selection or rejection is described with reference to FIG. 5.
[0068] FIG. 3A is a block diagram of another embodiment of an information elicitation system according with the disclosure. In the present embodiment, the system is denoted by numeral 300A. System 300A includes processing device 310, one or more non-transitory computer readable medium 320; and processing instructions embedded in the non-transitory computer readable medium, the processing instructions configured to elicit information from the user when processed by the processing device. The processing instructions include first processing instructions 361 , second processing instructions 362, third processing instructions 363, fourth processing instructions 364, fifth processing instructions 365, and sixth processing instructions 366. First processing instructions 361 are configured for reducing the dimensionality of item preference data 158 corresponding to items 194 and identifying pseudo- independent items 154, from the items, based on the reduced dimensionality item preference data. The reduced dimensionality item preference data comprises item preference vectors 152. Second processing instructions 362 are configured for outputting information 354 for presenting questions 378 and receiving responses 356, the questions based on the pseudo-independent items to elicit explicit pseudo independent items relative information from the user. Survey information 314 may include information 354, responses 356, experience information 372, idiosyncratic questions 374 and questions 378. Survey information 314 may be used to generate content drivers 370 which can be used to filter items and to bias the responses in favor of, for example, types of users.
[0069] In one example, the system includes API 132, which includes the second processing instructions. In another example, the system includes a user device application 102 operable to present questions 378 and output responses 356.
[0070] In one variation, third processing instructions are configured for generating second item preference data for additional items and performing a regression computation based on the second item preference data to fold-in the additional items into the item preference data. [0071] In another variation, fourth processing instructions 364 are configured to generate third item preference data from responses from respondents, the third item preference data being different than the item preference data, wherein the regression computation is based on the second item preference data and the third item preference data.
[0072] In yet another variation, fifth processing instructions 365 are configured for receiving item reviews 360 from reviewers and identifying from the reviewers those reviewers whose preferences are similar to the user's preferences, wherein the second processing instructions are further configured for outputting an item recommendation including a recommended item and the item reviews received from the identified reviewers and relating to the recommended item.
[0073] In a further variation, sixth processing sequence 366 is configured for appending content driver 370 to item preference vectors 152 to generate increased dimensionality item preference vectors 376.
[0074] Item preference data 158 comprises one or more data structures, each relating a list of items to corresponding respondent data. To obtain item preference data 158, a plurality of respondents provide preference information in connection with the items in a list to calibrate the system. An initial calibration may be enhanced with subsequent calibrations to incorporate information about new items in the item preference data 158. An initial calibration will be described with reference to movies. The same process is applicable to other items. In the initial calibration, a number of respondents rank-order a set of commonly watched movies. Ideally, all the respondents have watched all the movies. If all the respondents rate all the items, the dataset may be referred to as a "dense dataset". For example, a set of 100 commonly watched movies would be compiled and presented to a set of 50 respondents. Each respondent rank- orders the movies from 1 to 100. In one example, images of two movies are presented to the respondent, and the respondent chooses the movie he prefers. The process is repeated until, by comparing movies to other movies, the 100 movies are rank ordered. As described below, the rank-ordered responses are transformed so that they exhibit a uniform or normal distribution. Other distributions are also suitable. [0075] The item preference data data structure comprises an array of items and respondent data. In one example, items are listed in rows and respondent data is listed in columns. The intersection of each row and column includes the data for the corresponding respondent (column) and item (row). In one variation, each respondent ranks all the items in the list, and the ranked data is transformed so that it is uniformly distributed with a mean equal zero and a range between -0.5 and 0.5. An exemplary portion of item preference data comprising four movies and six respondents is shown in Table 2.
[0076] Table 2:
Items/Respondents Rl R2 R3 R4 R5 R6
Mars Attacks! (0.3422) 0.1078 \ (0.5838) 0.2119 \ (0.4375) j (0.0936) j . . .
Juno (0.4572) ; 0.2824 \ 0.1320 ; 0.0108 ; 0.3371 ; 0.2869 \ . . .
Braveheart 0.2095 I 0.3106 1 0.3981 1 0.2805 1 0.0738 1 0.4090 1 ...
A Beautiful Mind (0.4020) 0.3313 j 0.3526 j 0.2122 j (0.2128) 0.3256 j . . .
[0077] Item preference data may further include facet information. The facet information is used to filter items. Therefore, the facet information relates to desired filtering. Exemplary movie facets include movie length, release date, rating, availability by service, genre, and any other characteristic suitable to categorize movies. Movie ratings include ratings from Common Sense Media, Inc., critics.com, Motion Picture Association of America, Inc., Film Advisory Board, Inc., and any other organization or individual based on the content of the rated movie. Movie ratings also include other rating mechanisms such as most viewed, release week gross sales and the like. Furthermore, item preference data may include an indicator indicating whether a respondent or user has watched the movie. Exemplary service provider facets include distance from current location, venue type, cost, rating and the like. For example, a user may be willing to drive 30 miles to eat at a highly rated but not expensive Chinese restaurant. With the appropriate system, including facet information, the user can choose the appropriate facets to receive recommendations meeting the criteria.
[0078] Assumptions may be used to substitute missing information. For example, if a respondent or user does not provide a response relative to an item, it may be assumed that the respondent is indifferent to the item. However, the density of the dataset (and the accuracy of the results based on it) decreases as the number of substitutions increases. An alternative approach is to fold-in new items, respondents and users into the existing dataset. Generally, folding-in is a process by which new items and users are calibrated to the existing dataset based on a reduced number of survey questions used to identify a corresponding vector. An embodiment of a fold-in method is described below.
[0079] Embodiments of the method disclosed herein can be implemented using a variety of dimensionality reduction techniques. Dimensionality reduction techniques are used to reduce the dimensionality, or complexity, of data without losing significant information. The techniques, in general, identify patterns in the data and characterize the information in the data based on the patterns. Less important patterns are removed or ignored, thereby reducing dimensionality without discarding significant information. One known technique is principal component analysis ("PCA"). PCA is mathematically defined as an orthogonal linear transformation of data to a new coordinate system such that the greatest variance by any projection of the data lies on the first coordinate (called the first principal component), the second greatest variance on the second coordinate (called the second principal component), and so on.
[0080] The data, referred herein as item based data or item preference data, comprises information obtained from respondents concerning items. As described above, the item preference data is obtained in a system calibration and, optionally, in subsequent calibrations. The item preference data is organized in a m x n matrix comprising M items data generated from information provided by each of N respondents. An exemplary portion of an item preference data matrix was presented above in Table 2. The mean user score is subtracted for each score. A matrix X results which has a zero empirical mean and is mathematically expressed as:
X = {X [m, n] }; m = 1 . . . M ; n = 1 . . . N
The goal is to transform a given data set X of dimension M to an alternative data set of smaller dimension. [0081] FIG. 4 is a flowchart 400 of an embodiment of a method according with the disclosure for recommending items. At 402, the method begins with receiving item preference data. Item preference data comprises an array of items and corresponding respondent information and can be received in any form, including user input and a data structure such as a file. In one variation described with reference to FIG. 6, the system receives item preference data and then transfers the item preference data or a feature matrix to a user device, in the same or a different data format. Item preference data includes a sufficient number of items to permit computation of preference drivers, e.g. principal components. An exemplary portion of item preference data was presented in Table 2.
[0082] Optionally, processing continues at 410 with performing pre-survey facet filtering.
Facet filtering comprises selection of a facet and filtering items according to the facet. Exemplary filtering includes inclusive and exclusive filtering. After filtering, a reduced number of items are available for further processing. In one example, facet filtering is applied to the item preference data, therefore a reduced number of items is available in the item preference data for computation of principal components. In another example, facet filtering is applied subsequent to the computation of principal components. In a further example, facet filtering is applied to a feature matrix before selection of potential question candidates. Computation of the feature matrix is described below. Exemplary GUI windows configured to select facets are described with reference to FIGS. 12 and 13.
[0083] At 420, the process continues with reducing the dimensionality of item preference data. Reducing item preference data dimensions involves different steps depending on the form of the item preference data. In one example, respondent information is normally distributed and centered, and processing continues to the computation of principal components. In another example, item preference data comprises rank data which is first normalized by a Cox-Box transformation to transform the ranked data to normally distributed data with a mean of 0.0. In one example, the normal data is scaled to have a standard deviation equal to about 1.0. to simplify matrix computations. Of course, the Cox-Box transformation can also be used to scale the item preference data. In a further example, respondent information is uniformly distributed with a range equal to about 1 .0 and centered, and processing continues to the computation of principal components. As described above, a number of techniques are known for determining principal components to enable dimensionality reduction.
[0084] In one example, principal component analysis is performed to identify the principal components. First, a matrix Y of dimension N is computed as the Karhunen-Loeve transform (KLT) of matrix X. A number of PCA computational methods are known, including the covariance, matrix factorization and singular value decomposition methods. A notable characteristic of dimensionality reduction techniques is that the principal components are determined analytically based on the respondent's input as opposed to being predetermined. Matrix Y comprises N rows (respondents) and N columns (principal components, e.i. PC1 to PCN). The principal components (eigenvectors) are ordered from left to right in order of importance. The elements of the matrix are referred to as the principal component loadings and may be referred to herein as the item attributes. An exemplary portion of a matrix Y computed from item preference data presented in Table 2 is shown in Table 3. As described previously, the number of items and respondents may be large. The number of items may exceed one-hundred and the number of respondents may exceed fifteen. Only six respondents and principal components, and four movies (items), are shown in Tables 3-5 to simply the illustrations, while ellipsis are shown to indicate that additional matrix elements exist.
[0085] Table 3:
Figure imgf000025_0001
[0086] The next step is to transpose matrix Y and apply the principal component loadings to the items. This is accomplished by calculating the sum-products of transpose Y and matrix X to obtain a matrix Z, in which Ζίί ~~ Σ(Υΐ 1 * X11 + Υΐ2 * Χΐ2 + ΥΐΝ * ΧΙΝ)
Ζ21 =∑(Υ 11 * Χ21 + Υΐ2 * *22 + ΥΐΝ * Χ2Ν)
Ζ12 = ∑(Υ21 * Xl1 + Υ22 * Χΐ2 + Υ2Ν * ΧΙΝ)
Ζ22 = ∑(Υ21 * Χ21 + Υ22 * Χ22 + Υ2Ν * Χ2Ν)
Zmn -∑(ΥΝ1 * ΧΜ1 + Y/V2 * ΧΜ2■ ■■ + )/ΝΝ * ΧΜΝ)
Alternatively, matrix Ζ is obtained by multiplying matrices X and Y. Matrix functions, including multiplication and principal component analysis, are available in MatLab(TM) software available from MathWorks, Inc. Principal component analysis can also be computed with GNU Octave software, available for download from ftp://ftp.gnu.org/gnu/octave.
[0087] Therefore, each element of matrix Z represents the degree to which each principal component is present in each item, based on the information from all the respondents. The elements in a row represent an item vector and may be referred to herein as item attributes. An exemplary portion of a transpose Y and matrix Z computed from item preference data presented in Table 2 is shown in Tables 4 and 5.
[0088] Table 4 - transpose Y:
Figure imgf000026_0001
[0089] Table 5 - matrix Z:
Figure imgf000027_0001
[0090] The next step is the selection of an arbitrary number of principal components to form a feature matrix. As described below, more or fewer principal components are selected to form the feature matrix. For simplicity, the feature matrix will be described as having four principal components, the four left-most principal components of matrix Z, also described as principal components A, B, C and D. An exemplary feature matrix is shown in Table 6, illustrating reduction of the dimensionality of matrix Z. Above each column, the standard deviation for the attributes in the column is shown, i.e. 0.3329, 0.1532, etc.
[0091] Table 6 - feature matrix:
Standard Deviation 0.3329: 0.1532 0.1121 0.0987
Figure imgf000027_0002
[0092] Reduced dimensionality preference simulation application 136 may perform the method steps to generate the feature matrix. Reduced dimensionality preference simulation application 136 may then perform simulations, as described further below, based on the feature matrix. Reduced dimensionality preference simulation application 136 may receive user preference information to perform the simulation by implementing the following method steps, or may receive preference information by any other known methods. User preference information may be stored in database 140.
[0093] The present method embodiment continues, at 424, with determining the pseudo-independent items for inclusion as survey candidates. Pseudo-independent items may be selected by evaluating the feature matrix values to identify the items with the largest positive and negative attributes for a single principal component and with small attributes for the remaining principal components are selected. As seen in Table 6, the attribute corresponding to PC3 and the movie Mars Attacks! equals 0.8880 while the remaining attributes for the movie are less than 0.3; therefore, the movie Mars Attacks! is a positive question candidate for a question requiring PC3 (or C). The pseudo-independent items may also be determined as described with reference to FIG. 2. The pseudo-independent items may be selected from pools of pseudo- independent items in random or predetermined order.
[0094] In one variation of the present embodiment, the items are selected after comparing their attributes to a variation factor comprising a constant times the standard deviation of the attributes for a principal component of the feature matrix. This calculation distinguishes items based on the relative size of their attributes with respect to the same principal component so that a single threshold, or constant value, can be used. In one example, the constant is 1 .25, and the selection threshold can be expressed as:
K(PC)j = 1 .25 * Std. Dev. [PCij:PCMj]
[0095] Regarding the movie Braveheart in Table 6, the second attribute, 0.4475, is not very different from the absolute value of the third attribute, 0.5603, yet, as shown below in Table 7, the second attribute does not result in a positive comparison in a case where the third attribute does. The distinction is based on the standard deviation of the columns and the constant, which can be adjusted to be more or less inclusive.
[0096] In another variation, a threshold is predetermined for each principal component.
In one example, each predetermined threshold is smaller than the threshold for the preceding, more important, principal component. Thresholds were disclosed above with reference to FIG. 2.
[0097] Having defined the threshold criteria, the next step is to select items by comparing attributes and thresholds. In one example, in the case of four principal components there are four thresholds, and eight comparisons are made. The first four comparisons identify candidates for the positive preference and the other four identify candidates for the negative preference. In the latter comparisons, the threshold is first multiplied by (-1 ). If only one comparison is positive, meaning that the attribute exceeds the threshold, then the item is a question candidate. If none or more than one comparison is positive, the item is not a candidate. In another example, four comparisons are made to the absolute value of each attribute. If only one comparison is positive, then the item is a question candidate. If none or more than one comparison is positive, the item is not a candidate. The sign of the value determines if the item is a candidate for a positive or a negative preference choice. In both examples, if the positive comparison results from an attribute in the first column, the item is a candidate for a question including principal component A. If the positive comparison results from an attribute in the second column, the item is a candidate for a question including principal component B, etc. An example implementing the foregoing method using the standard deviation formula to calculate the threshold is shown below in Table 7, where the number 1 represents a positive comparison. A count column indicates the number of positive comparisons. Therefore, according to the method, the first and third items, having a count of 1 , are pseudo-independent and, therefore, are question candidates. The second and fourth items are not question candidates.
[0098] Table 7:
Figure imgf000029_0001
[0099] Having determined the pseudo-independent items, the method continues, at 430, with determining survey questions. The survey questions may be posed as a choice between pseudo-independent items. Thus, for one principal component, two items are selected for the questions. For two principal components, four items are selected. Requiring a user to choose one of four items effectively addresses the relative importance of each principal component. In the present embodiment, four principal components are used to determine a user's current preferences by asking only six questions. The first question requires the user to choose an item from a set of items exhibiting preferences A+, A-, B+ and B-. Subsequent questions pair principal components A/C, A/D, B/C, B/D and C/D, each possible pair of principal components defining a question. The method essentially identifies an orthogonal set of items. The degree to which orthogonality is preserved depends on whether items correlated to a single principal component can be found. However, even without complete orthogonality the method described herein enables a recommendation of items to be made to a user matching the user's current mood, represented by the answers to the six questions. The degree of orthogonality can be defined in a computational step.
[0100] In a variation of the present embodiment, less than four principal components are used. For example, only one question is presented based on two principal components, and three questions are presented based on three principal components. In another variation of the present embodiment, more than four principal components are used. For example, ten questions are presented based on five principal components. More questions increase precision at the expense of usability. As described further below, an extension of the method enables recommendation of items to multiple users. The next step is to select items for survey questions from the pool of pseudo-independent items generated based on the foregoing criteria. The question candidates can be selected in various ways. A number of variations will be described in the context of movie recommendations, with the understanding that the methodology is applicable in other contexts as well, with the criteria suitably modified to the other contexts. All the pseudo-independent items for a particular category, e.g. PC1 +, comprise a pool. In one variation, potential candidates are selected sequentially from the pool. According to Table 6, for example, Mars Attacks! would be the first question candidate for a PC3+ question and Braveheart would be the first question candidate for a PC3- question. In another variation, the pool of potential candidates is randomized and then item candidates are selected sequentially from the pool. Randomization ensures that the item candidates in a first usage instance and subsequent usage instances will be different. In a further variation, the pool of potential candidates is ordered according to the score of the uncorrelated principal component, such that items with higher attributes are presented before items with lower attributes. [0101] In a further variation, the pool of candidates is filtered to include previously watched movies. As described with reference to FIG. 5, when questions are presented, the user can switch-out or reject items in the question so that the questions focus on previously experienced items. In the case of movies, after switching out unwatched movies, the user can answer a question by choosing a movie from among four previously watched movies. As the recommendation system is used by a user, and the user identifies previously watched movies, the system stores this information and, in subsequent instances, the system identifies question candidates from the sub-pool of previously watched movies to minimize the time wasted switching out movies and, thus, enhancing the user experience. In one variation, the user completes a "previously seen" survey in which the answers to the question "have you seen this movie" include seen (1 ), not seen (-1 ), and no information (0).
[0102] If the pool is not large enough, some unwatched movies will be presented in the questions. In a yet further variation, in addition to previously watched movies, the sub-pool includes movies likely to have been watched. In one example, the likely to have been watched movies are selected by comparing the vectors of the previously watched movies to the vectors of the items in the pool in a nearest-neighbors analysis.
[0103] The present method embodiment continues, at 440, with administering the survey. As explained before, four items are presented, which are selected based on paired principal components, positive and negative. The user is required to choose one of the four items. After choosing one item, the next question is presented, until all the questions have been presented. In one variation, the user is given the choice to exclude or switch-out an item from a question. For example, the user may not be familiar with an item in the question. If an item is rejected, the item is replaced with another candidate from the pool of potential question candidates. Selection and rejection are described in more detail with reference to FIG. 5.
[0104] The present embodiment of the method continues, at 450, with analyzing survey results to determine the user's preference vector. In the case where four principal components are used, there are six chosen items and eighteen rejected items, therefore, there are twenty four item vectors representing the current mood of the user. In one variation, the attributes of the six vectors corresponding to the six chosen items are averaged to generate the preference vector. In one example, the preference vector is weighed with the attributes of the rejected items. In another example, the average of the vectors corresponding to the not chosen items is subtracted from the average of the vectors corresponding to the chosen items.
[0105] The recommendation method and system described herein is not limited by the form of the survey. While a multiple-choice survey has been described hereinabove, other inquiry forms are suitable for obtaining question responses from users relative to pseudo- independent items. In one variation, the method comprises asking each user to rank-order a limited number of items. In another variation, the users answer whether they like or dislike items. The question responses are then analyzed to define user preference vectors utilizing any computational method, including those described above.
[0106] Having determined the user's preference vector based on the survey, the next step is to generate item scores. The items are then ranked according to the scores. The items with the highest scores are the recommended items. In one example, the sum-product of the preference vector and the feature matrix generates the item scores. In another example, the feature matrix is multiplied by the preference vector to generate the item scores. In one example, faceted filtering is applied to filter out items from a potential recommendation list.
[0107] In still another embodiment, the recommendation system recommends items based on group preferences. A user may first associate members of the group. Association may be performed with a GUI that enables the user to check boxes related to friends or family members. The preference vectors of the members and the user are then used to make recommendations, in the manner described previously with reference to FIG. 3. The present embodiment may be applicable, for example, to help parents and their kids shop together and find solutions that both can be happy with, especially for back to school shopping. Also, a person may send his/her spouse or partner a user survey so that the preferences of the spouse or partner can be determined and shown next to each item recommended for the woman. The person can then consider those preferences in her purchase decision. The person may also elect to get group recommendations instead, where the group consists of the person and the spouse or partner. A person may also take the user survey and make the results available to those who wish to buy for the person, such as parents or friends. A bridal system may incorporate the future bride's preferences and recommend items for wedding guests to purchase based on her preferences. [0108] In another embodiment, the system makes recommendations for a user, which may be referred to as the direct user, based on the preferences of the user and of another person, which may be referred to as the indirect user. The system treats the preference vectors of the user and of the indirect user (e.g. the indirect preference vector) as if the user and the indirect user were a group and makes a recommendation as described above with reference to group recommendations. For example, a boy could use the system to learn what he should wear on a date, where the recommended clothing would fit his preferences and those of his date, who is the indirect user in this case. The system needs information related to the subject matter of interest to the direct user to compute the indirect preference vector. In one variation, the indirect user completes a user survey directed to the subject matter. For example, the date may complete a user survey directed to boys' clothes. The survey may be completed by the indirect user with a mobile application, a website, via social media, on in any other manner. In another variation, an indirect preference vector is compiled based on the demographics of the indirect user. In a further variation, an indirect preference vector is computed based on a survey taken by the direct user directed to complementary subject matter. For example, the boy may take a survey directed to the clothes the date typically wears. The system then computes a complementary preference vector and compares the complementary preference vector to vectors based on responses from individuals sharing the personal traits or characteristics of the indirect user and who have also completed surveys relating to the subject matter at issue. Thus, in the present variation, the system requires input from the boy to characterize the date, and input from individuals similar to the date pertaining to boys' clothes.
[0109] In a variation of the preceding embodiment, the system makes recommendations based on the user's preference vector and also recommendations based on the group member's preferences. The system may also present information indicative of the difference between the two lists of recommendations. The differences information may include a description of the preference drivers or the difference in the preference driver values.
[0110] In a further variation, in which the recommendation system is used to recommend items to a group of users, the user's preference vectors are computed based on the item vectors of the items chosen and not chosen by each of the users in the group. As in the case of the single user, the computation can be based on the chosen items alone or it can be based on the chosen and unchosen items. In one example, a vector is computed for each user by summing the attributes of the items chosen by the user, for each principal component. Then, the vectors are normalized to the same magnitude by dividing each vector by its length. This results in a user preference vector, normalized, for each user. The item scores are then computed for each user as in the case of a single user. In another example, the items are rank ordered for the user and given a percentile ranking. The scores per user are then used to determine the recommendations. In one example, the group item score is the smallest of the users' scores for the item, which may be referred to as the "least misery" score. In another example, the item score is the average of the users' scores for the item.
[0111] In a further example, the group recommendation is intentionally biased in favor of a user. For instance, a couple may chose "more for her" one week and "more for him" the next week. Biasing may be accomplished by weighing the group preference vector to reflect one person's misery being more important than another person misery. The item scores are calculated for each item based on the score from each individual (A and B). An even weight is determined by the formula W = 100 - min(100 - scoreA, 100 - scoreB) or, as described above, by the average of the scores. A way to bias in favor of A is determined by the formula Wa = 100 - min(100 - scoreA, (100 - scoreB)*Scalar), where Scalar is less than 1 (for instance 0.5). Alternatively, a weight to bias in favor of A is determined by the formula Wa' = (scoreA + ScoreB*Scalar) / (1 + Scalar), where Scalar is less than 1 (for instance 0.5).
[0112] The present method embodiment continues, at 460, with presenting recommended items. In one variation, a list of recommended items is presented. In another variation, the top item is presented along with "next" and "last" icons for presenting previously presented (last) and the next recommended item (next).
[0113] In the movie context, users may answer questions involving movies they have not watched based on their perceptions of the movies. For example, they may switch out movies in certain genres. The users may be disappointed if the system recommends a movie of the genre they switched-out, even though the recommendation is statistically valid. Exclusionary content filters address the foregoing problem by forcibly excluding movies according to content categories, e.g. genre. [0114] In another embodiment of a recommendation system, a dynamic recommendation engine switches between content filtering and collaborative filtering according with the strength of the users' responses. In the present embodiment, the item preference data comprises preference data from respondents and a content driver. The dimensionality reduction has a content discriminating effect on the pseudo-independent items due to the content driver. In one example, increased dimensionality item preference vectors are generated by the processing instructions by appending a content driver to the item preference vectors. Exemplary content drivers include types of items (e.g. movie genre), experience factors (e.g. watch or not watched, loved or hated), and any other type of content.
[0115] As in facet filtering, content drivers enable filtering. An item may be included or excluded based on the content attributes (i.e. the weight of a driver for a particular item) regardless of the preference attributes of the item preference vector. An R-rated attribute may cause exclusion of all R-rated movies, for example. Instead, the dynamic recommendation engine determines item scores based on the preference attributes as determined from the survey responses and the content attributes.
[0116] In one example, six content drivers are appended to the item preference vectors.
The six drivers represent action, drama, comedy, horror/thriller, romance, animated genres. Of course, more or fewer drivers may be used. Each movie in a particular genre is assigned a weight of positive one for the corresponding driver and 0 otherwise. A movie may fit in more than one genre. The assigned weights are then scaled so that the standard deviation of each content driver is some relationship with the other preference drivers. In one variation, the six genre drivers are scaled so that their collective standard deviation is approximately equal to the standard deviation of the second preference driver. In another variation, the six genre drivers are scaled so that their collective standard deviation is approximately equal to the third or fourth preference driver. Matching the standard deviation of a content driver to a specific preference driver ensures that both drivers have the same influence on the item's score. The content weights are then normalized across all movies to have a mean of 0.
[0117] The users' preference vector is calculated in the same way as described above.
Then, the weights of all drivers are normalized so that the total distance of a vector is equal to 1 . If the user chooses an animated movie in every question, for example, despite some animated movies being good and some bad, a score calculated with only the preference drivers will have a weak value due to averaging positive and negative weights. On the other hand, the weight of the animated movie content driver will be high, so the score calculated by the dynamic recommendation engine will also be high. In this manner the dynamic recommendation engine uses collaborative filtering drivers, e.g. preference drivers, and content filtering drivers according to the strength of the signal of each to provide a better recommendation. If the responses to the questions do not express a strong collaborative filter signal, then the content drivers will dominate. If the responses express a strong signal, then the collaborative filter drivers will dominate. Use of content drivers by the dynamic recommendation system does not affect the formulation of questions. The survey questions are still based on the item preference drivers.
[0118] FIG. 5 is a flowchart 500 of an embodiment of a general recommendation method according with the disclosure for navigating the recommendation system and selecting items. A GUI embedded in memory comprises instructions for presenting visual representations of questions and control icons, and receiving user information. Visual representations comprise a user selection screen 510, a survey initiation screen 520, a survey question screen 530, a recommendation process screen 560 and an item recommendation screen 570. In one variation, the GUI is embedded in a system, e.g. system 130 or 300, and the visual representations are visible in a user device functioning as a web client. In another variation, the GUI is included in a recommendation application operable in a user device, such as the recommendation application 610 described below with reference to FIG. 6.
[0119] The method begins after the user activates the GUI, at which time user selection screen 510 is presented by the GUI. The GUI receives a user input indicating how many users will participate in the recommendation process. Then, the GUI presents survey initiation screen 520 to indicate to the user that information is required to assess the current mood of the user. The screen also displays a user number, shown as "X", to indicate which of the number of users should next provide mood information. If one user has been selected, then X=1 . If four users have been selected, then X will comprise 1 , 2, 3 or 4 depending on how many surveys have already been completed. In one variation, each user accesses the user device, in turn, to complete the survey. In another variation, users log into the system and take the surveys with different personal devices. [0120] Survey question screen 530 is presented next showing four item images 532, i.e. movies. Switch-out buttons 534 enable the user to switch-out the item located next to each button 534. One of the items must be selected to proceed. An item may be selected by touch in the case of touch-screens, with a mouse pointer or with any other user interface. After the item is selected, at 540, the process is repeated for as many survey questions as are coded in the system. After the last question is answered, at 550, the process is repeated for as many users as were selected with user selection screen 510. The value of X is incremented accordingly, until the last user survey has been completed.
[0121] The method continues with presentation by the GUI of recommendation process screen 560. After the user indicates desire to view the recommendations, i.e. activating a "go" control button, item recommendation screen 570 is presented showing the first recommendation. Navigation buttons 580 are presented to navigate to the previous or next item recommendation. In the present embodiment, a "watch trailer" button 584 is provided to enable the user to preview the recommended movie. A button 588 is provided to enable the user to order the movie from an online service provider. A system API communicates with an API of the service to authenticate the user's account and authorize the transaction. The user may authenticate the account at any time prior to ordering an item. In a variation of the present embodiment, the user logs into the system of the service provider and the recommendation system API automatically downloads movie availability information from the service provider. In one example, the recommendation system limits recommendations to available movies.
[0122] FIG. 6 is a block diagram of another embodiment of a recommendation system according with the disclosure. The system comprises system 300 and a recommendation application 610. Recommendation application 610 is stored in the memory of a user device and comprises a GUI operable to administer a survey and present recommendations. User device 104, including non-transitory computer readable medium, or memory 390, is shown. As described above, exemplary user devices include personal computers, portable computers, an IPAD(TM), IPHONE(TM) or BLACKBERRY(TM) mobile device, a set-top box, a smart TV, a digital video disc player, a kiosk, and any device including a processing device, memory and an I/O interface operable to receive user commands and establish communications with other systems or devices. A dashed line illustrates the transfer of a feature matrix 620 from system 300 to user device 104. The transfer occurs through information network 142 and is shown separately for clarity.
[0123] Also shown in FIG. 6 is a service 650, e.g. a movie delivery service, connected to the recommendation system through information network 142. Service 650 comprises a processing device 652, an I/O interface 654, and a memory 656. Memory 656 has embedded therein an operating system 660, applications 662, and an available items list 670. An exemplary application is an API for delivering available items list 670 to either system 300 or user device 104. In one variation, all communications concerning the recommendation system, except those in connection with login, authentication and payment, flow between user device 104 and system 300, and between system 300 and service 650. In other words, user device 104 communicates through system 300 to service 650. In another variation, user device 104 communicates directly with service 650, and service 650 updates system 300 with respect to movie transactions and compensation based on items ordered using the recommendation system. System 130 is equivalent to, and interchangeable with, system 300. Exemplary business processes in which a service, or online vendor, communicates with system 300 and a user device application such as recommendation application 610 is described with reference to FIG. 8.
[0124] FIG. 7 is a flowchart 700 of another embodiment of a method according with the disclosure in which the recommendation system provides information to a user device, and the user device performs some of the item preference or feature matrix processing. The method may be implemented with the system described with reference to FIG. 6. The method begins, at 710, with selection of a service. In one example, the GUI presents the user with a number of service options (e.g. as shown on FIG. 8) and the user activates a control button to choose one of the services. At 720, the service refreshes the item list stored in the user device. The item list may include additional information operable for facet filtering. In one variation, system 300 computes and pushes the feature matrix and, at 734, the feature matrix is downloaded by the application. In one example, system 300 also pushes item images for the survey questions. In another example, system 300 receives the available items list and pushes a feature matrix based on the available items. Once the recommendation application in the user device has a feature matrix, the application may run without internet access. In another variation, the recommendation application in the user device is operable, at 740, to download item preference data from system 300 and compute the feature matrix.
[0125] After the recommendation application has the feature matrix, the GUI, at 742, administers the survey. At 744, the application administers and analyzes the survey results and, at 746, presents recommended items, in the manner previously described with reference to FIG. 5. In one example, the administration, analysis and presentation functions are performed by processing sequences such as survey processing sequence 344, recommendation processing sequence 348 and recommendation presentation processing sequence 352. In one example, presentation includes providing users control buttons with which to veto items, as described previously with reference to recommendation presentation processing sequence 352. In one variation of the present embodiment, the recommendation application downloads the survey questions from system 300 and uploads the survey results to system 300. System 300 analyzes the survey results and then provides the recommendations to the application.
[0126] At 750, the application receives an item transaction indication. An exemplary transaction indication is a user command to order a movie. The user may order the movie by activating the appropriate control button, such as control button 588 described previously with reference to FIG. 5. At 760, the recommendation application orders the selected item from the service. Then, at 770, the service provides compensation to system 300. In one example, the order includes a token referencing the recommendation system, which enables the service to compensate system 300 with payment equal to a portion of the transaction or a fixed amount.
[0127] FIG. 8 is a block diagram of an implementation of system 800 configured to enable a plurality of user device applications, exemplified as user applications 102A-F, to engage in transactions with various services, or online vendors, exemplified as web servers 190X-Z. System 800 includes a system 810 including API 132 and an updating application 820. System 810 may be configured as system 130 or 300 to implement any of the methods described above. FIG. 8 also illustrates two business processes enclosed in dashed lines and denoted by numerals 802 and 806. Both business processes rely on API 132 administer surveys and generate recommendations. [0128] In business process 802, lines 803 and 804 represent communication lines
(copper lines or wireless lines or both) between web server 190X and API 132, and between web server 190X and application 102A. Web server 190X and application 102A are online vendor components, illustratively a Netflix server and a Netflix application. The online vendor develops and implements its servers and applications as it desires, and accesses API 132 to administer surveys to users of its applications and to receive recommendations which the online vendor then provides to its applications. The applications include mobile applications and also web pages. System 810 includes the necessary databases and applications to receive survey requests and output survey questions via API 132, to process the survey information provided by the online vendor, and to output the recommendations, also via API 132. In essence, system 810 is a recommendation server, and the online vendor is a recommendation client.
[0129] In business process 806, line 807 represents communication lines (copper lines or wireless lines or both) between API 132 and applications 102B-F. Line 808 represents communication lines (copper lines or wireless lines or both) between web servers 190Y and 190Z and applications 102B-F, illustratively online vendors Amazon and Redbox. The online vendors communicate with updating application 820 to provide lists of current offerings, such as available movies. Updating application 820 updates the recommendation system databases with the up-to-date items. An application program (not shown), illustratively application program 134, accesses API 132 to administer surveys to users of applications 102B-F and to send recommendations to applications 102B-F, also via API 132. In the present example, applications 102B-F are the recommendation clients. Applications 102B-F may then access web servers 190Y and 190Z via line 808 to request a movie preview or enter into an online transaction with the online vendors.
[0130] The foregoing embodiments have been described with reference to a feature matrix including item drivers computed based on input from an initial set of respondents. Additional items and individuals may be added by reprocessing the entire item preference data. While reprocessing may yield a dense dataset, it is not always possible or desirable to reprocess. Alternatively, additional items and individuals may be added to the system in a process termed "fold-in". As described above, the preference drivers are identified based on the item preference data which is, ideally, dense. Every item and respondent is summarized as a vector representing the drivers. By the fold-in process, a vector is determined for each new item and individual by extrapolating from the feature matrix. The quality of data for an item or individual decreases with the number of extrapolations. Therefore, it is preferable to extrapolate preference vectors for individuals directly from the dense dataset. A preference vector for a new individual can be found based on a small survey, as described above.
[0131] According to one embodiment of the recommendation method, a new item is folded in by performing a multivariate regression analysis. In one variation thereof, the method includes generating second item preference data for additional items and performing a regression computation based on the second item preference data to fold-in the additional items into the item preference data.
[0132] In one example, the initial respondents, or a subset of them, rank additional items by comparing them to the initial items. The preference vectors of the initial respondents are known. In this example, second preference data is generated based on the responses from the initial respondents. The new item's vector is determined by a multivariate regression in which each respondent's response is an observation, the dependent variable is the set of ranks from each user, and the independent variables are the preference vectors of each user. The regression coefficients (without intercept) produce the most likely vector describing the new item.
[0133] In another variation thereof, the method further includes generating third item preference data from responses from respondents, the third item preference data being different than the item preference data. The regression computation is based on the second item preference data and the third item preference. In one example, new respondents are surveyed based on the initial item preference data to generate third item preference data. The new respondent's preference drivers are computed with the third item preference data. The survey is prepared in the same manner as the survey described above for determining the preference drivers of users. The survey calibrates input from the new respondents with the input from the initial respondents. Each new respondent then rates the additional items, for example relative to the items in the survey questions, generating the second item preference data. A regression analysis based on the second and a third item preference data is performed, in the manner described in the preceding paragraph, to project the most likely item vectors for the additional items. The additional items, and the corresponding most likely item vectors, are then incorporated into the feature matrix.
[0134] In a further example, the new respondents are surveyed based on the initial item preference data and the new items to generate the third item preference data. The new respondent's preference drivers are computed with the third item preference data. The survey is prepared in the same manner as the survey described above for determining the preference drivers of users. A regression analysis based on the second item preference data is performed, in the manner described in the preceding paragraph, to project the most likely item vectors for the additional items. The additional items, and the corresponding most likely item vectors, are then incorporated into the feature matrix.
[0135] Furthermore, in another embodiment the survey taker is asked to provide supplemental information pertaining to the items. The supplemental information may comprise ratings, rankings or any other information. The user preference vector and the supplemental information have many uses. In one example, the user preference vector and the supplemental information are used to fold-in additional items. In other examples, the user preference vector and the supplemental information are used to make pricing decisions, forecast sales and manage inventories and organize items. The data may also be used to ensure that the sample of respondents is representative of a larger set of respondents exhibiting the defined drivers (i.e. do the respondents exhibit a range of preference vectors? Are there preference vectors that are missing or under represented?).
[0136] In a further embodiment of a recommendation system, the system recommends movies or itineraries for movie festivals. At movie festivals (such as Sundance and SXSW), over 100 movies could be playing at multiple locations. After the first screening of each movie, the audience may be surveyed to obtain rankings and reviews from which the item preference vectors for the movies can be generated. They would also be given a survey as described above to determine their preference vectors. Other moviegoers may be surveyed in the manner described above (by themselves or with a group) and be provided with movie recommendations. The movie recommendations may be paired with planning information. Exemplary planning information includes showing schedules, locations, maps and other information pertaining to the festival to help users to find the best movie to watch right now or to plan the remaining festival time.
[0137] Referring once again to the use of the recommendation system to recommend a movie, an exemplary recommendation method starts when a user (or members of a group) takes a quick survey based on a set of multiple choice questions pertaining to movie choices meant to quickly capture the preference vectors of the user(s). Based on the preference vectors and the previously computed item vectors (based on a dense item dataset), movie preference scores are computed. Then, a set of recommendations is produced.
[0138] The movie recommendations are affected by whether every respondent has watched every movie. Recommendations can be improved by improving the item dataset so that it is less sparse. As discussed previously, the item dataset may include a "not viewed" field to track whether a respondent viewed a movie. When the respondent completes the initial survey, the respondent can also check the "not viewed" field to indicate he/she has not watched the movie. In one embodiment, the "not viewed" facet is used as an exclusionary pre-filter. By pre-filter it is meant that filtering occurs before computation of the item vectors. The initial responses are pre-filtered on the "not viewed" facet. The filtered dataset is used to compute the item vectors. In another embodiment, the "not viewed" facet is used as an exclusionary post- filter. By post-filter it is meant that filtering occurs after computation of the item vectors. The feature matrix is filtered on the "not viewed" facet. In both filtering embodiments, the "not viewed" movies are not available as survey candidates.
[0139] Recommendations can also be improved by increasing the power of the item dataset by removing average movies from the computations. In one embodiment, average movies and movies not viewed by many people are excluded from the pool of movies available as survey candidates, to improve the recommendations. A polarizing movie is a movie that is not rated as average. Typically, a polarizing movie has been rated as highly positive or negative by at least one person. In the present embodiment, a training set is generated to identify polarizing movies that have been watched by many people. To find a suitable set of movies for the training set, a small group of respondents (e.g. 20) are asked to rank their favorite movies of all time (e.g. thousands of movies per respondent). The responses are normalized to a mean of 0 and a standard deviation of 1 . The sum of squares of the responses is obtained, and the movies are ranked based on the sum of squares. Highly ranked movies are included in the training set, as they represent highly polarizing movies. Average and not watched movies generate scores near or at the mean and, therefore, are not highly ranked. The training set may comprise, for example, 200 movies. The training set is then used in a survey given to a large number of respondents to generate the item preference data. In other words, the sum of squares analysis is used as an inclusionary pre-filter. The item preference data is then used to generate item vectors and select survey candidates, as described above.
[0140] Recommendations can also be improved by excluding from the user survey movies that the user has not watched and movies the user probably has not watched. If the survey presents many movies the user has not watched, the user has to switch the movie choices, and the user experience degrades due to the extra steps needed to complete the user survey and the consequent loss of time. In one embodiment, as a user takes a user survey, the system tags the movies switched out, which represent the movies the user has not watched. In a subsequent user survey, the tagged movies are excluded from the survey. The user may also indicate, after taking a survey, that he/she has watched one of the recommended movies. The user may do so, for example, by ordering the movie from a movie delivery service. Alternatively, an icon may be presented by the GUI to enable such indication by the user. The system then tags the movie as a watched movie. The system thus improves the user experience and the recommendations as the user takes more surveys or provides more feedback.
[0141] In another embodiment, the user's indication that he/she has or has not watched a movie is used to identify user survey candidates based on a likelihood computation. In one example, the training set described above is developed. Then, all movies that have been watched by the user receive a positive 1 and the movies that have not been watched receive a negative 1. The watched and not watched attributes are added to a "watched" driver added to the item preference data. The dimensionality of the modified training set is then reduced, for example by performing a principal component analysis. The PCA drivers sort movies into groupings, where movies in groups are likely to have been watched or not been watched by the user. The PCA drivers thus comprise a user's "likely watched" vector. An average of two or more vectors corresponding to watched movies is calculated and the average vector is multiplied by the vectors of the items to compute likely watched scores. The movies with the highest scores are the most likely watched movies. The PCA "likely watched" computation may be updated as the survey is being taken so that each subsequent question incorporates the information received from the previous questions. Similarly, the PCA likely watched vectors may be computed while the preference vector is computed, which computation may be repeated after each survey answer is received by the system. The likely watched vector is then used to select survey candidates for subsequent questions. Question candidates are selected from pools of potential candidates excluding items identified as not watched and including items identified as likely watched based on the likely watched vectors. For example, one likely watched driver might be movie vintage, where positive values relate to older movies and negative values relate to newer movies. When a user switches out an older movie, subsequent questions may include movies whose likely watched vectors have large negative values for the vintage driver.
[0142] The likely watched vector is fairly stable over time since it is not impacted by current mood. In another embodiment, the likely watched vectors from preceding surveys are recorded and then combined with the watched indications from the user to further improve the selection of survey candidates. In a variation of the present embodiment, a user is provided a "watched" survey from which the likely watched vector is computed. The survey may include, for example, 200 movies. The survey enables the user to identify movies watched and not watched. The likely watched vector may identify that the user is more likely to have watched older movies that are block busters and less likely to have watched movies that are not horror movies. Then, if while taking the short user survey the user switches out an older movie, the likely watched vector is recalculated to incorporate this information, which may remove the bias toward only including older movies in subsequent survey questions. The new information is incorporated by computing the weighted average of the likely watched vector with the vector of the switched out movie. A negative weight is applied to convert the likely watched vector to a likely not watched vector. A higher weight is given to the likely not watched vector computed based on the watched survey since the watched survey includes more information than the small user survey. The weighted likely not watched vector is multiplied by the attributes of any movie to forecast the likelihood that the user has not watched that movie. [0143] The movie recommendation system also recommends new releases. However, the item preference data does not include new release ratings as soon as a new movie is released. In one embodiment, recommendations are improved to include new releases by folding-in new releases and, potentially, new respondents. In the present embodiment, individuals who have watched the newly released movie take a quick survey configured to determine the relative rating of the new release. If an individual is not a respondent, the survey is also configured to determine the individual's preference vector. The user survey is then conducted using the improved item preference data as described above.
[0144] Respondent and group characteristics can be used to improve the recommendations by matching or neutralizing biases. Recommendations may be imbalanced if the item preference data is biased based on a characteristic of the respondents, for example. Also, the item vectors may indicate imbalance if one of the principal components is highly correlated to a characteristic of the respondents. For example, if the item preference data includes a disproportionate number of male respondents, or the male respondents disproportionately prefer a subset of movies, as indicated by correlation with a principal component, then the recommendation system may produce recommendations biased towards the subset of male preferred movies.
[0145] In one embodiment of a method for making group recommendations, the characteristics of the group are matched to the characteristics of the item preference data. In one example, where the group comprises an even number of users exhibiting a characteristic (e.g. male and female gender), the recommendation method comprises pre-filtering excess respondents exhibiting the biasing characteristic so that the item preference data used to generate the recommendation includes an even number of respondents relative to the characteristic (e.g. equal number of male and female respondents). If a principal component indicates bias, the excess respondents may be selected from the subset of respondents exhibiting the biasing characteristic so as to neutralize the biasing effect. For example, the male respondents highly correlated to the biased principal component may be selected as the excess respondents and filtered out of the item preference data. Any user characteristic may be chosen as the matching, or balancing, characteristic. Exemplary user characteristics include age, gender, sexual bias, profession, hobby, political affiliation, and any other characteristic which can be used to filter respondents. In one variation, the users may indicate that they do not wish to balance the recommendations. In another variation, the users may indicate a balancing characteristic. An example of a screen for selecting a balancing characteristic corresponding to who will watch the movie is described with reference to FIG. 12.
[0146] In another example, where the group comprises a majority of users exhibiting a characteristic, for example, the recommendation method comprises pre-filtering excess respondents not exhibiting the characteristic so that the item preference data includes only respondents exhibiting the characteristic. Any user characteristic may be chosen as the inclusion characteristic. Exemplary user characteristics include age, gender, sexual bias, profession, hobby, political affiliation, and any other characteristic which can be used to filter respondents. In one variation, the users may indicate that they do not wish to bias the recommendations. In another variation, the users may indicate the inclusion characteristic.
[0147] The embodiments described above in connection with movie recommendations are also applicable to television shows. Furthermore, the embodiments can be further improved to take advantage of differences between movies and television show series. A television show series comprises seasons. Each season includes a plurality of episodes. In one embodiment, an item preference data is comprised of respondents' survey data corresponding to, for example, an overall rating for the series, a season rating for each season, and an episode rating for each or selected episodes. The episode rating may be in relation to other episodes in the season or the series. The information may be used to determine if the show is improving. For example, preceding and succeeding episodes may be compared to determine an improving or worsening trend. The rating for the season may be computed as the average of the episode's ratings. In another embodiment, respondents indicate whether an episode may be enjoyed before watching preceding episodes. If a user seeks a show series recommendation, the recommendation system may recommend a series and also a highly rated episode in the series based on the ratings and the indication whether the episode can be enjoyed without watching the preceding episodes first. The recommendation system may additionally recommend the pilot episode of the show series. In a further embodiment, if the rating of a recommended series decreases compared to previous seasons, the recommendation system provides an indication of the decrease to the user and recommends another series. The item preference data may be updated from time to time with data from supplementary surveys as new episodes become available, in the manner described with reference to new movie releases.
[0148] The effect of recommendations may improve if the users trust the recommendation system. User trust may increase if the recommendation system provides to the user additional information. For example, the recommendation system may provide information describing how the recommendations were made or providing reviews from other users. The more affine the descriptions are, the more trust that can be earned. In one embodiment, the preferences of the user are used to provide recommendation information. The preference vectors of respondents or users writing reviews are first evaluated for commonality. Based on the preference vectors, the respondents are grouped. For example, a first group may include individuals whose preference drivers are +1 , ±0, -1 , -1 indicating a positive driver 1 , neutral driver 2, and negative drivers 3 and 4. A second group may include individuals whose preference drivers are -1 , ±0, -1 , -1 indicating a negative driver 1 , neutral driver 2, and negative drivers 3 and 4. In one variation, the user's preference driver is matched with the group exhibiting similar preferences, and the reviews from the matched group are provided to the user. For example, if the user has a positive driver 1 , then reviews from the first group are presented. In another variation, the reviewers can be ranked based on the individual's preference vector to find the reviewer with the most similar preference vector. The highest recommended reviews will be presented to the user.
[0149] In one variation, the recommendation system provides a review summary reflecting common themes. Key term frequencies may be utilized to summarize the reviews from the group's members. For example, "excellent" may be used to describe the recommendation if the word is used more frequently than the word "good" in the reviews from the group's members. In another variation, in which a recommendation is made to a group of users, the reviews are tailored to each member of the user's group based on the member's preference vector.
[0150] In another embodiment, the recommendation information comprises a visual representation. Referring to FIG. 9, an exemplary visual representation 900 includes a two- dimensional axis graphic 902. Graphic 902 divides the visual representation into four quadrants. Item representations 910, 912, 914 and 916, corresponding to positive and negative attributes of two preference drivers, are shown at each of the four points. In the case where the items are movies, the item representations are the movies from the user survey that represent the opposite values of the first two drivers, e.g. movies having vectors [+1 , 0, 0, 0], [-1 , 0, 0, 0], [0,+1 , 0, 0] and [0,-1 , 0, 0] (or as closed to such vectors as possible). These movies describe the range of preference in the first two dimensions. In the present example, these movies are Wolverine, Present Thunder, Zodiac and Shrek. The values of the first two user preference drivers for two users of a group are represented by images 920 and 922 located at the intersection of the values. Based on the location of images 920 and 922, the user preference driver attributes are positive for the first driver and negative for the second driver. Images 930 and 932, representing the top two movie recommendations, A Beautiful Mind and Blood Diamond, are also shown. Their locations of images 930 and 932 in the visual representation are determined in the same manner as the locations of by images 920 and 922 are determined. Additional images may be shown, such as the survey candidate movies and additional recommendations. The visual recommendation information may help users to better understand the range of options and how the recommendations fit within the range, thereby instilling trust in the recommendation system.
[0151] In one variation, the axis of the graph is determined using PCA to explain the most variation. For example, to represent drivers in four dimensions with a two-dimensional graph, a PCA is run on all of the points and the two most important drivers (2 newly calculated principal components based on the original four principal components) are plotted to explain the multi-dimensionality of the survey responses. For, instance the second driver may be movies geared toward males versus geared toward females. If two males take the survey together and both are positive driver 2, running the second principal component analysis on their responses will not identify the 2nd driver as important and will exclude that driver in the second principal component analysis. In one example, the points are the set of survey item vectors, the recommended movie vectors, and the user preference vectors. The recommended items and users are also plotted for the same reasons described above. In one example, the user vectors are weighed so that they drive the dimensions of the graph more. Weighing is accomplished by including the user vector multiple times in the data set before the PCA is run. [0152] In another variation, images representing the responses from the user survey, or a number of them, are presented scaled proportionately to the similarity of the response to the recommended item. For example, the cosine similarity may be used to determine the scale of each images. Referring to FIG. 10, a representation 1000 of a GUI window is shown illustrating, on the left side, an image 1010 of a recommended movie (The avengers). On the right side, images 1012, 1014, 1016 and 1018 are shown, each being smaller than image 1010. The sizes of the four images are proportional to the similarity of each of the four movies to the recommended movie. In another variation, the four images shown can be arranged differently, for instance as a pie chart. A transaction object 1020 and a navigation object 1022 also shown. A user can activate transaction object 1020 on the GUI window to order delivery of the recommended item. In the present example, the item is a movie and transaction object 1020 is a link to an online vendor where the user can order the movie. If the user orders the movie, the online vendor may compensate the system for making the recommendation. In a variation of the present example, the user selects the delivery service, which is used as a facet for filtering. Facet filtering enables the system to recommend movies to the user that are presently available for delivery by the online vendor while excluding movies that are not available. As described below, inclusive or exclusive filtering is performed. Movie rating is another facet which users may use to limit the recommendations. The user may activate navigation object 1022 to return to the previous webpage or window.
[0153] FIG. 1 1 shows a graphical representation 1 100 of a GUI window presented by the recommendation system. The GUI window is configured to provide recommendation information and make the system easy to use. Images 1 102, 1 104 and 1 106 representing recommended items ordered according to their scores. An object 1 124 is shown above each image. The user can activate object 1 124 to indicate to the recommendation that the user is not in the mood at the present time to select the item. An information box 1 108 is shown above each item to show a rating indicative of how well the item scored relative to other items. Below each image are transaction objects 1 120 and navigation objects 1 122. As before, the user can activate a transaction object 1 120 to order the item from an online vendor. If the items are movies, the user can activate a navigation object 1 122 to view a trailer of the movie. Above the item images are post-survey facet selection objects 1 1 10, 1 1 12 and 1 1 14, which the user may activate to filter items and change the recommendation. Genre, vendor and "include R-rated" facets are shown. The recommendations may be based on the availability of movies by the chosen vendor. For example, the user may choose Amazon.com as the online vendor. The system may then determine which movies Amazon.com can deliver and only recommend movies from the available movies. Images 1 120 may be changed based on the vendor selection.
[0154] A recommendation can be viewed as a forecast of the user's actual preferences.
The difference, or error, between the forecasted preference and the actual preference may be referred to as the "idiosyncratic" preference for the item for that user. The idiosyncratic preference may reflect the difference between how the user perceives the quality of the movie and the feelings evoked by the movie, which may be based on the circumstances at the time the user last watched the movie. FIG. 1 1 shows objects 1 1 16 and 1 1 18, which the user may activate to provide feedback to the system reflecting the idiosyncratic preference for the item. The user may activate one object to indicate that the system overrated the movie and the other to indicate that the system underrated the movie. In one example, the score of the item is weighed down by a predetermined amount each time the user indicates the movie is overrated. The score is weighed up if the movie has been underrated. The recommendation system may record the feedback and the idiosyncratic adjustment of the item and adjust the score accordingly when making subsequent recommendations. This adjustment can be absolute (e.g. subtract 5 points off the rating on a 100 point scale) or multiplicative (e.g. reduce the score by 20%). The adjustment may be constrained to ensure no scores exceed 100 or fall below 0. As the user continues to provide feedback over time, the idiosyncratic adjustments can stack.
[0155] In one variation, the recommendation system determines that the feedback reflects a different mood based on the amount of feedback. For example, the system may determine a mood shift if the user adjust 3 out of 6 recommended movies. In that case, the recommendation system may recalculate the user preference vector based on the additional data and then recalculate the scores and update the recommendation. A multivariate regression may be run against the drivers expressed by the movies using the idiosyncratic adjustment to determine the new user preference vector.
[0156] Another way to collect information about the user is for the user to rank a large set of movies. This can be done by repeatedly asking the user to choose a favorite among two movies to build a list of movies in rank order. This is the actual ranking. The average of the least liked movies can be subtracted from the average of the most liked movies to calculate a user preference vector. The user preference vector may then be used to estimate the expected ranking of each movie based on the score. The difference between the expected and the actual ranking for a movie is the idiosyncratic rating for the movie. In the future, the idiosyncratic rating can be used to adjust future expected rankings even if the user's mood has changed.
[0157] In one example, the list of ranked movies is started with the user survey results.
Based on the resulting user preference vector, the ranking of each of the twenty-four movies from the six-question survey can be estimated. Then, question-by-question, the user can confirm that the chosen movie is at least as highly rated as the unchosen movies. In other words, to confirm that the chosen movie ranks higher than the unchosen movies from the same question. If this is not true, the ranking of the chosen movie is increased in the ranking list to be above the highest unchosen movie from the same question.
[0158] The idiosyncratic preferences can also be used to check if the user has a strong opinion on lower importance drivers (PC5, PC6, etc .), which are not part of the survey. The average PC5 value for movies that are overrated are subtracted from the average PC5 value for movies that are underrated to determine the users' view of PC5. If so, the PC5 driver can be implied and applied in the user's recommendation calculations, even though the PC5 driver was not included in the user survey. Additional preference drivers may be implied in the same manner.
[0159] In another embodiment of the recommendation method, a user can name and save his/her responses as a "mood." Subsequently, the user can choose a saved mood instead of taking another survey. The user may also name and save the preferences of one or more friends. When seeking a group recommendation, each user may take a survey or choose a saved mood. Alternatively, the user may link his/her account with friends' accounts so that all of the friends' saved moods can be added to a group for determining group recommendations. FIG. 1 1 also shows a number of group and other objects configured to manage group membership. Item 1 140 shows the responses of user 1. When there are more than one user, then each user's name and responses will be shown. Item 1 142 allows the user to save the responses and to name the preference as a mood of the user or as a friend of the user. Item 1 144 allows the user to remove his or her information from the group. When removed, the recommendations are recalculated based on the remaining users in the group.
[0160] In another embodiment of the recommendation method, the user's saved moods are used to target advertisements to the user. The advertisements may be targeted by the recommendation system or by external systems (i.e. advertisements on other websites, emails and direct mailings). The advertisements may be directly related to the recommended items (i.e. data from a movie recommendation used to determine movie advertisements to show the user). The advertisements may also be inferred from the recommended items (i.e. data from a movie recommendation used to infer TV show advertisements). If the user has several moods saved, the advertisements can be based on an average of the moods, on the mood most often used by the user or on the most recently used mood. Note the moods of the user have been saved separately from moods of the friends. Alternatively, multiple advertisements can be shown, each corresponding to each of the moods. Alternatively, one mood can be chosen at random from the set of moods. The odds of a particular mood being chosen (for the purpose of selecting an ad) is proportional to the frequency that mood is chosen by the user. (i.e. the user has moods A and B, exhibits mood A 90% of the time and mood B 10% of the time. Advertisements corresponding to mood A will therefore be shown more frequently).
[0161] Furthermore, in another embodiment of the recommendation method, a user preference vector is compiled based on user inputs without a survey. The user inputs one movie or a list of movies. The user preference vector is computed as the average of the vectors corresponding to the inputted movie(s).
[0162] FIG. 12 shows a graphical representation 1200 of a GUI window presented by the recommendation system to filter items before a survey is taken. The GUI window displays objects 1210, 1212, 1214 and 1216 corresponding to different pre-survey filter criteria. In the present example, items are movies. The user may activate object 1210 if the user wishes to watch a movie alone, object 1212 if a couple will watch the movie, object 1214 if a family will watch the movie, and object 1216 if a group of friends will watch the movie. Each object has an associated filter profile. For example, the family filter may exclude R-rated movies while the couple filter may exclude violent movies but include movies rated R due to nudity or sexual language. The filters may be pre-defined in the system according to the type of items being recommended. The user survey is then administered based on the filters selected by the user. Using the filters, the user can quickly and effectively exclude from the survey certain items based on content. The filtered items do not appear in the user survey and, therefore, the user does not have to switch them out during the survey. An object 1220 is provided to enable the user to receive recommendations based on a previous survey taken by the user.
[0163] FIG. 13 shows a graphical representation 1300 of a GUI window presented by a recommendation system configured to give a user the option to take different surveys, which may be referred to as "quizzes" or "quiz." As shown in FIG. 13, the GUI window displays images 1310-1315 to show the user the types of items available within a category and objects 1320-1325 to show the types of items available within another category. The GUI window includes objects 1302 and 1304, which the user may activate to select one or the other category. In one example, the items are movies, and the user may choose between a quiz with older movies (e.g. 1009-2005) and a quiz with newer movies (e.g. 2005-2010). In another example, the user may be asked his/her age and the recommendation system then infers a quiz choice. The movie drivers and questions for each quiz are calibrated using separate training sets.
[0164] Rental movies can typically be rented from a service at a low cost. The rental cost may, in fact, be the same for most movies. Even when prices differ, for example between regular and high definition movies, the price difference does not generally drive the user's preferences. Other items, however, are very price sensitive. Clothing, fragrance and jewelry items, athletic equipment, restaurants, vacations and other expensive items, for example, can differ significantly in price. In the embodiments described below, user preference vectors are used to recommend prices, make recommendations that incorporate pricing as a driver or provide simulated pricing information. These recommendations and information enable merchants to adjust pricing to increase sales volume, increase profits and adjust inventories by tailoring pricing to use preferences on individual and group basis.
[0165] In one embodiment of a pricing method, the method comprises accessing a data- structure including a plurality of items; computing a user preference vector; and identifying, from the plurality of items based on the user preference vector, at least one of a preference-price efficient item and a preference-price inefficient item. Identifying at least one of a preference- price efficient item and a preference-price inefficient item may include computing preference scores for the plurality of items and comparing the preference scores and item prices to identify the at least one item. The method may include accessing item vectors and item prices, the item vectors and item prices corresponding to the plurality of items.
[0166] In one example, the method further comprises outputting a recommendation for the user, the recommendation including the preference-price efficient item. In another example, the method further comprises computing a discount amount by which the preference-price inefficient item can be discounted to become preference-price efficient. In a yet further example, the method further comprises computing an up-charge amount by which the preference-price efficient item can be up-charged without becoming preference-price inefficient.
[0167] In another embodiment, preference-price efficient items are recommended.
Preference-price efficient items are the most preferred items at given prices or in given price ranges. Thus, instead of recommending the top five items employing the methodologies described above with reference to movies, in the present embodiment price-sensitive methodologies are applied to identify the items which are most preferred within given price ranges. In one example, if a given price-point is $100, the most preferred items priced at or below $100 are recommended. In another example, a plurality of price-points are given, and the most preferred items priced at or below each given price-point are recommended. If the given price-points are $150, $100 and $50, the recommendation may include, for example, three items priced at or below $150, three items priced at or below $100, and three items priced at or below $50. The recommendations are based on the user's preference vector. The given price-points are arbitrary and can be set based on the type of item being recommended and the user's characteristics.
[0168] In a variation of the present embodiment, only items that are preferred to every item with a lower price are included in the recommendation. As described below, inefficient items (those items excluded from the recommendation due to their price) can be discounted so that they become preferred to every lower priced item. Inefficient items present discounting opportunities. Known forecasting techniques can be used to predict how many potential buyers would purchase the item at the discounted price versus the initial price. For example, a merchant may offer coupons to selected customers or temporarily test a discounted price on a website to assess its impact. Customers may also be selected for testing a discounted price based on their characteristics after matching their characteristics with the preference vector used to compute the discounts.
[0169] In another embodiment, preference vectors of respondents or users are correlated to individual characteristics, and discounts computed as described above are provided to potential buyers matching the individual characteristics. The individual characteristics may include demographic, purchase history, and other individual characteristics.
[0170] The present embodiment will now be described with reference to FIG. 14, in which a graph 1400 is presented to illustrate the selection of preference-price efficient items. On graph 1400, fifteen preference/price points are shown corresponding to fifteen items. These items may be, for example, dresses of different brands, materials and styles. The vertical axis represents a preference score having a range [0, 1 ]. The horizontal axis represents a price having a range [0, 150]. The fifteen preference/price points are numbered 1401 -1415. The numbers correspond to the preference ranking of the items. Thus, point 1415 represents an item more preferred than item 1414 (for a given user) etc. Also shown are three loops numbered 1420, 1424 and 1428. Each loop encloses three preference-price efficient items. Loop 1420 encloses points 1413, 1414 and 1415, which are the three most preferred items below $150. Loop 1424 encloses points 1409, 1410 and 141 1 which are the three most preferred items below $100. Loop 1428 encloses points 1404, 1406 and 1409 which are the three most preferred items below $50. In one example, the items inside each loop are the recommended items at the given price point. The preference scores are computed as the product of the item vectors and the user's preference vector, as described previously in connection with the generation of the item preference data, and are not affected by pricing. The pricing information is obtained from the seller of the items, for example, and added to the item preference data. The graph is provided for illustration only. Given the price points, the system computes the scores and selects the items to be recommended at each price point.
[0171] In another variation of the present embodiment, the pricing method comprises identifying items which may be discounted to make the items preference-price efficient. If the items are appropriately discounted, the recommendation system will recommend them. For example, if the price-point is $100 and two items, A and B, are priced at $1 10, the question arises whether it would be beneficial to price both items at or below $100. If the preferences of the user would not lead the system to recommend item A, then discounting item A would not cause the system to recommend it and discounting is therefore not beneficial. On the other hand, if the preferences of the user would lead the system to recommend item B at the right price, then discounting item B would cause the system to recommend it and discounting is therefore beneficial. Of course, another user may have the opposite preferences, in which case the system should recommend (to the user) a discounted item A and should not recommend (to the business) discounting item B. Furthermore, if items A and B are preference-price efficient at a higher price-point, and therefore would be recommended at the $1 10 price, then the system should not recommend (to the business) discounting of either item.
[0172] The present embodiment will now be described with reference to FIG. 15, in which a graph 1500 is presented to illustrate the selection of items which, if discounted, become preference-price efficient items. Graph 1500 is like graph 1400 except that the prices of two preference/price points, numbered 1407 and 1412, have been discounted to illustrate how to select discount candidates and discount amounts. The preference scores, initial prices (corresponding with graph 1400), new prices (corresponding with graph 1500) and discount amounts are shown in Table 8.
[0173] Table 8 - Preference/Price Points:
Initial New
Point Preference Price Price Discount
701 0.08 60 60 0
702 0.22 126 126 0
703 0.27 94 94 0
704 0.28 32 32 0
705 0.30 121 121 0
706 0.35 38 38 0
707 0.48 60 45 15
708 0.49 126 126 0
709 0.51 32 32 0
710 0.60 55 55 0
71 1 0.70 68 68 0
712 0.72 1 10 95 15
713 0.77 130 130 0 Initial New
Point Preference Price Price Discount
714 0.88 105 105 0
715 0.93 130 130 0
[0174] Figure 15 also shows the initial preference/price points corresponding with points
1407 and 1412, which are represented by dashed squares numbered 1407' and 1412'. Arrows connect the initial and discounted points. As illustrated by graph 1500 and Table 8, discounting point 1412 from $1 10 to $95 shifts point 1412 so that it becomes the most preferred item below $100. Of course, point 1412 could also be priced at $99.99 to achieve the same effect.
[0175] As a result of discounting point 1412, loop 1424 now encloses points 1410, 141 1 and 1412 and no longer encloses point 1409. Thus, even though an item has been discounted, the average price of the recommended items priced under $100 has increased by the substitution in the recommendation of a lower priced item (item 1409) with a higher priced item (discounted item 1412). In the same manner, point 1407 can be discounted to substitute it for point 1404 in the recommendation of items priced under $50, as shown on FIG. 15. Even further, point 1407 can be further discounted, as shown by the dashed square numbered 1407", to make it the most preferred item at its discounted price.
[0176] FIGS. 14 and 15 also illustrate that the most preferred items below given price points could be up-charged without causing them to lose their place in the recommendation. For example, point 1409 is the most preferred item under $50, so it could be priced between $1 and $49 without changing its place in the recommendation, as the most preferred item priced under $50 for that user. Thus, the difference between the price of an item and the next highest given price barrier represents an up-charge opportunity, and the difference between the price of an item that would not be recommended at its current price and the next lowest given price barrier represents a discount opportunity. Similarly, the price difference between two items, in which the more preferred item is priced lower than the less preferred item, represents an up- charge opportunity for the more preferred item and a discount opportunity for the less preferred item, which would make each item the most preferred at their new price. [0177] Another observation is that discounted item 1407 (FIG. 15) is less preferred. In a variation of the preceding embodiments, the system computes discounts and up-charges to maximize sales or profit. In one example, the system identifies a number of discounts which may be applied to an item to cause the system to recommend the item based on the preference-pricing methods described above. Each discount will result in a different ranking for the item. For example, the item may be recommended first at a steep discount and third at a smaller discount. For each discount, sales volume and profit increases are forecasted. Based on the forecast, the system recommends a discount to maximize sales or profit or both. In a variation thereof, the system also forecasts volume loses of other items that would be recommended by the system if the discount to another item were not applied, and selects a discount that maximizes sales volume or profit overall. With reference to FIG. 15, for example, the system would compute the impact on sales and profit of (a) discounting item 1412 so that it is recommended, and (b) not recommending item 1404, as a consequence of recommending item 1412.
[0178] In a further embodiment, the preference drivers of a user are used to select how search results are presented. Users may, for example, perform a text search for an item on a website. Rather than returning results based on text analysis alone, the website displays items based on the text search and the preference driver of the user. The items are then sorted and presented according to the user's preferences. In this manner, the user is more likely to find what he/she is looking for at the top of the search results, thereby improving the user experience. In a variation thereof, the system identifies and presents similarly preferred items. The system may also find less expensive alternatives that are similar to the original item not just on content filters (e.g. color or brand) but on preference drivers, which may be intangible. Similarly preferred items are items that have small euclidean distances between them. Alternative recommendations may include items with similar content (e.g. color, type, designer) and similar vector attributes (based on the euclidean distances), and perhaps similar or lower price. In another variation thereof, the system identifies if discounted items/outlet items (past seasons) are still trendy, and to whom. Items are still trendy if they are still highly preferred based on their item vector relative to the item vector of the item computed at an earlier point in time (e.g. when the item was not on sale). [0179] In another embodiment, a system as described with reference to FIG. 1 is utilized to collect retail data. In one example, the retail data relates to a merchant. In another example, the retail data is collected across merchants. In the present embodiment, a plurality of respondents utilizing user devices, for example user device 104, complete surveys which are processed by system 130 to compute preference vectors. System 130 may also receive information concerning the characteristics of the respondents sufficient to group the respondents based on similar characteristics. System 130 then computes group preference vectors. The surveys may be directed to a plurality of item types (e.g. movies, clothing etc.) and subtypes (e.g. dresses, shirts). The respondents may complete the surveys to obtain a recommendation, as discussed previously. The respondents may complete the surveys in exchange for rewards, such as points. The respondents may also complete the surveys because they find the surveys fun or for any other reason. System 130 also collects pricing information on a multitude of items. For example, system 130 may obtain pricing information by mining the websites of merchants and may also receive pricing information directly from merchants in the form of databases or data files. With the pricing and survey information, system 130 then identifies pricing discount and up-charge opportunities for the merchants of the items.
[0180] In one embodiment of a pricing method, the system described in the preceding paragraph is utilized to recommend pricing opportunities to a merchant. In the present embodiment, a party (a) receives the survey information, (b) receives the pricing information, (c) computes item vectors based on the survey information, (d) identifies pricing opportunities, and (d) recommends the pricing opportunities to the merchant. In one example, the party transmits a pricing opportunity list to the merchant on a periodic basis. In one variation, the period basis is twenty-four hours. In another variation, the party transmits a pricing opportunity list to the merchant at least twice daily.
[0181] In another embodiment of a pricing method, the system described above is utilized to promote sales by a merchant. In the present embodiment, a party other than the merchant (a) receives the survey information, (b) receives the pricing information, (c) computes item vectors based on the survey information, (d) identifies pricing opportunities, and (d) executes sales contracts implementing pricing changes based on the pricing opportunities. The sales are fulfilled by the merchant based on the sales contracts. In one example, the party receives pricing changes limits from the merchant, and the pricing changes are implemented by the party within the limits. In one variation, the party makes sales offers and receives offer acceptances via a virtual storefront, and receives commissions from the merchant based on the sales contracts. In one example, the commissions are based on the pricing changes.
[0182] In another embodiment of a pricing method, a trade-off value is received and used to recommend prices. A trade-off value can be thought of as the amount of preference score bought for a unit of price. In other words, the trade-off value can be thought of as the difference in preference scores for an item as compared to the item plus a unit of price. For example, if an item has a preference score of 90, and the same item plus one dollar has a preference score of 92, the trade-off value is 2. In one example of the present embodiment, scores considering the trade-off values are compared to scores of other items to predict the amount of trade-off that results in a different user decision. Pricing information including a price for an item considering the trade-off can be output, with the expectation that the price will affect the user's decision e.g. purchase the item at the given price instead of another item. The tradeoff value can be obtained empirically and provided in a data structure or via a user interface, and is thereby received by a computing device and stored in memory for immediate or later use. In one example, the trade-off value is determined by discounting an item until it sells, in which case the trade-off value is the discount amount that results in the sale. The trade-off value can also be determined by offering choices to respondents, such as two items priced at different prices, and asking the respondents to select one or the other. Price differences can then be used as trade-off values. To simulate the effect of the trade-off value, scores are calculated with the trade-off values. In one example, the trade-off values are used as follows: new score = score[computed as above] + {Difference (budget-price)*trade-off}
[0183] The preferences of users can also be used to simulate or model pricing information. The simulated pricing information may be simulated by a merchant or may be output by a service provider for the merchant. In one example, user preferences are simulated by reduced dimensionality preference simulation application 136, and the simulated user preferences are used in a further simulation of user decisions, also by reduced dimensionality preference simulation application 136, to generate simulated pricing information. The simulated pricing information can be used by the merchant to price items and to implement pricing strategies to advance business objectives. The simulated pricing information may be input into known or future developed pricing software, e.g. pricing software module 198, that implements the pricing strategies. As used herein, simulated pricing information comprises information generated by simulating user decisions based on user preferences, actual or simulated. As described herein, exemplary simulated pricing information includes item prices; relative demand for an item; price elasticity for an item; cross-price elasticity for demand of an item and a price of a second item; a demand curve for an item; demand curves for an item corresponding to different subpopulations; and any other information suitable for making pricing decisions. While pricing is generally described herein with reference to items, it should be understood that items include any good or service which may be priced. Exemplary items include goods which may be purchased, leased or rented, and services which may be received or attended. For example, a roller-coaster ride in an amusement park is a service which is attended, while a lawn treatment service is a service which is received.
[0184] In one embodiment, a pricing method is executable in part by a processing device according to processing instructions embedded in one or more non-transitory computer readable medium. In one variation of the present embodiment, executable with a reduced dimensionality preference simulation application, by a service provider or a merchant, the method comprises accessing item preference data; reducing the dimensionality of the item preference data to obtain item preferences of items; simulating preferences of users with the item preferences; and simulating user decisions with the simulated user preferences to generate simulated pricing information. In one example thereof, the item preferences are based on a predetermined number of preference drivers, and the method further comprises calculating variation unexplained by the predetermined number of preference drivers. In another example thereof, simulated pricing information comprises at least one of relative demand for an item; price elasticity for an item; cross-price elasticity for demand of an item and a price of a second item; a demand curve for an item; and demand curves for an item corresponding to different subpopulations.
[0185] In another variation of the present embodiment, executable by a merchant, the method comprises identifying a user based on website access information; outputting information about the user to a reduced dimensionality preference simulation application via an information network, the reduced dimensionality preference simulation application configured to simulate preferences of users based on reduced dimensionality item preference data and generate simulated pricing information with the information about the user and the simulated preferences of users; receiving the simulated pricing information from the pricing system; and offering a price, corresponding to an item, to the user based on the simulated pricing information. In one example thereof, the simulated pricing information comprises at least one of relative demand for an item; price elasticity for an item; cross-price elasticity for demand of an item and a price of a second item; a demand curve for an item; and demand curves for an item corresponding to different subpopulations.
[0186] In one variation, a reduced dimensionality preference simulation application assumes that, at least sometimes, a potential purchaser will not purchase the preferred item. A probability is introduced, e.g. 80%, to account for this behavior. The probability affects the frequencies of the analysis item and thereby the demand curve. The actual user may choose different items for many reasons, such as already having the preferred item. Another possibility is that the preferred item is similar to other items the user has. This variation can be simulated by assigning lower probabilities to similar items. The similarity of items can be calculated by performing a likelihood analysis with content attributes associated with the items. The content attributes may include color, accessories, material, brand, country of manufacture, and the like.
[0187] A further variation of the present embodiment will be described with reference to
FIG. 16. The method includes:
1602. Accessing item preference data;
1610. Reducing the dimensionality of the item preference data to obtain item
preferences of items;
1620. Simulating preferences of users with the item preferences;
1630. Calculating variation unexplained by the preference drivers; and
1640. Simulating user decisions with the simulated user preferences to generate
simulated pricing information. [0188] Aspects of the method referred to by numerals 1602 and 1610 have been described previously and are summarize here for convenience. The item preference data may be accessed, at 1602, by reading a data structure from non-transitory memory including item preference information received from respondents. Based on the item preference data, item preferences are calculated, at 1610, using any known dimensionality reduction technique, e.g. PCA, including those described hereinabove with reference to FIGS. 3, 3A, 4 and 7. The item preferences comprise attributes of drivers which may be expressed as item vectors (if four drivers are selected, each vector includes four attributes) or equivalent mathematical representations. The dimensionality reduction technique also yields variances for each driver, including for the unselected drivers. The variances of the unselected drivers represent the variation unexplained by the selected drivers. In the present context, the selection of drivers occurs automatically by programming the system to identify a number of drivers, e.g. four drivers. The drivers which explain the most variation are identified, and the variation corresponding to the remaining drivers represents unexplained variation.
[0189] At 1620, user preferences are simulated. The simulation is performed to predict the decision behavior of purchasers. The simulation is performed by simulating as many preference attributes as there are selected drivers. In one example, the attributes are calculated by multiplying, for each attribute, a random number times the variance of the item preferences (e.g. attribute 1 = var1 *rnd1 ; attribute 2 = var2*rnd2; attribute 3 = var3*rnd3; attribute 4 = var4*rnd4). In another example, the first attribute is calculated as attribute 1 = mean 1 + var1 *rnd1 , where meanl is the average of the attributes of the item preferences corresponding to the first selected driver.
[0190] At 1630, unexplained variation is calculated. The item preferences are based on the selected preference drivers, as explained above. The variation of the unselected drivers is calculated, which represents variation unexplained by the subset of preference drivers. The variation of the unselected drivers can be calculated as the standard deviation of the unselected drivers, as follows: ∑ var(all attributes)—∑ var selected driver attributes) [0191] At 1640, user decisions are simulated with the simulated user preferences to generate simulated pricing information. User decisions may be simulated using item scores calculated by multiplying, for each item, the attributes of the user preferences and the item preferences, and adding an error value, calculated as a random value times the standard deviation of the unselected drivers. Other means of calculating error values may also be used. For example, an error value may be predetermined in an arbitrary manner and improved empirically over time for different types of items. To perform the simulation, an item may be identified based on the score, as described hereinabove. As the simulation is repeated, different items will have the maximum score. The frequency at which a particular item receives the maximum score is used to simulated user decisions relative to the item. The user decisions can be affected by changing item prices, for example, to determine the effect of pricing on the decisions. In one example, a price limit, or budget, is received and the identified item is the item priced at or below the price limit and having the maximum score. In another example, the price limit is simulated and the identified item is the item priced at or below the price limit and having the maximum score. Many price limits can be simulated to simulate pricing information including demand curves and pricing sensitivities. The present embodiment of a pricing method, and variations thereof, may be performed by a reduced dimensionality preference simulation application, which may include dimensionality reduction processing sequence 332.
[0192] In embodiments of pricing methods described herein, item prices and price limits may be associated with items. In the case where item preferences of the items are represented as vectors, the association comprises appending to each item vector the price of the item and/or the price limit. The price limit may be a received budget (e.g. a budget input with a user interface to simulate a purchaser's budget) or a simulated price limit. The price limit represents a maximum amount a purchaser may wish to spend. The computations take the price limit into account so that the identified item is not priced above the price limit.
[0193] Decision behavior may be simulated using Monte Carlo simulation. A number of user decisions may be simulated to determine pricing elasticity, cross-pricing elasticity and other pricing relationships. Preference vectors may be simulated from probability distributions for each user. The preference vectors may then be used to identify simulated decisions for a number of simulated users. The number of times that an item was "chosen" in a simulation divided by the total number of simulations run gives the relative demand of the item. The simulations may be constrained by price limits and other suitable factors.
[0194] In one example, decision behavior is simulated based on a budget distribution.
The budget distribution may be derived from information received via a merchandizing website. The merchandising website may permit users to select maximum prices for items. A filtering engine associated with the website may limit the item choices presented to the users based on the limits selected by the users. A budget distribution may comprise the relative frequency of the maximum prices selected by the users.
[0195] In one variation of the present embodiment, a demand curve for an item is simulated by determining the relative demand for the item at each of a plurality of prices. Normal distributions may be assumed for the user preferences to simulate purchasing behaviors dependent on prices of items. The results of the simulation provide simulated user preferences and prices that would influence the purchasing behavior of actual users. To determine the relative demand, a threshold price is determined at which, in the simulation, a user decisions items at or below the threshold. In other words, the system finds a price low enough that the item becomes preferred to all other items with equal or lower prices. The item may be priced at or near $0, if necessary. The process of determining thresholds is repeated for multiple simulated users. The relative demand for an item at a given price is the percentage of times that the threshold price is at or above the given price. Preferred items were described above in connection with price-efficient items with reference to FIGS. 14 and 15.
[0196] In another variation of the present embodiment, the price elasticity of demand for an item is calculated using the demand curve. Price elasticity represents the effect of a price change on demand at a given starting price. In other words, price elasticity may be calculated as the percent change in demand for a given change in price for a given starting price. Price elasticity may be derived from the demand curve by finding relative demand at two prices, finding the ratio of the absolute difference between the relative demands and the difference between the two prices, and then dividing the ratio by the relative demand at a price intermediate the two prices. For example, relative demand may be calculated by finding the relative demand at the given starting price, a second relative demand at a price of 1 % above the starting price and a third relative demand at a price of 1 % below the starting price. The second and third relative demands are subtracted from each other and then divided by 2 (e.g. 1 %+1 %). The absolute value of the resulting number is then divided by the first relative demand. If the relative demands were calculated at prices +/- 10% instead of 1 %, the difference between the relative demands is divided by 20 instead of 2. In another example, the demand curve is fitted with a smooth function before the elasticity is calculated.
[0197] In a further variation of the present embodiment, the cross-price elasticity of demand is calculated for an item relative to a second item. The cross-price elasticity is the change in demand for an item relative to a change in price for the second item, given starting prices for both items. To obtain the cross-price elasticity, the demand curve for the item with respect to the price of the second item is calculated (e.g. y axis is demand for the item and x axis is the price of the second item). The calculation is as described above with reference to a demand curve, except that the threshold price is the price for the second item at which the user will decide to purchase the first item. It is possible that a threshold price will not exist to satisfy the preceding statement. The cross-price elasticity is then calculated from the demand curve as described above.
[0198] In yet another variation of the present embodiment, a budget elasticity of demand is calculated for an item. The budget elasticity is the change in demand for an item given a change in budget. The budget elasticity may be calculated by determining the relative demand for the item given an assumed budget distribution. Then, the relative demand is recalculated using another budget distribution assumption. In another embodiment, the budget distribution can be shifted up and down by 1 % to determine the percentage increase in demand for each percentage increase in budget.
[0199] In a further variation of the present embodiment, price elasticity is used to maximize revenue. In one example, the price of an item at which price elasticity equals 1 maximizes revenue. Price elasticity can be used to maximize or minimize many business metrics based on known economic equations.
[0200] In a yet further variation of the present embodiment, subpopulation preferences are simulated to determine demand curves for different types of actual users. First, a large set of user decisions are simulated. Then, simulated users are grouped according to their preferences. In one example, users are grouped into four subpopulations based on the attributes of the second and third preference drivers, (e.g. PC2+ PC3+, PC2+ PC3-, PC2- PC 3+, and PC2- PC 3-). In another example, users are grouped into eight subpopulations based on the attributes of the second, third and fourth preference drivers. The relative demand, demand curve, price elasticity, cross-price elasticity, budget elasticity, and any other suitable pricing relationship may be calculated to simulate the purchasing behaviors of the subpopulations. Additional granularity may be obtained by selecting, via programming, additional preference drivers to permit grouping into more subpopulations. Before or after the simulations, the actual preferences of actual users are obtained, as described below. The user's preferences are then matched to one of the subpopulations, and the pricing relationships of the subpopulation are used to make pricing decisions for the user. The simulations may be performed by a reduced dimensionality preference simulation application.
[0201] The preferences of actual users can be obtained in any suitable manner. In one example, user preferences are obtained beforehand with user surveys configured to elicit said preferences, as described above. User preferences may also be obtained based on the user's historical information, such as browsing or purchasing history. A merchant's website may track historical information based on a user's access to the website. Historical information may also be purchased from marketing organizations.
[0202] In another embodiment of a pricing method, simulated pricing information representing pricing relationships generated with a first software program are provided to a second software program. The first software program comprises instructions to reduce the dimensionality of item preference data and simulate the simulated pricing information based on the reduced dimensionality item preference data. The second software program comprises known pricing software configured to implement business drivers or pricing goals. Exemplary pricing goals include defining pricing strategies to increase profit, volume or both, and optimizing mark-downs to clear inventories. Simulated pricing information includes demand curves, relative demand, price elasticities, cross-price elasticities, budget elasticities, and any other pricing relationship information simulated as described above. In one variation thereof, a third software program is provided which is configured to communicate information from the second software program to the first software program so that the first software program can determine the pricing parameters. The second and third software programs may reside in a merchant's physical server while the first software program may reside in a remote server and be accessible to the third software program via an information network. The first software program may be referred to as a reduced dimensionality preference simulation application.
[0203] A merchant may access an API, for example, to access a database of potential purchaser preferences and demand curves. When an actual user is on the website of the merchant, the merchant can access the API, for example, to provide a user identification and information about an item, which may be referred to as the analysis item. The first software program may comprise a reduced dimensionality preference simulation application that matches the user to the user preferences stored in the computer memory, and outputs a demand curve (or any other pricing parameters or relationships) for the analysis item. The demand curve flows through the API to the merchant. The merchant can then make a pricing decision for the analysis item based on the demand curve for the particular user based on existing user preferences of the user. Based on the demand curve, the merchant can select a price for the analysis item to maximize a desired business driver or objective. Exemplary business drivers or objectives include profits, volume, inventory reduction, under-pricing competition on particular items, maximizing the value of promotions, etc.
[0204] More generally, a pricing system may comprise one or more physical servers and a web server software residing in the one or more physical servers and operable to output item information including item prices for viewing by potential customers. The pricing system also includes a pricing software module or application operable to receive simulated pricing information and generate the item information based on the simulated pricing information. The simulated pricing information is generated by a reduced dimensionality preference simulation application operable to reduce the dimensionality of item preference data to obtain item preferences of items, simulate preferences of users with the item preferences, and simulate user decisions with the simulated user preferences to generate the simulated pricing information. The web server software is further operable to process a sales transaction based on the item prices presented for viewing by the potential customers.
[0205] As used herein, an application, algorithm or, processing sequence, is a self consistent sequence of instructions that can be followed to perform a particular task. Computer software, or software, executes an algorithm and can be divided into application software, or application, and systems software. An application executes instructions for an end-user, or user, where systems software consists of low-level programs that operate between an application and hardware. Systems software includes operating systems, compilers, and utilities for managing computer resources. While computing systems typically include systems software and applications software, they may also operate with software that encompasses both application and systems functionality. Applications may use data structures for both inputting information and performing the particular task. Data structures greatly facilitate data management. Data structures are not the information content of a memory, rather they represent specific electronic structural elements which impart a physical organization on the information stored in memory. More than mere abstraction, the data structures are specific electrical or magnetic structural elements in memory which simultaneously represent complex data accurately and provide increased efficiency in computer operation.
[0206] As used herein, a computing device may be a specifically constructed apparatus or may comprise general purpose computers selectively activated or reconfigured by software stored therein. The computing device, whether specifically constructed or general purpose, has at least one processor, or processing device, for executing machine instructions, which may be grouped in processing sequences, and access to memory for storing instructions and other information. Many combinations of processing circuitry and information storing equipment are known by those of ordinary skill in these arts. A processor may be a microprocessor, a digital signal processor ("DSP"), a central processing unit ("CPU"), or other circuit or equivalent capable of interpreting instructions or performing logical actions on information. Memory includes both volatile and non-volatile memory, including temporary and cache, in electronic, magnetic, optical, printed, or other format used to store information. Exemplary computing devices include workstations, personal computers, portable computers, portable wireless devices, mobile devices, and any device including a processor, memory and software. Computing systems encompass one or more computing devices and include computer networks and distributed computing devices.
[0207] As used herein, a computer network, or network, is a system of computers or computing devices interconnected in such a manner that messages may be transmitted between them. Typically one or more computers operate as a "server", a computer with access to large storage devices such as hard disk drives and communication hardware to operate peripheral devices such as printers, routers, or modems. Other computers, termed "workstations", provide a user interface so that users of computer networks can access the network resources, such as shared data files, common peripheral devices, and inter workstation communication.
[0208] As used herein, portable wireless devices include mobile phones, personal digital assistants, tablets, laptop computers, and any other portable devices with wireless connectivity.
[0209] Embodiments of the disclosure may be implemented in "object oriented" software. The "object oriented" software is organized into "objects", each comprising a block of computer instructions describing various procedures to be performed in response to "messages" sent to the object or "events" which occur with the object. Such operations include, for example, the manipulation of variables, the activation of an object by an external event, and the transmission of one or more messages to other objects.
[0210] Messages are sent and received between objects having certain functions and knowledge to carry out processes. Messages are generated in response to user instructions, for example, by a user activating an icon with a mouse pointer or touch-screen to generate an event. Also, messages may be generated by an object in response to the receipt of a message. When one of the objects receives a message, the object carries out an operation (a message procedure) corresponding to the message and, if necessary, returns a result of the operation. Each object has a region where internal states (instance variables) of the object itself are stored and where the other objects are not allowed to access.
[0211] As used herein, the transitional term "comprising", which is synonymous with
"including," or "containing," is inclusive or open-ended and does not exclude additional, unspecified elements or method steps. By contrast, the transitional term "consisting" is a closed term which does not permit addition of unspecified terms.
[0212] Embodiments of an information elicitation and recommendation method and system have been described for eliciting information from users and for recommending items to users based on the elicited information. According to embodiments of the method, item preference data, initially obtained from respondents, is analyzed to identify pseudo-independent items. The pseudo-independent items are used to administer a survey to one or more users. The user's responses define the user's preference drivers. Recommendation items are identified based on the user's preference drivers. The identified items are presented to the user(s). User can also switch-out items presented in the survey questions if they are unfamiliar with the items. The switch-out information can be used to better select questions for the same user in the future so as to not ask redundant questions that degrade the user experience. The foregoing functions are implemented with processing sequences embedded in memory. Some or all of the processing sequences may be embedded in the memory of a system according to one embodiment of the disclosure. Some of the processing sequences may be imbedded in a memory of a user device operable to administer the survey and present the recommendations. Of course, the functions implemented by the processing sequences may be distributed in different arrangements defining variations of the foregoing system embodiments without departing from the teaching of the disclosure. Several embodiments and examples were described with reference to movies for illustration purposes. However, the concepts illustrated by the embodiments and examples are also applicable to any items. Exemplary items include clothing, jewelry, electronics, food items etc.
[0213] Further, embodiments of a method and system for generating pricing information have been described. In some embodiments, preference drivers enable the system to simulate pricing information for making pricing decisions to maximize income or profit or both. In other embodiments, pricing relationships and parameters characteristic of the pricing relationships are provided to known pricing software and the pricing software makes the pricing decision based on business drivers and objectives. The pricing information is generated by simulating user preferencesusing reduced dimensionality preference data to simulate user decisions. In this manner, merchants can price items in a targeted manner based on user preferences more efficiently than, for example, collecting implicit information about users or target pricing based on user characteristics which do not include preferences, such as demographic and geographic information, which may be less predictive of purchasing behavior.
[0214] While this disclosure has been described as having exemplary designs, the present disclosure can be further modified within the spirit and scope of this disclosure. This application is therefore intended to cover any variations, uses, or adaptations of the disclosure using its general principles. Further, this application is intended to cover such departures from the present disclosure as come within known or customary practice in the art to which this disclosure pertains and which fall within the limits of the appended claims.

Claims

Claims:
1. A method for eliciting information from a user, the method comprising:
by a processing device processing instructions embedded in one or more non-transitory computer readable medium, reducing the dimensionality of item preference data corresponding to items and identifying pseudo-independent items, from the items, based on the reduced dimensionality item preference data; and
outputting information for presenting questions based on the pseudo-independent items, the questions configured to elicit explicit pseudo independent items relative information from the user; and
receiving responses.
2. A method as in claim 1 , wherein the responses include explicit pseudo independent items relative information.
3. A method as in claim 1 , wherein each of the questions includes at least two pseudo- independent items and each of the responses includes an item selection.
4. A method as in claim 1 , wherein the outputting and the receiving are performed by processing application programming interface (API) instructions.
5. A method as in claim 1 , further comprising, by a user device application, presenting the questions and outputting the responses.
6. A method as in claim 1 , further comprising generating second item preference data for additional items and performing a regression computation based on the second item preference data to fold-in the additional items into the item preference data.
7. A method as in claim 6, further comprising generating third item preference data from responses from respondents, the third item preference data being different than the item preference data, wherein the regression computation is based on the second item preference data and the third item preference data.
8. A method as in claim 1 , further comprising composing a user preference vector based on the responses; and outputting an item recommendation based on the user preference vector.
9. A method as in claim 8, further comprising computing item scores for the items based on the user preference vector, wherein the item recommendation is based on the item scores.
10. A method as in claim 1 , further comprising outputting the information to elicit the explicit pseudo independent items relative information from users in a group, and outputting an item recommendation based on the responses from the users in the group.
1 1 . A method as in claim 10, wherein the questions are the same for each user in the group.
12. A method as in claim 10, further comprising composing user preference vectors for the users in the group based on the responses, composing user item scores for at least some of the items, and determining group item scores based on the user item scores, wherein the item recommendation is based on the group item score of a recommended item.
13. A method as in claim 12, wherein determining group item scores comprises, for each of the at least some of the items, determining the user item scores and selecting from the user item scores a least misery score.
14. A method as in claim 12, wherein determining group item scores comprises, for each of the at least some of the items, determining user item scores and averaging the user item scores.
15. A method as in claim 1 , further comprising receiving item reviews from reviewers, identifying from the reviewers those reviewers whose preferences are similar to the user's preferences, and outputting an item recommendation including a recommended item and the item reviews received from the identified reviewers and relating to the recommended item.
16. A method as in claim 15, wherein identifying from the reviewers those reviewers whose preferences are similar to the user's preferences includes comparing a user preference vector and reviewer preference vectors.
17. A method as in claim 1 , further comprising calculating a user preference vector based on the responses; filtering the items with a content driver; selecting a recommended item, from the filtered items, based on the user preference vector; and outputting an item recommendation including the recommended item.
18. A method as in claim 17, wherein filtering the items comprises filtering the items from the item preference data to exclude some of the items before reducing the dimensionality of the item preference data.
19. A method as in claim 17, wherein filtering the items comprises filtering the items after reducing the dimensionality of the item preference data but before identifying the pseudo- independent items.
20. A method as in claim 1 , wherein the item preference data comprises preference data from respondents and a content driver, wherein dimensionality reduction has a content discriminating effect on the pseudo-independent items due to the content driver.
21 . A method as in claim 20, wherein items are movies and the content driver reflects whether the user has watched the movies, the discriminating effect discriminates likely watched movies from likely not watched movies, such that the questions will relate to more likely watched movies than if the content driver were not included in the item preference data.
22. A method as in claim 20, wherein the content driver reflects whether the user experienced the items, and the discriminating effect discriminates likely experienced items from likely not experienced items, such that the questions will relate to more likely experienced items than if the content driver were not included in the item preference data.
23. A method as in claim 1 , wherein reducing the dimensionality of the item preference data generates item preference vectors corresponding to the items, and the method further comprises generating increased dimensionality item preference vectors by appending a content driver to the item preference vectors.
24. A method as in claim 23, further comprising calculating a user preference vector based on the responses; selecting a recommended item based on the user preference vector and the increased dimensionality item preference vectors; and outputting a recommendation including the recommended item.
25. A method as in claim 23, wherein the items are movies, and the content driver includes a genre selected from the group comprising one or more of action, drama, comedy, horror/thriller, romance, and animated, wherein the content driver discriminates the items based on the genre.
26. A method as in claim 1 , further comprising calculating item scores for the items, outputting an item recommendation including a recommended item and a preference value indicative of a predicted preference strength of the user for the recommended item, the item recommendation and the preference value based on the item scores, receiving an idiosyncratic feedback from the user indicative of the user's actual preference strength, and adjusting a future item score of the recommended item by an idiosyncratic amount related to the idiosyncratic feedback.
27. A method as in claim 26, wherein the idiosyncratic amount is a predetermined amount.
28. A method as in claim 27, wherein the idiosyncratic amount is cumulative.
29. A method as in claim 1 , wherein the questions configured to elicit explicit pseudo independent items relative information from the user are operable to determine a user preference vector, further comprising outputting idiosyncratic questions configured to elicit idiosyncratic preferences.
30. A method as in claim 29, further comprising selecting a recommended item based on the user preference vector and the idiosyncratic preferences; and outputting a recommendation including the recommended item.
31 . A method as in claim 29, wherein the questions are further configured to elicit experience information that reflects whether the user experienced the items, further comprising storing the experience information in a content driver.
32. A method as in claim 31 , wherein the content driver is opearable to discriminate likely experienced items from not likely experienced items.
33. A method as in claim 1 , further comprising saving the responses in a preference profile; and outputting advertisements for the user based on the preference profile.
34. A method for eliciting information from a user, the system comprising:
by a processing device processing instructions embedded in one or more non-transitory computer readable medium, reducing the dimensionality of item preference data to generate a feature matrix comprising item preference vectors corresponding to items; and identifying pseudo-independent items from the items based on the item preference vectors;
outputting information for presenting questions configured to elicit explicit pseudo independent items relative information from the user; and
receiving a response to each of the questions.
35. A method for serving advertisements to a user, the method comprising:
by a processing device processing instructions embedded in one or more non-transitory computer readable medium, identifying the user when the user accesses a website; accessing a user preference profile of the user, the preference profile based on pseudo independent items relative information elicited from the user;
identifying preferred items based on item preference vectors and the user preference profile, the item preference vectors resulting from dimensionality reduction of item preference data corresponding to the items; and
serving advertisements relating to the preferred items.
36. A system for eliciting information from a user, the system comprising:
a processing device;
one or more non-transitory computer readable medium;
processing instructions embedded in the non-transitory computer readable medium, the processing instructions configured to elicit information from the user when processed by the processing device, the processing instructions including:
first processing instructions configured for reducing the dimensionality of item preference data corresponding to items and identifying pseudo-independent items, from the items, based on the reduced dimensionality item preference data; and
second processing instructions configured for outputting information for presenting questions and receiving responses, the questions based on the pseudo-independent items to elicit explicit pseudo independent items relative information from the user.
37. A system as in claim 36, wherein the responses include explicit pseudo independent items relative information.
38. A system as in claim 36, wherein each of the questions includes at least two pseudo- independent items and each of the responses includes an item selection.
39. A system as in claim 36, further comprising an application programming interface (API) including the second processing instructions.
40. A system as in claim 36, further comprising a user device application operable to present the questions and output the responses.
41 . A system as in claim 36, the processing instructions further including third processing instructions configured for generating second item preference data for additional items and performing a regression computation based on the second item preference data to fold-in the additional items into the item preference data.
42. A system as in claim 41 , the processing instructions further including fourth processing instructions configured for generating third item preference data from responses from respondents, the third item preference data being different than the item preference data, wherein the regression computation is based on the second item preference data and the third item preference data.
43. A system as in claim 36, wherein the first processing instructions are further configured for composing a user preference vector based on the responses and the second processing instructions are further configured for outputting an item recommendation based on the user preference vector.
44. A system as in claim 43, wherein the first processing instructions are further configured for computing item scores for the items based on the user preference vector, wherein the item recommendation is based on the item scores.
45. A system as in claim 36, wherein the first processing instructions are further configured for outputting the information to elicit the explicit pseudo independent items relative information from users in a group, and outputting an item recommendation based on the responses from the users in the group.
46. A system as in claim 45, wherein the questions are the same for each user in the group.
47. A system as in claim 45, wherein the first processing instructions are further configured for composing user preference vectors for the users in the group based on the responses, composing user item scores for at least some of the items, and determining group item scores based on the user item scores, wherein the item recommendation is based on the group item score of a recommended item.
48. A system as in claim 47, wherein the first processing instructions are further configured for determining user item scores for each of the at least some of the items and selecting from the user item scores a least misery score.
49. A system as in claim 47, wherein the first processing instructions are further configured for determining the user item scores and averaging the user item scores to determine the group item score.
50. A system as in claim 36, the processing instructions further including fifth processing instructions configured for receiving item reviews from reviewers and identifying from the reviewers those reviewers whose preferences are similar to the user's preferences, wherein the second processing instructions are further configured for outputting an item recommendation including a recommended item and the item reviews received from the identified reviewers and relating to the recommended item.
51 . A system as in claim 50, wherein the fifth processing instructions are further configured for comparing a user preference vector and reviewer preference vectors.
52. A system as in claim 36, wherein the first processing instructions are further configured for calculating a user preference vector based on the responses, filtering the items with a content driver, and selecting a recommended item, from the filtered items, based on the user preference vector; and wherein the second processing instructions are further configured for outputting an item recommendation including the recommended item.
53. A system as in claim 52, wherein the first processing instructions are further configured for excluding some of the items before reducing the dimensionality of the item preference data.
54. A system as in claim 52, wherein the first processing instructions are further configured for filtering the items after reducing the dimensionality of the item preference data but before identifying the pseudo-independent items.
55. A system as in claim 36, wherein the item preference data comprises preference data from respondents and a content driver, wherein dimensionality reduction has a content discriminating effect on the pseudo-independent items due to the content driver.
56. A system as in claim 55, wherein items are movies and the content driver reflects whether the user has watched the movies, the discriminating effect discriminates likely watched movies from likely not watched movies, such that the questions will relate to more likely watched movies than if the content driver were not included in the item preference data.
57. A system as in claim 55, wherein the content driver reflects whether the user experienced the items, and the discriminating effect discriminates likely experienced items from likely not experienced items, such that the questions will relate to more likely experienced items than if the content driver were not included in the item preference data.
58. A system as in claim 36, wherein reducing the dimensionality of the item preference data generates item preference vectors corresponding to the items, and the processing instructions further including a sixth processing sequence configured for appending a content driver to the item preference vectors to generate increased dimensionality item preference vectors.
59. A system as in claim 58, wherein the first processing instructions are further configured for calculating a user preference vector based on the responses, and selecting a recommended item based on the user preference vector and the increased dimensionality item preference vectors; and the second processing instructions are further configured for outputting a recommendation including the recommended item.
60. A system as in claim 58, wherein the items are movies, and the content driver includes a genre selected from the group comprising one or more of action, drama, comedy, horror/thriller, romance, and animated, wherein the content driver discriminates the items based on the genre.
61 . A system as in claim 36, wherein the first processing instructions are further configured for calculating item scores for the items, the second processing instructions are further configured for outputting an item recommendation including a recommended item and a preference value indicative of a predicted preference strength of the user for the recommended item, the item recommendation and the preference value based on the item scores, and receiving an idiosynchratic feedback from the user indicative of the user's actual preference strength, and the first processing instructions are further configured for adjusting a future item score of the recommended item by an idiosyncratic amount related to the idiosyncratic feedback.
62. A system as in claim 61 , wherein the idiosyncratic amount is a predetermined amount.
63. A system as in claim 62, wherein the idiosyncratic amount is cumulative.
64. A system as in claim 36, wherein the questions configured to elicit explicit pseudo independent items relative information from the user are operable to determine a user preference vector, the second processing instructions further configured for outputting idiosyncratic questions configured to elicit idiosyncratic preferences.
65. A system as in claim 64, the first processing instructions further configured for selecting a recommended item based on the user preference vector and the idiosyncratic preferences; and the second processing instructions further configured for outputting a recommendation including the recommended item.
66. A system as in claim 64, wherein the questions are further configured to elicit experience information that reflects whether the user experienced the items, the first processing instructions further configured for storing the experience information in a content driver.
67. A system as in claim 66, wherein the content driver is opearable to discriminate likely experienced items from not likely experienced items.
68. A system as in claim 36, the first processing instructions further configured for saving the responses in a preference profile; and the second processing instructions further configured for outputting advertisements for the user based on the preference profile.
69. A system for eliciting information from a user, the system comprising:
a processing device;
one or more non-transitory computer readable medium; processing instructions embedded in the non-transitory computer readable medium, the processing instructions configured to elicit information from the user when processed by the processing device, the processing instructions including:
first processing instructions reducing the dimensionality of item preference data to generate a feature matrix comprising item preference vectors corresponding to items, and identifying pseudo-independent items from the items based on the item preference vectors; second processing instructions configured for outputting information for presenting questions configured to elicit explicit pseudo independent items relative information from the user and receiving a response to each of the questions.
70. A system for serving advertisements to a user, the system comprising:
a processing device;
one or more non-transitory computer readable medium;
processing instructions embedded in the non-transitory computer readable medium, the processing instructions configured to serve advertisements to a user when processed by the processing device, the processing instructions including:
first processing instructions configured for identifying the user when the user accesses a website; accessing a user preference profile of the user, the preference profile based on pseudo independent items relative information elicited from the user; identifying preferred items based on item preference vectors and the user preference profile, the item preference vectors resulting from dimensionality reduction of item preference data corresponding to the items; and
second processing instructions configured for serving advertisements relating to the preferred items.
71 . A non-transitory computer readable medium comprising processing instructions embedded therein, the processing instructions configured to elicit information from the user when processed by a processing device, the processing instructions including:
first processing instructions configured for reducing the dimensionality of item preference data corresponding to items and identifying pseudo-independent items, from the items, based on the reduced dimensionality item preference data; and second processing instructions configured for outputting information for presenting questions and receiving responses, the questions based on the pseudo-independent items to elicit explicit pseudo independent items relative information from the user.
72. A non-transitory computer readable medium as in claim 71 , wherein the responses include explicit pseudo independent items relative information.
73. A non-transitory computer readable medium as in claim 71 , wherein each of the questions includes at least two pseudo-independent items and each of the responses includes an item selection.
74. A non-transitory computer readable medium as in claim 71 , further comprising an application programming interface (API) including the second processing instructions.
75. A non-transitory computer readable medium as in claim 71 , further comprising a user device application operable to present the questions and output the responses.
76. A non-transitory computer readable medium as in claim 71 , the processing instructions further including third processing instructions configured for generating second item preference data for additional items and performing a regression computation based on the second item preference data to fold-in the additional items into the item preference data.
77. A non-transitory computer readable medium as in claim 76, the processing instructions further including fourth processing instructions configured for generating third item preference data from responses from respondents, the third item preference data being different than the item preference data, wherein the regression computation is based on the second item preference data and the third item preference data.
78. A non-transitory computer readable medium as in claim 71 , wherein the first processing instructions are further configured for composing a user preference vector based on the responses and the second processing instructions are further configured for outputting an item recommendation based on the user preference vector.
79. A non-transitory computer readable medium as in claim 78, wherein the first processing instructions are further configured for computing item scores for the items based on the user preference vector, wherein the item recommendation is based on the item scores.
80. A non-transitory computer readable medium as in claim 71 , wherein the first processing instructions are further configured for outputting the information to elicit the explicit pseudo independent items relative information from users in a group, and outputting an item recommendation based on the responses from the users in the group.
81 . A non-transitory computer readable medium as in claim 80, wherein the questions are the same for each user in the group.
82. A non-transitory computer readable medium as in claim 80, wherein the first processing instructions are further configured for composing user preference vectors for the users in the group based on the responses, composing user item scores for at least some of the items, and determining group item scores based on the user item scores, wherein the item
recommendation is based on the group item score of a recommended item.
83. A non-transitory computer readable medium as in claim 82, wherein the first processing instructions are further configured for determining user item scores for each of the at least some of the items and selecting from the user item scores a least misery score.
84. A non-transitory computer readable medium as in claim 82, wherein the first processing instructions are further configured for determining the user item scores and averaging the user item scores to determine the group item score.
85. A non-transitory computer readable medium as in claim 71 , the processing instructions further including fifth processing instructions configured for receiving item reviews from reviewers and identifying from the reviewers those reviewers whose preferences are similar to the user's preferences, wherein the second processing instructions are further configured for outputting an item recommendation including a recommended item and the item reviews received from the identified reviewers and relating to the recommended item.
86. A non-transitory computer readable medium as in claim 85, wherein the fifth processing instructions are further configured for comparing a user preference vector and reviewer preference vectors.
87. A non-transitory computer readable medium as in claim 71 , wherein the first processing instructions are further configured for calculating a user preference vector based on the responses, filtering the items with a content driver, and selecting a recommended item, from the filtered items, based on the user preference vector; and wherein the second processing instructions are further configured for outputting an item recommendation including the recommended item.
88. A non-transitory computer readable medium as in claim 87, wherein the first processing instructions are further configured for excluding some of the items before reducing the dimensionality of the item preference data.
89. A non-transitory computer readable medium as in claim 87, wherein the first processing instructions are further configured for filtering the items after reducing the dimensionality of the item preference data but before identifying the pseudo-independent items.
90. A non-transitory computer readable medium as in claim 71 , wherein the item preference data comprises preference data from respondents and a content driver, wherein dimensionality reduction has a content discriminating effect on the pseudo-independent items due to the content driver.
91 . A non-transitory computer readable medium as in claim 90, wherein items are movies and the content driver reflects whether the user has watched the movies, the discriminating effect discriminates likely watched movies from likely not watched movies, such that the questions will relate to more likely watched movies than if the content driver were not included in the item preference data.
92. A non-transitory computer readable medium as in claim 90, wherein the content driver reflects whether the user experienced the items, and the discriminating effect discriminates likely experienced items from likely not experienced items, such that the questions will relate to more likely experienced items than if the content driver were not included in the item preference data.
93. A non-transitory computer readable medium as in claim 71 , wherein reducing the dimensionality of the item preference data generates item preference vectors corresponding to the items, and the processing instructions further including sixth processing instructions configured for appending a content driver to the item preference vectors to generate increased dimensionality item preference vectors.
94. A non-transitory computer readable medium as in claim 93, wherein the first processing instructions are further configured for calculating a user preference vector based on the responses, and selecting a recommended item based on the user preference vector and the increased dimensionality item preference vectors; and the second processing instructions are further configured for outputting a recommendation including the recommended item.
95. A non-transitory computer readable medium as in claim 94, wherein the items are movies, and the content driver includes a genre selected from the group comprising one or more of action, drama, comedy, horror/thriller, romance, and animated, wherein the content driver discriminates the items based on the genre.
96. A non-transitory computer readable medium as in claim 71 , wherein the first processing instructions are further configured for calculating item scores for the items, the second processing instructions are further configured for outputting an item recommendation including a recommended item and a preference value indicative of a predicted preference strength of the user for the recommended item, the item recommendation and the preference value based on the item scores, and receiving an idiosyncratic feedback from the user indicative of the user's actual preference strength, and the first processing instructions are further configured for adjusting a future item score of the recommended item by an idiosyncratic amount related to the idiosyncratic feedback.
97. A non-transitory computer readable medium as in claim 96, wherein the idiosyncratic amount is a predetermined amount.
98. A non-transitory computer readable medium as in claim 97, wherein the idiosyncratic amount is cumulative.
99. A non-transitory computer readable medium as in claim 71 , wherein the questions configured to elicit explicit pseudo independent items relative information from the user are operable to determine a user preference vector, the second processing instructions further configured for outputting idiosyncratic questions configured to elicit idiosyncratic preferences.
100. A non-transitory computer readable medium as in claim 99, the first processing instructions further configured for selecting a recommended item based on the user preference vector and the idiosyncratic preferences; and the second processing instructions further configured for outputting a recommendation including the recommended item.
101. A non-transitory computer readable medium as in claim 100, wherein the questions are further configured to elicit experience information that reflects whether the user experienced the items, the first processing instructions further configured for storing the experience information in a content driver.
102. A non-transitory computer readable medium as in claim 101 , wherein the content driver is opearable to discriminate likely experienced items from not likely experienced items.
103. A non-transitory computer readable medium as in claim 71 , the first processing instructions further configured for saving the responses in a preference profile; and the second processing instructions further configured for outputting advertisements for the user based on the preference profile.
104. A non-transitory computer readable medium comprising processing instructions embedded therein, the processing instructions configured to elicit information from the user when processed by a processing device, the processing instructions including: first processing instructions reducing the dimensionality of item preference data to generate a feature matrix comprising item preference vectors corresponding to items, and identifying pseudo-independent items from the items based on the item preference vectors; and second processing instructions configured for outputting information for presenting questions configured to elicit explicit pseudo independent items relative information from the user and receiving a response to each of the questions.
105. A non-transitory computer readable medium comprising processing instructions embedded therein, the processing instructions configured to serve advertisements to a user when processed by a processing device, the processing instructions including:
first processing instructions configured for identifying the user when the user accesses a website; accessing a user preference profile of the user, the preference profile based on pseudo independent items relative information elicited from the user; and identifying preferred items based on item preference vectors and the user preference profile, the item preference vectors resulting from dimensionality reduction of item preference data corresponding to the items; and second processing instructions configured for serving advertisements relating to the preferred items.
106. A pricing method executable at least in part by a processing device according to processing instructions embedded in one or more non-transitory computer readable medium, the method comprising:
accessing a data-structure including a plurality of items, item vectors and item prices, the item vectors and item prices corresponding to the plurality of items;
computing a user preference vector; and
identifying, from the plurality of items based on the user preference vector, at least one of a preference-price efficient item and a preference-price inefficient item.
107. A pricing method as in claim 106, further comprising outputting a recommendation for the user, the recommendation including the preference-price efficient item.
108. A pricing method as in claim 107, wherein the recommendation includes preference- price efficient items and excludes the preference-price inefficient item.
109. A pricing method as in claim 107, wherein the recommendation only includes preference-price efficient items.
1 10. A pricing method as in claim 107, wherein the recommendation is based on a predetermined price and includes the most preference-price efficient item at the predetermined price.
1 1 1. A pricing method as in claim 1 10, wherein the recommendation includes at most a predetermined number of items at each of a plurality of predetermined prices, the included items comprising, to the extent available, preference-price efficient items.
1 12. A pricing method as in claim 106, further comprising computing a discount amount by which the preference-price inefficient item can be discounted to become preference-price efficient.
1 13. A method as in claim 1 12, further comprising discounting the preference-price inefficient item at least by the discount amount.
1 14. A method as in claim 1 12, further comprising identifying a subset population from a total population based on characteristics of the user; and discounting the preference-price inefficient item at least by the discount amount for the subset population.
1 15. A method as in claim 1 14, further comprising discounting the preference-price inefficient item only for the subset population.
1 16. A method as in claim 106, further comprising computing an up-charge amount by which the preference-price efficient item can be up-charged without becoming preference-price inefficient
1 17. A method as in claim 1 16, further comprising up-charging the preference-price efficient item at most by the up-charge amount.
1 18. A method as in claim 1 16, further comprising identifying a subset population from a total population based on characteristics of the user; and up-charging the preference-price efficient item at most by the up-charge amount for the subset population.
1 19. A method as in claim 1 18, further comprising up-charging the preference-price efficient item only for the subset population.
120. A method as in claim 1 16, further comprising computing a discount amount by which the preference-price inefficient item can be discounted to become preference-price efficient; and up- charging the preference-price efficient item and/or discounting the preference-price inefficient item to increase sales and/or revenue.
121. A pricing system comprising:
a processing device;
a non-transitory computer readable medium; and
a computer program stored in the non-transitory computer readable medium, the computer program operable to cause the processing device to:
access a data-structure including a plurality of items, item vectors and item prices, the item vectors and item prices corresponding to the plurality of items;
compute a user preference vector; and
identify, from the plurality of items, at least one of a preference-price efficient item and a preference-price inefficient item.
122. A system as in claim 121 , wherein the computer program is further operable to cause the processing device to output a recommendation for the user, the recommendation including the preference-price efficient item.
123. A system as in claim 122, wherein the recommendation includes preference-price efficient items and excludes the preference-price inefficient item.
124. A system as in claim 122, wherein the recommendation only includes preference-price efficient items.
125. A system as in claim 122, wherein the recommendation is based on a predetermined price and includes the most preference-price efficient item at the predetermined price.
126. A pricing system as in claim 121 , wherein the computer program is further operable to cause the processing device to compute a discount amount by which the preference-price inefficient item can be discounted to become preference-price efficient.
127. A system as in claim 126, wherein the computer program is further operable to cause the processing device to:
identify a subset population from a total population based on characteristics of the user; receive an approved discount amount based on the computed discount amount; and discount the preference-price inefficient item by the approved discount amount for the subset population.
128. A system as in claim 127, wherein the computer program is further operable to cause the processing device to discount the preference-price inefficient item only for the subset population.
129. A system as in claim 121 , wherein the computer program is further operable to cause the processing device to:
compute, based on the user preference vector, preference scores for the plurality of items;
identify, from the plurality of items, a preference-price efficient item based on the preference scores and the item prices; and
compute an up-charge amount by which the preference-price efficient item can be up- charged without becoming preference-price inefficient.
130. A system as in claim 129, wherein the computer program is further operable to cause the processing device to:
identify a subset population from a total population based on characteristics of the user; receive an approved up-charge amount based on the computed up-charge amount; and up-charge the preference-price efficient item by the approved up-charge amount for the subset population.
131. A system in claim 129, wherein the computer program is further operable to cause the processing device to compute a discount amount by which the preference-price inefficient item can be discounted to become preference-price efficient; to receive pricing instructions based on the computed discount amount and the computed up-charge amount; and discount the preference-price inefficient item and/or up-charge the preference-price efficient item based on the pricing instructions.
132. A system as in claim 131 , wherein the computer program is further operable to cause the processing device to identify a subset population from a total population based on characteristics of the user; and discount the preference-price inefficient item and/or up-charge the preference-price efficient item based on the pricing instructions for the subset population.
133. A non-transitory computer readable medium having processing instructions embedded therein configured to implement a pricing method when executed by a processing device, the method comprising:
accessing a data-structure including a plurality of items, item vectors and item prices, the item vectors and item prices corresponding to the plurality of items;
computing a user preference vector; and
identifying, from the plurality of items based on the user preference vector, at least one of a preference-price efficient item and a preference-price inefficient item.
134. A non-transitory computer readable medium as in claim 133, wherein identifying at least one of a preference-price efficient item and a preference-price inefficient item includes computing preference scores for the plurality of items and comparing the preference scores and item prices to identify the at least one item.
135. A non-transitory computer readable medium as in claim 134, wherein the preference- price efficient item is the item at or below a given price which has a high score relative to other items at or below the given price, and the preference-price inefficient item is the item above the given price which has a low score relative to the other items above the given price.
136. A pricing method executable at least in part by a processing device according to processing instructions embedded in one or more non-transitory computer readable medium, the method comprising:
accessing item preference data;
reducing the dimensionality of the item preference data to obtain item preferences of items;
simulating preferences of users with the item preferences; and
simulating user decisions with the simulated user preferences to generate simulated pricing information.
137. A method as in claim 136, wherein the item preferences are based on a predetermined number of preference drivers, further comprising calculating variation unexplained by the predetermined number of preference drivers.
138. A method as in claim 136, wherein the simulated pricing information comprises a price for an item that maximizes a desired business driver.
139. A method as in claim 136, further comprising receiving a price limit, wherein the simulated pricing information comprises an item priced below the price limit.
140. A method as in claim 136, further comprising receiving a trade-off value, wherein the simulated preferences of users are based on item prices including the trade-off value.
141. A method as in claim 136, further comprising assuming a probability that an item will not result in a business transaction, and identifying a second item using the probability.
142. A method as in claim 136, further comprising assuming a probability that items similar to other items are less likely to generate a business transaction, and identifying a second item using the probability.
143. A method as in claim 142, further comprising determining that the items are similar to the other items based on content attributes associated with the items and the other items.
144. A method as in claim 136, wherein the simulated pricing information comprises relative demand for an item.
145. A method as in claim 136, wherein the simulated pricing information comprises price elasticity for an item.
146. A method as in claim 136, wherein the simulated pricing information comprises cross- price elasticity for demand of an item and a price of a second item.
147. A method as in claim 136, wherein the simulated pricing information comprises budget elasticity for an item.
148. A method as in claim 136, wherein the simulated pricing information comprises a demand curve for an item.
149. A method as in claim 148, wherein the simulated pricing information comprises additional demand curves for the item, the demand curves corresponding to different subpopulations.
150. A method as in claim 149, further comprising receiving a user identification to identify a user, selecting one of the demand curves based on user preferences of the user, and outputting the selected demand curve.
151. A method as in claim 150, wherein the receiving and the outputting is performed through an application programming interface.
152. A method as in claim 149, further comprising determining, for each subpopulation, a price for the item based on the corresponding demand curve.
153. A method as in claim 149, further comprising selecting one of the demand curves based on user preferences of a user and determining a price for an item based on the selected demand curve.
154. A method as in claim 153, further comprising charging the price to the user.
155. A method as in claim 136, wherein the simulated pricing information comprises price elasticities for an item, the price elasticities corresponding to different subpopulations.
156. A method as in claim 155, further comprising selecting one of the price elasticities based on user preferences of a user.
157. A method as in claim 156, further comprising outputting the selected price elasticity or a price for an item determined from the price elasticity.
158. A method as in claim 157, wherein the outputting is performed through an application programming interface.
159. A non-transitory computer readable medium having processing instructions embedded therein configured to implement a pricing method when executed by a processing device, the method comprising:
accessing item preference data;
reducing the dimensionality of the item preference data to obtain item preferences of items;
simulating preferences of users with the item preferences; and
simulating user decisions with the simulated user preferences to generate simulated pricing information.
160. A pricing method executable at least in part by a processing device according to processing instructions embedded in one or more non-transitory computer readable medium, the method comprising:
identifying a user based on website access information; outputting information about the user to a reduced dimensionality preference simulation application via an information network, the reduced dimensionality preference simulation application configured to simulate preferences of users based on reduced dimensionality item preference data and generate simulated pricing information with the information about the user and the simulated preferences of users;
receiving the simulated pricing information from the reduced dimensionality preference simulation application; and
offering a price for an item to the user based on the simulated pricing information.
161. A pricing method as in claim 160, wherein the simulated pricing information comprises at least one of relative demand for an item; price elasticity for an item; cross-price elasticity for demand of an item and a price of a second item; a demand curve for an item; and demand curves for an item corresponding to different subpopulations.
162. A pricing system comprising:
one or more physical servers;
a web server software residing in the one or more physical servers and operable to output item information including item prices for viewing by potential customers; and
a pricing software module operable to receive simulated pricing information and generate the item information based on the simulated pricing information, the simulated pricing information generated by a reduced dimensionality preference simulation application operable to reduce the dimensionality of item preference data to obtain item preferences of items, simulate preferences of users with the item preferences, and simulate user decisions with the simulated user preferences to generate the simulated pricing information;
wherein the web server software is further operable to process an item transaction based on the item prices presented for viewing by the potential customers.
PCT/US2013/043782 2012-06-01 2013-05-31 System and method for eliciting information and generating pricing information WO2013181636A2 (en)

Applications Claiming Priority (14)

Application Number Priority Date Filing Date Title
US201261654119P 2012-06-01 2012-06-01
US61/654,119 2012-06-01
US201261683752P 2012-08-16 2012-08-16
US201261683750P 2012-08-16 2012-08-16
US61/683,752 2012-08-16
US61/683,750 2012-08-16
US13/795,168 US20130325627A1 (en) 2012-06-01 2013-03-12 System and method for eliciting information
US13/795,168 2013-03-12
US201361800338P 2013-03-15 2013-03-15
US61/800,338 2013-03-15
US13/905,625 US20130325555A1 (en) 2012-06-01 2013-05-30 System and method for generating pricing information
US13/905,645 2013-05-30
US13/905,625 2013-05-30
US13/905,645 US20130325556A1 (en) 2012-06-01 2013-05-30 System and method for generating pricing information

Publications (2)

Publication Number Publication Date
WO2013181636A2 true WO2013181636A2 (en) 2013-12-05
WO2013181636A3 WO2013181636A3 (en) 2014-03-20

Family

ID=49674097

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2013/043782 WO2013181636A2 (en) 2012-06-01 2013-05-31 System and method for eliciting information and generating pricing information

Country Status (1)

Country Link
WO (1) WO2013181636A2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108090110A (en) * 2016-11-21 2018-05-29 奥多比公司 Recommend software operation to create image and the effect that image is recommended to be acted with demo disk demo software
WO2020016481A1 (en) * 2018-07-18 2020-01-23 Seulo Palvelut Oy Computation of item targeting on an electronic processing platform
US10832304B2 (en) 2016-01-15 2020-11-10 Target Brands, Inc. Resorting product suggestions for a user interface
WO2021251599A1 (en) * 2020-06-09 2021-12-16 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
CN116738067A (en) * 2023-08-16 2023-09-12 湖南华菱电子商务有限公司 Vendor recommendation method and system based on big data

Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030126097A1 (en) * 2002-01-02 2003-07-03 Bin Zhang Method and apparatus for determining prices that maximize revenue
WO2006055022A2 (en) * 2004-11-12 2006-05-26 Digonex Technologies, Inc. Dynamic pricing system with graphical user interface
US20060190475A1 (en) * 2004-12-20 2006-08-24 Norman Shi Group polling for consumer review
US20060195345A1 (en) * 2001-05-04 2006-08-31 Demandtec, Inc. Selective merchandise price optimization
US20060212362A1 (en) * 2005-01-21 2006-09-21 Donsbach Aaron M Method and system for producing item comparisons
US20080235073A1 (en) * 2007-03-19 2008-09-25 David Cavander Automatically prescribing total budget for marketing and sales resources and allocation across spending categories
US20090171932A1 (en) * 2007-12-27 2009-07-02 Sihem Amer Yahia System and method for annotation and ranking of reviews personalized to prior user experience
US20090327167A1 (en) * 2005-07-29 2009-12-31 Zimmerman & Partner Method for the valuation of intellectual property rights
US20100332431A1 (en) * 2007-11-09 2010-12-30 Motorola, Inc. Method and apparatus for modifying a user preference profile
US7921030B1 (en) * 2006-04-04 2011-04-05 SignalDemand, Inc. Profit optimization system for supply chains with limited parts availability
US20110184831A1 (en) * 2008-06-02 2011-07-28 Andrew Robert Dalgleish An item recommendation system
US20120020650A1 (en) * 2010-07-23 2012-01-26 Verizon Patent And Licensing, Inc. Systems and methods for preventing duplicative media content recordings
US20120030159A1 (en) * 2010-07-30 2012-02-02 Gravity Research & Development Kft. Recommender Systems and Methods
US20120078829A1 (en) * 2010-09-28 2012-03-29 Inveni Combination domain knowledge and correlation media recommender

Patent Citations (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060195345A1 (en) * 2001-05-04 2006-08-31 Demandtec, Inc. Selective merchandise price optimization
US20030126097A1 (en) * 2002-01-02 2003-07-03 Bin Zhang Method and apparatus for determining prices that maximize revenue
WO2006055022A2 (en) * 2004-11-12 2006-05-26 Digonex Technologies, Inc. Dynamic pricing system with graphical user interface
US20060190475A1 (en) * 2004-12-20 2006-08-24 Norman Shi Group polling for consumer review
US20060212362A1 (en) * 2005-01-21 2006-09-21 Donsbach Aaron M Method and system for producing item comparisons
US20090327167A1 (en) * 2005-07-29 2009-12-31 Zimmerman & Partner Method for the valuation of intellectual property rights
US7921030B1 (en) * 2006-04-04 2011-04-05 SignalDemand, Inc. Profit optimization system for supply chains with limited parts availability
US20080235073A1 (en) * 2007-03-19 2008-09-25 David Cavander Automatically prescribing total budget for marketing and sales resources and allocation across spending categories
US20100332431A1 (en) * 2007-11-09 2010-12-30 Motorola, Inc. Method and apparatus for modifying a user preference profile
US20090171932A1 (en) * 2007-12-27 2009-07-02 Sihem Amer Yahia System and method for annotation and ranking of reviews personalized to prior user experience
US20110184831A1 (en) * 2008-06-02 2011-07-28 Andrew Robert Dalgleish An item recommendation system
US20120020650A1 (en) * 2010-07-23 2012-01-26 Verizon Patent And Licensing, Inc. Systems and methods for preventing duplicative media content recordings
US20120030159A1 (en) * 2010-07-30 2012-02-02 Gravity Research & Development Kft. Recommender Systems and Methods
US20120078829A1 (en) * 2010-09-28 2012-03-29 Inveni Combination domain knowledge and correlation media recommender

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10832304B2 (en) 2016-01-15 2020-11-10 Target Brands, Inc. Resorting product suggestions for a user interface
CN108090110A (en) * 2016-11-21 2018-05-29 奥多比公司 Recommend software operation to create image and the effect that image is recommended to be acted with demo disk demo software
CN108090110B (en) * 2016-11-21 2023-09-19 奥多比公司 Recommending software actions to create images and recommending images to demonstrate the effects of the software actions
WO2020016481A1 (en) * 2018-07-18 2020-01-23 Seulo Palvelut Oy Computation of item targeting on an electronic processing platform
WO2021251599A1 (en) * 2020-06-09 2021-12-16 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
US11651392B2 (en) 2020-06-09 2023-05-16 Samsung Electronics Co., Ltd. Electronic apparatus and control method thereof
CN116738067A (en) * 2023-08-16 2023-09-12 湖南华菱电子商务有限公司 Vendor recommendation method and system based on big data
CN116738067B (en) * 2023-08-16 2023-10-27 湖南华菱电子商务有限公司 Vendor recommendation method and system based on big data

Also Published As

Publication number Publication date
WO2013181636A3 (en) 2014-03-20

Similar Documents

Publication Publication Date Title
US20180158084A1 (en) System and method for eliciting information
US20210012358A1 (en) Method and system for emergent data processing
US10614504B2 (en) Systems and methods for providing content-based product recommendations
Beladev et al. Recommender systems for product bundling
US20180158096A1 (en) Methods for Cross-Market Brand Advertising, Content Metric Analysis, and Placement Recommendations
US20180174188A1 (en) Systems and methods for customizing content of a billboard
US20180174198A1 (en) Vector-based optimization of media presentations
US20180060943A1 (en) Apparatus and method for management of a hybrid store
US20190295099A1 (en) Vector-based characterizations of products and individuals with respect to customer service agent assistance
US20180150858A1 (en) System and method for generating pricing information
US20010014868A1 (en) System for the automatic determination of customized prices and promotions
US20130325606A1 (en) Method and apparatus for generating and presenting real estate recommendations
Hostler et al. Recommendation agent impact on consumer online shopping: The Movie Magic case study
US20100268661A1 (en) Recommendation Systems
US20170345033A1 (en) Apparatus and Method for Customizing Products on a Regional Basis
US20130325623A1 (en) Method and apparatus for real estate correlation and marketing
US20180108010A1 (en) Vendor payment sharing system
US20180144397A1 (en) Selecting products in a virtual environment
Fernandes et al. Keep customers coming back: Enhancing value and satisfaction in a mobile shopping application context
US20180107977A1 (en) Courier shopping system
WO2013181636A2 (en) System and method for eliciting information and generating pricing information
Ozuem et al. Leveraging the co-evolution of offline and online video games: An empirical study
Martínez‐López et al. Psychological elements explaining the consumer's adoption and use of a website recommendation system: a theoretical framework proposal
Vadivu A study on Customer Satisfaction Towards online shopping
Choi et al. Online marketplace advertising

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13798188

Country of ref document: EP

Kind code of ref document: A2

122 Ep: pct application non-entry in european phase

Ref document number: 13798188

Country of ref document: EP

Kind code of ref document: A2