IP Library Granted Patent US 9,256,832
Granted Patent B2
US 9,256,832 · App. 14/300,102 · Granted Feb 9, 2016

Inference pipeline system and method

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,256,832
App. No.
14/300,102
Granted
Feb 9, 2016
Kind
B2
Abstract

A system to infer place data is disclosed that receives location data collected on a user's mobile electronic device, recognizes when, where and for how long the user makes stops, generates possible places visited, and predicts the likelihood of a user to visit those places.

Claims (62)

1. A system for using location data to infer a place name of a user, comprising:

at least one database configured to store place data and a sequence of location readings, wherein the place data includes place information and corresponding geolocation data, wherein the sequence of location readings includes latitude and longitude coordinate data and an associated time;

at least one server coupled to the at least one database, wherein the server is configured to:

identify a list of location clusters, wherein each cluster includes a number of location reads that are chronologically continuous and geographically close to each other;

compute a centroid or sub-centroids of each of the list of location clusters;

query the place database to identify candidate places that are within a predetermined radius of the centroid of each location cluster;

extract a feature from each of the candidate places, wherein the feature includes a place category, popularity, or hours of operation; and

calculate a probability that the user is located at each of the candidate places, wherein the probability is based on features of the candidate places.

2. The system of claim 1 , wherein the at least one database is further configured to store reference data, wherein the reference data links the user or the user's mobile device to a candidate place at an instance of time, and wherein the reference data includes at least one of: a user check-in at a certain place, a place category, a popularity of a place, or hours of operation.

3. The system of claim 1 , wherein the at least one database is further configured to store sensor data, and wherein the sensor data includes at least two of: acceleration, magnetic orientation, proximity, light intensity, battery status, gyroscope, or temperature.

4. The system of claim 1 , wherein the location readings also include altitude, bearing, and speed of a mobile device associated with the user.

5. The system of claim 1 , wherein the at least one server is further configured to rank order a predetermined number of the candidate places for the user to validate as a confirmed location.

6. The system of claim 2 , wherein the reference data is derived from at least one of: place check-in, internet search activity, social networking site activity, geo-tagged image, email, phone call, calendar appointment or network data.

7. A method for using location data to obtain a name of a place associated with the location data, comprising:

receiving a sequence of location readings from a mobile device associated with a user,

wherein the sequence of location readings includes latitude and longitude coordinate data and an associated time;

filtering the location readings to produce filtered location data;

identifying a location from the filtered location data;

querying a place database to identify multiple candidate places that are within a predetermined radius of a centroid computed from the identified location; and

calculating a probability that the user is located at each of the multiple candidate places.

8. The method of claim 7 , wherein the filtering classifies a sliding window of N contiguous location readings over the sequence of location readings as moving or not moving, wherein N is an integer number of location readings.

9. The method of claim 8 , further comprising segmenting the sequence of location readings into two or more location clusters, and identifying a centroid of each of the two or more location clusters.

10. The method of claim 7 , further comprising rank ordering a predetermined number of the multiple candidate places for the user to validate as a confirmed location.

11. The method of 7 , further comprising extracting a feature from each of the multiple candidate places, wherein the feature includes a place category, popularity, or hours of operation.

12. The method of claim 11 , wherein the extracted feature of a candidate place is used in calculating the probability that the user is located at the candidate place.

13. A system for inferring a location of a user using location readings and sensor data from a mobile device wirelessly coupled to a network, the system comprising:

a memory;

a processor configured to execute instructions stored in the memory to:

receive multiple location readings,

wherein each location reading includes latitude and longitude coordinate data, and

wherein each location reading has an associated time and an estimated accuracy;

filter the location readings to remove location readings that are noisy or have estimated accuracy lower than a threshold;

determine that the mobile device is stationary based on the filtered location readings;

identify a time and location of a stop by temporally clustering the filtered location readings into location clusters; and,

predict for each location cluster possible places associated with the identified stop at the identified time.

14. The system of claim 13 , further configured to:

merge neighboring location clusters when a centroid of each of the neighboring location clusters is below a centroid threshold.

15. The system of claim 13 , further configured to:

query a place database to retrieve the possible places that are within a radius from a centroid of each of the location clusters;

wherein the place database stores addresses, locations and attributes corresponding to places.

16. The system of claim 15 , further configured to:

extract an attribute of each of the possible places, wherein the attribute includes at least one of a place category or hours of operation.

17. The system of claim 16 , further configured to:

calculate a probability that the user is located at each of the possible places, wherein the probability factors in a distance between reference data and each of the possible places and the extracted attribute.

18. The system of claim 13 , further configured to compute a centroid of each of the location clusters as a weighted combination of location readings associated with the location cluster, wherein a weight of a location reading depends on the source of the location reading.

19. The system of claim 13 , further configured to

extract at least two of cluster features from each location cluster, place features from each of the possible places or user features associated with the user;

determine a composite feature vector by combing the extracted features;

determine a ranking score for each of the possible places using the composite feature vector; and

calculate a probability that the user is located at each of the possible places based at least in part on the ranking score.

20. The system of claim 2 , wherein calculating the probability that the user is located at each of the candidate places is based on hours of operation for the candidate places or a distance between the reference data and each of the candidate places.

21. The system of claim 17 , wherein the reference data links the user to a proposed place at an instance of time, and wherein the reference data is derived from at least one of: place check-in, internet search activity, social networking site activity, geo-tagged image, email, phone call, calendar appointment or network activity.

22. A non-transitory computer-readable storage medium storing instructions for using location data to obtain a name of a place associated with the location data, comprising:

instructions for receiving a sequence of location readings from a mobile device associated with a user, wherein the sequence of location readings includes latitude and longitude coordinate data and an associated time;

instructions for filtering the location readings to produce filtered location data;

instructions for identifying a location from the filtered location data;

instructions for querying a place database to identify multiple candidate places that are within a predetermined radius of a centroid computed from the identified location; and

instructions for calculating a probability that the user is located at each of the multiple candidate places.

23. The medium of claim 22 , wherein the instructions for filtering further comprises:

instructions for classifying a sliding window of N contiguous location readings over the sequence of location readings as moving or not moving, wherein N is an integer number of location readings; and

instructions for segmenting the sequence of location readings into two or more location dusters, and identifying a centroid of each of the two or more location dusters.

24. The medium of 22 , further comprising instructions for extracting a feature from each of the multiple candidate places, wherein the feature includes a place category, popularity, or hours of operation, wherein the extracted feature of a candidate place is used in calculating the probability that the user is located at the candidate place.

Assignments (10)
RELEASE OF SECURITY INTEREST AT REEL/FRAME 50884/0418 Recorded Jul 15, 2022
From: OBSIDIAN AGENCY SERVICES, INC.
To: FOURSQUARE LABS, INC.
Reel/Frame 060669/0657 →
SECURITY INTEREST Recorded Jul 13, 2022
From: FOURSQUARE LABS, INC.
To: WELLS FARGO BANK, NATIONAL ASSOCIATION, AS AGENT
Reel/Frame 060649/0366 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 22, 2022
From: PLACED, LLC
To: FOURSQUARE LABS, INC.
Reel/Frame 059977/0671 →
SECURITY INTEREST Recorded Oct 30, 2019
From: PLACED, LLC
To: OBSIDIAN AGENCY SERVICES, INC.
Reel/Frame 050884/0418 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 16, 2019
From: SNAP INC.
To: PLACED, LLC (F/K/A PLACED, INC.)
Reel/Frame 050077/0358 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PCT NUMBER PCT/IB2016/058014 PREVIOUSLY RECORDED ON REEL 047690 FRAME 0640. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF NAME. Recorded Jan 17, 2019
From: SNAPCHAT, INC.
To: SNAP INC.
Reel/Frame 048089/0452 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT APPL. NO. 15/018,539 PREVIOUSLY RECORDED AT REEL: 044866 FRAME: 0232. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jan 14, 2019
From: PLACED, INC.
To: SNAP INC.
Reel/Frame 048070/0771 →
CHANGE OF NAME Recorded Dec 6, 2018
From: SNAPCHAT, INC.
To: SNAP INC.
Reel/Frame 047690/0640 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2018
From: PLACED, INC.
To: SNAP INC
Reel/Frame 044866/0232 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 18, 2014
From: SHIM, DAVID; BICKNELL, BRAD; VARGHESE, GEORGE; GERNER, NICK; YI, WEILIE
To: PLACED, INC.
Reel/Frame 034540/0534 →