# US 2019/0171775 A1 · System and methods for faster processor comparisons of visual graph features

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2019/0171775 A1
- Document ID: US20190171775A1
- Status: Published application
- Kind: A1
- Application number: 15/997,548
- Filed: 2018-06-04
- Published: 2019-06-06
- Earliest claimed: 2017-12-01
- Assignees: Palantir Technologies Inc.
- Applicants: Palantir Technologies Inc.
- Inventors: Christopher Martin; Abdulaziz Alghunaim; Sri Krishna Vempati
- Web page: https://patentgrep.com/patent/US20190171775A1

## CPC

- G06F 18/00: Pattern recognition
- G06F 16/901: Indexing; Data structures therefor; Storage structures (for retrieval from the web G06F16/951)
- G06F 16/90328: {using search space presentation or visualization, e.g. category or range presentation and selection}
- G06F 17/14: Fourier, Walsh or analogous domain transformations {, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms (for correlation function computation G06F17/156; spectrum analysers G01R23/16)}
- G06F 17/18: for evaluating statistical data {, e.g. average values, frequency distributions, probability functions, regression analysis (forecasting specially adapted for a specific administrative, business or logistic context G06Q10/04)}
- G06F 18/24147: {Distances to closest patterns, e.g. nearest neighbour classification}
- G06F 2218/08: Feature extraction
- G06F 2218/16: by matching signal segments
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## 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

### Claim 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;
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 representing at least a first portion of the user-selected section of the first time series data;
perform 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; and
transmit, for display on the user computer, results of the one or more comparison, the results including an indication of at least one of the candidate sections.

### Claim 2 (depends on 1)

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.

### Claim 3 (depends on 1)

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.

### Claim 4 (depends on 3)

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.

### Claim 5 (depends on 1)

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

### Claim 6 (depends on 1)

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.

### Claim 7 (depends on 1)

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:
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.

### Claim 8 (depends on 7)

The system of claim 7, wherein the one or more hardware computer processors are further configured to execute computer executable instructions in order to cause the system to:
convert at least a second portion of the user-selected section of the first time series data into a second vector;
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; and
perform a comparison 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.

### Claim 9 (depends on 1)

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

### Claim 10 (depends on 1)

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.

### Claim 11 (depends on 1)

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

### Claim 12 (depends on 1)

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.

### Claim 13 (depends on 12)

The system of claim 12, 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.

### Claim 14 (depends on 1)

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.

### Claim 15

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;
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 representing at least a first portion of the user-selected section of the first series data;
perform 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; and
transmit, for display on the user computer, results of the one or more comparison, the results including an indication of at least one of the candidate sections.

### Claim 16 (depends on 15)

The system of claim 15, wherein the first plurality of vectors include:
coefficients of results of a mathematical transformation of the first sections of stored series data.

### Claim 17 (depends on 16)

The system of claim 16, 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.

### Claim 18 (depends on 15)

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

### Claim 19 (depends on 15)

The system of claim 15, wherein the one or more hardware computer processors are further configured to execute computer executable instructions in order to cause the system to:
generate a second plurality of vectors that represent the stored series data at a finer resolution than represented by the first plurality of vectors;
convert at least a second portion of the user-selected section of the first series data into a second vector;
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; and
perform a comparison 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.

### Claim 20 (depends on 15)

The system of claim 15, 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.
