-
Notifications
You must be signed in to change notification settings - Fork 22
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
Spaced repetition system #11
Comments
See comment for info on the status of SRS #58 (comment) |
I have used a number of different flash card apps with spaced repetition, and for me the one offered by memrise works best - unfortunately, they are no longer interested in user-made or community decks... I never got used to Anki - it requires too much effort to classify cards into very easy - easy - hard - very hard, etc., and the repetition interval grows too fast - very soon I had intervals of two years or so :-( My suggestion would be to stick with "Know" and "Don't know" when testing words. Memrise stores the time a card was last tested, the total number of times it was tested, how many times the user answered correctly, the current repetition interval (which seems to have been tuned quite nicely), and whether the word is "difficult" (this seems to be based on the number of "Don't know" answers, perhaps as a percentage of the number of tests.) You can then later review the difficult words separately, and in smaller groups. |
Yes, this has been something I have been wrestling with and why SRS has been in the works for over 6 months. The issue you mention with Anki is the exact reason why I haven't implemented their method of SRS. When you're working on scales of thousands of cards, having to measure your response between 5 different options for every card requires a lot of thinking and is inefficient.
Sadly, this isn't a perfect method either. Memrise's method of repetition is based on machine learning. Realistically, this isn't practical to implement within Scholarsome. The reason it's so effective is because it collects many different factors and all uses them to gauge how well content is being learned. It's unrealistic to expect people who self-host to dedicate a significant amount of computational power to train a model, considering it would have to be done for every single deck and for every single user. When an SRS does eventually get implemented, it will likely be reminiscent of Anki but with some tweaking and with significant user customizability. I'm thinking the Leitner system will be the best one to implement. In the future, it's possible an ML-based algorithm will be developed and offered as opt-in, but I don't foresee this happening for a long while. |
I have used Memrise for 10 years, and never noticed it using machine learning. Do they claim they do? I suspect that's a marketing gimmick - there have never been any changes in the intervals, independent of whether I was active or not, and they are the same in all of my (many) decks. Their algorithm is actually quite simple - one figures out the intervals they are using after a while, and one can actually verify them by looking at the network traffic. For each card, Memrise stores the following attributes:
The intervals they use are: A new card gets a streak of 0 and an interval of 4h. On each correct test, the streak increases by one, the interval is increased to the next one, but 180d is the last value - it does not increase from there. On an incorrect test, the interval is set to 12h (unless it already was 12h, then it is set to 4h). The streak length is then set to -1. The card will be retested later in the same session, until it is answered correctly - then the streak will be set to 1 again. (So a test session does not end until all cards in the test have been answered correctly. If one aborts a test session, then the -1 streak length stays on the card and indicates that it needs to be tested immediately again in the next test session.) Memrise adds some additional bells and whistles: For instance, it has the concept of "nearly correct test" - when the edit distance between correct answer and the entered answer is small enough, it accepts that as nearly correct. In that case, the streak is reset, a new test is scheduled for 4h later, but you actually keep your current interval - that's why the difference between last tested and due to be tested is not always the interval. Memrise also has an algorithm to detect "difficult" cards. I think both "nearly correct" and "difficult" are not really important. The Memrise intervals work quite well for me. Notice the big gap between 1d and 6d. But of course one could actually make the sequence of interval times configurable for the user. I have used something like the Leitner system when I studied with paper cards many years ago. Sebastian Leitner did not have a computer and electronic cards, so he designed a system that achieves the effect of spaced learning using paper cards and boxes. Today, with the ability to store attributes for our cards, we can simply store the due time for each card, and when creating a test session, we query the database for all cards whose due time has passed. That also works when users do not practice in regular intervals (which is the assumption underlying Leitner's implementation). |
I must have misread their algorithm basis - you're right, it seems like they do not integrate ML-features. The method you describe for Memrise seems promising. Looks like it fixes many of Anki's shortfalls and adds some more on top of it. I'll definitely take this into account when I restart work on the SRS implementation. Thank you for the information. |
I'd recommend looking at the FSRS algorithm used by recent versions of Anki, which is pretty simple to implement and is almost universally considered greatly superior to their older algorithm (in my own experience it greatly lowered my review burden while maintaining retention rates): https://github.com/open-spaced-repetition/fsrs4anki/wiki/The-Algorithm |
SRS is a large part of many other flashcard software, such as Anki. Scholarsome’s implementation of an SRS will be more user-friendly while still being just as powerful.
The text was updated successfully, but these errors were encountered: