Factor any real or complex matrix into three matrices:

such that

The result is to represent the action of the matrix as a rotation (or reflection), a scaling, and another scaling (or reflection).

PyTorch lets you do SVD on a higher-rank tensor by treating it as several matrices, though this is not usually done.

Both SVD and the related concept principal component analysis can be used for dimensionality reduction.