JuliaStats / NMF.jl

A Julia package for non-negative matrix factorization
Other
91 stars 34 forks source link

[Breaking] Add greedy coordinate descent algorithm #38

Closed ghost closed 3 years ago

ghost commented 3 years ago

I implemented a greedy coordinate descent algorithm [1] for MSE-based NMF and confirmed that the algorithm works fast and stable for both dense and sparse matrices. The benchmark is here. Furthermore, I unified the definition of the objective function for each algorithm.

[1] Cho-Jui Hsieh and Inderjit S. Dhillon. "Fast coordinate descent methods with variable selection for non-negative matrix factorization." In Proceedings of the 17th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, pp. 1064–1072, 2011.

ghost commented 3 years ago

@ararslan As far as I know, this is the fastest algorithm for MSE-based NMF. I think this pull request is worth being merged. I would appreciate it if you could review at your convenience.

ghost commented 3 years ago

@andreasnoack I squashed my messy commits together into one commit. I'm sorry for the inconvenience.

andreasnoack commented 3 years ago

Thanks for the contribution

ghost commented 3 years ago

@andreasnoack Thank you for merging this pull request!