If I am trying to develop a Collaborative Filtering (CF) model without any ratings/scores, I can infer the ratings/scores based on some sort of observed behavior and score it.

For the sake of brevity, let’s say for each second a user stays on a page, it is awarded half of a point up to a maximum of 5 points. We can model this as:

`score(user, page) = 0.5 * time_spent_on_webpage, where 1 <= time_spent_on_webpage <= 5`

And so we can use this trivial model to populate our utility matrix. Afterward, we go and apply collaborative filtering technique to decompose the utility matrix into 2 lower rank matrices.

The last step where we factorize the utility matrix into two smaller rank matrices, we’ll call the matrices **A** and **B** respectively. So effectively, what we have done here is we’ve created a new model that will predict the time a user will spend on a given webpage.

Is the understanding here correct?