Abstract: Algorithms that involve matrix factorization have been the object of intense study in the recent years, generating a wide range of techniques and applications for many different problems. Given an input data matrix X, the simplest matrix factorization problem can be defined as the task to find matrices F and G, usually of low rank, such that X ? F G. I consider two different variations of the matrix factorization problem, the Semi- Nonnegative Matrix Factorization, which requires the matrix G to be nonnegative, and the Weighted Semi-Nonnegative Matrix Factorization, which deals additionally with cases where the input data has missing or uncertain values. This dissertation aims to compare different algorithms and strategies to solve these problems, focusing on two main strategies: Constrained Alternating Least Squares and Multiplicative Updates