A Hierarchical Singular Value Decomposition Algorithm for Low Rank Matrices
Singular value decomposition (SVD) is a widely used technique for dimensionality reduction and computation of basis vectors. In many applications, especially in fluid mechanics, the matrices are dense, but low-rank matrices. In these cases, a truncated SVD corresponding to the most significant singular values is sufficient. In this paper, we propose a tree based merge-and-truncate algorithm to obtain an approximate truncated SVD of the matrix. Unlike previous methods, our technique is not limited to "tall and skinny" or "short and fat" matrices and it can be used for matrices of arbitrary size. It is also an incremental algorithm, useful for online streaming applications. The matrix is partitioned into blocks and a truncated SVD of each block is used to obtain the final SVD. A comparison with existing techniques shows that a 5-10x speedup is possible.
READ FULL TEXT