Method and apparatus for item recommendation using automated collaborative filtering
First Claim
1. A method for operating a machine to recommend an item to one of a plurality of users, the item not yet rated by the user, the method comprising the steps of:
- (a) storing, using the machine, a user profile in a memory for each of the plurality of users, wherein at least one of the user profiles includes a plurality of values, one of the plurality of values representing a rating given to one of a plurality of items by the user and another of the plurality of values representing additional information;
(b) calculating, using the machine, for the user, a plurality of similarity factors responsive to both ratings given to items by the user and the additional information, each of the plurality of similarity factors representing a similarity between the user and another one of the plurality of users;
(c) selecting, using the machine, for the user, a plurality of neighboring users based on the similarity factors, the selecting step comprising the steps of, for each of the plurality of users;
(c1) comparing associated similarity factors for the user and each one of the plurality of users; and
(c2) choosing said each one of the plurality of users as one of the neighboring users if a difference between the associated similarity factors exceeds a predetermined threshold value;
(d) assigning, using the machine, a weight to each of the neighboring users; and
(e) recommending, using the machine, at least one of the plurality of items to the user based on the weights assigned to the plurality of neighboring users and ratings given to the plurality of items by the plurality of neighboring users.
4 Assignments
0 Petitions
Accused Products
Abstract
A method for recommending items to users using automated collaborative filtering stores profiles of users relating ratings to items in memory. Profiles of items may also be stored in memory, the item profiles associating users with the rating given to the item by that user or inferred for the user by the system The user profiles include additional information relating to the user or associated with the rating given to an item by the user. Similarity factors with respect to other users, and confidence factors associated with the similarity factors, are calculated for a user and these similarity factors, in connection with the confidence factors, are used to select a set of neighboring users. The neighboring users are weighted based on their respective similarity factors, and a rating for an item contained in the domain is predicted. In one embodiment, items in the domain have features. In this embodiment, the values for features can be clustered, and the similarity factors incorporate assigned feature weights and feature value cluster weights.
-
Citations
33 Claims
-
1. A method for operating a machine to recommend an item to one of a plurality of users, the item not yet rated by the user, the method comprising the steps of:
-
(a) storing, using the machine, a user profile in a memory for each of the plurality of users, wherein at least one of the user profiles includes a plurality of values, one of the plurality of values representing a rating given to one of a plurality of items by the user and another of the plurality of values representing additional information; (b) calculating, using the machine, for the user, a plurality of similarity factors responsive to both ratings given to items by the user and the additional information, each of the plurality of similarity factors representing a similarity between the user and another one of the plurality of users; (c) selecting, using the machine, for the user, a plurality of neighboring users based on the similarity factors, the selecting step comprising the steps of, for each of the plurality of users; (c1) comparing associated similarity factors for the user and each one of the plurality of users; and (c2) choosing said each one of the plurality of users as one of the neighboring users if a difference between the associated similarity factors exceeds a predetermined threshold value; (d) assigning, using the machine, a weight to each of the neighboring users; and (e) recommending, using the machine, at least one of the plurality of items to the user based on the weights assigned to the plurality of neighboring users and ratings given to the plurality of items by the plurality of neighboring users. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 24)
-
-
20. A computer-implemented method for operating a machine to recommend an item to one of a plurality of users, the item not yet rated by the user, the method comprising the steps, performed by the machine, of:
-
(a) storing a user profile in a memory for each of the plurality of users, wherein at least one of the user profiles includes a plurality of values, one of the plurality of values representing a rating given to one of a plurality of items by the user and another of the plurality of values representing additional information; (b) calculating for the user, a plurality of similarity factors responsive to both ratings given to items by the user and the additional information, each of the plurality of similarity factors representing a similarity between the user and another one of the plurality of users; (c) selecting for the user, a plurality of neighboring users based on the similarity factors, the selecting step comprising the steps of, for each of the plurality of users; (c1) comparing associated similarity factors for the user and each one of the plurality of users; and (c2) choosing said each one of the plurality of users as one of the neighboring users if both a difference between the associated similarity factors is less than a first predetermined threshold and a total number of selected neighboring users is less than a second predetermined threshold; (d) assigning a weight to each of the neighboring users; and (e) recommending at least one of the plurality of items to the user based on the weights assigned to the plurality of neighboring users and ratings given to the plurality of items by the plurality of neighboring users. - View Dependent Claims (25)
-
-
21. A computer-implemented method for operating a machine to recommend an item to one of a plurality of users, the item not yet rated by the user, the method comprising the steps, performed by the machine, of:
-
(a) storing a user profile in a memory for each of the plurality of users, wherein at least one of the user profiles includes a plurality of values, one of the plurality of values representing a rating given to one of a plurality of items by the user and another of the plurality of values representing additional information; (b) calculating for the user, a plurality of similarity factors responsive to both ratings given to items by the user and the additional information, each of the plurality of similarity factors representing a similarity between the user and another one of the plurality of users; (c) selecting for the user, a plurality of neighboring users based on the similarity factors, the selecting step comprising the steps of, for each of the plurality of users; (c1) comparing associated similarity factors for the user and each one of the plurality of users; and (c2) choosing said one of the plurality of users as one of the neighboring users if both a difference between the associated similarity factors is less than a first predetermined threshold and a confidence factor determined for the associated similarities factors is greater than a second predetermined threshold; (d) assigning a weight to each of the neighboring users; and (e) recommending at least one of the plurality of items to the user based on the weights assigned to the plurality of neighboring users and ratings given to the plurality of items by the plurality of neighboring users. - View Dependent Claims (26)
-
-
22. A computer-implemented method for operating a machine to recommend an item to one of a plurality of users, the item not yet rated by the user, the method comprising the steps, performed by the machine, of:
-
(a) storing a user profile in a memory for each of the plurality of users, wherein at least one of the user profiles includes a plurality of values, one of the plurality of values representing a rating given to one of a plurality of items by the user and another of the plurality of values representing additional information; (b) calculating for the user, a plurality of similarity factors responsive to both ratings given to items by the user and the additional information, each of the plurality of similarity factors representing a similarity between the user and another one of the plurality of users; (c) selecting for the user, a plurality of neighboring users based on the similarity factors, the selecting step comprising the steps of; (c1) defining a domain of items to be recommended; and (c2) choosing each one of said users as one of the neighboring users unless said one user has less than a predetermined number of ratings of the items in the domain; (d) assigning a weight to each of the neighboring users; and (e) recommending at least one of the plurality of items to the user based on the weights assigned to the plurality of neighboring users and ratings given to the plurality of items by the plurality of neighboring users. - View Dependent Claims (27)
-
-
23. A computer-implemented method for operating a machine to recommend an item to one of a plurality of users, the item not yet rated by the user, the method comprising the steps, performed by the machine, of:
-
(a) storing a user profile in a memory for each of the plurality of users, wherein at least one of the user profiles includes a plurality of values, one of the plurality of values representing a rating given to one of a plurality of items by the user and another of the plurality of values representing additional information; (b) grouping the plurality of items into a plurality of groups, wherein each of the groups has a rating based on the ratings of the items contained within said each group, wherein the grouping step comprises the steps of; (b1) randomly assigning all items to a number of initial groups; (b2) for each of the initial groups, determining a centroid of the ratings for the items assigned to the initial group; (b3) for each item, moving the item to the group with a centroid of ratings closest to its rating; and (b4) repeating steps (b1) through (b3) until both a certain number of iterations has been performed and distances, between all group centroids and items assigned to each of the groups, are below a predetermined threshold; (c) calculating for the user, a plurality of similarity factors in response to ratings given to items by the user, the additional information, and the ratings of the groups, wherein each of the plurality of similarity factors represents a similarity between the user and another one of the plurality of users; (d) selecting for the user, a plurality of neighboring users based on the similarity factors; (e) assigning a weight to each of the neighboring users; and (f) recommending at least one of the plurality of items to the user based on the weights assigned to the plurality of neighboring users and ratings given to the plurality of items by the plurality of neighboring users. - View Dependent Claims (28)
-
-
29. A Computer-implemented apparatus for recommending an item to one of a plurality of users, the item not yet rated by the user, the apparatus comprising:
-
(a) a processor; and (b) a memory connected to the processor and storing computer executable instructions therein; (c) wherein the processor, in response to execution of the instructions; (c1) stores, in the memory, a user profile for each of the plurality of users, wherein at least one of the user profiles includes a plurality of values, one of the plurality of values representing a rating given to one of a plurality of items by the user and another of the plurality of values representing additional information; (c2) calculates, for the user, a plurality of similarity factors responsive to both ratings given to items by the user and the additional information, each of the plurality of similarity factors representing a similarity between the user and another one of the plurality of users; (c3) selects for the user, a plurality of neighboring users based on the similarity factors, by; (c3a) comparing associated similarity factors for the user and each one of the plurality of users; and (c3b) choosing said each one of the plurality of users as one of the neighboring users if a difference between the associated similarity factors exceeds a predetermined threshold value; (d) assigns a weight to each of the neighboring users; and (e) recommends at least one of the plurality of items to the user based on the weights assigned to the plurality of neighboring users and ratings given to the plurality of items by the plurality of neighboring users.
-
-
30. A Computer-implemented apparatus for recommending an item to one of a plurality of users, the item not yet rated by the user, the apparatus comprising:
-
(a) a processor; and (b) a memory connected to the processor and storing computer executable instructions therein; (c) wherein the processor, in response to execution of the instructions; (c1) stores, in the memory, a user profile for each of the plurality of users, wherein at least one of the user profiles includes a plurality of values, one of the plurality of values representing a rating given to one of a plurality of items by the user and another of the plurality of values representing additional information; (c2) calculates, for the user, a plurality of similarity factors responsive to both ratings given to items by the user and the additional information, each of the plurality of similarity factors representing a similarity between the user and another one of the plurality of users; (c3) selects for the user, a plurality of neighboring users based on the similarity factors, by; (c3a) comparing associated similarity factors for the user and each one of the plurality of users; and (c3b) choosing said each one of the plurality of users as one of the neighboring users if both a difference between the associated similarity factors is less than a first predetermined threshold and a total number of selected neighboring users is less than a second predetermined threshold; (d) assigns a weight to each of the neighboring users; and (e) recommends at least one of the plurality of items to the user based on the weights assigned to the plurality of neighboring users and ratings given to the plurality of items by the plurality of neighboring users.
-
-
31. A Computer-implemented apparatus for recommending an item to one of a plurality of users, the item not yet rated by the user, the apparatus comprising:
-
(a) a processor; and (b) a memory connected to the processor and storing computer executable instructions therein; (c) wherein the processor, in response to execution of the instructions; (c1) stores, in the memory, a user profile for each of the plurality of users, wherein at least one of the user profiles includes a plurality of values, one of the plurality of values representing a rating given to one of a plurality of items by the user and another of the plurality of values representing additional information; (c2) calculates, for the user, a plurality of similarity factors responsive to both ratings given to items by the user and the additional information, each of the plurality of similarity factors representing a similarity between the user and another one of the plurality of users; (c3) selects for the user, a plurality of neighboring users based on the similarity factors, by; (c3a) comparing associated similarity factors for the user and each one of the plurality of users; and (c3b) choosing said one of the plurality of users as one of the neighboring users if both a difference between the associated similarity factors is less than a first predetermined threshold and a confidence factor determined for the associated similarities factors is greater than a second predetermined threshold; (d) assigns a weight to each of the neighboring users; and (e) recommends at least one of the plurality of items to the user based on the weights assigned to the plurality of neighboring users and ratings given to the plurality of items by the plurality of neighboring users.
-
-
32. A Computer-implemented apparatus for recommending an item to one of a plurality of users, the item not yet rated by the user, the apparatus comprising:
-
(a) a processor; and (b) a memory connected to the processor and storing computer executable instructions therein; (c) wherein the processor, in response to execution of the instructions; (c1) stores, in the memory, a user profile for each of the plurality of users, wherein at least one of the user profiles includes a plurality of values, one of the plurality of values representing a rating given to one of a plurality of items by the user and another of the plurality of values representing additional information; (c2) calculates, for the user, a plurality of similarity factors responsive to both ratings given to items by the user and the additional information, each of the plurality of similarity factors representing a similarity between the user and another one of the plurality of users; (c3) selects for the user, a plurality of neighboring users based on the similarity factors, by; (c3a) defining a domain of items to be recommended; and (c3b) choosing each one of said users as one of the neighboring users unless said one user has less than a predetermined number of ratings of the items in the domain; (d) assigns a weight to each of the neighboring users; and (e) recommends at least one of the plurality of items to the user based on the weights assigned to the plurality of neighboring users and ratings given to the plurality of items by the plurality of neighboring users.
-
-
33. A Computer-implemented apparatus for recommending an item to one of a plurality of users, the item not yet rated by the user, the apparatus comprising:
-
(a) a processor; and (b) a memory connected to the processor and storing computer executable instructions therein; (c) wherein the processor, in response to execution of the instructions; (c1) stores, in the memory, a user profile for each of the plurality of users, wherein at least one of the user profiles includes a plurality of values, one of the plurality of values representing a rating given to one of a plurality of items by the user and another of the plurality of values representing additional information; (c2) groups the plurality of items into a plurality of groups, wherein each of the groups has a rating based on the ratings of the items contained within said each group, by; (c2a) randomly assigning all items to a number of initial groups; (c2b) for each of the initial groups, determining a centroid of the ratings for the items assigned to the initial group; (c2c) for each item, moving the item to the group with a centroid of ratings closest to its rating; and (c2d) repeating steps (c2a) through (c2c) until both a certain number of iterations has been performed and distances, between all group centroids and items assigned to each of the groups, are below a predetermined threshold; (c3) calculates, for the user, a plurality of similarity factors in response to ratings given to items by the user, the additional information, and the ratings of the groups, wherein each of the plurality of similarity factors represents a similarity between the user and another one of the plurality of users; (c4) selects for the user, a plurality of neighboring users based on the similarity factors; (c5) assigns a weight to each of the neighboring users; and (c6) recommends at least one of the plurality of items to the user based on the weights assigned to the plurality of neighboring users and ratings given to the plurality of items by the plurality of neighboring users.
-
Specification