IP Library Granted Patent US 10,671,697
Granted Patent B1
US 10,671,697 · App. 15/901,281 · Granted Jun 2, 2020

Iterative and efficient technique for singular value decomposition

Inventor: Roy Batruni (Danville, CA)
Assignee: Cyber Atomics, Inc.
G06F17/16G06F7/78
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,671,697
App. No.
15/901,281
Granted
Jun 2, 2020
Kind
B1
Abstract

Matrix processing includes: accessing an original matrix; iteratively determining a plurality of estimated singular vectors of the original matrix, a plurality of estimated singular values of the original matrix, or both, using a plurality of iteration cycles; wherein at least some of the plurality of iteration cycles are performed in parallel on a plurality of processors; and outputting the plurality of estimated singular vectors of the original matrix, the plurality of estimated singular values of the original matrix, or both.

Claims (62)

1. A method, comprising:

accessing an original matrix;

iteratively determining a plurality of estimated singular vectors of the original matrix, a plurality of estimated singular values of the original matrix, or both, using a plurality of parallelizable iteration cycles; wherein:

at least some of the plurality of parallelizable iteration cycles are performed in parallel on a plurality of processors; and

the plurality of estimated singular vectors converge to a plurality of actual singular vectors of the original matrix, the plurality of estimated singular values converge to a plurality of actual singular values of the original matrix, or both; and

outputting the plurality of estimated singular vectors of the original matrix, the plurality of estimated singular values of the original matrix, or both.

2. The method of claim 1 , wherein:

an iterative cycle among the plurality of parallelizable iterative cycles comprises:

updating an estimated singular vector to obtain an updated estimated singular vector;

normalizing the updated estimated singular vector to obtain a normalized updated estimated singular vector; and

determining an estimated singular value based at least in part on the updated estimated singular vector and the normalized updated estimated singular vector.

3. The method of claim 2 , wherein the estimated singular vector is initialized to be a random vector.

4. The method of claim 2 , wherein:

the estimated singular vector is updated using at least a current matrix; and

the iterative cycle further includes deflating the current matrix to generate a next current matrix to be used in a next iterative cycle.

5. The method of claim 2 , wherein:

the original matrix is a sparse matrix; and

the iterative cycle among the plurality of parallelizable iterative cycles relies on the original matrix in determining the estimated singular vector.

6. The method of claim 2 , wherein the iterative cycle further comprises checking a convergence error to determine whether convergence has been achieved.

7. The method of claim 2 , wherein:

the iterative cycle further comprises checking a convergence error to determine whether convergence has been achieved; and

the convergence error includes an L1-norm or an L2-norm of the estimated singular vector between two consecutive iteration cycles.

8. The method of claim 2 , wherein the updating of the estimated singular vector to obtain an updated estimated singular vector includes: multiplying rows of a current matrix with the is estimated singular vector in parallel, or multiplying rows of the original matrix with the estimated singular vector in parallel.

9. The method of claim 2 , wherein the updating of the estimated singular vector to obtain the updated estimated singular vector includes projecting the estimated singular vector onto a current matrix to obtain the updated estimated singular vector.

10. The method of claim 1 , wherein the iterative determination of the plurality of estimated singular vectors of the original matrix, the plurality of estimated singular values of the original matrix, or both is based at least in part on minimizing an objective function relating to a trace of the original matrix.

11. The method of claim 1 , wherein an estimated singular value and a corresponding singular vector are determined in one iteration cycle.

12. The method of claim 1 , wherein the iterative determination is not error-driven.

13. The method of claim 1 , wherein an iteration cycle of the plurality of parallelizable iteration cycles includes:

estimating a right singular vector by multiplying a current matrix with an estimated left singular vector;

normalizing the estimated right singular vector to generate an updated normalized right singular vector;

estimating a left singular vector by multiplying a transpose of the current matrix with the updated normalized right singular vector;

normalize the estimated left singular vector to generate an updated normalized left singular vector;

computing a singular value as a ratio of the updated normalized right singular vector and the updated normalized left singular vector; and

deflating the current matrix to generate a next current matrix to be used in a next iterative cycle.

14. The method of claim 13 , further comprising rearranging computed singular values and singular vectors to facilitate faster convergence.

15. The method of claim 1 , wherein an iteration cycle of the plurality of parallelizable iteration cycles includes:

estimating a right singular vector based at least in part on the original matrix and one or more singular values from one or more previous iteration cycles, one or more left singular vectors from one or more previous iteration cycles, and one or more right singular vectors from one or more previous iteration cycles, to obtain an estimated left singular vector;

normalizing the estimated right singular vector to generate an updated normalized right singular vector;

is estimating a left singular vector based at least in part on the original matrix and one or more singular values from one or more previous iteration cycles, one or more left singular vectors from one or more previous iteration cycles, and one or more right singular vectors from one or more previous iteration cycles, to obtain an estimated left singular vector;

normalize the estimated left singular vector to generate an updated normalized left singular vector; and

computing the singular value as a ratio of the updated normalized right singular vector and the updated normalized left singular vector.

16. The method of claim 15 , further comprising rearranging computed singular values and singular vectors to facilitate faster convergence.

17. The method of claim 1 , wherein the original matrix is a non-symmetric matrix; and

the method further comprising:

iteratively determine a singular value matrix of a symmetric matrix, the symmetric matrix being constructed as a product of the non-symmetric matrix and its transpose; and

comparing a singular value matrix of the original matrix with a square root of the singular value matrix of the symmetric matrix to determine whether the iterative determination of the plurality of estimated singular values of the original matrix has achieved convergence.

18. The method of claim 1 , wherein the iterative determination of the plurality of estimated singular vectors of the original matrix, the plurality of estimated singular values of the original matrix, or both, is performed without requiring matrix-to-matrix multiplication.

19. A system, comprising:

a plurality of processors configured to:

access an original matrix;

iteratively determine a plurality of estimated singular vectors of the original matrix, a plurality of estimated singular values of the original matrix, or both, using a to plurality of parallelizable iteration cycles; wherein:

at least some of the plurality of parallelizable iteration cycles are performed in parallel on the plurality of processors; and

the plurality of estimated singular vectors converge to a plurality of actual singular vectors of the original matrix, the plurality of estimated singular values converge to a plurality of actual singular values of the original matrix, or both; and

output the plurality of estimated singular vectors of the original matrix, the plurality of estimated singular values of the original matrix, or both; and

one or more memories coupled to the plurality of processors, configured to provide the is plurality of processors with instructions.

20. The system of claim 19 , wherein the plurality of processors includes one or more of: a general purpose processor, a microprocessor, a digital signal processor (DSP), a field programmable gate array (FPGA), an application specific integrated circuit (ASIC), and/or a graphical processing units (GPU).

21. A computer program product for matrix processing, the computer program product being embodied in a tangible computer readable storage medium and comprising computer instructions for:

accessing an original matrix;

iteratively determining a plurality of estimated singular vectors of the original matrix, a plurality of estimated singular values of the original matrix, or both, using a plurality of parallelizable iteration cycles; wherein:

at least some of the plurality of parallelizable iteration cycles are performed in parallel on a plurality of processors; and

the plurality of estimated singular vectors converge to a plurality of actual singular vectors of the original matrix, the plurality of estimated singular values converge to a plurality of actual singular values of the original matrix, or both; and

outputting the plurality of estimated singular vectors of the original matrix, the plurality of estimated singular values of the original matrix, or both.

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 May 15, 2018
From: BATRUNI, ROY
To: CYBER ATOMICS, INC.
Reel/Frame 045805/0310 →
Continuity (1)
Provisional Application 62463433 · Feb 24, 2017
Cited By (3)
US 12,321,712 US 12,327,082 US 12,346,654