復習スケジュールの決まり方
あるカードは明日戻ってきて、別のカードは 8 か月後になる理由。そして、オプティマイザーが自分の復習履歴から何を学ぶのか。
Read Frog はオープンソースの間隔反復アルゴリズム FSRS でスケジュールを組みます。このページはそれが何をしていて、なぜそうするのかを説明するもので、どの数値をいくつにするかという話ではありません。そちらは学習設定をご覧ください。
モデルが追跡する状態
FSRS-7 は各カードの記憶状態を記録し、それをもとに想起可能性を推定します。
- 安定性(S) — FSRS-7 の記憶状態における遅い成分です。速い安定性(Sf) は速い成分で、難易度(D)やモデルの重みとともに全体の記憶の安定性を決めます。
- 難易度(D) — そのカードが自分にとってどれだけ難しいか。もう一度 や 難しい で答えると上がり、簡単 で答えるとゆっくり下がります。そして、1 回の成功した復習にどれだけの価値があるかを左右します。難しいカードの安定性は、やさしいカードより伸びが遅くなります。
- 想起可能性(R) — いま そのカードを思い出せる確率。復習直後はほぼ確実で、モデルの完全な状態に基づいて時間とともに低下します。
保存される FSRS-7 の記憶状態は D、S、Sf です。R は完全なモデル状態と最後の復習からの経過時間を使って計算されます。
間隔はどこから来るのか
次の期限は、そのカードの想起可能性が、指定した 記憶保持率 — 初期値は 90% — まで下がると予測される瞬間です。
この一文で、気づくことのほとんどが説明できます。
- 間隔は前回の間隔に掛ける倍率ではありません。毎回、カードの新しい安定性から計算し直されます。
- 目標とする記憶保持率を上げるとすべての間隔が短くなります。予測される曲線が、より高い値により早く到達するからです。
- 安定性がほとんど動かなかったカードは、どれだけ辛抱強く 良い を選び続けても、前回よりわずかに長い時間しかもらえません。
安定性を動かすのは自分の答えです。長く間が空いたあとの 良い は安定性を大きく動かします — その長い間隔自体が、記憶が強かった証拠だからです。同じ 良い でも、前に見てから 10 分後なら動きはごくわずかです。読んだ直後に思い出せることは、ほとんど何も証明しないからです。
だからこそ もう一度、難しい、良い、簡単 は、優しくではなく実情どおりに使う価値があります。この 4 つが入力のすべてです。実際には苦戦しているのにいつも 良い を付けているカードには、それを覚えきった人向けの間隔が組まれます。
最初の 1 日、そしてつまずいたとき
まったく新しいカードには、そもそも「日」単位の間隔は与えられません。同じセッションの中で短いステップを 2 つ歩きます — 約 1 分後、そして約 10 分後 — 本当の間隔へ送り出される前に何度か目にできるようにするためです。セッションのヘッダーにある 学習中 の数字が指しているのは、このステップの途中にいるカードです。
本当の間隔まで進んだカードに もう一度 と答えると、それは 忘却 1 回です。カードは 10 分のステップまで戻り、安定性は下がり、難易度は上がります。そしてより低い位置から再び登り始めます。1 枚忘れただけで、見た目の進捗が数週間分失われることがあるのはこのためです。
忘却を繰り返すカードは、いずれ場所を占めるだけの価値がなくなります。忘却が 8 回 に達すると、Read Frog はそのカードを自動的に永久停止し、ローテーションから外します。カードは Notebase の カード 一覧の 永久停止 に見つかります。そこまで来たカードは、学び直しよりも書き直しを求めていることがほとんどです。分割する、表面に文脈を足す、あるいは手放してください。
2 枚のカードがこれほど違う理由
ここまでの話はすべてカード単位なので、同じ日に作った 2 枚のカードも、履歴が分かれた時点から離れていきます。それに加えて、見える数字を形づくる規則が 3 つあります。
- 4 つの間隔は必ず順番どおりです。 簡単が良いより短くなることはなく、良いが難しいより短くなることもありません。評価ボタンの上の数字はそのカードの本当のプレビューであり、順序が逆転することはありません。
- 間隔には上限があり、100 年です — 到達しないほど高い値です。
- 間隔にゆらぎは加えません。 一緒に作られたカードがずっと一緒に出てくるのを防ぐため、間隔に少し乱数を混ぜるツールもあります。Read Frog はそうしないので、本当に履歴が同じ 2 枚のカードには、本当に同じ日付が割り当てられます。
オプティマイザー
FSRS には、他の大勢の人の復習記録に当てはめた既定のパラメーターが同梱されています。自分の記憶、自分の教材、自分の評価の癖はその平均とは違うので、Read Frog は自分自身の履歴を使って、Notebase ごとにモデルを再学習します。
学習の実行は、その Notebase の復習ログを読み、候補となるパラメーターの組を作ります。候補が採用されるのは、実際の答えを現在使用中のパラメーターより正確に予測できたときだけです — その評価は、各パラメーターが当てはめに使われなかった復習をどれだけうまく予測できたかで測られるので、履歴をただ暗記しただけの組は勝てません。同じ実行では、同じデータから推奨される学習ステップと再学習ステップも計算し直されます。
だいたいいつ起きるか。
- Notebase は、64 枚程度のカード が本当の間隔を経て戻ってきた時点で対象になります。ここでは、少数のカードに集中した復習はあまり数に入りません — モデルが必要としているのは回数ではなく幅の広さです。
- その後は、64 回程度の復習 が新たに積み上がるごとに再学習します。
- 実行はサーバー側で、おおよそ週に 1 回行われます。自分で始めるものも、待つものもありません。
実行によって何かが変わったときは、Notebase の一覧に通知が出ます。新しい復習スケジュールは、あなたの記憶パターンにより適しています という内容で、どれだけスコアが良くなったか、何件の復習記録から学んだかも添えられています。閉じてそのまま続けてください。既にある期限日は書き換えられず、新しいパラメーターは次の答えから適用されます。
Notebase がその閾値に届くまでは既定のパラメーターで動きますし、既定のパラメーターは良くできています。設定するものも直すものもありません — 若い Notebase は、しばらく他の人の平均でスケジュールされるだけのことです。
1 枚のカードを見る
テンプレートとカード では、どのカードにも 記憶を見る ボタンがあります。押すと、そのカードの忘却曲線が開きます — 最後の復習からの減衰、いまどこにいるか、期限がどこに落ちるか、そしてそこを横切る目標とする記憶保持率の線 — その下には、各回の評価・経過時間・回答前の記憶の安定性を添えた復習履歴の全体が並びます。
曲線の上に表示される 記憶の安定性 は、FSRS-7 が想起可能性を 90% まで下げると予測する時間です。最新の評価後の完全な状態(D、S、Sf)と、その評価を処理したモデルの重みから計算され、実際に予定された間隔とは異なります。Notebase の目標保持率、最大間隔、間隔のばらつき、学習ステップはこの値に影響しません。
各復習では回答前後の記憶の安定性を保存するため、取り消すと前の値に戻ります。これは最新の復習または移行時点での推定です。オプティマイザーの重みが変わっても過去の値は再計算されず、次の復習または移行で更新されます。
スケジュールに文句を言いたくなったとき、ここが筋を通せる場所です。遅すぎると感じるカードは、たいてい安定性を高く見積もっていたと分かり、間隔がばかばかしく長いカードは、たいていそれを自分で勝ち取っています。
Notebase 全体で見る
Notebase の 統計 タブ、そして全 Notebase を通した 統計 ページでは、1 日あたりの復習回数、かけた時間、そして 長期記憶の増加 — 記憶の安定性が 21 日以上のカードの枚数 — が描かれます。この最後の値が、ここでの進捗に最も近い指標です。どれだけ保存したかでも、どれだけ復習したかでもなく、どれだけが本当に定着したか、です。
