How does ALS implementation calculate ratings when model.transform is called?

The spark ALS model is based on this paper: Collaborative Filtering for Implicit Feedback datasets. .

Here, latent vectors are learnt such that instead of estimating R (ratings matrix), they only estimate P (preference matrix - binary matrix based on whether user has interacted with item or not).

(R is broken down into P and C (confidence matrix).

Question: As C is not estimated, how is it possible that model.transform(dataset) accurately predicts ratings R?

The implementation is a dead end for me as python code is just a wrapper and I don't know Java or Scala enough to understand the implementation.

Topic pyspark recommender-system

Category Data Science

About

Geeks Mental is a community that publishes articles and tutorials about Web, Android, Data Science, new techniques and Linux security.