About MatCoupLy

Coupled matrix factorization methods are useful for uncovering shared and varying patterns from related measurements. For these patterns to be unique and interpretable, it is often necessary to impose additional constraints. A prominent example of such a constrained coupled matrix factorization is PARAFAC2 [Har72, KTBB99], which uses a constant cross-product constraint to achieve uniqueness under mild conditions [HL96]. Lately, interest in such methods have increased [MCMorup17, RLXH20, RBJ+20, RB13], but there is a lack of software support, especially free open-source software. The availability of free accessible software (like scikit-learn and PyTorch) has been important for the rapid progress in machine learning research. Recently, TensorLy [KPAP19] has provided open source software support to tensor decomposition models as well. However, there is not yet such a software for constrained coupled matrix factorization models. Therefore, given the growing interest in these methods for data mining, there is a pressing need for well-developed, easy to use and documented open-source implementations.

MatCoupLy aims to meet that need by building on top of the popular TensorLy framework and implementing coupled matrix factorization with alternating optimization with the alternating direction method of multipliers (AO-ADMM) which supports flexible constraints [HSL16, RSC+22]. MatCoupLy implements a selection of useful constraints and provides an easy-to-use foundation to make it straightforward and painless for researchers to implement, test and use custom constraints. The MIT licence makes MatCoupLy suitable for academic and commercial purposes.

Why Python?

Python is a free open source programming language that’s easy to use for beginners and professionals alike. Lately, Python has emerged as a natural choice for machine learning and data analysis, and is used both for research and industrial applications. The increasing popularity of TensorLy for tensor learning in Python further establishes Python as a natural language for a coupled matrix factorization library.