IP Library Granted Patent US 12,143,884
Granted Patent B2
US 12,143,884 · App. 15/664,496 · Granted Nov 12, 2024

Inference pipeline system and method

Inventors: David Shim (Seattle, WA); Brad Bicknell (Seattle, WA); George Varghese (Kirkland, WA); Nick Gerner (Seattle, WA); Weilie Yi (Bellevue, WA)
Assignee: FOURESQUARE LABS, INC.
H04W4/021G06N5/04G06N5/048H04W4/029
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 12,143,884
App. No.
15/664,496
Granted
Nov 12, 2024
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 (48)

1. A method for inferring a location of a user, the method comprising:

receiving raw location data from a mobile device associated with a user;

filtering the raw location data to generate filtered location data, wherein filtering the raw location data comprises:

filtering low accuracy location data from the raw location data, wherein the low accuracy location data is identified based upon an accuracy estimate associated with one or more portions of the raw location data with respect to an indicated location, the accuracy estimate reported by the mobile device, and wherein the low accuracy location data is filtered based upon a first threshold; and

filtering noisy location data from the raw location data, wherein noisy location data is location data estimated as accurate but has a distance greater than a second threshold from an average location, the average location determined based upon a predetermined number of locations readings preceding the noisy location data and a predetermined number of location readings after the noisy location data;

identifying, from the filtered location data, a stationary location of the mobile device, wherein the stationary location is associated with the mobile device being stationary for longer than a threshold time;

determining multiple candidate place names that are within a predetermined radius of the stationary location, wherein determining multiple candidate place names that are within a predetermined radius of the stationary location includes querying a place name database that includes place information and corresponding geo-location data;

obtaining attributes of the filtered location data and attributes of the multiple candidate place names;

extracting, for each candidate place name, place features based upon attributes for an individual place name;

extracting cluster features describing cluster properties, wherein the cluster features comprise radius of the cluster, number of location readings within the cluster, and noisiness of location readings in the cluster, and wherein the cluster features are applicable to the multiple candidate place names located within the cluster;

extracting user features from a profile associated with the user;

generating a composite feature vector based upon the place features comprising the place features describing a candidate place, the cluster features, and the user features describing the user, the user features comprising demographic attributes; and

inferring, based upon the composite feature vector, one of the multiple candidate place names as a place name for the stationary location based on a comparison of the attributes.

2. The method of claim 1 , wherein the raw location data comprises a series of location data, the method further comprising:

classifying a sliding window of N contiguous location data over the series of location data as moving or not moving, wherein N is an integer number of location data;

segmenting the series of location data into two or more location clusters based on whether the sliding window is classified as moving or not moving; and

identifying a place name for each of the two or more location clusters.

3. The method of claim 1 , further comprising:

receiving reference data associated with the user that links the user to a candidate place at an instance of time;

wherein inferring one of the multiple candidate place names as a place name for the stationary location includes inferring one of the multiple candidate place names based on the received reference data.

4. The method of claim 1 , wherein the raw location data includes latitude and longitude coordinate data and an associated time at which the data was measured.

5. The method of claim 1 , wherein the raw location data is received based on continuous tracking of the user.

6. The method of claim 1 , wherein the raw location data is received during session-based tracking of the user.

7. A system for inferring a location of a user, the system comprising:

at least one processor; and

memory storing executable instructions that, when executed by the at least one processor, performs a method comprising:

receiving multiple location readings, wherein each location reading is associated with a time and estimated accuracy;

filtering the multiple location readings to generate filtered location readings, wherein filtering the multiple location readings comprises:

filtering low accuracy location data from the multiple location readings, wherein the low accuracy location data is identified based upon an accuracy estimate associated with one or more portions of the multiple location readings, the accuracy estimate reported by the mobile device, and wherein the low accuracy location data is filtered based upon a first threshold; and

filtering noisy location readings from the multiple location readings, wherein a noisy location reading is a location reading estimated as accurate but has a distance greater than a second threshold from an average location, the average location determined based upon a predetermined number of locations readings preceding the noisy location data and a predetermined number of location readings after the noisy location data;

determining a stop for the mobile device based on the filtered location readings, wherein the stop includes a stop time and a stop location;

predicting a plurality of possible places associated with the determined stop location at the determined stop time;

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

extracting, for each possible place, place features based upon attributes for an individual place name;

extracting cluster features describing cluster properties, wherein the cluster features comprise radius of the cluster, number of location readings within the cluster, and noisiness of location readings in the cluster, and wherein the cluster features are applicable to the plurality of possible places located within the cluster;

extracting user features from a profile associated with the user;

generating a composite feature vector based upon the place features comprising the place features describing a candidate place, the cluster features, and the user features describing the user, the user features comprising demographic attributes; and

inferring, based upon the composite feature vector, one of the multiple candidate place names as a place name for the stationary location based on a comparison of the attributes.

8. The system of claim 7 , wherein the stop is determined by determining the time and location of the mobile device by clustering the filtered location readings into location clusters.

9. The system of claim 7 , wherein the stop is determined by determining the time and location of the mobile device by clustering the filtered location readings into location clusters; and

wherein the method further comprises merging neighboring location clusters when a centroid of each of the neighboring location clusters is below a centroid threshold.

10. The system of claim 7 , wherein the stop is determined by determining the time and location of the mobile device by clustering the filtered location readings into location clusters; and

wherein the method further comprises querying 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 locations and attributes corresponding to places.

11. The system of claim 7 , wherein the method further comprises calculating a probability that the user is located at each of the possible places, wherein the probability is based on a distance between reference data and each of the possible places and the extracted attribute.

12. The system of claim 11 , wherein the reference data links the user to a candidate 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, geotagged image, email, phone call, calendar appointment or network activity.

13. The system of claim 7 , wherein the stop is determined by determining the time and location of the mobile device by clustering the filtered location readings into location clusters;

wherein the method further comprises computing 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.

Assignments (8)
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 23, 2019
From: SHIM, DAVID; BICKNELL, BRAD; VARGHESE, GEORGE; GERNER, NICK; YI, WEILIE
To: PLACED, INC.
Reel/Frame 049267/0325 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 8, 2018
From: PLACED, INC.
To: SNAP INC
Reel/Frame 044866/0232 →