IP Library Granted Patent US 9,697,245
Granted Patent B1
US 9,697,245 · App. 14/984,397 · Granted Jul 4, 2017

Data-dependent clustering of geospatial words

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,697,245
App. No.
14/984,397
Granted
Jul 4, 2017
Kind
B1
Abstract

Embodiments include method, systems and computer program products for data-dependent clustering of geospatial words. In some embodiments, a matrix of words and locations may be obtained. A plurality of locality-sensitive hash (LSH) functions may be generated. A plurality of sparse row vectors may be generated. A plurality of sparse LSH functions may be generated based on the plurality of LSH functions. A clustering bucket may be determined from a plurality of clustering buckets for each of the plurality of sparse row vectors using the sparse LSH functions.

Claims (77)

1. A computer-implemented method comprising:

obtaining a matrix of words and locations;

generating a locality-sensitive hash (LSH) function;

identifying a row vector corresponding to a word in the matrix, the row vector comprising a plurality of location dimensions;

generating a sparse row vector that corresponds to the row vector by performing location sampling relative to a geospatial distribution of the word, wherein performing location sampling comprises selecting a subset of dominant location dimensions from the plurality of location dimensions in the row vector to retain in the sparse row vector and discarding the remaining location dimensions, and wherein selecting a subset of dominant location dimensions comprises determining that the word corresponding to the row vector occurs more frequently in connection with the dominant location dimensions than the discarded remaining location dimensions;

generating a sparse LSH function using the LSH function and the sparse row vector;

generating a signature for the sparse row vector using the sparse LSH function;

determining a clustering bucket to which the signature corresponds;

adding the word to the clustering bucket,

receiving input data,

generating an input signature corresponding to the input data;

determining that the input signature matches a signature associated with the clustering bucket;

determining a geographical location from metadata associated with the clustering bucket; and

geotagging the input data by associating the geographical location with the input data.

2. The computer-implemented method of claim 1 , wherein generating the sparse LSH function further comprises:

pairing the LSH function with the sparse row vector, wherein the sparse row vector is randomly selected; and

generating the sparse LSH function by applying an AND Boolean to the LSH function and the randomly selected sparse row vector.

3. The computer-implemented method of claim 1 , wherein determining the clustering bucket further comprises determining that the generated signature matches a signature associated with the clustering bucket.

4. The computer-implemented method of claim 1 , wherein the row vector is a first row vector and the sparse row vector is a first sparse row vector, the method further comprising generating a second sparse row vector, wherein generating the second sparse row vector comprises:

obtaining a fixed number corresponding to a second row vector of the matrix; and

generating the second sparse row vector by randomly selecting the fixed number of values from the second row vector.

5. The computer-implemented method of claim 1 , further comprising:

receiving an indication to improve clustering bucket quality; and

increasing a number of sparse LSH functions.

6. The computer-implemented method of claim 1 , further comprising:

obtaining the matrix at periodic time intervals.

7. A computer program product comprising a non-transitory storage medium readable by a processing circuit and storing instructions for execution by the processing circuit for performing a method comprising:

obtaining a matrix of words and locations;

generating a locality-sensitive hash (LSH) function;

identifying a row vector corresponding to a word in the matrix, the row vector comprising a plurality of location dimensions;

generating a sparse row vector that corresponds to the row vector by performing location sampling relative to a geospatial distribution of the word, wherein performing location sampling comprises selecting subset of dominant location dimensions from the plurality of location dimensions in the row vector to retain in the sparse row vector and discarding the remaining location dimensions, and wherein selecting a subset of dominant location dimensions comprises determining that the word corresponding to the row vector occurs more frequently in connection with the dominant location dimensions than the discarded remaining location dimensions;

generating a sparse LSH function using the locality-sensitive LSH and the sparse row vector;

generating a signature for the sparse row vector using the sparse LSH function;

determining a clustering bucket to which the signature corresponds;

adding the word to the clustering bucket,

receiving input data,

generating an input signature corresponding to the input data;

determining that the input signature matches a signature associated with the clustering bucket;

determining a geographical location from metadata associated with the clustering bucket; and

geotagging the input data by associating the geographical location with the input data.

8. The computer program product of claim 7 , wherein generating the sparse LSH function further comprises:

pairing the LSH function with the sparse row vector, wherein the sparse row vector is randomly selected; and

generating the sparse LSH function by applying an AND Boolean to the LSH function and the randomly selected sparse row vector.

9. The computer program product of claim 7 , wherein determining the clustering bucket further comprises determining that the generated signature matches a signature associated with the clustering bucket.

10. The computer program product of claim 7 , wherein the row vector is a first row vector and the sparse row vector is a first sparse row vector, the method further comprising generating a second sparse row vector, wherein generating the second sparse row vector comprises:

obtaining a fixed number corresponding to a second row vector of the matrix; and

generating the second sparse row vector by randomly selecting the fixed number of values from the second row vector.

11. The computer program product of claim 7 , wherein the method further comprises:

receiving an indication to improve clustering bucket quality; and

increasing a number of sparse LSH functions.

12. The computer program product of claim 7 , wherein the method further comprises:

obtaining the matrix at periodic time intervals.

13. A system, comprising:

a processor in communication with one or more types of memory, the processor configured to:

obtain a matrix of words and locations;

generate a locality-sensitive hash (LSH) function;

identify a row vector corresponding to a word in the matrix, the row vector comprising a plurality of location dimensions;

generate a sparse row vector that corresponds to the row vector by performing location sampling relative to a geospatial distribution of the word, wherein performing location sampling comprises selecting a subset of dominant location dimensions from the plurality of location dimensions in the row vector to retain in the sparse row vector and discarding the remaining location dimensions and wherein selecting a subset of dominant location dimensions comprises determining that the word corresponding to the row vector occurs more frequently in connection with the dominant location dimensions than the discarded remaining location dimensions;

generate a sparse LSH function using the locality-sensitive LSH and the sparse row vector;

generating a signature for the sparse row vector using the sparse LSH function;

determine a clustering bucket to which the signature corresponds; and

add the word to the clustering bucket;

receive input data;

generate an input signature corresponding to the input data;

determine that the input signature matches a signature associated with the clustering bucket;

determine a geographical location from metadata associated with the clustering bucket; and

geotag the input data by associating the geographical location with the input data.

14. The system of claim 13 , wherein to generate the sparse LSH function, the processor is further configured to:

pair the LSH function with the sparse row vector, wherein the sparse row vector is randomly selected; and

generate the sparse LSH function by applying an AND Boolean to the LSH function and the randomly selected sparse row vector.

15. The system of claim 13 , wherein to determine the clustering bucket, the processor is further configured to determine that the generated signature matches a signature associated with the clustering bucket.

16. The system of claim 13 , wherein the row vector is a first row vector and the sparse row vector is a first sparse row vector, and wherein the processor is further configured to generate a second sparse row vector by:

obtaining a fixed number corresponding to a second row vector of the matrix; and

generating the second sparse row vector by randomly selecting the fixed number of values from the second row vector.

17. The system of claim 13 , wherein the processor is further configured to:

receive an indication to improve clustering bucket quality; and

increase a number of sparse LSH functions.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 15, 2021
From: INTERNATIONAL BUSINESS MACHINES CORPORATION
To: AIRBNB, INC.
Reel/Frame 056427/0193 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2016
From: BUTLER, CHRISTOPHER J; CHEN, QIANG; HAN, BO
To: INTERNATIONAL BUSINESS MACHINES CORPORATION
Reel/Frame 037402/0336 →