IP Library Granted Patent US 11,281,726
Granted Patent B2
US 11,281,726 · App. 15/997,548 · Granted Mar 22, 2022

System and methods for faster processor comparisons of visual graph features

Inventors: Christopher Martin (Minneapolis, MN); Abdulaziz Alghunaim (Mountain View, CA); Sri Krishna Vempati (Santa Clara, CA)
Assignee: Palantir Technologies Inc.
G06F16/90328G06F16/901G06F17/14G06F17/18G06K9/0055G06K9/00523G06K9/6276
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 11,281,726
App. No.
15/997,548
Granted
Mar 22, 2022
Kind
B2
Abstract

Techniques allow a computer to responsively search for graph shapes similar to a user-selected graph shape much faster. Data can be pre-processed and stored as vectors, along with an index. The index can be used to find similar vectors that represent graph shapes similar to a user-selected shape in a computationally efficient manner. Vectors of multiple resolutions can be used to anticipate different sizes of a graph that a user can select, and comparisons can be repeated and refined. When a satisfactorily small number of candidate vectors are determined, more computationally intensive distance calculations can be performed on data reconstructed from the vectors.

Claims (51)

1. A system comprising:

one or more hardware computer processors configured to execute computer executable instructions in order to cause the system to:

generate a first plurality of vectors that represent first sections of stored time series data;

generate a second plurality of vectors that represent the stored time series data at a finer resolution than represented by the first plurality of vectors;

transmit, to a user computer, data for displaying a graph of a first time series data;

receive, from the user computer, an indication of a user selection of the first time series data;

determine a first vector from the first plurality of vectors and representing at least a first portion of the user-selected section of the first time series data;

perform first one or more comparisons to determine candidate sections of the stored time series data, the one or more comparisons including at least a first comparison of some of the first plurality of vectors against the first vector to determine first candidate sections of the stored time series data;

determine a second vector from the second plurality of vectors and representing at least a second portion of the user-selected section of the first time series data;

determine a subset of the second plurality of vectors that are at least partially included in a candidate section of the first candidate sections and adjacent to a vector from the first plurality of vectors;

perform second one or more comparisons of the subset of the second plurality of vectors against the second vector to determine second candidate sections of the stored time series data, where the second candidate sections are more similar to the user-selected section of the first time series data than the first candidate sections that are not included in the second candidate sections; and

transmit, for display on the user computer, results of the first and second comparisons, the results including an indication of at least one of the candidate sections.

2. The system of claim 1 , wherein the first plurality of vectors include:

coefficients of results of a mathematical transformation of the first sections of stored time series data; and

a normalization index.

3. The system of claim 1 , wherein generating the first plurality of vectors comprises performing a mathematical transform that includes at least one of: a Fourier transform, Chebyshev transform, or polynomial approximation.

4. The system of claim 3 , wherein the one or more hardware computer processors are further configured to execute computer executable instructions in order to cause the system to:

perform a reverse transform of the mathematical transform to construct an approximation of at least one of the candidate sections using vector data.

5. The system of claim 1 , wherein the first comparison is performed by referencing an index.

6. The system of claim 1 , wherein the one or more hardware computer processors are further configured to execute computer executable instructions in order to cause the system to, before receiving the indication of the user selection:

generate an index based at least in part on a nearest neighbor computation or distance computation.

7. The system of claim 1 , wherein the first time series data is the stored time series data.

8. The system of claim 1 , wherein the first time series data is different from the stored time series data, and both the first time series data and the stored time series data are stored in a database.

9. The system of claim 1 , wherein the stored time series data is transmitted to the system as streaming data from a sensor.

10. The system of claim 1 , wherein the one or more hardware computer processors are further configured to execute computer executable instructions in order to cause the system to:

compare the user-selected section to a candidate section; and

compare the user-selected section to an offset section, wherein the offset section begins at a shifted time that is offset from a beginning time of the candidate section, and the shifted time is less than a time span of the candidate section.

11. The system of claim 10 , wherein comparing the user-selected section to a candidate section comprises calculating a first distance, deviation, or other statistical metric; and

comparing the user-selected section to the offset section comprises calculating a second distance, deviation, or other statistical metric.

12. The system of claim 1 , wherein the one or more hardware computer processors are further configured to execute computer executable instructions in order to cause the system to:

perform one or more comparisons of at least a part of the user-selected section to a second plurality of vectors generated based at least in part on a second time series data that is different from the stored time series data, wherein the second plurality of vectors represent sections of the second time series data having time ranges that are included in time ranges of the candidate sections of the stored time series data.

13. A system comprising:

one or more hardware computer processors configured to execute computer executable instructions in order to cause the system to:

generate a first plurality of vectors that represent first sections of stored series data;

generate a second plurality of vectors that represent the stored series data at a finer resolution than represented by the first plurality of vectors;

transmit, to a user computer, data for displaying a graph of a first series data;

receive, from the user computer, an indication of a user selection of the first series data;

determine a first vector from the first plurality of vectors and representing at least a first portion of the user-selected section of the first series data;

perform first one or more comparisons to determine candidate sections of the stored series data, the one or more comparisons including at least a first comparison of some of the first plurality of vectors against the first vector to determine first candidate sections of the stored series data;

determine a second vector from the second plurality of vectors and representing at least a second portion of the user-selected section of the first series data;

determine a subset of the second plurality of vectors that are at least partially included in a candidate section of the first candidate sections and adjacent to a vector from the first plurality of vectors;

perform second one or more comparisons of the subset of the second plurality of vectors against the second vector to determine second candidate sections of the stored series data, where the second candidate sections are more similar to the user-selected section of the first series data than the first candidate sections that are not included in the second candidate sections; and

transmit, for display on the user computer, results of the first and second comparisons, the results including an indication of at least one of the candidate sections.

14. The system of claim 13 , wherein the first plurality of vectors include:

coefficients of results of a mathematical transformation of the first sections of stored series data.

15. The system of claim 14 , wherein the one or more hardware computer processors are further configured to execute computer executable instructions in order to cause the system to:

perform a reverse transform of the mathematical transform to construct an approximation of at least one of the candidate sections using vector data.

16. The system of claim 13 , wherein the first comparison is performed by referencing an index.

17. The system of claim 13 , wherein the one or more hardware computer processors are further configured to execute computer executable instructions in order to cause the system to:

compare the user-selected section to a candidate section; and

compare the user-selected section to an offset section, wherein the offset section begins at a shifted phase that is offset from a beginning domain of the candidate section, and the shifted phase is less than a domain span of the candidate section.

Assignments (8)
ASSIGNMENT OF INTELLECTUAL PROPERTY SECURITY AGREEMENTS Recorded Jul 3, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0640 →
SECURITY INTEREST Recorded Jul 3, 2022
From: PALANTIR TECHNOLOGIES INC.
To: WELLS FARGO BANK, N.A.
Reel/Frame 060572/0506 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ERRONEOUSLY LISTED PATENT BY REMOVING APPLICATION NO. 16/832267 FROM THE RELEASE OF SECURITY INTEREST PREVIOUSLY RECORDED ON REEL 052856 FRAME 0382. ASSIGNOR(S) HEREBY CONFIRMS THE RELEASE OF SECURITY INTEREST. Recorded Aug 26, 2021
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 057335/0753 →
SECURITY INTEREST Recorded Jun 4, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 052856/0817 →
RELEASE OF SECURITY INTEREST Recorded Jun 4, 2020
From: ROYAL BANK OF CANADA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 052856/0382 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS ADMINISTRATIVE AGENT
Reel/Frame 051713/0149 →
SECURITY INTEREST Recorded Jan 27, 2020
From: PALANTIR TECHNOLOGIES INC.
To: ROYAL BANK OF CANADA, AS ADMINISTRATIVE AGENT
Reel/Frame 051709/0471 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 16, 2018
From: MARTIN, CHRISTOPHER; ALGHUNAIM, ABDULAZIZ; VEMPATI, SRI KRISHNA
To: PALANTIR TECHNOLOGIES INC.
Reel/Frame 046360/0922 →
Continuity (2)
Provisional Application 62593815 · Dec 1, 2017
Related Publication 20190171775A1 · Jun 6, 2019