This function sweeps through a series of k values (number of ranks the
datasets are factorized into). For each k value, it repeats the factorization
for a number of random starts and obtains the objective errors from each run.
The optimal k value is recommended to be the one with the lowest variance.
We are currently actively testing the methodology and the function is
subject to change. Please report any issues you encounter.
Currently we have identified that a wider step of k values (e.g. 5, 10, 15,
...) shows a more stable variance than a narrower step (e.g. 5, 6, 7, ...).
Note that this function is supposed to take a long time when a larger number
of random starts is requested (e.g. 50) for a robust suggestion. It is safe
to interrupt the progress (e.g. Ctrl+C) and the function will still return
the recorded objective errors already completed.