Writing Matrix-Matrix products as sums

650 Views Asked by At

$X = USV^\top = \sum_{i=1}^{rank(X)}s_{ii}u_i(v_i)^\top$

I'm trying to wrap my head around this reformulation.

$SV^\top$ does, of course, simply scale the rows of $V^\top$.

So if we write $X=AB^\top$, why can we write it as a sum $\sum_i a_i (b_i)^\top$ ?

Assuming $A\in\mathbb{R}^{m\times n}$, I know we can write $Ac = \sum_{i=1}^n c_ia_i$ and $c^\top A=\sum_{i=1}^m c_i ((A^\top)_i)^\top$, but these don't seem to be helping me.

1

There are 1 best solutions below

2
On BEST ANSWER

If $e_i$ is the $i$th column of an identity matrix, then $Ae_i$ the $i$th column of a matrix $A$. You can write $S$ as $$ S = \sum_{i=1}^r s_ie_ie_i^T, $$ where $e_ie_i^T$ is a matrix full of zeros expect the position of $s_i$ in $S$. Substitute it to get $$ USV^T=U\left(\sum_{i=1}^r s_ie_ie_i^T\right)V^T= \sum_{i=1}^r s_i (Ue_i)(e_i^TV^T)= \sum_{i=1}^r s_i (Ue_i)(Ve_i)^T= \sum_{i=1}^r s_i u_iv_i^T. $$