mahout-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ted Dunning <ted.dunn...@gmail.com>
Subject Re: Using SVD-conditioned matrix
Date Sun, 16 Sep 2012 16:33:53 GMT
And if you want the reduced rank representation of A, you have it already
with

    A_k = U_k S_k V_k'

Assume that A is n x m in size.  This means that U_k is n x k and V_k is m
x k

The rank reduced projection of an n x 1 column vector is

    u_k = U_k U_k' u

Beware that v_k is probably not sparse even if v is sparse.

Similarly, the rank reduced projection of a 1 x m row vector is

    v_k = v V_k V_k'

A similar sparsity warning applies to v_k.  This is why it is usually
preferable to just work in the reduced space directly.


On Sun, Sep 16, 2012 at 2:34 AM, Sean Owen <srowen@gmail.com> wrote:

> This is the same discussion that's been going on here about "fold-in".
>
> If the decomposition is A ~= Ak = Uk * Sk  * Vk', then you can get an
> expression for just Uk by multiplying on the right by right-inverses.
> You want to take off V', and "half" of S, meaning its square root. So
> we're really working with Ak ~= (Uk * sqrt(Sk)) * (sqrt(Sk) * Vk')
>
> The right-inverse of Vk' is Vk, since it's orthonormal. The inverse of
> a diagonal matrix is just the diagonal matrix of its reciprocals. Call
> the inverse of sqrt(S) 1/sqrt(S)
>
> So Uk * sqrt(Sk) = Ak * Vk * 1/sqrt(Sk)
>
> This is how you project a row of Ak. Something entirely similar goes
> for columns:
>
> sqrt(Sk) * Vk' = 1/sqrt(Sk) * Uk' * Ak
>
> Sean
>
> On Sun, Sep 16, 2012 at 4:33 AM, Lance Norskog <goksron@gmail.com> wrote:
> > If you condition a vector set with the zero-the-small-singular-values
> > trick, how do you project a vector from original space to the
> > conditioned space? This would let you "condition" new data from a
> > homogeneous dataset.
> >
> > It would be useful in the Mahout context. For example, with SSVD you
> > can use the technique to get better vector clustering. You can create
> > the "conditioning projection" from a sampled dataset, instead of
> > decomposing and recomposing the whole dataset.
> >
> > Also asked on stack overflow:
> >
> http://stackoverflow.com/questions/12444231/svd-matrix-conditioning-how-to-project-from-original-space-to-conditioned-spac
> >
> > --
> > Lance Norskog
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message