chyikwei / recommend

recommendation system with python
310 stars 118 forks source link

Predict Users and Items Latent Features with PMF or BPMF Models #22

Closed TheEdoardo93 closed 6 years ago

TheEdoardo93 commented 6 years ago

Hi, The pipeline I’ve implemented is the following: 1) train a PMF model with a ratings matrix as input, obtaining latent features for both items and users; 2) predict the rating values for a specific user whose identifier is in the input ratings matrix, by using the latent features extracted with the previous step.

Now I would like to use the trained PMF model in order to extract the latent features (in order to compute the predicted rating value) for new users whose identifiers are not in the input ratings matrix, i.e. predict rating values and obtain latent features for users not present while PMF training. It is possible to do? How? Please report a code example, if possible.

It is possible to do the same task with the BPMF model?

Thanks for the answers, Best regards.

chyikwei commented 6 years ago

No. you cannot do this directly.

You have to either re-train the model or find a way to estimate latent features for new users. (for example, find similar users and use weighted sum of their latent features.)

check this link for more details: https://stackoverflow.com/questions/36723429/how-can-i-handle-new-users-items-in-model-generated-by-spark-als-from-mllib

chyikwei commented 6 years ago

Also check Fig.3 in this paper. It describes how to do online update for new users.