What is the scikit-learn Coordinate Descent (CD) algorithm for Non-negative Matrix Factorization (NMF)?
The sklearn implementation of NMF has two different solvers, Coordinate Descent and Multiplicative Update. These are introduced in the user guide (here) but not described in detail, except to link to the source papers. For CD, the documentation links to Cichoki & Phan+09 (link is broken in current docs, but you can find it here), but there are 5 different algorithms described therein. The sklearn source code (cython) is given here but I'm struggling to understand the procedure, and link with any of those in Cichoki & Phan.
Could someone describe (and preferably provide a source for) the CD algorithm used in sklearn?