Struggles adjusting to FSRS

I have been struggling with adjusting to FSRS, or getting FSRS to adjust to me.

I think there are a few things making this hard.

The first thing I think I have figured out. Desired retention of 90% was lower than what I actually wanted. FSRS optimization goes both ways - if your desired retention is 90% and you are not forgetting 10%, it will increase review intervals and let you forget more. This reduces review workload, but intervals with a 10% chance of forgetting felt too long because my retention has been 95-97% in the past, and that’s what I wanted, I just needed to tell FSRS that. Set your desired retention higher and FSRS will change its scheduling accordingly.

The second thing that has been making this hard is that I do not see remembering as a binary yes/no thing. To me there are different shades of grey beyond “I couldn’t remember the word at all and need to click Again”:

  1. I could remember the word, but it wasn’t tip-of-my-tongue enough that I’d be able to use it in conversation. As a one-off thing effortful recall may help memory, but if the card continues to feel that way across multiple reviews then I haven’t learned it well enough.
  2. I could remember the word, but I had a momentary brain fart and entered a different word instead. “atar” is the Spanish verb for “to tie”, “corbata” is the Spanish noun for a tie you would wear around your neck. I get to the card for “to tie” and I accidentally enter “corbata”, or may even turn it into a verb and enter “corbatar”. If told “corbatar is incorrect, try again” I could probably have remembered “atar”, but the wrong word was the first one that came up in my mind.
  3. I could remember the word, but it’s because I recently encountered it outside of Anki.
  4. I know in advance that a particular word is going to be much harder for me to remember than other words. Either it has characteristics I’ve learned to recognize make certain words hard for me, or it’s a word that I already have a history of struggling with outside of Anki.

I tend to use “Bury card” for #3 and sometimes for #2 if it feels like it was just an absent-minded mistake. That’s a solution that can work in SM-2 or FSRS.

For #1 and #4 (and certain cases of #2), I had solutions that worked for me in SM-2:

  • A long multi-step learning process up to intervals of 7 days, and using “Hard” to keep cards at their current learning step when I could remember them but they didn’t feel “tip of my tongue” enough to let them move to a longer interval.
  • Setting the “Hard Multiplier” to a value < 1, so when a card was in review I could use the “Hard” button as a “shorten the card interval, but not as much as if I forgot the word” button.

For #4, if the card lapses enough times, it will eventually reach appropriate stability and difficulty values in FSRS. The process of lapsing multiple times instead of just pre-emptively shortening my intervals won’t feel very good, but it will get there.

But I haven’t found a way to handle #1. FSRS seems to be based around the idea that remembering is a binary yes/no thing. If I remembered a word but it wasn’t tip-of-my-tongue enough, I can either click “Again” and have it treated the same as a word I completely forgot, or I can click “Hard” and the next interval will still be higher than the last (just not as high as if I had clicked “Good”).

Is there a way to handle this with FSRS? Or if the concept of “I remembered the word, I just didn’t remember it fast/well enough” is important to me, am I just trying to do something FSRS isn’t meant for and I should just stick to what I’ve been doing in SM-2?

For #1 and #4, you can put those cards in a deck with a higher DR until you feel more confident with them. Otherwise, “Hard” is the button to use for “remembered but with some difficulty”.

You can also set a time limit like I and many others do. If you take longer than, say 3 seconds, you fail the card.

I like your classification.

I view it this way:

  • the world is very complex
  • our view on the world is very subjective, unique
  • to apply any more or less scientific method/instrument we need to 1. simplify 2. objectify our perseption.
  • Anki is no help here. It’s our task to objectify our world in a way that Anki can be applied to it.
  • You’re in the process of doing it by making this list and post.

There can be tens different types and grades of knowledge but the question which I ask myself when using Anki - where do I draw the line “in the list” between enough knowledge for me and not enough. There can be only one line because it is a descision whether I should improve knowledge of the card or spend my efforts on other cards. It is a binary descision.

But! For every subject I can make different cards for different types of knowledge and different lines between correct and wrong.

______

Now to the specific problems you mention.

  1. Just like ZornHadNoChoice suggested you can variate easiness of the remembering by changing desired retention. But a better idea in case of language learning could be to make many cards for different aspects of the word, different meanings, different context of use, etc. This is how normally we develop our active vocabularly when learning new things.
  2. You can change the front of your card to help you avoid brain fart. a) add context b) add “this is verb” c) add this is not corbatar.
  3. Such staff f-ups SR algorithm since we are supposed to almost forget the word. But this is something unavoidable I desided, especially for thigs which are worth remembering. And again - this is exactly how our brain puts knowledge on tip of the tongue - it happends when we need that knowledge often enough in our life in different context. I remember the word “word” not because I used SR to remember it, but because I’ve met it thousands times in my life.
  4. To objectify this “input data” I would ignore any my predictions (this is Anki job) and just use what I have right now - how long it took for me to recall the word? does my brain feel tired after that? is it fine for me to repeat such an effort every time I meet the card? if yes - I press good. If I want next time it to be easier - I press hard. If I’m fine with next time beeing harder and I want to see this hard less often - I press easy.

Thanks, those are good ideas!

I think the thing that’s really bothering me is that Hard will still make the interval longer. And in a situation where a card doesn’t feel like I remembered it well enough, the repeats continuing to get further apart isn’t going to improve that.

With SM-2 where I can make the hard button assign a shorter interval than the previous interval, that feels like exactly what I need.

I think with FSRS, it is impossible for Hard to lead to a shorter next interval. The only way to get a shorter interval is Again.

So the options seem to be:

  1. Use Again for both “I didn’t remember it well enough” and “I forgot it”, and hope that FSRS is flexible enough to handle the fact that there are two different reasons I’m pressing Again.
    • I suspect that is not the case, that I’ll end up with parameters that lead to “forgotten” cards increasing stability too quickly after a lapse and “not remembered well enough” cards increasing too slowly, but I can set up a test subdeck for this approach and see how it does.
  2. Put the “didn’t remember well enough” cards in their own deck with very high desired retention. But cards will leave that deck with very high stability and then have very long repeats when they go back to the main deck.
  3. Put the “didn’t remember well enough” cards in a filtered deck where giving them some extra repeats won’t affect FSRS values. Unfortunately filtered decks don’t give a lot of control over spacing/intervals, there doesn’t seem to be a way to do anything like “half of the previous interval” like I would with SM-2’s “hard interval” setting.
  4. Just stay on SM-2. If it’s been working for me and I like it, there may be no need to change a good thing.

Edit: Oh, I missed option #5, @nap’s suggestion with multiple cards for the same word. I think that has potential. A note can have more than one card, but each card will have its own stability/difficulty value. So if I add fields to notes that can cause extra cards to be created when those fields are non-empty, I see the word more often, but not in a way that messes with FSRS since each card has its own history. And those cards could even be created in a separate high-retention deck for as long as they need to be there, then poof out of existence once no longer needed. I think that has potential…

So basically devs made an app where Hard = Correct and you want an app where Hard = HalfCorrect?

I actually strugge with similar problem while learning lists. Imagine there is a guy who needs to remember lists of 2 items. The guy makes cards like this:

Front: List fruits

Back: lemon, orange

Most of the time the guy recalls all 2 items correctly, sometimes forgets last item, sometimes forgets all items. So he wants 3 different buttons: Incorrect, FirstIsCorrect, AllAreCorrect. The App only have two buttons: Incorrect and Correct. What would you reccomend this guy to do?

Cool idea to splits different siblings between decks with different retentions. I need to think about it.

Yeah, pretty much!

Although I’d think of it more as HalfWrong, because it would lead to a shorter interval. It’s just not as wrong as completely forgetting the card. Two different kinds of wrong.

I can do that with SM-2. With the multiplier for hard set to be < 1, “Hard” becomes “I need a shorter interval, but I don’t need to start over from the beginning.” To cover cases of “I remembered but not well enough” or “half correct” or all sorts of other things where you might want to shorten the interval.

I may play with the sibling card thing, but it kind of feels like circumventing FSRS and trying to get more reviews in without FSRS knowing about it.

I could also play with forcing FSRS weight 15 to be negative. But that’s almost definitely not a good idea, because when FSRS optimizes its parameters it solves for their values jointly, not independently. Since I can’t tell the optimizer “I am fixing weight 15 to this value” and would just be changing it by hand afterward, the other values would be wrong relative to the value I set and they probably wouldn’t work very well in combination.

More and more I am starting to think I should just stick to SM-2. FSRS depends so heavily on the idea of a binary correct/incorrect, everything revolves around that single percent for “desired retention” that it optimizes for. What it wants and what I want may just be two different things.

I’ve had a good thing going with SM-2, and it doesn’t feel like too many reviews to me. As long as there are no plans to drop SM-2 from Anki anytime soon (if ever), maybe the answer is just “keep using the algorithm that can do what you want it to do”.

I’m glad I tried FSRS, but it may be like eating a really good steak when you want blueberries. Instead of messing with trying to make a blueberry-flavored steak (which will probably just ruin the steak), I can just stick to the perfectly-good blueberries I already have.

The sibling cards thing might work well for you for this.

You could have one card for “lemon, orange”, and if you’re having trouble getting the full card right, separate siblings for “lemon” and “orange” might let you get more practice for the part you struggle with.

As for how to implement it - you can have a field for creating sibling cards, and use Anki’s selective card generation feature to only create the sibling cards when you’ve put something in that field to cause sibling cards to be created. Since these selectively-generated cards would be a separate card type (in order to have the selective generation part in their template), that card type can be automatically put in a different deck if you want it to be.

I think this may be a third kind of wrong, different from both “I completely forgot it” and my “I remembered it, but not well enough” state. In your example, something has been forgotten. So using sibling cards to split off specifically the thing that has been forgotten (make the information more atomic so you can get more practice on the part you forgot) might be a really good solution for this.

I’m going to mark your post as the solution, since this was a really good insight, and got me thinking in the direction I needed to go in.

It is much easier for me to simplify/objective my perception in a way that fits with SM-2 than in a way that fits with FSRS. As long as SM-2 is available and has an easy and convenient way to handle my perception of “remembered, just not well enough”, I might as well go with the algorithm that fits the way I think.

Thank you!!

The thing is ‐ you can treat any card like a list of several items. From what you are saying there is already an implisit list like this in your head. All you need to do is to make it explicit.

Ask yourself:

  1. what must I know to feel like pressing Hard at least? That would be item‐1.
  2. Whats the difference in my knowledge when I feel like pressing Hard and Good? That would be item-2.

It can be hard to do, but if you cant, no app neither. Even if Anki will introduce a HalfWrong button it wont be any good for you, since Anki cant know something you dont know - the line between item1 and item2.

I don’t think I understand.

If I have a card for the word “aleatorio”, that is just one item. Where is the list?

I am not trying to remember a list of items like the fruit example. I am trying to grade “aleatorio” on two different levels:

  • Did I remember the word? If no, click Again.
  • Did I remember the word quickly and easily enough that I could use it in conversation? If no, click Hard.

The second one is my “HalfWrong” or perhaps it would be more accurate to call it “NotGoodEnough”. The desired behavior is then “press Hard, have it shorten the interval, just not as much as for a full-blown lapse”.

I think I may have confused the issue by calling it HalfWrong. Let’s call it NotGoodEnough.

I could still use Anki’s selective card creation to make sibling cards here. If I have a field called NotGoodEnough and a second card type template that is only created when NotGoodEnough isn’t blank. Then the main “aleatorio” card keeps its original FSRS stats and interval, but a second “aleatorio” card is created to give me extra practice without messing up the FSRS stats of the main card.

But that’s fighting the algorithm, trying to sneak in extra reviews without FSRS knowing about it so it doesn’t record increased stability for the main card and increase its interval even more.

Anki already has a Hard button. With SM-2, if I set the hard multiplier to be < 1, the Hard button does exactly what I want it to do - gives me a shorter interval but not as drastically as it would for a full-blown lapse.

The only difference is that with FSRS Hard can’t be used as an interval-shortening button anymore, it will still increase the interval, just not by as much.

To me the Hard button is “I remembered aleatorio, but I had to think, it wasn’t instant”. That requires more reviews, which I have been doing by having SM-2 shorten the interval.

I didn’t even realize what I was doing was weird, I thought most people did it that way! Which is why it was such a surprise to discover FSRS didn’t do that.

But I’ve had a good thing going with SM-2, it can do exactly what I wanted it to do and that has worked well for me. So just sticking with what works seems like a pretty easy answer.

Do you have any evidence to back up your assumption that “hard should shorten the interval”?

but you are already fighting the algorithm. Basically you are replacing the science behind speced repetition (the formula of how brain forgets things) by your feeling whether you need somewhat longer or shorter intervals. The last will also work, but much slower, and it has nothing to do with fsrs or sm2 algorithms.

If this is your goal, then once you are failing to do it means that you recalled incorrectly. The fastest way to achive your goal with spaced repetition is to grade good if you recall the word easily enough to use in conversation and grade again if you did not. I dont see how hard button can be used in such a case to improve the process.

In terms of studies I can cite, no.

I just know it’s what I’ve been doing and it has been working for me.

And that I noticed the loss of it when I tried switching to FSRS. Pressing Hard no longer led to repeats in a pattern that made the words feel easier/faster to remember, hard words remained hard.

I’m not saying it should work that way for everyone, especially if they have a different definition of “Hard”. But I’m happy SM-2 has settings that allow it to work that way for me.

I may still do an FSRS test deck and see what happens if I push “Again” for both “didn’t remember well enough” and “completely forgot”. Maybe it can adjust to that. But for now my main decks will stay on SM-2.

The tricky thing with FSRS is that it adjusts its parameters to your learning history.

I suspect if I treat “didn’t remember well enough” and “completely forgot” as the same and click “Again” for both, it will see that my “didn’t remember well enough” words usually increase stability very quickly after their initial drop, and will then try to do the same with my “completely forgot” words which won’t be ready to increase as quickly.

But I can try it in a test deck for a while and find out.

Oh!!! I think I just thought of a very FSRS-compatible way of doing what I want to do.

Cards start off in SlowDeck, where the goal is just “Can I remember the word or not?” (With a reasonable time limit like 5 seconds, but not necessarily “fast enough for conversation”.)

When they are ready, they move to FastDeck (which has its own separate preset with different FSRS parameters) where the criteria for passing is no longer “Could I remember the word?” but “Could I remember the word very quickly and easily?”

With two separate presets with different FSRS parameters in each, FSRS should be able to handle my two different reasons for pressing “Again”, because there is only one reason in each preset.

If the meaning of “Again” differs by deck, it probably wouldn’t be good to move cards from one deck to the other, because they would bring their review history with them from the other deck. But if I use Anki’s selective card generation feature (with the “deck override” option so FastDeck cards go where they belong) and have a field in the note that I add text to when I want a word to stop having a SlowDeck card and start having a FastDeck card (only one or the other, never both), that should keep it clean.

That’s a bad idea. You want to make two cards for the same fact? The second card is going to start from scratch and FSRS would not be aware of the reviews from the first “slow” card.

I suggest just moving the harder cards to a subdeck with a higher DR. Alternatively, you can use filtered decks to review your high difficulty cards from time to time (e.g. prop:r<0.95 prop:d>0.9).

That makes sense.

The difficulty from previous reviews would still be relevant. The desired behavior for repeat intervals would be different, but that can be achieved by setting different desired retention for each deck rather than forcing FSRS to lose the stability information by creating a different card.

I should probably still keep separate presets though, so pressing “Again” for “didn’t remember well enough” in FastDeck doesn’t mess up the values FSRS learns for me pressing “Again” in other decks where it means “I forgot”.

Thanks!

That wouldn’t work because the card would still have the old reviews which mean different things than the newer reviews. You should avoid changing the meaning of the buttons midway.

Unfortunately then we’ll just have gone full circle back to there only being one way/reason for a card interval to decrease.

To me, “completely forgot” and “just didn’t remember quite as well as I wanted to” are meaningfully different states, especially since I apply a pretty high standard for “remembered as well as i wanted to” and end up hitting “Hard” fairly often.

With SM-2 I could handle that by using “Again” for “Completely forgot” and “Hard” for “didn’t remember quite as well as I wanted to”.

With FSRS, it insists on still increasing the interval when I press “Hard”, and when it does that my “didn’t remember quite as well as I wanted to” cards don’t get enough repeats to improve.

The only way to have FSRS treat the two states separately (but still have both states decrease interval) would be to have one deck where “Again” means one thing, and one deck where “Again” means the other. And then if words move between decks, their learning history from the other deck where “Again” meant something else would have to be hidden from FSRS.

Kind of feels like I should just stick to SM-2 where Hard can be configured to decrease the interval.

If your assumption about what intervals these cards need is indeed correct, then FSRS will be able to see that too – after you grade an adequate number of cards in that way and re-optimize your parameters. It seems like the struggles you are having involve believing that FSRS could be right and that you could be wrong.

That never should have been happening for cards that you were getting correct. Better than continuing to distort the behavior of the less-efficient, less-accurate algorithm, you should use FSRS, grade your cards consistently, and adjust intervals via Desired Retention.

One thing you seem to be missing in all this is that FSRS handles post-lapse intervals so much better than SM-2. So if you lapse a card into Relearn, when it graduates back to Review it won’t “start over from the beginning” (unless that is what your review history indicates is needed). FSRS already gives you that appropriately shorter interval you’re looking for, but treating a lapse as a lapse is the way to get there.