Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

cheetm/lightfm_deep_dive #1096

Merged

Conversation

Knostromo
Copy link
Contributor

@Knostromo Knostromo commented Apr 23, 2020

Description

Added LightFM deep dive with accompanying utils

Related Issues

#1097

Checklist:

  • I have followed the contribution guidelines and code style for this project.
  • I have added tests covering my contributions.
  • I have updated the documentation accordingly.
  • This PR is being made to staging and not master.

@review-notebook-app
Copy link

Check out this pull request on  ReviewNB

You'll be able to see Jupyter notebook diff and discuss changes. Powered by ReviewNB.

@msftclas
Copy link

msftclas commented Apr 23, 2020

CLA assistant check
All CLA requirements met.

@Knostromo Knostromo changed the title added initial files cheetm/lightfm_deep_dive Apr 23, 2020
@miguelgfierro
Copy link
Collaborator

@cheetm this looks really good, I added some comments. It would be great if you could connect with Nile, she has already a lot of experience on the repo

@miguelgfierro
Copy link
Collaborator

@niwilso I'm trying to add you as reviewer but for some reason I can't. Feel free to add comments and suggestions as well

@anargyri
Copy link
Collaborator

Hey @cheetm this PR is very nice. Thanks for the great work!
My main comment is that we follow the practice of using the metrics computations from this repo, instead of the ones from lightfm.evaluation. This allows for consistency and comparisons between different algorithms and frameworks.

@Knostromo
Copy link
Contributor Author

Knostromo commented May 11, 2020

Hey @cheetm this PR is very nice. Thanks for the great work!
My main comment is that we follow the practice of using the metrics computations from this repo, instead of the ones from lightfm.evaluation. This allows for consistency and comparisons between different algorithms and frameworks.

Hi @anargyri thanks for your comments.
Perhaps it is not clear from the notebook, all the evaluation metrics were computed using the repo's methods up to section 3. In section 4 the progress were tracked and measured using LightFM's method because they are significantly more efficient. Furthermore, Section 4 is purely to demonstrate how one can track the model fitting process so it shouldn't be critical.

You can use the output from cell 18 and/or cell 32 for comparison with other algorithms.

Hope thats okay.
Thanks

@miguelgfierro
Copy link
Collaborator

@cheetm about this:
In section 4 the progress were tracked and measured using LightFM's method because they are significantly more efficient.

  • do you have some metrics of the difference?
  • do you know where the speed up comes from and/or how to improve our current metrics?

FYI @yueguoguo

Copy link
Collaborator

@miguelgfierro miguelgfierro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

really good job

@Knostromo
Copy link
Contributor Author

@cheetm about this:
In section 4 the progress were tracked and measured using LightFM's method because they are significantly more efficient.

  • do you have some metrics of the difference?
  • do you know where the speed up comes from and/or how to improve our current metrics?

FYI @yueguoguo

I have added section 3.6 to demonstrate the difference (albeit very naively), the difference is so great I don't think we need to resort to timeit.
Also note that if I were to use the repo's metrics, each epoch in section 4 would require ~13 minutes to compute which is why I've decided to use the LightFM's methods.

I haven't got time to properly investigate your second point, but I am guessing if you have already fitted the latent matrices, the scores can be retrieved much more efficiently all at once instead of individually.

@miguelgfierro miguelgfierro merged commit 4e78675 into recommenders-team:staging May 13, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants