Serving a request for data from a historical record of anonymized user profile data in a mobile environment
First Claim
1. A method comprising:
- maintaining a historical record of anonymized user profile data by location for a plurality of users of a plurality of mobile devices, each of the plurality of users being a user of a corresponding one of the plurality of mobile devices;
receiving a historical request from a requestor for past historical data;
establishing a bounding region and time window for the historical request, the time window comprising a past time window;
returning past historical data to the requestor based on anonymized user profile data relevant to the bounding region and the time window for the historical request obtained from the historical record of anonymized user profile data, wherein the historical record of anonymized user profile data comprises a plurality of history objects that store anonymized user profile data for a plurality of geographic regions of varying sizes for each of a plurality of time intervals;
dividing the time window for the historical request into a plurality of output time bands;
for each output time band of the plurality of output time bands;
obtaining history obiects from the plurality of history obiects that are relevant to the bounding region and the output time band;
generating aggregate profiles for the history objects relevant to the bounding region and the output time band;
determining relevancy weights for the history obiects relevant to the bounding region and the output time band; and
computing an average aggregate profile for the output time band as a weighted average of the aggregate profiles for the history objects relevant to the bounding region and the output time band using the relevancy weights for the history obiects relevant to the bounding region and the output time band to provide the aggregate profile data for the output time band.
13 Assignments
0 Petitions
Accused Products
Abstract
A system and method are provided for maintaining a historical record of anonymized user profile data for mobile device users and serving historical requests. In one embodiment, a central system, which includes one or more servers, operates to obtain current locations and user profiles for users of mobile devices. The central system processes the current locations and the user profiles of the users over time to maintain a historical record of anonymized user profile data by location. By anonymizing the user data, privacy of the users of the mobile devices is maintained. The central system may then use the historical record of anonymized user profile data to respond to historical requests. The historical requests may be made by users of the mobile devices, subscribers, and/or third-party services.
122 Citations
16 Claims
-
1. A method comprising:
-
maintaining a historical record of anonymized user profile data by location for a plurality of users of a plurality of mobile devices, each of the plurality of users being a user of a corresponding one of the plurality of mobile devices; receiving a historical request from a requestor for past historical data; establishing a bounding region and time window for the historical request, the time window comprising a past time window; returning past historical data to the requestor based on anonymized user profile data relevant to the bounding region and the time window for the historical request obtained from the historical record of anonymized user profile data, wherein the historical record of anonymized user profile data comprises a plurality of history objects that store anonymized user profile data for a plurality of geographic regions of varying sizes for each of a plurality of time intervals; dividing the time window for the historical request into a plurality of output time bands; for each output time band of the plurality of output time bands; obtaining history obiects from the plurality of history obiects that are relevant to the bounding region and the output time band; generating aggregate profiles for the history objects relevant to the bounding region and the output time band; determining relevancy weights for the history obiects relevant to the bounding region and the output time band; and computing an average aggregate profile for the output time band as a weighted average of the aggregate profiles for the history objects relevant to the bounding region and the output time band using the relevancy weights for the history obiects relevant to the bounding region and the output time band to provide the aggregate profile data for the output time band. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A method comprising:
-
maintaining a historical record of anonymized user profile data by location for a plurality of users of a plurality of mobile devices, each of the plurality of users being a user of a corresponding one of the plurality of mobile devices, wherein the historical record of anonymized user profile data comprises a plurality of history objects storing anonymized user profile data for a plurality of geographic regions of varying sizes for each of a plurality of time intervals using a quadtree algorithm; receiving a historical request from a requestor for past historical data; establishing a bounding region and time window for the historical request, the time window comprising a past time window; and returning past historical data to the requestor based on anonymized user profile data relevant to the bounding region and the time window for the historical request obtained from the historical record of anonymized user profile data; for each grid location of a plurality of grid locations relevant to the bounding region; obtaining history objects relevant to the bounding region and the time window of the historical request; sorting the history objects relevant to the bounding region and the time window of the historical request into lists of history objects for one or more base quadtree nodes that overlap the bounding region; and for each history object for each base quadtree node of the one or more base quadtree nodes that overlap the bounding region; creating an aggregate profile for the history object based on the anonymized user profile data included in the history object; determining whether a geographic region for which the history object stores anonymized user profile data is larger than a smallest geographic region for which any history object for the base quadtree node stores anonymized user profile data; if the geographic region for which the history object stores anonymized user profile data is not larger than the smallest geographic region for which any history object for the base quadtree node stores anonymized user profile data, adding the aggregate profile created for the history object to a list of aggregate profiles for a corresponding grid location; and if the geographic region for which the history object stores anonymized user profile data is greater than the smallest geographic region for which any history object for the base quadtree node stores anonymized user profile data; distributing the aggregate profile created for the history object evenly over a number of grid locations having a size equal to the smallest geographic region for which any history object for the base quadtree node stores anonymized user profile data, thereby providing aggregate profiles for the number of grid locations; and adding the aggregate profiles for the number of grid locations to lists of aggregate profiles for the number of grid locations; and generating aggregate profile data for the grid location based on the anonymized user profile data relevant to the grid location and the time window of the historical request. - View Dependent Claims (14)
-
-
15. A hardware server comprising:
-
a communication interface communicatively coupling the server to a plurality of mobile devices of a plurality of users via a network, each of the plurality of users being a user of a corresponding one of the plurality of mobile devices; and a control system associated with the communication interface and configured to; maintain a historical record of anonymized user profile data by location for the plurality of users of the plurality of mobile devices; receive a historical request from a requestor for past historical data; establish a bounding region and time window for the historical request, the time window comprising a past time window; return past historical data to the requestor based on anonymized user profile data relevant to the bounding region and the time window for the historical request obtained from the historical record of anonymized user profile data, wherein the historical record of anonymized user profile data comprises a plurality of history objects that store anonymized user profile data for a plurality of geographic regions of varying sizes for each of a plurality of time intervals; divide the time window for the historical request into a plurality of output time bands; for each output time band of the plurality of output time bands; obtain history objects from the plurality of history objects that are relevant to the bounding region and the output time band; generate aggregate profiles for the history objects relevant to the bounding region and the output time band; determine relevancy weights for the history obiects relevant to the bounding region and the output time band; and compute an average aggregate profile for the output time band as a weighted average of the aggregate profiles for the history objects relevant to the bounding region and the output time band using the relevancy weights for the history obiects relevant to the bounding region and the output time band to provide the aggregate profile data for the output time band.
-
-
16. A non-transitory computer readable medium storing software for instructing a controller of a server to:
-
maintain a historical record of anonymized user profile data by location for a plurality of users of a plurality of mobile devices, each of the plurality of users being a user of a corresponding one of the plurality of mobile devices; receive a historical request from a requestor for past historical data; establish a bounding region and time window for the historical request, the time window comprising a past time window; return past historical data to the requestor based on anonymized user profile data relevant to the bounding region and the time window for the historical request obtained from the historical record of anonymized user profile data, wherein the historical record of anonymized user profile data comprises a plurality of history obiects that store anonymized user profile data for a plurality of geographic regions of varying sizes for each of a plurality of time intervals; divide the time window for the historical request into a plurality of output time bands; for each output time band of the plurality of output time bands; obtain history objects from the plurality of history objects that are relevant to the bounding region and the output time band; generate aggregate profiles for the history obiects relevant to the bounding region and the output time band; determine relevancy weights for the history objects relevant to the bounding region and the output time band; and compute an average aggregate profile for the output time band as a weighted average of the aggregate profiles for the history objects relevant to the bounding region and the output time band using the relevancy weights for the history objects relevant to the bounding region and the output time band to provide the aggregate profile data for the output time band.
-
Specification