-
-
Notifications
You must be signed in to change notification settings - Fork 139
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
[Feature Request] Improve the S increase formula for same-day reviews #708
[Feature Request] Improve the S increase formula for same-day reviews #708
Comments
I'll explain my problem which I think has some solution. For this one particular card, it graduates from learn state with an interval of Now, that card gets a What about capping the stability such that same-day reviews cannot make S higher than what it was before entering learn state? |
@brishtibheja what's your FSRS params? |
|
Not completely sure how will I get increased ivls then. Here's the file: (rename to .apkg) |
@brishtibheja, could you send your collection file to me? I can make some analyses about the PLS based on that. |
FYI I have tried Sherlock's recommendation and changed relearning step to I want to ask if some sort of capping the stability wouldn't work in this case? |
What about setting the last parameter to zero? |
I have a good idea, but it requires adding another thingy to the memory state - the number of same-day reviews - and more parameters. I haven't benchmarked it yet. |
Another case:
In summary: Rating source: https://www.reddit.com/r/Anki/comments/1h9g1n7/comment/m10vqz0/ |
I actually think that this is plausible. What I mean is that if someone from 2100 handed us the code for the world's most advanced spaced repetition algorithm that models short-term and long-term memory differently, it would behave this way. |
@dae, I saw that you're reviewing ankitects/anki#3707. As you seen, I added a new arg to |
I'm not dae, lol, but I want to share my opinion. |
Fine. Maybe just allow users like @brishtibheja could set it via debug console? |
I don't use desktop Anki (AnkiDroid). |
@L-M-Sherlock I haven't had time to closely follow FSRS development recently, so I don't know enough yet to give you an answer. Can you briefly summarise why a user would want one way vs the other, and why we need to offer both? |
If the user has two or more relearning steps, the stability on the same day may increase to exceed the stability prior to when the user pressed 'again'. The option could prevent FSRS from updating the stability during the same day reviews. |
To add to this: This may also happen with just one learning step. The issue can be seen in the image here: #708 (comment) The user fails something, relearns it, the new interval is higher than before so they fail it again, relearn it, and the cycle repeats. I had cards with a month's interval that I consistently failed everytime they came up for review. |
It has been fixed in open-spaced-repetition/fsrs-optimizer#150 and open-spaced-repetition/fsrs-rs#257 |
Why do we need to make it configurable? Are there times when the current behavior makes more sense? |
The current behavior is counterintuitive. For example, the last interval is 10 days and I press |
That seems to indicate you want to give users the choice. Why do you want to give them a choice if you think the current behaviour is bad? Why don't we just fix it without any option in the advanced section? |
I have another solution:
It could fix the problem without any option the advance section. But the workflow is likely to confuse users: why the optimization runs twice? |
The current behaviour is bad for some people (especially those having multiple same-day relearning steps). For most people, using same-day reviews improves RMSE (and that's the main change from FSRS-4.5 to FSRS-5). |
(just as FYI) I also talked about storing the stabilities and not let S increase past the previous S. |
If it's not possible to make the algorithm robust against the outliers such as this affected user, then another toggle might be the only practical option if this issue is common enough. |
@dae the issue is that we can't explain it to a new user, or even to an average user, without getting very technical. It would have a name like "Don't update memory stability during same-day reviews" or "Freeze stability during same-day reviews" or something like that. To the majority of users it may as well be in Chinese. @L-M-Sherlock running the optimization twice doesn't sound so bad, compared to the alternative of adding yet another setting that makes FSRS and Anki even more complicated. |
Does it have to show it's running twice? I think most users would accept that sometimes it takes longer, without thinking something might be wrong. |
"The average user wouldn't understand what it does" is not a convincing argument for an option that would be placed in the advanced section. It's not intended for them, and they don't need to understand it. User ability is on a spectrum. Sometimes we can make changes that benefit the entire spectrum; other times improvements on one end mean regressions for the other end. Optimising twice imposes a 100% speed penalty on the entire userbase for the benefit of a few. |
@dae, I agree with most of your above comment, but
If this is implemented as Jarrett proposed, optimization will occur twice only for the affected users. Simulation will be run for all users though, but that shouldn't consume much system resources. An important point is that this issue is not easy to identify. So, automatic detection will ensure that most people having the issue will get the benefits of the workaround. |
If it can be done in such a way that the extra computation is only done for users who would benefit from this change, then I agree that would be the preferable option. |
Conversation on Discord
#707 (comment)
@brishtibheja
The text was updated successfully, but these errors were encountered: