Matrix factorization is an important and unifying topic in signal processing and linear algebra, which has found numerous applications in many other areas. Nonnegative Matrix Factorization (NMF) has become a popular model in data mining society. NMF aims to extract hidden patterns from a series of high-dimensional vectors automatically, and has been applied for dimensional reduction, unsupervised learning (clustering, semi-supervised clustering and co-clustering, etc.) and pre- diction successfully. This chapter surveys NMF in terms of the model for- mulation and its variations and extensions, algorithms and applications, as well as its relations with K-means and Probabilistic Latent Seman- tic Indexing (PLSI).