this freedom, and also compactify the NMF problem, by insisting that the columns of $W$ have a fixed norm of our choosing.

In “exact NMF" the minimum number of feature vectors in a factorization of the data matrix $Y$ is its positive rank, $r_+(Y)$. Since the positive rank is lower-bounded by the ordinary rank, and real-world data matrices are usually full rank, finding an exact NMF is not the goal in most data science applications. Instead, one specifies the number of feature vectors $n$ and seeks an approximate factorization $Y\approx W X$ with $n$ as the rank. The RRR algorithm can be used for this case too, through its ability to approximately satisfy constraints.

In the online setting, NMF is a one-layer neural network comprising a layer of mixture or *code* nodes $C$ that feed forward to a layer of data nodes $D$ (Figure \[fig:fig3\](a)). The network weights $w[i\to j]$ that connect code nodes $i\in C$ to data nodes $j\in D$ are the feature vectors of NMF. While there are no network inputs in the usual sense, training is still defined on data batches $K$, if somewhat indirectly. The network is tasked to learn weights $w$ such that for each 