Loading [MathJax]/extensions/TeX/boldsymbol.js

Implementing Truncated Matrix Decompositions for Core.Matrix

Eigendecompositions and Singular Value Decompositions appear in a variety of settings in machine learning and data mining. The eigendecomposition looks like so:

A=QΛQ1

Q contains the eigenvectors of A and Λ is a diagonal matrix containing the eigenvalues.

The singular value decomposition looks like:

\mathbf{A} = \mathbf{U} \boldsymbol{\Sigma} \mathbf{V}^*

\mathbf{U} contains the eigenvectors of the covariance matrix \mathbf{A}\mathbf{A^T} . \mathbf{V} contains the eigenvectors of the gram matrix \mathbf{A^T}\mathbf{A} .

The truncated variants of these decompositions allow us to compute only a few eigenvalues(vectors) or singular values (vectors).

This is important since (i) a lot of times, the smaller eigenvalues are discarded, and (ii) you don’t want to compute the entire decomposition and retain only a few of the rows and columns of the computed matrices each time.

For core.matrix, I implemented these truncated decompositions in Kublai. Details below.



Twitter: @shriphani
Instagram: @life_of_ess
Fortior Per Mentem
(c) Shriphani Palakodety 2013-2020