Как работает алгоритм FSRS
Репка использует FSRS (Free Spaced Repetition Scheduler) — современный алгоритм интервальных повторений. Его задача: показать карточку в тот момент, когда вы вот-вот начнёте её забывать.
Ключевое отличие от механического «повторить через N дней» — расписание уникально для каждой карточки и для каждого человека. Алгоритм учитывает и то, насколько трудно даётся именно это слово, и то, как запоминаете именно вы, и пересчитывает срок после каждого вашего ответа: лёгкие слова уходят на недели и месяцы вперёд, трудные возвращаются чаще. Два человека с одной и той же колодой увидят разные интервалы.
Почему фиксированное расписание не работает
Только что выученное слово забывается за часы, а слово, которое вы успешно вспомнили несколько раз подряд, продержится месяцами.
Вероятность вспомнить падает не равномерно: резко в первые часы после знакомства и всё медленнее дальше. Именно эту кривую забывания FSRS и моделирует — по двум параметрам, которые он хранит для каждой карточки:
- Стабильность — сколько знание держится в памяти, прежде чем шанс вспомнить заметно упадёт. Каждое удачное повторение её увеличивает, поэтому интервалы и растут.
- Сложность — насколько тяжело именно эта карточка вам даётся, по шкале от 1 до 10. Чем она выше, тем медленнее растёт стабильность и тем осторожнее алгоритм раздвигает интервалы.
По этим двум числам алгоритм назначает дату следующего показа так, чтобы вероятность вспомнить оставалась около 90%. Оба параметра пересчитываются после каждого ответа — отсюда и индивидуальное расписание.
Шаги обучения
Новая карточка не уходит сразу на повторение. Сначала она проходит короткие шаги обучения. Только после этого она попадает в долгосрочный режим, и FSRS начинает считать для неё настоящие интервалы.
Смысл в том, чтобы закрепить слово, пока оно ещё держится в голове. Отправлять карточку, которую вы увидели тридцать секунд назад, на три дня вперёд — бессмысленно.
Оценка на этой стадии двигает карточку по шагам — как именно, разобрано ниже. Забытая карточка проходит такой же, но более короткий цикл.
Четыре оценки
Для каждой карточки, вы мысленно отвечаете на вопрос: Как сложно было вспомнить? Ответ и есть оценка — от неё зависит, когда вы увидите карточку в следующий раз.
- — не вспомнили. Прогресс по карточке сбрасывается, и изучение начинается заново.
- — вспомнили с усилием. Появится раньше обычного.
- — вспомнили нормально. Обычный интервал.
- — вспомнили мгновенно. Интервал вырастет быстрее всего — карточка появится нескоро.
Алгоритм полезен ровно настолько, насколько честны ваши оценки.
Состояния карточки
Каждая карточка находится в одном из четырёх состояний — эти же бейджи видны в списках карточек:
- Новое слово — ещё ни разу не показывалась.
- Изучение — первое знакомство, показывается несколько раз с короткими интервалами.
- Повторение — выучена, показывается с растущими интервалами.
- Повторное изучение — была выучена, но забылась; проходит короткий цикл заново.
Обычный путь карточки: Новая → Изучается → Повторение. Если на повторении вы её не вспомнили: Повторение → Переучивание → Повторение. Переход между состояниями происходит автоматически, вручную им управлять не нужно.
История повторений
Каждый ваш ответ сохраняется — вместе с оценкой, состоянием карточки на тот момент, её стабильностью, сложностью и запланированным интервалом. Историю любой карточки можно открыть и посмотреть, как менялись её показатели.
Алгоритм опирается на всю историю карточки, а не только на последний ответ — поэтому чем дольше вы пользуетесь приложением, тем точнее становятся интервалы.
Внутри приложения — открытая реализация FSRS под лицензией MIT. Она использует шестую версию FSRS, обученную примерно на трёх миллиардах реальных повторений.