ankitects / anki

Anki's shared backend and web components, and the Qt frontend
https://apps.ankiweb.net
Other
18.68k stars 2.13k forks source link

Comission Proposition for a Simpler Scheduler #1016

Closed MarekPasnikowski closed 3 years ago

MarekPasnikowski commented 3 years ago

Greetings. I am bad at expressing longer thoughts, so I will be frugal with my words. Please do not perceive it in a negative way.

I find the multiple levels of correct answers very distracting. I would also rather sacrifice some efficiency to maximize the guarantee of remembering the material. With that in mind, I came up with my own scheduling system.

The repetition intervals would increase by one day with each strong recall; and decrease by one day with each weak recall, until value of one day is reached. Another rule is that the odd-counted entries in the current queue would have the interval length additionally decreased by one day in order to fuzz out groupings of similar cards. Initial interval would be set to two or three days depending on this rule.

Overall, there is no distinction of learning or recall phase. If the material is difficult to learn, the algorithm will quickly decrease the interval to one day and keep it there until the information is remembered successfully. On the other hand, if the material is easy to acquire, the interval will grow indefinitely, yet slowly. At any point, if the card is remembered weakly, the single-day decrease of the interval allows to strengthen this memory without going to directly to zero. There could be cases of cards which stay at a particular interval range due to their difficulty and that would be fine, too.

I have no programming skills and I do not know any programmer I could trust with this project. I run a self-employed business, so it would be easy to pay you with an invoice. The only questions are whether you are interested in implementing my scheduler and for how much money? If it is not obvious, let me add that I am not asking to replace the existing scheduler, but to have two of them available as options to choose from.

Best Regards, Marek Paśnikowski from Poland

RumovZ commented 3 years ago

Without getting into the issues of implementing something like this in Anki, I strongly advice agaist such an approach. You would not only sacrifice some efficiency, but miss out on all of the advantages spaced repetition offers. Without exponentially growing intervals you will not only do lots of unnecessary reviews (because you won't be able to model your memory's performance well enough) you will also only ever be able to study a fixed amount of cards (because the scheduled reviews per card won't decrease significantly).

MarekPasnikowski commented 3 years ago

There is a deeper issue which lead me to the proposed schedule. Every time I am faced with the question of how well I remember a given card, I think too much into it. I can't help it, but waste my energy on each of those small decisions.

On top of that, I don't trust my memory enough to keep up with the SM model. Especially with more complex pieces of information. I am fine with the theoretical limit of things I could ever learn. What I want the most is the confidence in my memory. I will never get that with an algorithm which I fundamentally distrust, however irrational that may seem.

No solution fits all, so more choice is better. Also, the base interval change could be tweaked to two, or three for more aggressive curves.

Overall, if there are no technical obstruction to this, I would like to sponsor this piece of functionality anyway. It is mostly my time, money and effort that will go to waste, if I am wrong. But even in that unlikely case, I would have empirically proven superiority of the SM model.

RumovZ commented 3 years ago

Every time I am faced with the question of how well I remember a given card, I think too much into it. I can't help it, but waste my energy on each of those small decisions.

Many users see it that way, the solution is simply to never use the Hard and Easy buttons. That's exactly what I do myself. But it seems to me that's completely unrelated to the changes you propose.

I am fine with the theoretical limit of things I could ever learn.

The limit is very practical. Say you cap the interval at 100 days and do 100 reviews per day. Then you can never sustain more than 10,000 flashcards. Now assuming the interval increases by one day per review, then you'll be able to introduce one addtional card per day (in truth, it's even less).

Also, the base interval change could be tweaked to two, or three for more aggressive curves.

That doesn't change the underlying problem. It's still less than linear growth.

What I want the most is the confidence in my memory.

Anki has options to have the intervals grow slower. It's way less efficient but if you really care about the retention rate you can use these and still have the benefits of spaced repetition. However, no approach will ever give you perfect retention. That's not how our memories work.

No solution fits all, so more choice is better.

I politely disagree. More choice means also more chances for beginners to get it wrong. Even more so if one option is objectively worse.

Of course, you can spend your time and money as you please. I'm just trying to help by sharing information that's been validated scientifically or by consistent experiences in the community.

MarekPasnikowski commented 3 years ago

I just noticed that I tripped up with my words in the original post.

When I wrote about interval changes, I actually meant interval difference changes.

Writing simply, on a good recall I would set the interval to the next value from the list below; on a bad recall I would set the interval to a previous value. Plus the "fuzz".

Does this make more sense to you?

20210212_121123

dae commented 3 years ago

I'm afraid Anki was not designed with swappable schedulers and the ability to turn off SRS functionality in mind in mind, and it would probably be easier to find a different program that meets your needs, than to try adapt Anki to them.

If you have further feature requests in the future, please post them over on the user forums, as this area is only for tracking bugs and development tasks.

MarekPasnikowski commented 3 years ago

This could be a "development task", but the technical limitation is something I can not argue with.

At least I was not kept waiting for the resolution.