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

[Question] Would FSRS work correctly for cards with copied scheduling data? #136

Closed
user1823 opened this issue Feb 7, 2023 · 30 comments
Closed
Labels
question Further information is requested

Comments

@user1823
Copy link
Collaborator

user1823 commented Feb 7, 2023

I have a question about whether FSRS would work for me correctly. But, before I ask my question, here is some background:

While working through my cards, I often discover old cards that I think should not be a single card but must be split into multiple cards. Then, I split those cards and based on my assessment of my memory of those answers, I copy the scheduling data from the old card to the new cards using this add-on. However, this add-on doesn't copy the complete review history. Here are the card infos of two such cards:

All the reviews seen in the review history are those that were done after the splitting.

Now, since the Optimizer and the Helper use the complete review history of the card, would they work correctly with these cards?

I don't know how much of my collection consists of such cards, but I guess it should be close to 10%.

@user1823 user1823 added the bug Something isn't working label Feb 7, 2023
@L-M-Sherlock
Copy link
Member

It will cause problems 😫. In my view, these logs are invalid.

@L-M-Sherlock L-M-Sherlock added question Further information is requested and removed bug Something isn't working labels Feb 7, 2023
@user1823
Copy link
Collaborator Author

user1823 commented Feb 7, 2023

How serious could it be?
Do I need to do something to minimize it?
Are you planning to do something to fix it?

@MNastri
Copy link
Contributor

MNastri commented Feb 7, 2023

Here's what I think:
-The addon that transfers scheduling information needs to actually transfer them correctly.
-Fsrs4anki should assume that the received scheduling info is right.
That's just my opinion of course.

I'm curious about what fraction of your cards had their scheduling transfered, I suspect it's a really small number and that would have little effect on your optimized weights.

@L-M-Sherlock
Copy link
Member

How serious could it be?

FSRS helper needs the first rating (corresponding to the learning type of review) to initiate the rescheduling of the card.

@user1823
Copy link
Collaborator Author

user1823 commented Feb 7, 2023

FSRS helper needs the first rating (corresponding to the learning type of review) to initiate the rescheduling of the card.

Ok. But, what would the helper do in the case of these cards?
Also, what would be the effect on the optimized w values (considering the number of such cards to be 5-10% of my total cards)?

Also, my other two questions remain unanswered.

  1. Is there something I can do to resolve the issue (at least partially)?
  2. Are you planning to do something to resolve the issue?

@L-M-Sherlock
Copy link
Member

It would cause unknown bugs, because I haven't tested this case.

5% data doesn't affect the parameters too much. And maybe I need to use the add-on and check the effect.

@L-M-Sherlock
Copy link
Member

It's not the responsibility of FSRS. In my opinion, the history of reviews shouldn't be mutable.

@user1823
Copy link
Collaborator Author

user1823 commented Feb 7, 2023

It's not the responsibility of FSRS. In my opinion, the history of reviews shouldn't be mutable.

I agree that it's not the responsibility of FSRS.

However, for the benefit of the users, I think a small check could be added to look for such cases.

If such a case is found, the helper can use only the later parts of the review history to set the difficulty and other factors. These factors would then adjust as more reviews are done.

5% data doesn't affect the parameters too much.

So, this would mean that there is no need to tweak the optimizer.

And maybe I need to use the add-on and check the effect.

I would wait for the results.

@L-M-Sherlock
Copy link
Member

If such a case is found, the helper can use only the later parts of the review history to set the difficulty and other factors. These factors would then adjust as more reviews are done.

I prefer to skip these cards, because the helper can't create the first rating out of nothing.

@L-M-Sherlock
Copy link
Member

I would wait for the results.

Could you share the deck file with scheduling information with me? It will speed the check.

@user1823
Copy link
Collaborator Author

user1823 commented Feb 7, 2023

Here is the file: Selected Notes.zip

Note 1: I have changed the file extension to .zip because GitHub wouldn't allow me to upload .apkg file. Please change the extension to .apkg before using it.

Note 2: I have only shared some of those cards which were affected, not my whole collection. Also, I have deliberately replaced the contents of the fields in the note because I don't want to share the contents online.

@L-M-Sherlock
Copy link
Member

Here is the file: Selected Notes.zip

Thanks! I will analyze it tomorrow.

@user1823
Copy link
Collaborator Author

user1823 commented Feb 7, 2023

Actually, I ended up testing it myself. The helper increased the interval of the card, but not as much as the other cards. I don't know what it did to the difficulty (because I can't see it, I guess).

However, I discovered another issue. For most of the normal cards, the intervals of the cards were increased greatly. For example, in the below screenshot, the interval increased from 1.5 months to 5.3 months!! After I recall a card after 20 days (which was the previous interval), it can't be sure of being able to recall it after 5.3 months.
Untitled2

I used the scheduler version v3.12.1

The values I used are as follows:

var w = [1.0667, 1.5311, 5.074, -1.1417, -1.1723, 0.0084, 1.6441, -0.0156, 1.0239, 1.7457, -0.4718, 0.8922, 0.6602];
let requestRetention = 0.9;
let maximumInterval = 36500;
let easyBonus = 1.3;
let hardInterval = 1.2;

@L-M-Sherlock
Copy link
Member

However, I discovered another issue. For most of the normal cards, the intervals of the cards were increased greatly. For example, in the below screenshot, the interval increased from 1.5 months to 5.3 months!! After I recall a card after 20 days (which was the previous interval), it can't be sure of being able to recall it after 5.3 months.

I guess your retention before is higher than 90%. Could you paste the analysis generated by the optimizer here? Like this:

image

@L-M-Sherlock
Copy link
Member

I have tested these selected notes with the helper add-on. The helper skipped those two reviews because the card didn't contain the learning stage. It will be fixed in the next update of the FSRS4Anki helper add-on.

image

@user1823
Copy link
Collaborator Author

user1823 commented Feb 8, 2023

Could you paste the analysis generated by the optimizer here?

Here is the analysis:
image

@L-M-Sherlock
Copy link
Member

I noted that the retention is extremely high when the first rating of the r_history is 3 (good). So the interval increased hugely when your target retention is 90%.

@L-M-Sherlock
Copy link
Member

By the way, I recommend using learning steps shorter than one day. Let FSRS control the long term schedule.

@user1823
Copy link
Collaborator Author

user1823 commented Feb 8, 2023

I noted that the retention is extremely high when the first rating of the r_history is 3 (good). So the interval increased hugely when your target retention is 90%.

What should I do then? Should I increase the target retention to something like 96%?

@user1823
Copy link
Collaborator Author

user1823 commented Feb 8, 2023

By the way, I recommend using learning steps shorter than one day. Let FSRS control the long term schedule.

I will set learning steps shorter than one day when I start using FSRS. These logs are from my previous reviews.

@L-M-Sherlock
Copy link
Member

What should I do then? Should I increase the target retention to something like 96%?

It depends on your goals. Higher retention or less reviews. You could check the stats given by Anki to see the retention in the past.

@user1823
Copy link
Collaborator Author

user1823 commented Feb 8, 2023

You could check the stats given by Anki to see the retention in the past.

Is this what you are talking about?

image

It depends on your goals. Higher retention or less reviews.

I would want similar (if not greater) retention to that achieved by standard Anki algorithm.

So, if I use a retention like 95%, would FSRS reduce the number of reviews as compared to standard Anki algorithm? Or would I be fine with using the standard algorithm and not bother about FSRS?

@L-M-Sherlock
Copy link
Member

So, if I use a retention like 95%, would FSRS reduce the number of reviews as compared to standard Anki algorithm?

You could simulate the comparison via the fsrs4anki simulator: https://github.com/open-spaced-repetition/fsrs4anki/blob/main/fsrs4anki_simulator.ipynb

1 similar comment
@L-M-Sherlock
Copy link
Member

So, if I use a retention like 95%, would FSRS reduce the number of reviews as compared to standard Anki algorithm?

You could simulate the comparison via the fsrs4anki simulator: https://github.com/open-spaced-repetition/fsrs4anki/blob/main/fsrs4anki_simulator.ipynb

@user1823
Copy link
Collaborator Author

user1823 commented Feb 8, 2023

So, I simulated the comparison. Here are my results for 94%, 95% and 96% retention respectively.
simulation 94%.pdf
simulation 95%.pdf
simulation 96%.pdf

Based on this analysis, I think 95% retention reduces my review time (slightly) as compared to standard Anki algorithm but gives the maximum number of remembered cards (5906).

So, I think 95% retention would be best for me. What do you think?

@user1823
Copy link
Collaborator Author

user1823 commented Feb 8, 2023

Sorry for being too inquisitive. I am just trying to ensure that FSRS gives me the most optimal results possible.

@L-M-Sherlock
Copy link
Member

I prefer 94% because its time per remembered card is the least (i.e., efficient).

@user1823
Copy link
Collaborator Author

user1823 commented Feb 8, 2023

This seems good.
However, I have one question:
With 94% retention, though number of remembered cards is greater than standard Anki, the retention per day (in graph) is lower than Anki. Why is it so?

@L-M-Sherlock
Copy link
Member

L-M-Sherlock commented Feb 8, 2023

With 94% retention, though number of remembered cards is greater than standard Anki, the retention per day (in graph) is lower than Anki. Why is it so?

The retention per day doesn't equal the retention of all cards. For example, the retention of mature cards is often lower than young cards in Anki, because Anki gives a longer interval to those mature cards. The lower retention of mature cards could not be included in the daily retention until they were due. So the retention per day could be higher than the average retention of all cards.

@user1823
Copy link
Collaborator Author

user1823 commented Feb 8, 2023

Thanks.

I think you should include an explanation of the values generated by the simulator in the simulator's description.

This would avoid many such queries from the future users.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
question Further information is requested
Projects
None yet
Development

No branches or pull requests

3 participants