R2RILS

R2RILS is a matrix completion algorithm based on the paper J. Bauch, B. Nadler and P. Zilber (2020) available here.
R2RILS is inspired by the class of factorization based methods for low rank matrix completion.
However, it significantly differs from them as it decouples the left and right subspace estimations.

Problem setup

Let X0Rm×n be an m by n rank r matrix and Ω[m]×[n] be a subset of indices.
Let X be the matrix with observed entries in Ω and zero in Ωc, the complement of Ω.
The matrix completion problem considered is thus to reconstruct X0 given X.

Code

An implementation of R2RILS is available on github (an earlier version is available here).
Both Python and matlab implementations are supplied as well as simple demos.

Usage

Python

The entry point to run R2RILS is a function with the same name which expects the following parameters: This method returns X_hat - R2RILS's estimate for X0, and a convergence flag which indicates if the algorithm converged.

Matlab

The entry point for running R2RILS in Matlab is again a function bearing the same name
function [X_hat, U_hat, lambda_hat, V_hat, observed_RMSE, iter, convergence_flag] = R2RILS(X, omega, rank, opts)
and expects the following parameters: This method returns [X_hat, U_hat, V_hat, observed_RMSE, iter, convergence_flag] where:

References

  1. J. Bauch, B. Nadler and P. Zilber. Rank 2r iterative least squares: efficient recovery of ill-conditioned low rank matrices from few entries. arXiv preprint arXiv:2002.01849.