Methods for detecting a common user of a plurality of user devices in a network and for detecting a common cohort for a plurality of users are disclosed. The methods comprise receiving a plurality of event records. Each of the event records corresponds to an event in a network and comprises a device identifier and event information. A correlation is then calculated between a first subset of the event records having a first device identifier and a second subset of the event records having a second device identifier. Based on the correlation, it is then calculated whether the first and second device identifiers relate to user devices associated with the same user, and whether the first and second device identifiers relate to user devices associated with users belonging to a common cohort.
Please help me write a proper abstract based on the patent claims. CLAIM: 1. A method for detecting a common user of a plurality of user devices in a network, comprising: receiving a plurality of event records, each event record corresponding to an event in a network and comprising a device identifier and event information; calculating a correlation between a first subset of the plurality of event records having a first device identifier and a second subset of the plurality of event records having a second device identifier different from the first device identifier; and based on the correlation, calculating whether the first and second device identifiers relate to user devices associated with the same user. 2. The method of claim 1, wherein calculating a correlation comprises: generating a first matrix based on the event dates, the event times and the event locations of each of the event records in the first subset; generating a second matrix mapping event dates, event times and event locations of each of the event records in the second subset; comparing the first matrix and the second matrix; and based on the comparison, calculating a probability that the first and second device identifiers relate to user devices associated with the same user. 3. The method of claim 2, wherein calculating whether the device identifiers relate to user devices associated with the same user comprises: if the probability is above a threshold value, recording that the device identifiers relate to user devices associated with the same user. 4. The method of claim 2, wherein calculating the probability comprises calculating the number of entries in the first matrix which match entries in the second matrix as a proportion of the total number of entries in the first matrix. 5. The method of claim 2, further comprising: calculating one or more weights for one or more locations; and calculating the probability based on the weights. 6. The method of claim 5, wherein one or more weights are based on the time of day. 7. The method of claim 2, further comprising: calculating one or more weights for one or more ordered sets of locations; and calculating the probability based on the weights. 8. The method of claim 1, further comprising, prior to calculating a correlation: calculating a most common location for the first device; calculating a most common location for the second device; comparing the most common location for the first device with the most common location for the second device; and based on the comparison, determining whether the first and second devices could be associated with the same user. 9. A method for detecting a common cohort for a plurality of users of user devices in a network, comprising: receiving a plurality of event records, each event record corresponding to an event in a network and comprising a device identifier and event information; calculating a correlation between a first subset of the plurality of event records having a first device identifier and a second subset of the plurality of event records having a second device identifier different from the first device identifier; and based on the correlation, calculating whether the first and second device identifiers relate to user devices associated with users belonging to a common cohort. 10. The method of claim 9, wherein calculating a correlation comprises: generating a first matrix based on the event dates, the event times and the event locations of each of the event records in the first subset; generating a second matrix mapping event dates, event times and event locations of each of the event records in the second subset; comparing the first matrix and the second matrix; and based on the comparison, calculating a probability that the first and second device identifiers relate to user devices associated with users belonging to a common cohort. 11. The method of claim 10, wherein comparing the first matrix and the second matrix comprises: selecting a mask based on a type of cohort; applying the mask to the first matrix to generate a first masked matrix; applying the mask to the second matrix to generate a second masked matrix; and comparing the first masked matrix and the second masked matrix. 12. The method of claim 10, wherein generating a matrix comprises: dividing a time period into a plurality of time slots; determining a location for each time slot; and recording the location in the matrix. 13. The method of claim 12, wherein determining a location for each time slot comprises: retrieving the start time of the time slot; selecting an event record in the subset of event records having time data closest to the start time; recording the location of the event record as the location for the time slot. 14. The method of claim 12, wherein determining a location for each time slot comprises: retrieving the start time of the time slot; selecting an event record in the subset of event records having time data closest to the start time; temporarily recording the location of the event record as the location for the time slot; aggregating the plurality of time slots into a plurality of time slot groups; calculating the most common location across each time slot group; and recording the most common location for each time slot group as the location for each of the time slots in time slot group. 15. The method of claim 12, wherein determining a location for each time slot comprises: dividing each time slot into a plurality of sub-slots, the plurality of sub-slots comprising two edge sub-slots and one or more central sub-slots; for each edge sub-slot: retrieving the start time of the edge sub-slot; selecting an event record in the subset of event records having time data closest to the start time; and recording the location of the event record as the locations for the edge sub-slot; for each central sub-slot: retrieving the start time of the time slot; selecting an event record in the subset of event records having time data closest to the start time; and temporarily recording the location of the event record as the location for the time slot; calculating the most common location across the central sub-slots; and recording the most common location for each central sub-slot. 16. The method of claim 12, wherein the matrix is associated with a first user, and wherein determining a location for each time slot comprises: identifying one or more second users associated with first user; retrieving a matrix for each second user; and recording the location for a time slot in the matrix of one or more of the second users as the location for a corresponding time slot in the matrix associated with the first user. 17. A computer-readable medium having computer-executable instructions stored thereon which, when executed by a computer, cause the computer to perform the method of claim 1.