iskandr/fancyimpute

Why is ARPACK library used in place of PROPACK?

ambareeshsrja16 opened this issue · 6 comments

I am studying the paper "Regularization Algorithms for Learning Large Incomplete Matrices" by Mazumder, on which Soft-Impute is based. I was really glad to find a Python implementation for the same, thank you!

I had a question, in the _svd_step, randomized SVD (when full rank) and ARPACK are used (from scipy), even though the original paper mentions PROPACK. Is there any specific reason for this?

Thank you!

@iskandr wrote it so he'd know, but I guess we just used whatever is default and easy. Would it matter what package we used?

I'm not completely sure of this, but ARPACK may not be scalable to large matrices (which is why the paper uses PROPACK in all its results)

https://simplyml.com/benchmarking-the-singular-value-decomposition/ for e.g shows a benchmarking of all FORTRAN libraries, and PROPACK is much faster.

Cool. We're too busy to make any major changes, but feel free to submit + benchmarks a PR if you're inspired!

Alright, I will give it a shot! Thank you!

Any update here? Or should I close this issue?

I haven't gotten time to get around it yet! I'll re-open when I do! Thank you!