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