lyst / lightfm

A Python implementation of LightFM, a hybrid recommendation algorithm.
Apache License 2.0
4.73k stars 691 forks source link

Dealing with Missing Item Features #577

Closed keryums closed 3 years ago

keryums commented 3 years ago

Hello,

How does this package deal with the case of passing in item features for fewer items than is in the user-item utility matrix? We've noticed that the model will train and we can extract item representations from the trained model even without explicitly imputing for these missing item features.

Thanks

SimonCW commented 3 years ago

Hi @keryums

maybe this excerpt from the notes in the documentation is helpful:

If no feature matrices are provided to the lightfm.LightFM.fit() or lightfm.LightFM.predict() methods, they are implicitly assumed to be identity matrices: that is, each user and item are characterised by one feature that is unique to that user (or item). In this case, LightFM reduces to a traditional collaborative filtering matrix factorization method. https://making.lyst.com/lightfm/docs/lightfm.html

If you pass in features to the fit calls and you have used the built-in dataset construction, than adding one "identity feature" per user and item is also the default. See: https://making.lyst.com/lightfm/docs/lightfm.data.html#lightfm.data.Dataset

I hope this helps!

If this doesn't clear things up, maybe you could provide a concrete example, e.g. shape of your matrices, way of constructing them.

keryums commented 3 years ago

Thank you that makes sense!

Ker-Yu 415-312-2148

On Wed, Dec 30, 2020 at 4:22 PM Simon Weiß notifications@github.com wrote:

Hi @keryums https://github.com/keryums

maybe this excerpt from the notes in the documentation is helpful:

If no feature matrices are provided to the lightfm.LightFM.fit() or lightfm.LightFM.predict() methods, they are implicitly assumed to be identity matrices: that is, each user and item are characterised by one feature that is unique to that user (or item). In this case, LightFM reduces to a traditional collaborative filtering matrix factorization method. https://making.lyst.com/lightfm/docs/lightfm.html

If you pass in features to the fit calls and you have used the built-in dataset construction, than adding one "identity feature" per user and item is also the default. See: https://making.lyst.com/lightfm/docs/lightfm.data.html#lightfm.data.Dataset

If this doesn't clear things up, maybe you could provide a concrete example, e.g. shape of your matrices, way of constructing them.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/lyst/lightfm/issues/577#issuecomment-752679445, or unsubscribe https://github.com/notifications/unsubscribe-auth/AFJBSJPSJCBE7XSWRPSVRUDSXNHT5ANCNFSM4VOG3AKA .

SimonCW commented 3 years ago

Perfect, then I'll close.