-
-
Notifications
You must be signed in to change notification settings - Fork 20
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
Feat/support recency weighting #260
Conversation
@@ -210,29 +219,33 @@ impl<B: Backend> FSRS<B> { | |||
if items.is_empty() { | |||
return Err(FSRSError::NotEnoughData); | |||
} | |||
let weighted_items = recency_weighted_fsrs_items(items); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@L-M-Sherlock, shouldn't this be constant_weighted_fsrs_items
?
In open-spaced-repetition/fsrs-optimizer#152 (comment), you said that evaluation doesn't use weights.
In addition to what @Expertium said, adding weights to the evaluation makes comparing RMSE in Anki 24.11 and 25.01 difficult.
I noticed this because Anki 24.11 shows Log loss: 0.2551, RMSE(bins): 2.91%. 64,368 reviews
while Anki 25.01 shows Log loss: 0.2891, RMSE(bins): 3.18%. 64,368 reviews
with the same parameters.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It should be recency_weighted_fsrs_items
otherwise Anki will prefer the old parameters.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Well, I have changed my mind. Recency weighting makes training give more importance to recent reviews, which are those that the users care the most about.
If evaluation doesn't apply recency weighting, the more optimal parameters will produce worse metrics because the older reviews will have higher loss. So, Anki won't accept these new parameters.
But, we will need to inform users that the increased RMSE in 25.01 is due to a change in the evaluation method and this increase doesn't mean that FSRS has become worse for them.
Edit: You commented when I was typing this. 😅
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I doubt most users will check the RMSE after they update Anki. We just need to inform a small group of users if necessary.
Btw, RMSE(bins) cannot tell us much useful information. If we want to diagnose the algorithm, some calibration graphs in the section 4.2 is necessary: https://github.com/open-spaced-repetition/fsrs4anki/blob/main/fsrs4anki_optimizer.ipynb
close #256
same to: