FSRS parameters for different card types

I am using Anki to learn Spanish vocabulary. My notes consist of a word and a picture. I like to learn the notes both ways: a Word->Picture card and a Picture->Word card.

In an effort to improve retention, I switched to FSRS two months ago. However, I am still struggling to reach my desired retention of 85%.

I previously had both card types in a single preset. Since Word->Picture is easier than Picture->Word, this may not be appropriate. As an experiment, today I split my cards into two separate presets. I hope this will give me more accurate scheduling in the future.

Single preset FSRS parameters (old)

I optimized these parameters today before splitting the cards.

FSRS parameters: 0.1609, 0.4215, 1.7874, 4.6831, 4.9613, 1.3292, 0.8547, 0.0000, 1.3738, 0.2560, 0.7025, 2.3295, 0.1508, 0.4556, 1.2092, 0.2272, 3.2732
Log loss: 0.4334, RMSE(bins): 3.52%

Split preset FSRS parameters (new)

As demonstrated below, Word->Picture was too easy, but Picture->Word was too hard.

Word->Picture statistics

Average difficulty: 70%
Average stability: 1.8 months
Average retrievability: 91%
Answer buttons (1 month): Learning 90.3%; Young 90.53%; Mature 92.08%

Newly optimized FSRS parameters: 0.2045, 0.6116, 3.1642, 9.4648, 5.0499, 0.9030, 1.1044, 0.0290, 1.4329, 0.0345, 0.9120, 2.2954, 0.0513, 0.4450, 2.0277, 0.2272, 2.8755
Log loss: 0.3081, RMSE(bins): 3.02%

Picture->Word statistics

Average difficulty: 89%
Average stability: 23 days
Average retrievability: 90%
Answer buttons (1 month): Learning 80.87%; Young 80.52%; Mature 71.14%

Newly optimized FSRS parameters: 0.1405, 0.2357, 0.5124, 0.8598, 5.2881, 1.0804, 0.7191, 0.0375, 1.1031, 0.5867, 0.4996, 2.2051, 0.0626, 0.4601, 1.3239, 0.2272, 3.2784
Log loss: 0.4908, RMSE(bins): 4.10%

Conclusion

The Word->Picture RMSE improved. Curiously, the Picture->Word RMSE got worse. Interesting.

I will monitor my retention in the coming weeks. Most importantly, I need to improve retention for mature Picture->Word cards.

As a thought: might it be beneficial for Anki to automatically apply different FSRS parameters to different card types?

You shouldn’t compare RMSE like this. Comparing RMSE makes sense only when the evaluation is done on the same reviews. In this case, the number of reviews becomes roughly half.

For a proper comparison, copy the old parameters into the new presets and then calculate the RMSE for each preset using both old and new parameters.

3 Likes

I realized another advantage of using distinct scheduling parameters for distinct Card Types: siblings will more easily be dispersed over time.

Here is an update one month after splitting my card types into two separate FSRS presets.

Word->Picture answer buttons (desired retention: 90%)
May 27–Jun 27: Learning 90.30%; Young 90.53%; Mature 92.08%
Jun 27–Jul 27: Learning ‎75.85%; Young ‎88.12%; Mature ‎93.05%

Picture->Word answer buttons (desired retention: 85%)
May 27–Jun 27: Learning 80.87%; Young 80.52%; Mature 71.14%
Jun 27–Jul 27: Learning ‎75.76%; Young ‎82.93%; Mature ‎76.79%

I didn’t “reschedule cards on change” when re-optimizing the parameters. Therefore, much of the past month has been spent studying cards that were not optimally scheduled.

Nonetheless, I am happy to see my Mature retention on the Picture->Word cards increase from 71% to 77%.

Curiously, for both Word->Picture and Picture->Word cards, my Learning retention has declined to 76%.

1 Like

Here are my updated stats after another month. I only included the picture->word stats, since my primary objective in splitting the parameters is to improve mature retention of those cards. It seems a more interesting test case for FSRS.

I am happy to see my mature card retention clawing towards the desired 85%.

Picture->Word answer buttons:

Month Learning Young Mature
Jun (pre-split) 80.87% 80.52% 71.14%
Jul (post-split) ‎75.76% ‎82.93% ‎76.79%
Aug (post-split) 87.70% 86.99% 83.85%

At this point, I am fairly confident that it was beneficial to split these cards into a separate deck/preset. Back when they shared a preset with the easier word->picture cards, FSRS could not schedule these cards for sufficiently frequent review.

There is, however, a potential problem on the horizon: 81% of my cards in this deck have an FSRS Difficulty of 100%. Over time, this might prevent my intervals from increasing. For example, I have several cards with review histories like this:

Date Type Rating Interval Ease
2024-08-28 Review 3 11 days D:100%
2024-08-17 Review 3 11 days D:100%
2024-08-05 Review 3 12 days D:100%
2024-07-31 Review 3 5 days D:100%

Regardless, as long as my retention is near 85%, I can’t complain!

FSRS parameters, last optimized on 2024-07-27:

0.1362, 0.2360, 0.5382, 0.9326, 5.8557, 1.5376, 0.9027, 0.0000, 1.2600, 0.5438, 0.6575, 2.2544, 0.0727, 0.4688, 1.3635, 0.2272, 3.1938

Not quite. Even with 100% difficulty (10 difficulty internally, God I hate this unnecessary conversion), the intervals will still grow, just much more slowly. Plus, as you press Good, difficulty slowly decreases. Plus, you can press Easy.

1 Like

With its parameters, the difficulty will not decrease when you press Good.

My bad, you’re right. Still, difficulty being 100% doesn’t prevent intervals from growing, just makes it slow.

With my parameters, I verified in the FSRS Visualizer that:

  1. The intervals will eventually increase if I keep answering Good.
  2. The Difficulty will remain constant if I keep answering Good. (Actually, this seems to be the case regardless of the parameters.)

So to get longer intervals, I just need to keep answering my cards correctly. :grinning:

(And perhaps some day I will become so smart that I can answer some cards Easily! :laughing:)

It doesn’t work properly.
Use instead Fsrs4anki Previewer - a Hugging Face Space by open-spaced-repetition

Interesting. Fsrs4anki Previewer seems to confirm the same behavior—if the answer is always Good, a card’s Difficulty remains constant regardless of parameters.

It doesn’t work properly.

  1. What do you mean?
  2. Have you reported it to the github guy who made it?
  1. When changing the desired retention, the intervals are counted incorrectly. Although the intervals on the graph are indicated correctly.
  2. No, I haven’t