Yes that will be really cool if the data has linearly independent rows ! I have to debug it more but I got it running with jblas Solve.solve..
I will try breeze QR decomposition next. Have you guys tried adding bound constraints in QR decomposition / BLAS posv other than projecting to positive space at each iteration ? Also for the experiments what's the usual procudure for documenting them for public feedback ? On the github PR ? Thanks Deb On Thu, Mar 6, 2014 at 7:59 AM, Sean Owen <so...@cloudera.com> wrote: > Hmm, Will Xt*X be positive definite in all cases? For example it's not > if X has linearly independent rows? (I'm not going to guarantee 100% > that I haven't missed something there.) > > Even though your data is huge, if it was generated by some synthetic > process, maybe it is very low rank? > > QR decomposition is pretty good here, yes. > -- > Sean Owen | Director, Data Science | London > > > On Thu, Mar 6, 2014 at 3:05 PM, Debasish Das <debasish.da...@gmail.com> > wrote: > > Hi Sebastian, > > > > Yes Mahout ALS and Oryx runs fine on the same matrix because Sean calls > QR > > decomposition. > > > > But the ALS objective should give us strictly positive definite matrix..I > > am thinking more on it.. > > > > There are some random factor assignment step but that also initializes > > factors with normal(0,1)...which I think is not a big deal... > > > > About QR decomposition, jblas has Solve.solve and > > Solve.solvePositive...solve should also run fine but it does a LU > > factorization and better way will be to do a QR decomposition. > > > > Seems breeze has QR decomposition and we can make use of that...But QR by > > default is also not correct since if the matrix is positive definite BLAS > > psov (Solve.solvePositive) is much faster due to cholesky computation.. > > > > I believe we need a singular value check and based on that we should call > > solvePositive/solve or qr from breeze.. > > > > There is also a specialized version of TSQR (tall and skinny QR > > decomposition) from Chris which might be good to evaluate as well: > > > > https://github.com/ccsevers/scalding-linalg > > > > I am going to debug it further and try to understand why I am getting non > > positive definite matrix and publish the findings... > > > > Any suggestions on how to proceed further on this ? Should I ask for a PR > > and we can discuss more on it ? > > > > Thanks. > > Deb > > > > On Thu, Mar 6, 2014 at 6:47 AM, Sebastian Schelter <s...@apache.org> > wrote: > > > >> I'm not sure about the mathematical details, but I found in some > >> experiments with Mahout that the matrix there was also not positive > >> definite. Therefore, we chose QR decomposition to solve the linear > system. > >> > >> > >> --sebastian > >> > >> > >> On 03/06/2014 03:44 PM, Debasish Das wrote: > >> > >>> Hi, > >>> > >>> I am running ALS on a sparse problem (10M x 1M) and I am getting the > >>> following error: > >>> > >>> org.jblas.exceptions.LapackArgumentException: LAPACK DPOSV: Leading > minor > >>> of order i of A is not positive definite. > >>> at org.jblas.SimpleBlas.posv(SimpleBlas.java:373) > >>> at org.jblas.Solve.solvePositive(Solve.java:68) > >>> > >>> This error from blas shows up if the hessian matrix is not positive > >>> definite... > >>> > >>> I checked that rating matrix is all > 0 but of course like netflix they > >>> are > >>> not bounded within 1 and 5.... > >>> > >>> Is there some sort of specific initialization of factor matrices done > >>> which > >>> can make the hessian matrix non positive definite ? > >>> > >>> I am printing out the eigen vectors and fullXtX matrix to understand it > >>> more but any help will be appreciated. > >>> > >>> Thanks. > >>> Deb > >>> > >>> > >> >