Software, method and apparatus for efficient categorization and recommendation of subjects according to multidimensional semantics
First Claim
1. A method for identifying recommended objects to a target user, under control of said target user for inclusion in a category created by the target user based on said target user'"'"'s categorization of objects and the categorizations of objects by other users, the method executing on a computer system including a processor, a categorizations database, an input device and an output device, wherein the categorization database includes a plurality of category records, with each category record associated with a category selected by a single user, where a category record includes a pointer to at least one object record for an object chosen by the user as belonging in the corresponding category, and where a user can be associated with a plurality of categories with the originating user being identified in each category record, the method comprising the following steps:
- accepting signals from the input device operated by said target user to generate a plurality of target category records, where each target category record indicates object records corresponding to objects chosen by said target user as belonging together;
searching, in response to a request from said target user, for at least a subset of said category records entered by any user into the categorizations database to locate matching category records containing a pointer to at least one object record corresponding to an object also found in said target categories;
assigning each of the matching category records a match count with respect to each target category record, where a match count assigned to one category record with respect to another category record is equal to the number of common records pointed to in both of said category records;
identifying unmatched object records in matching category records with respect to each target category record, where an unmatched object record is an object record pointed to in a matching category record which is not pointed to in said target category record;
associating each unmatched object record with a list of all originating category records, where an originating category record for an object record is a matching category record which points to it;
associating each unmatched object record with a list of all originating users, where each originating user is associated with an originating category record for said unmatched object record;
assigning a weight to an unmatched object record, where said weight is a function of at least said match counts of the originating category records;
ranking unmatched records by weight for each target category record;
selecting recommended object records for each target category record from said unmatched records according to the results of the step of ranking; and
outputting recommendations to said target user for each target category, where recommendations for a target category indicate recommended objects corresponds to said target category record, pointers to the originating category records of the said recommended object records, and pointers to the originating users of the said recommended objects.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for determining recommendations which are likely to be relevant to a user'"'"'s current tasks. The determination is made based on the user'"'"'s grouping behavior as applied to collected references, documents and information objects. The recommendations are with respect to one or more of the “target” user'"'"'s existing groupings or categories, and can be of information objects, categories of information objects, or other users who have created similar groupings of objects to the target user'"'"'s groupings. The basis for recommendations is the discovery of “matching” categories for a “target” category, where a matching category is one that includes at least one object also included in the target category. Objects which are in matching categories but not in the target category are candidates for recommendation. In this way the recommendation system aids the target user by taking advantage of objects gathered and grouped by other users over time.
405 Citations
28 Claims
-
1. A method for identifying recommended objects to a target user, under control of said target user for inclusion in a category created by the target user based on said target user'"'"'s categorization of objects and the categorizations of objects by other users, the method executing on a computer system including a processor, a categorizations database, an input device and an output device, wherein the categorization database includes a plurality of category records, with each category record associated with a category selected by a single user, where a category record includes a pointer to at least one object record for an object chosen by the user as belonging in the corresponding category, and where a user can be associated with a plurality of categories with the originating user being identified in each category record, the method comprising the following steps:
-
accepting signals from the input device operated by said target user to generate a plurality of target category records, where each target category record indicates object records corresponding to objects chosen by said target user as belonging together;
searching, in response to a request from said target user, for at least a subset of said category records entered by any user into the categorizations database to locate matching category records containing a pointer to at least one object record corresponding to an object also found in said target categories;
assigning each of the matching category records a match count with respect to each target category record, where a match count assigned to one category record with respect to another category record is equal to the number of common records pointed to in both of said category records;
identifying unmatched object records in matching category records with respect to each target category record, where an unmatched object record is an object record pointed to in a matching category record which is not pointed to in said target category record;
associating each unmatched object record with a list of all originating category records, where an originating category record for an object record is a matching category record which points to it;
associating each unmatched object record with a list of all originating users, where each originating user is associated with an originating category record for said unmatched object record;
assigning a weight to an unmatched object record, where said weight is a function of at least said match counts of the originating category records;
ranking unmatched records by weight for each target category record;
selecting recommended object records for each target category record from said unmatched records according to the results of the step of ranking; and
outputting recommendations to said target user for each target category, where recommendations for a target category indicate recommended objects corresponds to said target category record, pointers to the originating category records of the said recommended object records, and pointers to the originating users of the said recommended objects. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
determining existing category records and corresponding object records of said target user; and
selecting a plurality of identified in the determining step as the target category records.
-
-
4. The method of claim 1 wherein said category records can have a title that is the same as the only object record pointed by the corresponding category record.
-
5. The method of claim 3 wherein said object records pointed to by said target category records include pointers to information objects accessible via a data communications network, and the user'"'"'s existing category records are collections of such pointers which have been organized hierarchically.
-
6. The method of claim 3 wherein the step of selecting target category records comprises the step of selecting all category records which have been created by the target user, or whose composition has been changed by the target user, since the previous occasion upon which the system was invoked.
-
7. The method of claim 1 further including a scalar preference value optionally associated with each object, which preference value is provided by the user associated with said object and said scalar preference value is included in a field of the corresponding object record.
-
8. The method of claim 7 wherein the step of assigning a weight to an unmatched object record comprises the steps of:
-
calculating a weighted average of (a) said match count, and (b) the similarity between said preference value assigned by the originating user associated with said originating category record and said preference value assigned by the target user, the relative weights being determined by a balancing value for each originating category record associated with said unmatched object record; and
calculating said weight for said unmatched object record as a sum of said weighted averages for each associated originating category record.
-
-
9. The method of claim 1 further comprising the steps of:
-
generating a ranking of originating users by weight, the weight of an originating user being the average of the weights of the recommended object records associated with said user;
delivering as recommendations to said target user pointers to originating categories and associated originating users, ordered by said ranking; and
controlling a predetermined communication means in order to initiate communication between said target user and at least a subset of said originating users.
-
-
10. The method of claim 1 wherein said object records are identifiers of people.
-
11. The method of claim 1 wherein said target category record is a nominal category record created to point to a single object record that corresponds to an object supplied by the corresponding user as an input to the system.
-
12. The method of claim 1 further comprising the steps of:
-
said target user selecting one of said recommendations; and
repeating the entire method of claim 1 using a category record containing a pointer to just the selected recommendation object record as the sole target category record.
-
-
13. The method of claim 1 wherein the categorization database includes a table of category records, wherein each category record corresponds to a category, and objects:
-
each of said category records includes;
a single owner field identifying the user who created said category that corresponds to said category record; and
a set of object fields, wherein each object field corresponds to an object placed in said category by the corresponding user; and
each of said object records includes a set of category fields, where each include category field corresponds to a category in which said object was included by the corresponding user.
-
-
14. The method of claim 13 wherein the step of searching the categorization database comprises:
-
identifying a set of constituent object records pointed to by said target category record; and
identifying a set of containing records said set being the union of the sets of containing category records associated with each constituent object record from said list of constituent object records.
-
-
15. An apparatus for identifying recommended objects to a target user, under control of said target user, said apparatus comprising:
-
a processor;
a categorizations database containing information on a plurality of user categories, each category created by a single user to indicate a plurality of objects identified by said creating user wherein each user can be associated with a plurality of categories;
an input/output device coupled to said processor to accept input commands from said target user of information on a plurality of target categories, a target category being an indication of a plurality of objects chosen as belonging together by said target user;
memory coupled to said processor to contain said database, target categories and weighting values;
communications software to communicate data between said processor, said categorizations database, said input/output device and said memory;
software to control said processor to perform a search initiated by said target user of said categories entered by any user stored in said categorizations database for categories with at least one object in common with one of said target categories, and to generate for each target category a list of unmatched objects found in the located records, wherein an unmatched object is an object not found in said target category; and
ranking software, coupled to said processor to rank said unmatched objects with respect to each target category in a ranking, based on a function of at least the number of objects in common between said target category and said category associated with said unmatched object;
wherein said input/output device also outputs an indication of said unmatched objects to said target user for each target category, ordered according to said ranking.
-
-
16. A computer-implemented method for identifying recommended objects to a target user, under control of said target user for inclusion in a category created by the target user based on said target user'"'"'s categorization of objects and the categorizations of objects by other users, wherein the categorization database includes a plurality of category records, with each category record associated with a category selected by a single user, where a category record includes a pointer to at least one object record for an object chosen by the user as belonging in the corresponding category, and where a user can be associated with a plurality of categories with the originating user being identified in each category record the method comprising the following steps:
-
accepting instructions form the target user for generating a plurality of target category records, wherein each target category record indicates object records corresponding to objects chosen by said target user as belonging together;
searching, in response to a request from said target user, for at least a subset of said category records entered by any user into the categorizations database to locate matching category records containing a pointer to at least one object record corresponding to an object also found in said target categories;
assigning each of the matching category records a match count with respect to each target category record, wherein a match count assigned to one category record with respect to another category record is equal to the number of common records pointed to in both of said category records;
identifying unmatched records in matching category records with respect to each target category record, wherein an unmatched object record is an object record pointed to in a matching category record which is not pointed to in said target category record;
associating each unmatched object record with a list of all originating category records, wherein an originating category record for an object record is a matching category record which point to it;
associating each unmatched object record with a list of all originating users, wherein each originating user is associated with an originating category record for said unmatched object record;
assigning a weight to an unmatched object record, wherein said weight is a function of at least said match counts of the originating category records;
ranking unmatched object records by weight for each target category record;
selecting recommended object records for each target category record from said unmatched object records according to the results of the step of ranking; and
outputting recommendations to said target user for each target category, wherein recommendations for a target category indicate recommended objects corresponding to said target object records for said target category that corresponds to said target category record, pointers to the originating category records of the said recommended object records, and pointers to the originating users of the said recommended objects. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
determining existing category records and corresponding object records of said target user; and
selecting a plurality of records identified in the determining step as the target category records.
-
-
18. The computer-implemented method of claim 16 wherein said category records can have a title that is the same as the only object record pointed to by the corresponding category record.
-
19. The computer-implemented method of claim 18 wherein said object records pointed to by said target category records include pointers to information objects accessible via a data communications network, and the user'"'"'s existing category records are collections of such pointers which have been organized hierarchically.
-
20. The computer-implemented method of claim 18 wherein the step of selecting target category records comprises the step of selecting all category records which have been created by the target user, or whose composition has been changed by the target user, since the previous occasion upon which the system was invoked.
-
21. The computer-implemented method of claim 16 further including a scalar preference value optionally associated with each object, which preference value is provided by the user associated with said object and said scalar value is included in a field of the corresponding object record.
-
22. The computer-implemented method of claim 21 wherein the step of assigning a weight to an unmatched object record comprises the steps of:
-
calculating a weighted average of (a) said match count, and (b) the similarity between said preference value assigned by the originating user associated with said originating category record and said preference value assigned by the target user, the relative weights being determined by a balancing value for each originating category record associated with said unmatched object record; and
calculating said weight for said unmatched object record as a sum of said weighted averages for each associated originating category record.
-
-
23. The computer-implemented method of claim 16 further comprising the steps of:
-
generating a ranking of originating users by weight, the weight of an originating user being the average of the weights of the recommended object records associated with said user;
delivering as recommendations to said target user pointers to originating categories and associated originating users, ordered by said ranking; and
controlling a predetermined communication means in order to initiate communication between said target user and at least a subset of said originating users.
-
-
24. The computer-implemented method of claim 16 wherein said objects are identifiers of people.
-
25. The computer-implemented method of claim 16 wherein said target category record is a nominal category created to point to a single object record that corresponds to an object supplied by the corresponding user as an input to the apparatus.
-
26. The computer-implemented method of claim 16 further comprising the steps of:
-
said target user selecting one of said recommendations; and
repeating all of the steps of claim 16 using a category record containing a pointer to just the selected recommendation object record as the sole target category record.
-
-
27. The computer-implemented method of claim 16 wherein the categorization database includes a table of category records, wherein each category record corresponds to a category, and objects:
-
each of said category records includes;
a single owner field identifying the user who created said category that corresponds to said category record; and
a set of object fields, wherein each object field corresponds to an object placed in said category by the corresponding user; and
each of said object records includes a set of category fields, where each included category field corresponds to a category in which said object was included by the corresponding user.
-
-
28. The computer-implemented method of claim 27 wherein the step of searching the categorization database comprises:
-
identifying a set of constituent object records pointed to by said target category record; and
identifying a set of containing category records, said set being the union of the sets of containing category records associated with each constituent object record from said list of constituent object records.
-
Specification