mahout-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Lance Norskog <>
Subject Re: Using SVD-conditioned matrix
Date Mon, 17 Sep 2012 01:43:53 GMT
> The original question (possibly misphrased and not in so many words) asked
for a way to project any vector into the space spanned by A.

Yes, it was not completely worded. The interpretation above is backwards.
There is a subspace sA. In this subspace there is a set of vectors.
These vectors are rows in a matrix A. We condition matrix A to create
matrix Ak.  All row vectors in A are now in a new subspace sAk.

Now, there is a new row vector in subspace sA. What matrix projects
this row vector into subspace sAk?

One use case is new user recommendations. The new user gives a small
set of items. We would like to find other users. For simplicity, take
users as rows and items as columns in A. We want a conditioned Ak
where we can take a new user with a few preferences, and do a cosine
distance search among other users. With the ability to project a new
user into a conditioned space, we can find other users who may not
have any of the new user's items. Using a conditioned Ak increases
recall at the expense of precision. The more conditioned, the more

On Sun, Sep 16, 2012 at 4:11 PM, Ted Dunning <> wrote:
> On Sun, Sep 16, 2012 at 1:49 PM, Sean Owen <> wrote:
>> Oh right. It's the columns that are orthogonal. Cancel that.
>> But how does this let you get a row of Uk out of a new row in Ak? Uk
>> != Uk * Uk' * Ak
> Well, actually, since a column of A is clearly in the space spanned by A so
> if you take any such column, U_k U_k'  will send it back to where it came
> from.  Thus,
>   A_k = U_k U_k' A_k
> If you want to talk about rows, then use V_k as with this:
>   A_k = A_k V_k V_k'
> Forgetting Sk, Uk = Ak * Vk, and I miss how these are equivalent so I
>> misunderstand the intent of the expression.
> Forgetting S_k is a bit dangerous here.  It is true that
>     U_k S_k = A_k V_k
> But, of course, right multiplying by V_k' gives us the identity above.
> I think that the real confusion is that I am talking about projecting back
> into span A and you are talking about expressing things in terms of the
> latent variables.
>> On Sun, Sep 16, 2012 at 8:55 PM, Ted Dunning <>
>> wrote:
>> > U_k ' U_k = I
>> >
>> > U_k U_k ' != I

Lance Norskog

View raw message