IP Library Granted Patent US 9,483,498
Granted Patent B2
US 9,483,498 · App. 15/009,053 · Granted Nov 1, 2016

Apparatus and method for profiling users

Inventors: Stephen Milton (Lyons, CO); Duncan McCall (Greenwich, CT)
Assignee: PlaceIQ, Inc.
G06F17/30241G06F17/30G06F17/3053G06F17/3087G06F17/30867G06Q30/02H04W4/028
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,483,498
App. No.
15/009,053
Granted
Nov 1, 2016
Kind
B2
Abstract

Provided is a process of profiling a user of a mobile computing device, the process including: obtaining a location history of a user, the location history being based on signals from a mobile computing device of the user; obtaining a location-attribute score of a location identified in, or inferred from, the location history; determining, with a computer, a user-attribute score based on the location-attribute score; and storing the user-attribute score in a user-profile datastore.

Claims (91)

1. A datacenter configured to expedite generation of user profiles based on time-dependent attributes of geolocations sensed by mobile computing devices, the datacenter comprising:

a primary computing device having one or more processors and storing an instance of an operating system;

a local area network; and

a plurality of secondary computing devices communicatively coupled with the master computing device via the local area network, each secondary computing device having one or more processors and storing an instance of an operating system, wherein the primary computing device and the plurality of secondary computing devices store instructions that when executed by the primary computing device and the plurality of secondary computing devices effectuate operations comprising:

obtaining, in memory, location histories of a plurality of users, the location histories including geolocations of corresponding mobile computing devices and times at which the mobile computing devices were at the geolocations;

querying, with one or more processors, a geographic information system (GIS), with the geolocations and times, for time-dependent attribute scores of places the location histories indicate at least some of the users visited, wherein the GIS associates each of the places with a plurality of different durations of time and each of the durations of time with attribute scores for more than 100 different attributes;

generating, with one or more processors, user profiles of the plurality of users based on time-dependent attribute scores responsive to the query, wherein the user profiles each include a plurality of profile-attribute scores based on the time-dependent attribute scores responsive to the query for places visited by a corresponding user, wherein generating user profiles comprises:

assigning, with the primary computing device, different profiling tasks to each of a plurality of different secondary computing devices; and

performing the profiling tasks by determining, with the secondary computing devices, at least some of the plurality of profile-attribute scores; and

storing the generated user profiles in memory.

2. The datacenter of claim 1 , the operations comprising, after storing the generated user profiles, expediting query responses by indexing places where behaviors co-occur during specified durations of time by performing operations comprising:

creating a first set of places by selecting places where the users having a given profile-attribute score that satisfies a threshold tend to co-occur in a first duration of time; and

creating a second set of places by selecting places where the users having the given profile-attribute score that satisfies the threshold tend to co-occur in a second duration of time different from the first duration of time.

3. The datacenter of claim 2 , the operations comprising:

after indexing places where behaviors co-occur during specified durations of time, receiving a first query specifying a geolocation or place and an instance of the first duration of time;

selecting the first set of places in response to the first query specifying the instance of the first duration of time; and

determining whether the first geolocation or place corresponds to any of the first set of places.

4. The datacenter of claim 3 , the operations comprising:

after receiving the first query, receiving a second query from a remote computing device specifying another geolocation or place and an instance of the second duration of time;

selecting the second set of places in response to the second query specifying the instance of the second duration of time; and

determining whether the other geolocation or place corresponds to any of the second set of places; and

sending a response to the remote computing device indicative of whether the other geolocation or place corresponds to any of the second set of places.

5. The datacenter of claim 1 , wherein the GIS associates each of the durations of time with attribute scores for more than 1,000 different attributes, and wherein the user profiles comprise measures of central tendency for the more than 1,000 different attributes for at least a plurality of the durations of time.

6. The datacenter of claim 1 , wherein obtaining the location histories comprises:

obtaining an initial location of the user at an initial time;

obtaining a subsequent location of the user at a subsequent time, the subsequent time being more than one minute after the initial time; and

inferring an intermediate location of the user at an intermediate time based on attributes of locations between the initial location and the subsequent location.

7. The datacenter of claim 1 , wherein generating user profiles comprises, for a given time-dependent attribute score, performing steps for determining that adjacent locations have attribute scores consistent with the given time-dependent attribute score.

8. The datacenter of claim 1 , the operations comprising:

labeling a user profile of a given user with a hash value formed by hashing an identifier of a source of a first location history of the given user;

after storing the user profile of the given user, obtaining a second location history of the given user; and

matching the second location history to the user profile of the given user based on the hash value.

9. The datacenter of claim 1 , wherein:

obtaining location histories comprises performing steps for obtaining location histories; and

querying the GIS comprises performing steps for expediting data retrieval with concurrency.

10. The datacenter of claim 1 , the operations comprising:

after storing the user profiles, performing steps for using user-profile records in a user-profile datastore.

11. The datacenter of claim 1 , wherein querying the GIS comprises:

assigning, with a primary computing device, places to a plurality of secondary computing devices; and

instructing the secondary computing devices to which the places were assigned to gather data from the GIS about events occurring in places assigned to the respective secondary computing devices, the events each corresponding to entries in the location histories.

12. The datacenter of claim 11 , the operations comprising:

filtering, with secondary computing devices, events occurring within respective assigned places from the location histories to form an event group; and

retrieving time-dependent attribute records for the event group.

13. The datacenter of claim 1 , wherein:

the places are specified by tiles in a grid, at least some of the tiles having a width of less than 1000-meters;

the durations of time are portions of the week, including a weekend-specific portion; and

the time-dependent attribute scores comprise values indicative of a degree to which users tend to engage in activities corresponding to the attribute in a corresponding tile at a corresponding duration of time.

14. A method, comprising:

obtaining, in memory, location histories of a plurality of users, the location histories including geolocations of corresponding mobile computing devices and times at which the mobile computing devices were at the geolocations;

querying, with one or more processors, a geographic information system (GIS), with the geolocations and times, for time-dependent attribute scores of places the location histories indicate at least some of the users visited, wherein the GIS associates each of the places with a plurality of different durations of time and each of the durations of time with attribute scores for more than 100 different attributes;

generating, with one or more processors, user profiles of the plurality of users based on time-dependent attribute scores responsive to the query, wherein the user profiles each include a plurality of profile-attribute scores based on the time-dependent attribute scores responsive to the query for places visited by a corresponding user, wherein generating user profiles comprises:

assigning, with a primary computing device, different profiling tasks to each of a plurality of different secondary computing devices; and

performing the profiling tasks by determining, with the secondary computing devices, at least some of the plurality of profile-attribute scores; and

storing the generated user profiles in memory.

15. The method of claim 14 , comprising, after storing the generated user profiles, expediting query responses by indexing places where behaviors co-occur during specified durations of time by performing operations comprising:

creating a first set of places by selecting places where the users having a given profile-attribute score that satisfies a threshold tend to co-occur in a first duration of time; and

creating a second set of places by selecting places where the users having the given profile-attribute score that satisfies the threshold tend to co-occur in a second duration of time different from the first duration of time.

16. The method of claim 15 , comprising:

after indexing places where behaviors co-occur during specified durations of time, receiving a first query specifying a geolocation or place and an instance of the first duration of time;

selecting the first set of places in response to the first query specifying the instance of the first duration of time; and

determining whether the first geolocation or place corresponds to any of the first set of places.

17. The method of claim 16 , comprising:

after receiving the first query, receiving a second query from a remote computing device specifying another geolocation or place and an instance of the second duration of time;

selecting the second set of places in response to the second query specifying the instance of the second duration of time; and

determining whether the other geolocation or place corresponds to any of the second set of places; and

sending a response to the remote computing device indicative of whether the other geolocation or place corresponds to any of the second set of places.

18. The method of claim 14 , wherein the GIS associates each of the durations of time with attribute scores for more than 1,000 different attributes, and wherein the user profiles comprise measures of central tendency for the more than 1,000 different attributes for at least a plurality of the durations of time.

19. The method of claim 14 , wherein obtaining the location histories comprises:

obtaining an initial location of the user at an initial time;

obtaining a subsequent location of the user at a subsequent time, the subsequent time being more than one minute after the initial time; and

inferring an intermediate location of the user at an intermediate time based on attributes of locations between the initial location and the subsequent location.

20. The method of claim 14 , wherein generating user profiles comprises, for a given time-dependent attribute score, performing steps for determining that adjacent locations have attribute scores consistent with the given time-dependent attribute score.

21. The method of claim 14 , comprising:

labeling a user profile of a given user with a hash value formed by hashing an identifier of a source of a first location history of the given user;

after storing the user profile of the given user, obtaining a second location history of the given user; and

matching the second location history to the user profile of the given user based on the hash value.

22. The method of claim 14 , wherein:

obtaining location histories comprises performing steps for obtaining location histories; and

querying the GIS comprises performing steps for expediting data retrieval with concurrency.

23. The method of claim 14 , comprising:

after storing the user profiles, performing steps for using user-profile records in a user-profile datastore.

24. The method of claim 14 , wherein querying the GIS comprises:

assigning, with a primary computing device, places to a plurality of secondary computing devices; and

instructing the secondary computing devices to which the places were assigned to gather data from the GIS about events occurring in places assigned to the respective secondary computing devices, the events each corresponding to entries in the location histories.

25. The method of claim 24 , the operations comprising:

filtering, with secondary computing devices, events occurring within respective assigned places from the location histories to form an event group; and

retrieving time-dependent attribute records for the event group.

26. The method of claim 14 , wherein:

the places are specified by tiles in a grid, at least some of the tiles having a width of less than 1000-meters;

the durations of time are portions of the week, including a weekend-specific portion; and

the time-dependent attribute scores comprise values indicative of a degree to which users tend to engage in activities corresponding to the attribute in a corresponding tile at a corresponding duration of time.

Assignments (4)
FIRST LIEN GRANT OF SECURITY INTEREST IN PATENTS Recorded Feb 15, 2022
From: PLACEIQ, INC.
To: JPMORGAN CHASE BANK, N.A AS COLLATERAL AGENT
Reel/Frame 059110/0504 →
SECOND LIEN GRANT OF SECURITY INTEREST IN PATENTS Recorded Feb 15, 2022
From: PLACEIQ, INC.
To: BARLCAYS BANK PLC, AS COLLATERAL AGENT
Reel/Frame 059110/0787 →
NOTICE OF RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY (REEL/FRAME 054517/0223) Recorded Feb 11, 2022
From: SILICON VALLEY BANK
To: PLACEIQ, INC.
Reel/Frame 059032/0990 →
SECURITY INTEREST Recorded Dec 2, 2020
From: PLACEIQ, INC.
To: SILICON VALLEY BANK
Reel/Frame 054517/0223 →
Continuity (3)
Continuation 13918576 · Jun 14, 2013
Continuation 13734674 · Jan 4, 2013
Related Publication 20160147790A1 · May 26, 2016