mahout-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Ted Dunning <>
Subject Re: Understanding the SVD recommender
Date Fri, 04 Jun 2010 05:48:35 GMT
You are correct.  The paper has an appalling treatment of the folding in

In fact, the procedure is dead simple.

The basic idea is to leave the coordinate system derived in the original SVD
intact and simply project the new users into that space.

The easiest way to see what is happening is to start again with the original
rating matrix A as decomposed:

   A = U S V'

where A is users x items.  If we multiply on the right by V, we get

   A V = U S V' V = U S

(because V' V = I, by definition).  This result is (users x items) x (items
x k) = users x k, that is, it gives a k dimensional vector for each user.
 Similarly, multiplication on the left by U' gives a k x items matrix which,
when transposed gives a k dimensional vector for each item.

This implies that if we augment U with new user row vectors U_new, we should
be able to simply compute new k-dimensional vectors for the new users and
adjoin these new vectors to the previous vectors.  Concisely put,

( A     )     ( A V     )
(       ) V = (         )
( A_new )     ( A_new V )

This isn't really magical.  It just says that we can compute new user
vectors at any time by multiplying the new users' ratings by V.

The diagram in figure one is hideously confusing because it looks like a
picture of some kind of multiplication whereas it is really depicting some
odd kind of flow diagram.

Does this solve the problem?

On Thu, Jun 3, 2010 at 9:26 AM, Sean Owen <> wrote:

> Section 3 is hard to understand.
> - Ak and P are defined, but not used later
> - Definition of P has UTk x Nu as a computation. UTk is a k x m
> matrix, and Nu is "t" x 1. t is not defined.
> - This only makes sense if t = m. But m is the number of users, and Nu
> is a user vector, so should have a number of elements equal to n, the
> number of items
> - Sk * VTk is described as a k x "d" matrix but d is undefined
> - The diagram suggests that VTk are multiplied by all the Nu, which
> makes more sense -- but only if Nu are multiplied by VTk, not the
> other way. And the diagram depicts neither of those.
> - Conceptually I would understand Nu x VTk, but then P is defined by
> an additional product with Uk
> In short... what?
> On Thu, Jun 3, 2010 at 4:15 PM, Ted Dunning <> wrote:
> > Fire away.
> >
> > On Thu, Jun 3, 2010 at 3:52 AM, Sean Owen <> wrote:
> >
> >> Is anyone out there familiar enough with this to a) discuss this paper
> >> with me or b) point me to another writeup on the approach?
> >>
> >

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