-
-
Notifications
You must be signed in to change notification settings - Fork 142
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
[BUG] "Ignore reviews before" Not Working #659
Comments
Interestingly this was opened today ankitects/anki#3242 (edit: personally I've had this issue since I started using FSRS about 3 months ago) |
It works as intended. The "ignore reviews before" filters out cards whose first review log's date is before the setting. |
@L-M-Sherlock The description in the app says "If set, reviews before the provide dated will be ignored when optimizing & evaluating FSRS parameters". If that's the intended behaviour then shouldn't it say something like "If set, cards whose first review is before the provided date will be ignored when optimizing & evaluating FSRS parameters"? |
The description seems wrong. |
IIRC, the reason this feature was added because some people might have changed their grading behaviour at some time in past, in which case those revlogs will be irrelevant, but might not the later reviews still be useful? I don't know why whole cards are being ignored. (the tooltip also mentions the situation where you imported somebody else's decks with their learning history) @anthonysharpy If you have revlogs from before this particular date you are using for |
FSRS optimizer doesn't accept incomplete review history. |
I think that the last comment by L-M-Sherlock is slightly confusing. He means to say that FSRS optimizer can't use incomplete review history. The reason is that, in the FSRS algorithm, every review modifies the memory states from the previous one and you can't calculate memory states if you don't have the complete review history. During reviews, however, we use a hack to estimate the memory states of cards with incomplete revlogs. Otherwise, we won't be able to calculate the intervals. However, this hack is not used when optimizing because optimization is a more high-stakes operation (because optimization affects all the cards not only those with incomplete revlogs).
It makes sense. You can suggest this on forums.ankiweb.net. |
One correction: When optimizing, the whole card is ignored. But while evaluating the parameters, only the reviews before the provided date are ignored. |
I am definitely not at all an expert in the way Anki works, but this pretty much sums up what I thought this was for too (and what the description and tutorial seem to say).
@brishtibheja Might be misunderstanding but my first reviews were before this date (at least for this deck). I guess that would explain why setting it to 1st April causes it to say "0 reviews" - because all my first reviews are from much longer ago. If it's not possible to optimise using cards with incomplete review histories, I wonder if the ignore reviews before feature actually has any purpose? The tutorial and in-app description seem to say that this can be used for excluding some reviews but not others (which is as the tutorial mentions is useful if e.g. your answering patterns change, or you inherit someone else's deck). But as has been mentioned this seems to not actually be true. Is it just that this option is useful for evaluating but not for optimising? (Sorry I don't actually know what evaluating is haha) If this can't be used during optimisation, then maybe this option should be ignored when optimising? And a clearer description added. If that makes sense then I can go suggest to the folks over on the forums. |
When a date is set, Anki uses the review history of cards introduced AFTER the date to optimize the parameters. The assumption is that you have at least some cards you started reviewing after the date.
Well, this was unexpected because the |
Oh yeah true, brain fart, I do know what it is.
Checking again, I'm not sure this is the case since if I set the date to something like 1st April, it says 0 reviews found when pressing evaluate. So it seems the behaviour is the same (it ignores whole cards) whether evaluating or optimising.
That does seem to be the assumption. But I think it's fair to say that that assumption is at odds with what the instructions say at the moment. Sort of seems to me this feature was implemented to solve problem X, but actually does not/can not solve that problem, since the fact that it can only ignore whole cards and not reviews makes the feature a lot less useful. Especially because I think most of the people who will want to use this feature will want to use it on decks that have lots of review history, and decks with lots of review history are less likely to have new cards (unless the user is still adding to it maybe). |
But do you see some values of log loss and RMSE on pressing Evaluate? If yes, this is another issue (ankitects/anki#3242) where there is a bug in the number of reviews displayed by Anki.
Suggestions to improve the instructions are welcome. The Anki Forums are a better place for them, though.
I understand what you want to say, but there is no option other than ignoring the whole card. |
What's the problem you want to solve via "Ignore reviews before"? |
Unfortunately not, it just says "Error: 500: Only 0 reviews were found. You must have at least 400 reviews for this operation". (edit: to be clear this is only when I select a recent date, e.g. 1st January 2024)
Sounds good, I'm about to go on holiday for about a week though, so will probably do it when I come back.
Other than the things that have already been mentioned, personally I wanted to see if using only the more up-to-date data (I've had some of these decks for over three years now) might make optimisation more accurate. Not sure how realistic that is, but I was just thinking that the way I answer things might have changed a little bit since then. |
I can't reproduce this. Can you try using the latest Anki version (24.06.2)?
Note that FSRS counts reviews differently. For example, it counts one review when you review the same card on at least two different days. |
@user1823 I get this on 24.06.03 as well Here's a video - am I doing it right? 2024-07-09.12-12-44.mp4 |
Wait, really? God, this is even more of a mess than I remember. @user1823, can you write a description of "Ignore reviews before" that will be used for ankitects/anki#3288 and in the tutorial? And a description of historical retention. And make sure that both of them don't make the user think "oh no, my reviews will be permanently deleted!". Sorry for the trouble, but I don't know how to write it |
Tip (if user1823 would get us a description): Brevity and clarity both are important if we are writing for the tooltips. Thus, write as less as you can but as much as you should. |
I think the issue (judging by the images in the first post) is that the user expects the date convention to be dd/mm/yyyy while it's actually mm/dd/yyyy. |
I don't think that's the issue. |
Assuming all the above is true then I imagine the feature should probably also be renamed from "ignore reviews before" to something like "ignore cards learned before"? |
If you forget about Evaluate for a moment, FSRS in Anki has two main components: the optimizer and the scheduler. As you have correctly interpreted, when a date is set, the optimizer ignores cards learned before the provided date. However, we can't do this with the scheduler. If the scheduler ignores the whole card, FSRS won't work for that card and SM-2 will instead be used for scheduling. So, as a workaround, the scheduler only ignores the reviews before the provided date and then tries to guess the memory states at the first review done after the provided date. So, the behaviour of the "ignore reviews before" option is inconsistent between the scheduler and the optimizer. Unfortunately, this means that there is no way to succinctly explain what this option does. PS: |
Wait, I thought that for scheduling, no reviews are ignored, and cards just use parameters that were generated by the optimizer while ignoring reviews? So the reviews are ignored for the purpose of optimization, but not for scheduling. |
Ok, so there are only three people in the world who understand how "Ignore reviews before" works: @L-M-Sherlock, @user1823, and @Luc-Mcgrady. Unfortunately, LMSherlock's English isn't good enough to write the tutorial and the tooltip for Anki. That leaves user1823 and Luc. Can either of you guys help with this, this and this, please? |
As has been explained in this thread and for reasons that were explained to me at length which I have since somewhat forgotten, this option ignores cards which are introduced after the date set. (I implemented it the way it is described at first but was told it would mess with the first review which is very important for FSRS). This means if a card does not have a learning step after the given date, all reviews for that card are completely ignored. This, as I see it, leaves people with 2 options:
The manual should really read like this If set,
- reviews before
+ cards which have no learning steps after
the provided date will be ignored when optimising & evaluating FSRS parameters. This can be useful if you imported someone else's scheduling data, or have changed the way you use the answer buttons. I suppose the option should be named "Ignore cards before" |
I'm afraid that will make users think that cards that were created before that date will be ignored. |
"Ignore cards introduced before"? |
"Ignore cards reviewed before" then, though it's a bit too long |
"Ignore introduced before"?? |
I think this discussion belongs here: https://forums.ankiweb.net/t/ignore-reviews-before-is-misleading/46686 Dae and others in the forum can also chip in. |
This issue has been inactive for a while. Let me summarize it:
I have no plan to support it, so I close this issue. |
Describe the bug
When I try to use the "Ignore reviews before" feature it always tells me I have 0 reviews (or a very small number of reviews if I go back far enough), even though I have thousands of reviews.
I have a deck called "Core 2000". Its preset is "Core 2000 Deck". It's a subdeck of a deck called "Japanese". (BTW, this also seems to be not working for all my other decks too, this is just an example.)
This deck has 100-200 reviews per day:
When I don't enter a "ignore reviews before" date, it seems to show the correct number of reviews. For example, this is me pressing "Evaluate":
If I set "ignore reviews before" to a recent date - say 1st April 2024 - it will say "Only 0 reviews were found":
I have tried changing the filter settings but nothing seems to make a difference.
To Reproduce
Here's an export of my entire collection here, maybe this will help:
japanese.zip
Let me know if I've done the export wrong, never had to do one before...
Expected behavior
There should be thousands of reviews, not 0.
Screenshots
See above.
Environment
Additional context
I've read that this can be caused by not setting up presets properly, but don't think that applies to me (I hope)? https://forums.ankiweb.net/t/failing-to-optimize-evaluate-fsrs-for-some-presets-error-500-only-0-reviews-were-found/43687
I would imagine that if it's able to show me my reviews in the stats graph, it should also be able to figure out my reviews in the optimisation dashboard.
The text was updated successfully, but these errors were encountered: