open-spaced-repetition / fsrs4anki

A modern Anki custom scheduling based on Free Spaced Repetition Scheduler algorithm
https://github.com/open-spaced-repetition/fsrs4anki/wiki
MIT License
2.79k stars 138 forks source link

[Question] Does FSRS distinguish the cards based on the number of Again ratings on the same day? #426

Closed user1823 closed 1 year ago

user1823 commented 1 year ago

@L-M-Sherlock, you once told that the optimizer only considers the first rating that a card receives on a particular day.

But, what about this?

It is obvious that the first card is much easier than the second card. So, they must be treated differently.

But, if FSRS ignores all the subsequent ratings on a particular day, it can't distinguish between these cards.

L-M-Sherlock commented 1 year ago

You are right. FSRS couldn't distinguish them. It also couldn't distinguish a card whose first rating is Again and the second rating is Good with a card whose second rating is Easy.

L-M-Sherlock commented 1 year ago

But Anki and SuperMemo also couldn't distinguish them. Some users even use long (re)learning steps to prevent Anki modifying the ease during (re)learning stage.

user1823 commented 1 year ago

But Anki and SuperMemo also couldn't distinguish them.

Well, you can't be too sure about SuperMemo. It is not an open-source algorithm after all.

Some users even use long (re)learning steps to prevent Anki modifying the ease during (re)learning stage.

But, in this case, the reviews are on different days. I am talking about the reviews on the same day.

Also, are the optimizer and the helper add-on inconsistent with regards to this? I think that the optimizer filters out the subsequent ratings on the same day but the helper add-on updates the memory states for all the ratings (even if they are on the same day).

user1823 commented 1 year ago

The reason behind creating this issue is that I feel that the S increases very slowly for cards rated Again for the first time.

My theory behind this is that FSRS is not able to differentiate between the cards rated Again only once and those rated Again multiple times, leading to a high difficulty (and low SInc) for all cards with first rating = Again.

@Expertium, you might also want to take a look at this.

L-M-Sherlock commented 1 year ago

Also, are the optimizer and the helper add-on inconsistent with regards to this?

They are consistent. Here is the code:

https://github.com/open-spaced-repetition/fsrs4anki-helper/blob/85ab2d89bfab4ae10c22d7d98f5b2e02756af967/reschedule.py#L280-L282

The helper will skip the reviews after the first review recorded in the same day if the subsequent review's type is learning or relearning.

Expertium commented 1 year ago

The way I understand it, the scheduler doesn't "see" cards in the learning and re-learning stage (Sherlock, correct me if I'm wrong). So even if make the optimizer treat cards from the original example in the post differently, we won't be able to do that in the scheduler, unless Sherlock is willing to re-write all of the code.

user1823 commented 1 year ago

So even if make the optimizer treat cards from the original example in the post differently, we won't be able to do that in the scheduler, unless Sherlock is willing to re-write all of the code.

I think that it has more to do with limitations imposed by Anki than the limitations imposed by Sherlock.

But still, the helper add-on can see the cards in the (re)learning stages and can, thus, schedule them correctly.

Also, the scheduler might be able to do so as well when it gets integrated into Anki's backend code.

L-M-Sherlock commented 1 year ago

Due to the limit of Anki's custom scheduling, FSRS scheduler didn't know the real elapsed time in (re)learning stage. So it can't distinguish the reviews in (re)learning whether happen in the same day or different days.

L-M-Sherlock commented 1 year ago

You may be interested in these findings: https://github.com/open-spaced-repetition/short-term-memory-research/issues/1

I close this issue because FSRS-4.5 will distinguish the cards based on the number of Again ratings on the same day.