IP Library Granted Patent US 9,589,280
Granted Patent B2
US 9,589,280 · App. 14/334,066 · Granted Mar 7, 2017

Matching anonymized user identifiers across differently anonymized data sets

Inventors: Stephen Milton (Lyons, CO); Duncan McCall (Greenwich, CT)
Assignee: PlaceIQ, Inc.
G06Q30/0269
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,589,280
App. No.
14/334,066
Granted
Mar 7, 2017
Kind
B2
Abstract

Provided is a process of obtaining a plurality of location data sets from different providers of user geolocation history, each location data set including a plurality of user-activity records, each user-activity records being associated with a user identifier and including geolocations of the corresponding user and times that the corresponding user was at the geolocations, the different providers having different user identifiers for a given corresponding user; matching, by one or more processors, the user identifiers between the location data sets based on geolocations of the corresponding user and times that the corresponding user was at the geolocations; and storing the matched user identifiers in association with one another in corresponding user profiles.

Claims (80)

1. A method of generating user profiles, the method comprising:

obtaining a plurality of location data sets from different providers of user geolocation history, each location data set including a plurality of user-activity records, each user-activity records being associated with a user identifier and including geolocations of the corresponding user and times that the corresponding user was at the geolocations, the different providers having different user identifiers for a given corresponding user;

matching, by one or more processors, the user identifiers between the location data sets based on geolocations of the corresponding user and times that the corresponding user was at the geolocations; and

storing the matched user identifiers in association with one another in corresponding user profiles, wherein:

the geolocations are sensed based on wireless signals received by or transmitted from mobile user devices;

the location data sets are anonymized such that no canonical user identifier is present for the corresponding users across the plurality of location data sets;

at least some of the location data sets are obtained with a batch process such that the at least some of the location data sets contain data collected over at least an hour;

the user identifiers uniquely identify each corresponding user within a corresponding location data set; and

the location data sets comprise:

a first location data set having a plurality of user location histories from a cell carrier indicative of geolocations of cellular phones while on a cellular network of the cell carrier; and

a second location data set having geolocations obtained by native applications executing on at least some of the cellular phones, the native applications being provided by an entity different from the cell carrier, at least some of the native-application-obtained geolocations being obtained by a LocationProvider class of a first object oriented program executing on at least some of the cellular phones and at least some of the native-application-obtained geolocations being obtained by a CLLocationManager class of a second object oriented program executing on at least some of the other cellular phones.

2. The method of claim 1 , comprising:

calculating a confidence value for a respective match of the user identifiers based on a sample size of the user-activity records upon which the respective match is based and an amount of similarity between the geolocations of the corresponding user in the different location data sets subject to the respective match, an amount of similarity between the times that the user was at the geolocations in the different data sets subject to the respective match, or both.

3. The method of claim 1 , comprising generating user-location records from the user activity records by extracting geolocations and normalizing the extracted geolocations, wherein the normalized geolocations are matched when matching the user identifiers between the location data sets.

4. The method of claim 3 , wherein normalizing the extracted geolocations comprises:

translating the extracted geolocations into corresponding tiles of a geographic information system.

5. The method of claim 3 , wherein normalizing the extracted geolocations comprises:

translating the extracted geolocations and times that the corresponding user was at the geolocations into time-tiles associated with tile-time records of a geographic information system.

6. The method of claim 1 , wherein matching the user identifiers between the location data sets comprises:

converting the geolocations of the corresponding user and times that the corresponding user was at the geolocations into time-location vectors;

clustering the time-location vectors; and

determining that the user identifiers across the location data sets match based on a measure of similarity of clusters from the locations data sets.

7. The method of claim 6 , wherein the measure of similarity includes a distance in vector space between a measure of central tendency of two of the clusters.

8. The method of claim 7 , wherein the measure of central tendency is a centroid vector of the corresponding cluster.

9. The method of claim 1 , wherein matching the user identifiers between the location data sets comprises:

vectorizing the geolocations of the corresponding user and times that the corresponding user was at the geolocations to produce a measure of central tendency of two of the clusters;

clustering the time-location vectors within each location data set to produce clusters for each location data set; and

matching a cluster selected from one location data set among the plurality of location data sets with another cluster from another location data set among the plurality of location data sets.

10. The method of claim 9 , wherein matching the cluster selected from one location data set with the other cluster from the other location data set comprises:

calculating a similarity score for the cluster and the other cluster; and

determining that the similarity score satisfies a threshold.

11. The method of claim 9 , wherein matching the cluster selected from one location data set with the other cluster from the other location data set comprises:

calculating a Euclidean distance between centroids of the cluster selected from one location data set with the other cluster from the other location data set.

12. The method of claim 9 , wherein matching the cluster selected from one location data set with the other cluster from the other location data set comprises:

calculating a volume of overlap of convex hulls of the cluster selected from one location data set with the other cluster from the other location data set.

13. The method of claim 1 , comprising:

select a user-activity records having matched user identifiers;

generating a user profile of a given corresponding user based on information in the selected user-activity record; and

selecting an advertisement based on the generated user profile.

14. A system for generating user profiles, the system comprising:

one or more processors; and

memory storing instructions that when executed by the one or more processors effectuates operations comprising:

obtaining a plurality of location data sets from different providers of user geolocation history, each location data set including a plurality of user-activity records, each user-activity records being associated with a user identifier and including geolocations of the corresponding user and times that the corresponding user was at the geolocations, the different providers having different user identifiers for a given corresponding user;

matching, by one or more processors, the user identifiers between the location data sets based on geolocations of the corresponding user and times that the corresponding user was at the geolocations; and

storing the matched user identifiers in association with one another in corresponding user profiles, wherein:

the geolocations are sensed based on wireless signals received by or transmitted from mobile user devices;

the location data sets are anonymized such that no canonical user identifier is present for the corresponding users across the plurality of location data sets;

at least some of the location data sets are obtained with a batch process such that the at least some of the location data sets contain data collected over at least an hour;

the user identifiers uniquely identify each corresponding user within a corresponding location data set and

the location data sets comprise:

a first location data set having a plurality of user location histories from a cell carrier indicative of geolocations of cellular phones while on a cellular network of the cell carrier; and

a second location data set having geolocations obtained by native applications executing on at least some of the cellular phones, the native applications being provided by an entity different from the cell carrier, at least some of the native-application-obtained geolocations being obtained by a LocationProvider class of a first object oriented program executing on at least some of the cellular phones and at least some of the native-application-obtained geolocations being obtained by a CLLocationManager class of a second object oriented program executing on at least some of the other cellular phones.

15. The system of claim 14 , comprising:

calculating a confidence value for a respective match of the user identifiers based on a sample size of the user-activity records upon which the respective match is based and an amount of similarity between the geolocations of the corresponding user in the different location data sets subject to the respective match, an amount of similarity between the times that the user was at the geolocations in the different data sets subject to the respective match, or both.

16. The system of claim 14 , comprising generating user-location records from the user activity records by extracting geolocations and normalizing the extracted geolocations, wherein the normalized geolocations are matched when matching the user identifiers between the location data sets.

17. The system of claim 16 , wherein normalizing the extracted geolocations comprises:

translating the extracted geolocations into corresponding tiles of a geographic information system.

18. The system of claim 16 , wherein normalizing the extracted geolocations comprises:

translating the extracted geolocations and times that the corresponding user was at the geolocations into time-tiles associated with tile-time records of a geographic information system.

19. The system of claim 14 , wherein matching the user identifiers between the location data sets comprises:

converting the geolocations of the corresponding user and times that the corresponding user was at the geolocations into time-location vectors;

clustering the time-location vectors; and

determining that the user identifiers across the location data sets match based on a measure of similarity of clusters from the locations data sets.

20. The system of claim 19 , wherein the measure of similarity includes a distance in vector space between a measure of central tendency of two of the clusters.

21. The system of claim 20 , wherein the measure of central tendency is a centroid vector of the corresponding cluster.

22. The system of claim 14 , wherein matching the user identifiers between the location data sets comprises:

vectorizing the geolocations of the corresponding user and times that the corresponding user was at the geolocations to produce a measure of central tendency of two of the clusters;

clustering the time-location vectors within each location data set to produce clusters for each location data set; and

matching a cluster selected from one location data set among the plurality of location data sets with another cluster from another location data set among the plurality of location data sets.

23. The system of claim 22 , wherein matching the cluster selected from one location data set with the other cluster from the other location data set comprises:

calculating a similarity score for the cluster and the other cluster; and

determining that the similarity score satisfies a threshold.

24. The system of claim 22 , wherein matching the cluster selected from one location data set with the other cluster from the other location data set comprises:

calculating a Euclidean distance between centroids of the cluster selected from one location data set with the other cluster from the other location data set.

25. The system of claim 22 , wherein matching the cluster selected from one location data set with the other cluster from the other location data set comprises:

calculating a volume of overlap of convex hulls of the cluster selected from one location data set with the other cluster from the other location data set.

26. The system of claim 14 , comprising:

select a user-activity records having matched user identifiers;

generating a user profile of a given corresponding user based on information in the selected user-activity record; and

selecting an advertisement based on the generated user profile.

Assignments (7)
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 →
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 →
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 →
NOTICE OF RELEASE OF SECURITY INTEREST IN INTELLECTUAL PROPERTY (REEL/FRAME 035898/0540) Recorded Feb 11, 2022
From: SILICON VALLEY BANK
To: PLACEIQ, INC.
Reel/Frame 059033/0824 →
SECURITY INTEREST Recorded Dec 2, 2020
From: PLACEIQ, INC.
To: SILICON VALLEY BANK
Reel/Frame 054517/0223 →
SECURITY AGREEMENT Recorded Jun 12, 2015
From: PLACEIQ, INC.
To: SILICON VALLEY BANK
Reel/Frame 035898/0540 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2014
From: MILTON, STEPHEN; MCCALL, DUNCAN
To: PLACEIQ, INC.
Reel/Frame 033666/0680 →
Continuity (2)
Provisional Application 61847083 · Jul 17, 2013
Related Publication 20150026181A1 · Jan 22, 2015