Nonnegative matrix factorization (NMF) in its modern form has become a standard tool in the analysis of high-dimensional data sets. This book provides a comprehensive and up-to-date account of the most important aspects of the NMF problem and is the first to detail its theoretical aspects, including geometric interpretation, nonnegative rank, complexity, and uniqueness. It explains why understanding these theoretical insights is key to using this computational tool effectively and meaningfully. The book also presents models, algorithms and applications of NMF. It contains 2 parts and is divided into 9 chapters:

  1. Introduction

Part I - Exact factorizations

  1. Exact NMF

  2. Nonnegative Rank

  3. Identifiability

Part II - Approximate factorizations

  1. Models

  2. Computational Complexity of NMF

  3. Near-separable NMF

  4. Iterative algorithms for NMF

  5. Applications

The book can be ordered on the SIAM website. It is available in the SIAM digital library here, and on Google Play.

You can view a sample of the book here (Table of contents, Preface, Notation, Chapter 1, References, Index).

If you want a short introduction on NMF, you can watch the first part of the talk here.


A review of the book in zbMATH Open by John D. Dixon (Carleton University) is available here, including
"The book is clearly written and the geometric parts are attractively illustrated. The book has a bibliography of over 500 items (about half published in the last 10 years), a good index and an important index of notation including a full page of acronyms. It surveys a wide range of material. It is helpful that the chapters are largely independent and that the author is careful to stop and summarize from time to time."

Another one in SIAM Review by Arvind K. Saibaba (North Carolina State University) is available here, including
"This book is a one-stop shop for the theory, algorithms, and applications of NMF."
"These chapters weave foundational results with a ton of insight from linear algebra, optimization, and geometry. The proofs are easy to follow, and the main results are illuminated with examples (or counterexamples) and illustrations."
"It is not common to find a book that is good in theory, algorithms, and applications, but this book manages to find a good balance."


The MATLAB codes presented and used in the book can be downloaded here, and include a documentation.

Any feedback on the code or on the book is more than welcome!

Errata and additional material

In this document, you can find the errata of the book (so far, there are only minor errors -- please report to me any error you may find). I will also add some useful additional material; for example I have already added an illustrative example of the use of NMF to extract topics automatically in a set of documents (such an example is not present in the book).