Methods and systems for performing time-partitioned collaborative filtering
First Claim
1. A method executed by a system having at least a processor and a memory therein, wherein the method comprises:
- receiving as input at the system, a plurality of access requests by a plurality of users for data stored by the system;
determining a corresponding plurality of actions associated with the data to which access is requested by a first user to generate a plurality of related pairs by the first user from the plurality of access requests received as input and the data stored by the system, each of the plurality of related pairs including (i) a respective first action and item, (ii) a respective second action and item and (iii) a time difference between access requests by the first user for the related pair determined based on time data for each of the respective first action and item accessed by the first user and the respective second action and item as accessed by the first user;
generating additional related pairs by one or more additional users from the plurality of access requests for the additional users;
wherein every related pair among the plurality of related pairs corresponds to exactly one of the plurality of users in which both first and second access requests for every one of the plurality of related pairs are associated with a same user for the respective pair;
partitioning the generated plurality of related pairs into a plurality of overlapping time chunks;
iteratively analyzing the generated plurality of related pairs, wherein each iteration of analysis evaluates only related pairs within a single one of the plurality of overlapping time chunks, wherein each iteration of analysis comprises generating a predictive value for the related pairs within the single one of the plurality of overlapping time chunks being analyzed by decreasing a weighting for the related pairs having elements farther apart in time based on the time difference of each related pair and by increasing the weighting of the related pairs having elements closer in time to one another based on the time difference of each related pair; and
summing the weightings from all of the plurality of overlapping time chunks to establish a time based score for each related pair, wherein the time based score for each related pair indicates the predictive value for the related pair.
1 Assignment
0 Petitions
Accused Products
Abstract
In accordance with disclosed embodiments, there are provided methods, systems, and apparatuses for performing time-partitioned collaborative filtering in an on-demand service environment including, for example, receiving as input, a plurality of access requests for data stored within the host organization and a corresponding plurality of actions for the data to which access is requested; accessing an input table having a time field, action field, item field, and agent field therein; recording time data and agent data for each of the received plurality of access requests and the corresponding plurality of actions; recording an item within the item field and an action within the action field for each of the received plurality of access requests and the corresponding plurality of actions based on the action performed on an item of the data to which access is requested; and analyzing the input table to generate one or more pairs of first actions and items to second actions and items and a time based score for each of the one or more pairs, in which the time based score is dependent upon a time between the actions for each of the one or more pairs. Other related embodiments are disclosed.
-
Citations
27 Claims
-
1. A method executed by a system having at least a processor and a memory therein, wherein the method comprises:
-
receiving as input at the system, a plurality of access requests by a plurality of users for data stored by the system; determining a corresponding plurality of actions associated with the data to which access is requested by a first user to generate a plurality of related pairs by the first user from the plurality of access requests received as input and the data stored by the system, each of the plurality of related pairs including (i) a respective first action and item, (ii) a respective second action and item and (iii) a time difference between access requests by the first user for the related pair determined based on time data for each of the respective first action and item accessed by the first user and the respective second action and item as accessed by the first user; generating additional related pairs by one or more additional users from the plurality of access requests for the additional users; wherein every related pair among the plurality of related pairs corresponds to exactly one of the plurality of users in which both first and second access requests for every one of the plurality of related pairs are associated with a same user for the respective pair; partitioning the generated plurality of related pairs into a plurality of overlapping time chunks; iteratively analyzing the generated plurality of related pairs, wherein each iteration of analysis evaluates only related pairs within a single one of the plurality of overlapping time chunks, wherein each iteration of analysis comprises generating a predictive value for the related pairs within the single one of the plurality of overlapping time chunks being analyzed by decreasing a weighting for the related pairs having elements farther apart in time based on the time difference of each related pair and by increasing the weighting of the related pairs having elements closer in time to one another based on the time difference of each related pair; and summing the weightings from all of the plurality of overlapping time chunks to establish a time based score for each related pair, wherein the time based score for each related pair indicates the predictive value for the related pair. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21)
-
-
22. Non-transitory computer readable storage medium having instructions stored thereon that, when executed by a processor of a system, the instructions cause the system to perform operations comprising:
-
receiving as input at the system, a plurality of access requests by a plurality of users for data stored by the system; determining a corresponding plurality of actions associated with the data to which access is requested by a first user to generate a plurality of related pairs by the first user from the plurality of access requests received as input and the data stored by the system, each of the plurality of related pairs including (i) a respective first action and item, (ii) a respective second action and item and (iii) a time difference between access requests by the first user for the related pair determined based on time data for each of the respective first action and item accessed by the first user and the respective second action and item as accessed by the first user; generating additional related pairs by one or more additional users from the plurality of access requests for the additional users; wherein every related pair among the plurality of related pairs corresponds to exactly one of the plurality of users in which both first and second access requests for every one of the plurality of related pairs are associated with a same user for the respective pair; partitioning the generated plurality of related pairs into a plurality of overlapping time chunks; iteratively analyzing the generated plurality of related pairs, wherein each iteration of analysis evaluates only related pairs within a single one of the plurality of overlapping time chunks, wherein each iteration of analysis comprises generating a predictive value for the related pairs within the single one of the plurality of overlapping time chunks being analyzed by decreasing a weighting for the related pairs having elements farther apart in time based on the time difference of each related pair and by increasing the weighting of the related pairs having elements closer in time to one another based on the time difference of each related pair; and summing the weightings from all of the plurality of overlapping time chunks to establish a time based score for each related pair, wherein the time based score for each related pair indicates the predictive value for the related pair. - View Dependent Claims (23, 24, 25)
-
-
26. A system comprising:
-
a processor to execute instructions; a request interface to receive as input at the system, a plurality of access requests for data stored by the system; an analysis engine to determine a corresponding plurality of actions associated with the data to which access is requested by a first user to generate a plurality of related pairs by the first user from the plurality of access requests received as input and the data stored by the system, each of the plurality of related pairs including (i) a respective first action and item, (ii) a respective second action and item and (iii) a time difference between access requests by the first user for the related pair determined based on time data for each of the respective first action and item accessed by the first user and the respective second action and item as accessed by the first user; the analysis engine to generate additional related pairs by one or more additional users from the plurality of access requests for the additional users; wherein every related pair among the plurality of related pairs corresponds to exactly one of the plurality of users in which both first and second access requests for every one of the plurality of related pairs are associated with a same user for the respective pair; the analysis engine to partition the generated plurality of related pairs into a plurality of overlapping time chunks; the analysis engine to iteratively analyze the generated plurality of related pairs, wherein each iteration of analysis evaluates only related pairs within a single one of the plurality of overlapping time chunks, wherein each iteration of analysis comprises generating a predictive value for the related pairs within the single one of the plurality of overlapping time chunks being analyzed by decreasing a weighting for the related pairs having elements farther apart in time based on the time difference of each related pair and by increasing the weighting of the related pairs having elements closer in time to one another based on the time difference of each related pair; and the analysis engine to sum the weightings from all of the plurality of overlapping time chunks to establish a time based score for each related pair, wherein the time based score for each related pair indicates the predictive value for the related pair. - View Dependent Claims (27)
-
Specification