Live data from Hacker News

Ask HN: what linear algebra do you use most often for practical problems?

news.ycombinator.com

1–10 of 31 posts

Re: Ask HN: what linear algebra do you use most often for practical problems?

#3
I'm not in software, but rather algorithm development for determining radio positions (like GPS but including other methods for cell phones). I have used eigenanalysis a number of times, a lot of orthogonal basis shifting of various kinds, implicilty a lot of matrix inversions and pseudoinversions to solve things. I do most of my R&D using matlab, and have learned a lot of linear algebra reading their helpfiles. I use hilbert spaces and what I learned about them 30 years ago almost constantly.

Re: Ask HN: what linear algebra do you use most often for practical problems?

#5
I apologize for threadjacking but you guys might be able to help.

I have a different problem - I would like to compute an approximate SVD of a very large sparse matrix, (for spectral clustering) but I can't find a good implementation which works for datasets too large to fit in core. This is a hadoop scale problem. What's the best way to do this?

Of course, finding all the singular values/vectors is out of the question, but I just need the top hundred or so.

Does anyone here have any suggestions for how to do this? The obvious strategy is just to construct a rank-100 approximation and optimize the singular values and vectors so that they get as close as possible to the real matrix. I guess gradient descent or something like that would work. Are there existing packages that do this with hadoop?

Re: Ask HN: what linear algebra do you use most often for practical problems?

#8
post #5

I apologize for threadjacking but you guys might be able to help. I have a different problem - I would like to compute an approximate SVD of a very large sparse matrix, (for spectral clustering) but I can't find a good implementation which works for datasets too large to fit in core. This is a hadoop scale problem. What's the best way to do this? Of course, finding all the singular values/vectors is out of the questi…

Gradient descent is a good solution for approximate SVD, I'm using it as part of my data mining final project (working on the netflix prize). I'm using this guy's code: http://www.timelydevelopment.com/demos/NetflixPrize.aspx, modified to print out the singular vectors when it finishes. It took about 32 hours (can't quite remember) to find the first 64 singular values* on the netflix dataset (480000x18000, 1.2% non-zero (or is it 1.8%?)) using a 2.2GHz Opteron and ~2 gigs of ram.

I'm sure there are better methods, but this one is easy and is producing great results. If you have any questions, you can shoot me an email at sbuss at cise dot ufl dot edu.

As for hadoop, I don't know of any parallel implementations of this that exist, but I don't think it would be /too/ hard to parallelize the gradient descent approach. Just split up the error calculation into several smaller chunks. If you get it running in parallel, let me know.

*edit: changed "vectors" to "values" in first paragraph.

Re: Ask HN: what linear algebra do you use most often for practical problems?

#9
post #5

I apologize for threadjacking but you guys might be able to help. I have a different problem - I would like to compute an approximate SVD of a very large sparse matrix, (for spectral clustering) but I can't find a good implementation which works for datasets too large to fit in core. This is a hadoop scale problem. What's the best way to do this? Of course, finding all the singular values/vectors is out of the questi…

As long as the 100 vectors fit in memory, it shouldn't be too bad. I think the commonly used algorithm to find the first singular vectors is Lanczos iteration, where the key operation is multiplying the 100 vectors by the large matrix. I don't know if there's an existing library for this though...

Re: Ask HN: what linear algebra do you use most often for practical problems?

#10
post #5

I apologize for threadjacking but you guys might be able to help. I have a different problem - I would like to compute an approximate SVD of a very large sparse matrix, (for spectral clustering) but I can't find a good implementation which works for datasets too large to fit in core. This is a hadoop scale problem. What's the best way to do this? Of course, finding all the singular values/vectors is out of the questi…

Distributed, Large-Scale Latent Semantic Analysis by Index Interpolation. Sebastiano Vigna

http://tinyurl.com/d99779 [PDF]

Post reply on HN