SVD is a matrix factorization technique.

For a given matrix, there exists a decomposition of it which can be written as follows:

  • M = the input matrix of dimension m x n.
  • U = m x m unitary matrix
  • = m x n diagonal matrix
  • V = n x n unitary matrix
  • V* = conjugate transpose of V

Basic idea behind SVD is that the transformation operation performed by a matrix M can be viewed as a sequence of the following transformations:

  1. V* represents the rotation operation applied onto to a unit hypersphere.
  2. then represents the scaling across the co-ordinate axes.
  3. U represents another rotation after scaling operation.

SVD is most often used in finding eigen values and vectors of the matrix. For example: columns of V are eigenvectors of . columns of U are eigenvectors of and non-zero elements of are sqrt of their eigen values.