復習スケジュールの決まり方
あるカードは明日戻ってきて、別のカードは 8 か月後になる理由。そして、オプティマイザーが自分の復習履歴から何を学ぶのか。
Read Frog はオープンソースの間隔反復アルゴリズム FSRS でスケジュールを組みます。このページはそれが何をしていて、なぜそうするのかを説明するもので、どの数値をいくつにするかという話ではありません。そちらは学習設定をご覧ください。
カードごとの 3 つの量
FSRS は各カードについて、記憶の小さなモデルを保持しています。それは 3 つの量からできています。
- 記憶の安定性 — そのカードが「覚えた」状態でいられる長さです。具体的には、思い出せる確率が 90% 程度まで下がるまでに何日かかるか。新しいカードの安定性は分単位で、1 年前から覚えているカードの安定性は月単位になります。
- 難易度 — そのカードが自分にとってどれだけ難しいか。もう一度 や 難しい で答えると上がり、簡単 で答えるとゆっくり下がります。そして、1 回の成功した復習にどれだけの価値があるかを左右します。難しいカードの安定性は、やさしいカードより伸びが遅くなります。
- 想起可能性 — いま そのカードを思い出せる確率。復習の直後はほぼ確実な値から始まり、そこから下がっていきます。安定性が低いカードでは下がり方が速くなります。
保存されているのは安定性と難易度だけです。想起可能性は、その 2 つと、最後にそのカードを見てからの経過時間から計算されます。
間隔はどこから来るのか
次の期限は、そのカードの想起可能性が、指定した 記憶保持率 — 初期値は 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 枚のカードを見る
テンプレートとカード では、どのカードにも 記憶を見る ボタンがあります。押すと、そのカードの忘却曲線が開きます — 最後の復習からの減衰、いまどこにいるか、期限がどこに落ちるか、そしてそこを横切る目標とする記憶保持率の線 — その下には、各回の評価・経過時間・答える前の記憶の安定性を添えた復習履歴の全体が並びます。
スケジュールに文句を言いたくなったとき、ここが筋を通せる場所です。遅すぎると感じるカードは、たいてい安定性を高く見積もっていたと分かり、間隔がばかばかしく長いカードは、たいていそれを自分で勝ち取っています。
Notebase 全体で見る
Notebase の 統計 タブ、そして全 Notebase を通した 統計 ページでは、1 日あたりの復習回数、かけた時間、そして 長期記憶の増加 — 安定性が 21 日を超えたカードの枚数 — が描かれます。この最後の値が、ここでの進捗に最も近い指標です。どれだけ保存したかでも、どれだけ復習したかでもなく、どれだけが本当に定着したか、です。
