Yes, stay tuned for lanczos for version 2.1. By the way the current lanczos was tested on matrices with up to 3.5 billion non zeros on a single multicore machine (with 200GB RAM). So based on the size of your problem it may fit into a single multicore node.

Do you plan to include any distributed SVD++ recommender in 2.1 or just SGD and ALS? I thought of timeSVD++ to be the most precise one. If not a secrete, why did you start with SGD and ALS?

Danny, what if the matrix is dense? I guess, your Lanczos implementation can sustain this and hopefully will work correctly, but inefficiently because the matrix is stored in a graph format and the optimized BLAS matrix-vector multiplication procedure is not applicable. Am I right?

Another case is implicitly defined matrix. We don't know its values and structure but can calculate the matrix-vector product and the product of its transpose. That should be enough for Lanczos. Not sure your implementation permits this.

Hi, The current implementation is designed for a fixed sparse matrix. Dense matrix will perform slower and I guess other tools will work on it better. Matrix operator is not supported since we assume the matrix is known. There are many other SVD implementations, the goal here was to show we can use graphlab to get quite an efficient implementation under the above assumption.

CMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files: JAVA_JVM_LIBRARY (ADVANCED)

Hi, Please verify you get the latest code from github. If you plan to use a single multicor emachine please configure using ./configure --no_jvm --no_mpi

Hello, I have run my first svd of a matrix in graphlab, But is it possible to find the least singular value and the corresponding vector from the command line ?

Hi, It is implemented in GraphChi: https://github.com/GraphChi/graphchi-cpp/blob/master/toolkits/collaborative_filtering/timesvdpp.cpp Instructions are here: http://bickson.blogspot.co.il/2012/12/collaborative-filtering-with-graphchi.html

Danny, only the shared memory implementation of Lanczos is available so far? Am I right or not?

ReplyDeleteHi!

DeleteIn version 1, we have around 17 algorithms implemented: http://select.cs.cmu.edu/code/graphlab/pmf.html

In version 2, only lanczos is implemented.

In version 2.1, we have SGD, ALS and bias-sgd. I plan to soon more lanczos to version 2.1 and thus deprecate version 2.

Best,

OK, but is it possible to run Lancsoz on a multi-node cluster rather than on a single machine?

DeleteYes, stay tuned for lanczos for version 2.1.

DeleteBy the way the current lanczos was tested on matrices with up to 3.5 billion non zeros on a single multicore machine (with 200GB RAM). So based on the size of your problem it may fit into a single multicore node.

Do you plan to include any distributed SVD++ recommender in 2.1 or just SGD and ALS? I thought of timeSVD++ to be the most precise one. If not a secrete, why did you start with SGD and ALS?

DeleteSGD and ALS are relatively easier to implement..

DeleteDanny, what if the matrix is dense? I guess, your Lanczos implementation can sustain this and hopefully will work correctly, but inefficiently because the matrix is stored in a graph format and the optimized BLAS matrix-vector multiplication procedure is not applicable. Am I right?

DeleteAnother case is implicitly defined matrix. We don't know its values and structure but can calculate the matrix-vector product and the product of its transpose. That should be enough for Lanczos. Not sure your implementation permits this.

Hi,

DeleteThe current implementation is designed for a fixed sparse matrix.

Dense matrix will perform slower and I guess other tools will work on it better.

Matrix operator is not supported since we assume the matrix is known.

There are many other SVD implementations, the goal here was to show we can use graphlab to get quite an efficient implementation under the above assumption.

hi can graphlab can be used for SVD of sparse nonsymmetric matrices in parallel?

ReplyDeleteYes! As well as non-square matrices.

ReplyDeleteCMake Error: The following variables are used in this project, but they are set to NOTFOUND. Please set them or make sure they are set and tested correctly in the CMake files:

ReplyDeleteJAVA_JVM_LIBRARY (ADVANCED)

while running ./configure

what must i do ?

Hi,

DeletePlease verify you get the latest code from github. If you plan to use a single multicor emachine please configure using

./configure --no_jvm --no_mpi

Best

it configured with ./configure --no_jvm

Deletebut can i still use it in multinode multicore machine ?

Yes.

DeleteHi this webpage had details about how to use SVD with matlab matrices and running in parallel... can u tell where can I find the info ??

ReplyDeleteHello, I have run my first svd of a matrix in graphlab,

ReplyDeleteBut is it possible to find the least singular value and the corresponding vector from the command line ?

No. This is not supported.

DeleteCan you please tell me weather timesvd++ is implemented in graphlab v2 or not.

ReplyDeleteHi, It is implemented in GraphChi: https://github.com/GraphChi/graphchi-cpp/blob/master/toolkits/collaborative_filtering/timesvdpp.cpp

DeleteInstructions are here: http://bickson.blogspot.co.il/2012/12/collaborative-filtering-with-graphchi.html