Optimized rule based constraints for collaborative filtering systems
First Claim
Patent Images
1. A computer-implemented method for providing a recommendation list from a plurality of items, comprising:
- receiving an adaptable constraint to apply during searches performed in response to recommendation requests, wherein the adaptable constraint includes a plurality of free variables;
receiving a recommendation request including a plurality of values defined by a user, wherein the plurality of values includes at least one value for each of the plurality of free variables in the adaptable constraint;
binding the received values to the corresponding free variables to update the adaptable constraint;
searching the plurality of items in response to the received recommendation request, wherein a set of search parameters is defined by the updated adaptable constraint, and wherein the searching includes;
determining an order for applying a recommendation filter and a constraint filter using a cost calculation based at least on (i) a number of results required, (ii) a probability that a randomly selected item of the plurality of items will pass the second applied filter of the recommendation filter and the constraint filter, (iii) a cost of applying the first applied filter of the recommendation filter and the constraint filter to generate a single item, and (iv) a cost of applying the second applied filter to the single item;
selecting an item from the plurality of items and, in the determined order,applying the constraint filter, comprising determining if the item satisfies the updated adaptable constraint for the recommendation request, andapplying the recommendation filter, comprising computing a predicted value based on the recommendation filter and determining if the predicted value exceeds a predetermined number,wherein if the item does not pass the first applied filter, the item is discarded; and
appending the item to the recommendation list if the item passes both filters; and
transmitting the recommendation list for presentation on a device.
4 Assignments
0 Petitions
Accused Products
Abstract
Methods, systems, and articles of manufacture consistent with the present invention provide a recommendation server that receives a recommendation request from a user of a client computer. The recommendation server contains software to provide recommendations to the user. To provide the recommendations, the recommendation server applies a constraint filter and a recommendation filter on a set of items.
-
Citations
39 Claims
-
1. A computer-implemented method for providing a recommendation list from a plurality of items, comprising:
-
receiving an adaptable constraint to apply during searches performed in response to recommendation requests, wherein the adaptable constraint includes a plurality of free variables; receiving a recommendation request including a plurality of values defined by a user, wherein the plurality of values includes at least one value for each of the plurality of free variables in the adaptable constraint; binding the received values to the corresponding free variables to update the adaptable constraint; searching the plurality of items in response to the received recommendation request, wherein a set of search parameters is defined by the updated adaptable constraint, and wherein the searching includes; determining an order for applying a recommendation filter and a constraint filter using a cost calculation based at least on (i) a number of results required, (ii) a probability that a randomly selected item of the plurality of items will pass the second applied filter of the recommendation filter and the constraint filter, (iii) a cost of applying the first applied filter of the recommendation filter and the constraint filter to generate a single item, and (iv) a cost of applying the second applied filter to the single item; selecting an item from the plurality of items and, in the determined order, applying the constraint filter, comprising determining if the item satisfies the updated adaptable constraint for the recommendation request, and applying the recommendation filter, comprising computing a predicted value based on the recommendation filter and determining if the predicted value exceeds a predetermined number, wherein if the item does not pass the first applied filter, the item is discarded; and appending the item to the recommendation list if the item passes both filters; and transmitting the recommendation list for presentation on a device. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. An apparatus for providing a recommendation list from a plurality of items in a data processing system, comprising:
-
a processing component configured to process instructions for selecting items from the plurality of items, wherein the processing component includes; a constraint filter including at least one constraint having a plurality of free variables, wherein a value for each free variable is defined by a user; a recommendation filter; and an order determination module configured to determine an order for applying the constraint filter and the recommendation filter using a cost calculation based at least on (i) a number of results required, (ii) a probability that a randomly selected item will pass the second applied filter of the constraint filter and the recommendation filter, (iii) a cost of applying the first applied filter of the recommendation filter and the constraint filter to generate a single item, and (iv) a cost of applying the second applied filter to the single item; an input component configured to receive a recommendation request including a value defined by the user for each of the free variables in the constraint; a recommender component configured to perform a search in response to a received recommendation request, wherein a set of search parameters is defined by the constraint, and to generate a recommendation list based on the constraint filter and the recommendation filter; and an output component configured to transmit the generated list for presentation on a device. - View Dependent Claims (13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A computer-implemented method of generating recommendation lists from a plurality of items having assigned category memberships representing attributes of the items, comprising:
-
receiving a plurality of recommendation requests; applying, during a search of the plurality of items performed for each recommendation request, a series of filters to each of the items, the series comprising a constraint filter and a recommendation filter for furnishing a predicted rating value, wherein the recommendation filter and the constraint filter are applied in an order determined using a cost calculation based at least on (i) a number of results required, (ii) the probability that a randomly selected item will pass the second applied filter of the recommendation filter and the constraint filter, (iii) a cost of applying the first applied filter of the recommendation filter and the constraint filter to generate a single item, and (iv) a cost of applying a second applied filter to the single item, wherein the constraint filter is selected based on attributes associated with the recommendation request, wherein the constraint filter applies a constraint to the parameters of the search, the constraint having a plurality of free variables each free variable in the plurality of free variables has a value defined by the user; generating, for each recommendation request, a recommendation list based on the predicted rating value for the item that passes the constraint filter and the recommendation filter; and for each recommendation request, transmitting the generated list to a user for presentation on a device. - View Dependent Claims (25, 26, 27, 28, 29, 30)
-
-
31. A method of generating a recommendation list from plurality of items having assigned category memberships representing attributes of the items, comprising:
-
building a constraint using constraint forming rules, wherein the constraint includes a plurality of free variables; receiving a recommendation request including a plurality of values defined by a user, wherein the plurality of values includes at least one value for each of the plurality of free variables in the constraint; binding the received values to the corresponding free variables to update the constraint; incorporating the constraint into a constraint filter; determining a cost for a first order based at least on (i) a number of results required, (ii) a probability that a randomly selected item will pass the recommendation filter, (iii) a cost of applying the constraint filter to generate a single item, and (iv) a cost of applying the recommendation filter to the single item the first order being applying the constraint filter before applying the recommendation filter; determining a cost for a second order based at least on (i) a number of results required, (ii) a probability that a randomly selected item will pass the constraint filter, (iii) a cost of applying the recommendation filter to generate a single item, and (iv) a cost of applying the constraint filter to the single item, the second order being applying the recommendation filter before applying the constraint filter; establishing one of the first and second orders as the lowest cost order based on the respective costs thereof; applying a series of filters to each of the plurality of items during a search performed in response to the recommendation request, the series comprising the recommendation filter and the updated constraint filter in the lowest cost order, wherein a set of parameters for the search is defined by the constraint; generating a list of recommendations based on the predicted rating values for the items that pass the constraint filter and the recommendation filter; and transmitting the generated list to the user for presentation on a device. - View Dependent Claims (32, 33, 34)
-
-
35. A computer program product comprising a computer readable storage medium including control logic stored therein, the control logic enabling the generation of a recommendation list, by a method comprising:
-
receiving an adaptable constraint to apply during searches performed in response to recommendation requests, wherein the adaptable constraint includes a plurality of free variables; receiving a recommendation request including a plurality of values defined by a user, wherein the plurality of values includes at least one value for each of the plurality of free variables in the adaptable constraint; binding the received values to the corresponding free variables to update the adaptable constraint; and searching a plurality of items in response to the received recommendation request, wherein a set of search parameters is defined by the updated adaptable constraint, comprising; determining an order of applying a recommendation filter and a constraint filter using a cost calculation based at least on (i) a number of results required, (ii) a probability that a randomly selected item will pass a second applied filter of the recommendation filter and the constraint filter, (iii) a cost of applying the first applied filter of the recommendation filter and the constraint filter to generate a single item, and (iv) a cost of applying the second applied filter to the single item; selecting an item from the plurality of items, applying a first filter of the recommendation filter and the constraint filter according to the determined order, if the item does not pass the first applied filter, discarding the item, if the item passes the first applied filter, applying the second filter of the recommendation filter and the constraint filter according to the determined order, and if the item passes both the first and second filters, appending the item to the recommendation list. - View Dependent Claims (36, 37)
-
-
38. A method for providing a recommendation list, comprising:
-
receiving a recommendation request including a value corresponding to a free variable of a constraint; and generating a recommendation list of at least one item of a plurality of items in response to the recommendation request, comprising; determining an order for applying a constraint filter, including the constraint, and a recommendation filter, based at least on (i) a number of results required, (ii) a probability that a randomly selected item of the plurality of items will pass a second applied filter of the recommendation filter and the constraint filter, (iii) a cost of applying the first applied filter of the recommendation filter and the constraint filter to generate a single item, and (iv) a cost of applying the second applied filter to the single item; selecting an item from the plurality of items; applying a first filter of the recommendation filter and the constraint filter according to the determined order; applying a second filter of the recommendation filter and the constraint filter according to the determined order if the item passes the first filter; and appending the item to the recommendation list if the item passes both the first filter and the second filter. - View Dependent Claims (39)
-
Specification