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

Feat/FSRS-5 #114

Merged
merged 36 commits into from
Jul 10, 2024
Merged

Feat/FSRS-5 #114

merged 36 commits into from
Jul 10, 2024

Conversation

L-M-Sherlock
Copy link
Member

@L-M-Sherlock L-M-Sherlock added the enhancement New feature or request label May 22, 2024
@Expertium
Copy link
Contributor

Expertium commented May 22, 2024

I plan to release FSRS-5 in June.

I think that instead of aiming for "release FSRS-5 in [month]", we should aim for "release FSRS-5 when RMSE decreases by at least 10% relative to FSRS-4.5"

@L-M-Sherlock
Copy link
Member Author

I think that instead of aiming for "release FSRS-5 in [month]", we should aim for "release FSRS-5 when RMSE decreases by at least 10% relative to FSRS-4.5"

I'm afraid FSRS-5 will be never released if we need to achieve that target.

  • FSRS-4.5 was released 5 months ago.
  • FSFSv4 was released 10 months ago.
  • FSFSv3 was released 20 months ago.

I think it's a good time to release FSRS-5.

@Expertium
Copy link
Contributor

With all due respect, I don't understand why you feel the need to release a new version if it's barely an improvement compared to the previous version. I firmly believe that we should aim for at least 10%. More would be better, of course. To me, 10% seems like the bare minimum; below that point, it's just not worth bothering with releasing a new version.

@Expertium
Copy link
Contributor

@user1823 out of curiosity, what's your opinion?

@user1823
Copy link
Contributor

As the algorithm improves, the scope for further improvement decreases. So, aiming for a 10% improvement every time is not feasible.

If the algorithm is going to consider short-term reviews now, I believe that this is a significant change and the update deserves to be called v5.

@ishiko732
Copy link

I noticed that there is a change in the DEFAULT_PARAMETER length. How should migrate from FSRSv4.5 to FSRSv5? Do just need to add the default parameters w[17] and w[18]?

@user1823
Copy link
Contributor

user1823 commented May 22, 2024

if by October we won't find a way to decrease RMSE by >=10%, we will release FSRS-5 in October, otherwise we will release it earlier?

Makes sense. I agree that we don't need to rush through the release. Having longer intervals between the releases means that

  • we can test more ideas and select the more effective ones
  • it is less confusing for the users because incompatible (whether partially or fully) versions of desktop and mobile apps cause a lot of confusion

@L-M-Sherlock
Copy link
Member Author

if by October we won't find a way to decrease RMSE by >=10%, we will release FSRS-5 in October, otherwise we will release it earlier?

OK.

I have some criteria for the ideas:

  1. If the idea introduce extra parameters, the improvement should be greater than 2% per param.
  2. It should respect the current definition and range of stability and difficulty.
  3. It should be compatible with the old parameters.

@Expertium
Copy link
Contributor

Expertium commented May 22, 2024

  1. If the idea introduce extra parameters, the improvement should be greater than 2% per param.

That's gonna be hard.

  1. It should respect the current definition and range of stability and difficulty.

Does that mean that my new definition of D (based on R) is automatically disqualified?

  1. It should be compatible with the old parameters.

What do you mean exactly?

@L-M-Sherlock
Copy link
Member Author

Does that mean that my new definition of D (based on R) is automatically disqualified?

If your new definition of D is out of the range 1~10, it would be rejected.

What do you mean exactly?

The user could use the new parameters without rescheduling all their cards.

@Expertium
Copy link
Contributor

The user could use the new parameters without rescheduling all their cards.

This one will always be satisfied, no? I mean, the user will have to click "Optimize" to obtain new parameters, but won't have to reschedule. How would it be different?

@Expertium
Copy link
Contributor

forget_rating_offest=-0.1

Typo, it should be forget_rating_offset. Btw, what does it do?

@L-M-Sherlock
Copy link
Member Author

Typo, it should be forget_rating_offset. Btw, what does it do?

Sometime the user may press again during the relearning step, it will reduce the stability in FSRS-5. The forget_rating_offset is used to simulate it.

@Expertium
Copy link
Contributor

Expertium commented Jul 8, 2024

Why not just estimate 4 values of answer button probabilities, but for learning and re-learning steps?

@L-M-Sherlock
Copy link
Member Author

Why not just estimate 4 values of answer button probabilities, but for learning and re-learning steps?

It's computing-expensive and hard to model.

@Expertium
Copy link
Contributor

Expertium commented Jul 8, 2024

Is it? It's just another numpy array (and whatever equivalent of a numpy array is used in Rust), similar to first_rating_prob. maybe you misunderstood me, I meant "Make an array with 4 values, like first_rating_prob, but for probabilities of pressing Again/Hard/Goode/Easy in (re)learning"

@L-M-Sherlock
Copy link
Member Author

Is it? It's just another numpy array (and whatever equivalent of a numpy array is used in Rust), similar to first_rating_prob. maybe you misunderstood me, I meant "Make an array with 4 values, like first_rating_prob, but for probabilities of pressing Again/Hard/Goode/Easy in (re)learning"

The user may not only press once. The short-term rating sequence would be 1,2,2,3, 1,3, 1,4, 1,1,3,1,3 and so on.

@L-M-Sherlock L-M-Sherlock marked this pull request as ready for review July 10, 2024 03:19
@L-M-Sherlock L-M-Sherlock merged commit 89ac5cd into main Jul 10, 2024
2 checks passed
@L-M-Sherlock L-M-Sherlock deleted the Feat/FSRS-5 branch July 10, 2024 03:26
@L-M-Sherlock L-M-Sherlock changed the title Feat/FSRS-5 [WIP] Feat/FSRS-5 Jul 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants