IP Library Granted Patent US 10,635,739
Granted Patent B1
US 10,635,739 · App. 15/944,559 · Granted Apr 28, 2020

Multidimensional connectivity graph-based tensor processing

Inventor: Roy Batruni (Danville, CA)
Assignee: Cyber Atomics, Inc.
G06F17/153G06F17/14G06F17/16G06F17/142
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 10,635,739
App. No.
15/944,559
Granted
Apr 28, 2020
Kind
B1
Abstract

A tensor processing technique includes: accessing a first tensor representing interconnections of a plurality of nodes, the first tensor being a tensor of three or more dimensions; accessing a second tensor; convolving the first tensor with the second tensor to generate a convolution result tensor; and outputting at least a portion of the convolution result tensor.

Claims (83)

1. A method, comprising:

accessing input data including measured and/or recorded data associated with a plurality of objects or entities, the measured and/or recorded data being used to construct a first tensor that represents interconnections of a plurality of nodes, the first tensor being a tensor of three or more dimensions, and the plurality of nodes corresponding to the plurality of objects or entities;

accessing a second tensor;

performing cluster analysis on the plurality of objects or entities using a plurality of processors, including convolving the first tensor with the second tensor to generate a convolution result tensor, wherein:

the first tensor comprises a first plurality of 2-dimensional matrices and the second tensor comprises a second plurality of 2-dimensional matrices;

the convolving of the first tensor with the second tensor includes using the plurality of processors to perform operations in parallel on data in the first plurality of 2-dimensional matrices and on data in the second plurality of 2-dimensional matrices;

the convolution result tensor is the same size as the first tensor; and

the convolution result tensor indicates interrelationships of the plurality of nodes that correspond to the plurality of objects or entities; and

outputting at least a portion of the convolution result tensor to be displayed or further processed.

2. The method of claim 1 , wherein the second tensor that is convolved with the first tensor includes a Hermitian transpose of the first tensor.

3. The method of claim 1 , wherein:

the second tensor that is convolved with the first tensor includes a Hermitian transpose of the first tensor; and

the convolution result tensor indicates interrelationships of the nodes.

4. The method of claim 1 , further comprising performing singular value decomposition (SVD) on the convolution result tensor.

5. The method of claim 1 , further comprising:

performing singular value decomposition (SVD) on the convolution result tensor to obtain an SVD result; and

reducing the SVD result to de-noise the convolution result tensor.

6. The method of claim 1 , wherein the convolving of the first tensor with the second tensor to generate the convolution result tensor includes:

iteratively multiplying matrices in the first tensor and corresponding matrices in the second tensor and summing to generate a corresponding result matrix that fills a matrix location in the convolution result tensor, and swapping the matrices in the first tensor, wherein the multiplying and swapping are iterated until all matrix locations in the convolution result tensor are filled.

7. The method of claim 1 , wherein:

the first tensor is a native domain first tensor and the second tensor is a native domain second tensor; and

the convolving of the first tensor with the second tensor to generate the convolution result tensor includes:

performing a first plurality of Fourier transforms on the first tensor to obtain a Fourier domain first tensor;

performing a second plurality of Fourier transforms on the second tensor to obtain a Fourier domain second tensor;

multiplying the Fourier domain first tensor with the Fourier domain second tensor to obtain a product tensor; and

performing a plurality of inverse Fourier transforms on the product tensor to obtain the convolution result tensor.

8. The method of claim 7 , wherein at least some transforms among: the first plurality of Fourier transforms on the first tensor, the second plurality of Fourier transforms, and/or the plurality of inverse Fourier transforms, are performed in parallel on a plurality of processors.

9. The method of claim 1 , wherein the second tensor represents an input event.

10. The method of claim 1 , wherein the second tensor represents an input event; and the convolution result tensor represents predicted reactions of the nodes in response to the input event.

11. The method of claim 1 , wherein the second tensor represents an input event, and the convolution result tensor is fed back to be convolved with the first tensor to generate a second convolution result tensor.

12. The method of claim 1 , wherein:

the second tensor represents an input event; and

the method further comprises:

determining energy of the first tensor and energy of the convolution result tensor;

making a comparison of the first tensor and the convolution result tensor, based at least in part on the energy of the first tensor and the energy of the convolution result tensor;

in response to a comparison result exceeding a threshold, performing a preset action.

13. The method of claim 1 , wherein the accessing of the input data includes accessing the first tensor using an identifier, a pointer, a handle, or a reference to a storage or memory location of the first tensor.

14. A system, comprising:

one or more processors; and

one or more memories coupled with the one or more processors, wherein the one or more memories are configured to provide the one or more processors with instructions which when executed cause the one or more processors to:

access input data including measured and/or recorded data associated with a plurality of objects or entities, the measured and/or recorded data being used to construct a first tensor that represents interconnections of a plurality of nodes, the first tensor being a tensor of three or more dimensions, and the plurality of nodes corresponding to the plurality of objects or entities;

access a second tensor;

perform cluster analysis on the plurality of objects or entities using a plurality of processors, including to convolve the first tensor with the second tensor to generate a convolution result tensor, wherein:

the first tensor comprises a first plurality of 2-dimensional matrices and the second tensor comprises a second plurality of 2-dimensional matrices;

to convolve the first tensor with the second tensor includes to use the plurality of processors to perform operations in parallel on data in the first plurality of 2-dimensional matrices and on data in the second plurality of 2-dimensional matrices;

the convolution result tensor is the same size as the first tensor; and

the convolution result tensor indicates interrelationships of the plurality of nodes that correspond to the plurality of objects or entities; and

output at least a portion of the convolution result tensor to be displayed or further processed.

15. The system of claim 14 , wherein the second tensor that is convolved with the first tensor includes a Hermitian transpose of the first tensor.

16. The system of claim 14 , wherein:

the second tensor that is convolved with the first tensor includes a Hermitian transpose of the first tensor; and

the convolution result tensor indicates interrelationships of the nodes.

17. The system of claim 14 , wherein the one or more processors are further configured to perform singular value decomposition (SVD) on the convolution result tensor.

18. The system of claim 14 , wherein the one or more processors are further configured to:

perform singular value decomposition (SVD) on the convolution result tensor to obtain an SVD result; and

reduce the SVD result to de-noise the convolution result tensor.

19. The system of claim 14 , wherein to convolve the first tensor with the second tensor to generate the convolution result tensor includes to:

iteratively multiply matrices in the first tensor and corresponding matrices in the second tensor and sum to generate a corresponding result matrix that fills a matrix location in the convolution result tensor, and swapping the matrices in the first tensor, wherein the multiplying and swapping are iterated until all matrix locations in the convolution result tensor are filled.

20. The system of claim 14 , wherein:

the first tensor is a native domain first tensor and the second tensor is a native domain second tensor; and

to convolve the first tensor with the second tensor to generate the convolution result tensor includes to:

perform a first plurality of Fourier transforms on the first tensor to obtain a Fourier domain first tensor;

perform a second plurality of Fourier transforms on the second tensor to obtain a Fourier domain second tensor;

multiply the Fourier domain first tensor with the Fourier domain second tensor to obtain a product tensor; and

perform a plurality of inverse Fourier transforms on the product tensor to obtain the convolution result tensor.

21. The system of claim 14 , wherein the second tensor represents an input event.

22. The system of claim 14 , wherein the second tensor represents an input event; and the convolution result tensor represents predicted reactions of the nodes in response to the input event.

23. The system of claim 14 , wherein the second tensor represents an input event, and the convolution result tensor is fed back to be convolved with the first tensor to generate a second convolution result tensor.

24. The system of claim 14 , wherein:

the second tensor represents an input event; and

the one or more processors are further configured to:

determine energy of the first tensor and energy of the convolution result tensor;

make a comparison of the first tensor and the convolution result tensor, based at least in part on the energy of the first tensor and the energy of the convolution result tensor;

in response to a comparison result exceeding a threshold, perform a preset action.

25. A computer program product embodied in a tangible non-transitory computer readable storage medium and comprising computer instructions for:

accessing input data including measured and/or recorded data associated with a plurality of objects or entities, the measured and/or recorded data being used to construct a first tensor that represents representing interconnections of a plurality of nodes, the first tensor being a tensor of three or more dimensions, and the plurality of nodes corresponding to the plurality of objects or entities;

accessing a second tensor;

performing cluster analysis on the plurality of objects or entities using a plurality of processors, including convolving the first tensor with the second tensor to generate a convolution result tensor, wherein:

the first tensor comprises a first plurality of 2-dimensional matrices and the second tensor comprises a second plurality of 2-dimensional matrices;

the convolving of the first tensor with the second tensor includes using the plurality of processors to perform operations in parallel on data in the first plurality of 2-dimensional matrices and on data in the second plurality of 2-dimensional matrices;

the convolution result tensor is the same size as the first tensor; and

the convolution result tensor indicates interrelationships of the plurality of nodes that correspond to the plurality of objects or entities; and

outputting at least a portion of the convolution result tensor to be displayed or further processed.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 6, 2022
From: CYBER ATOMICS, INC.
To: BATRUNI, ROY G.
Reel/Frame 060289/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 15, 2018
From: BATRUNI, ROY
To: CYBER ATOMICS, INC.
Reel/Frame 046099/0742 →
Continuity (3)
Continuation In Part 15681202 · Aug 18, 2017
Provisional Application 62481585 · Apr 4, 2017
Provisional Application 62379633 · Aug 25, 2016
Cited By (1)
US 12,346,803