-
Notifications
You must be signed in to change notification settings - Fork 37
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
fit_partial function for ImplicitALSWrapperModel and LightFMWrapperModel #176
Comments
Hi! That would be great, we've been discussing this feature some time ago. Added to backlog. But right now priority is low for our team since we are focusing on more complicated models in the nearest future. |
Lesson learned in the first attempt:
|
Let's figure it out. My thoughts are:
From these points I see the following priorities:
|
Thanks for your detailed explanation. It makes clear understanding now. I agree with not allowing adding new features. In general supervised learning tasks, we fix the input feature, even for fine-tuning. If we want to use different features, then we should train the model from scratch. That's a completely different model. Supporting new users/items is critical for recommender systems. 100%. One concern that comes to mind is providing
In either option, we have to be careful that If RecTools enforces not using Conjugate Gradient ALS by passing How do you prioritize the tradeoff between consistent training results and training speed? Of course, we may be able to give users the option of using Conjugate Gradient ALS or not. |
If we agree that adding support for features in epochal and incremental training of ALS is important, then we should take it into account already.
If we drop
Last point it the most difficult one. We have 2 methods to refactor: RecTools/rectools/models/implicit_als.py Line 73 in 8a3b716
Let's dive deeper.
and then call
@feldlime please check me carefully :) and write your opinion @chezou please tell me what you think and you have any questions/doubts? Are you willing to do this part of work? I would suggest to do this refactoring first. And then introduce |
@chezou if you don't feel comfortable with ALS refactoring PR, we can do it ourselves. And afterwards you can continue with further PRs |
@blondered Sorry, I've been super busy with my work. Please go ahead for refactoring PR since I'm not confident enough. As long as |
Ok. It will not be immediate bit we'll try to do it as soon as we can. |
@chezou now that we've merged ALS refactoring, we can move on. I suggest next steps to be:
I can take the first PR ( |
@blondered Sorry for the delayed response. For personal reasons, I will be busy in the coming weeks. I'm happy to take the first PR if it's not urgent. I think I can find some time at the end of this month. If urgent, please go ahead on your end. |
@chezou I will write to you if I will take it myself. A bit busy too. |
Feature Description
Implicit's ALS and LightFM provide partial_fit capability.
https://benfred.github.io/implicit/api/models/cpu/als.html#implicit.cpu.als.AlternatingLeastSquares.partial_fit_users
https://benfred.github.io/implicit/api/models/cpu/als.html#implicit.cpu.als.AlternatingLeastSquares.partial_fit_items
https://making.lyst.com/lightfm/docs/lightfm.html#lightfm.LightFM.fit_partial
It would be great if RecTools had a standardized way to use them for incremental model updates.
Why this feature?
If we can use partial_fit, we can avoid full re-training every time. This is beneficial when the original model is trained by a massive dataset.
Additional context
No response
The text was updated successfully, but these errors were encountered: