You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@mahout.apache.org by Laszlo Dosa <la...@fredhopper.com> on 2010/07/21 09:37:57 UTC

RE: SVD implementation in Mahout

Hi Ted,

 

If I correctly understand then the SVD based recommendation calculation is:

1)      V_k = Lanczos ( A’A )

But V’_k = Lanczos (( A’A)’ ) = Lanczos ( A’A ) = V_k because (AB)’ = B’A’

2)      Then the low rank approximation of A should be A_k = A*V_k*V_k’ instead of A_k = A*V_k*V’_k = A*V_k*V_k

 

Regards,

Laszlo

 

 

From: Ted Dunning [mailto:ted.dunning@gmail.com] 
Sent: dinsdag 20 juli 2010 23:43
To: Laszlo Dosa
Subject: Re: SVD implementation in Mahout

 

I am happy to help.

 

' indicates the transpose.

 

U_k and V_k are the left and right singular vectors respectively.

 

Could we continue the discussion on the mailing list so that people too shy to ask questions benefit from your questions?

On Tue, Jul 20, 2010 at 9:41 AM, Laszlo Dosa <la...@fredhopper.com> wrote:

I made a basic SVD implementation using mahout, but I am still following the implementation of  <https://issues.apache.org/jira/browse/MAHOUT-371> https://issues.apache.org/jira/browse/MAHOUT-371.

In one of you comments you corrected Simon on the math how to calculate SVD:

 “  A V_k V'_k = U_k S_k V'_k  ”

I am a little bit confused on the math how to calculate the V_k and V’_k 

and I am not sure what is the difference between V_k and V’_k  and how I can calculate the V’_k.

 

Will you have the time to clarify this or to post some articles that explains the math in depth?

 

Regards,

Laszlo