FSRS-7
FSRS-7 使用 34 個權重和兩個記憶分量。記憶狀態包含 stability(慢分量)、stabilityFast(快分量)和 difficulty。
記憶狀態與符號
沿用共用符號,以 表示 stability, 表示 stabilityFast。兩者單位均為天,但都不等於混合回憶機率降至 90% 時的間隔。難度同時影響慢分量曲線及其混合權重。
公式使用經過邊界限制的複習前狀態:兩種穩定性均在 [0.0001, 36500] 內,難度在 [1, 10] 內。經過時間 使用小數天,曲線計算採用 。「快」和「慢」是分量名稱,並不保證兩種穩定性的大小順序。
初始記憶
對於新記憶狀態,令 和 分別表示慢、快穩定性的邊界裁剪, 表示裁剪到 [1, 10]。
雙分量遺忘曲線
快分量:
慢分量:
混合權重與回憶機率
兩個權重均為正的未正規化係數,取決於記憶狀態,而非經過時間。分量的原始回憶機率不等於它對混合結果的貢獻。
algorithm.curve(t, state) 回傳 fast、slow、fastWeight、slowWeight、retrievability 和 derivative。前兩項是原始回憶機率;組合時應先正規化權重。最後的微小調整使機率避開 0 和 1,因此 。
複習後的穩定性
對於某一分量的穩定性 、回憶機率輸入 和參數偏移 ,定義遺忘後的值和成功回憶後的更新:
慢分量使用 和混合機率 ;快分量使用 和原始快分量機率 。所有更新均使用複習前的難度。明確傳入 retrievability 會替代慢分量更新和難度更新使用的 ,但不會替代快分量的 。
評分為 Again 時,先將新的快穩定性限制為新的慢穩定性的 80%,再套用狀態邊界:
複習後的難度
Again 按混合回憶機率縮放難度變化。均值回歸係數固定為 0.01:
實作將三個新狀態值四捨五入至小數點後八位,再裁剪到各自邊界。FSRS-7 對小數經過時間(包括零)使用同一套更新,沒有單獨受 enableShortTerm 控制的同日公式。學習步驟排程仍屬於 middleware 策略。
間隔計算
nextInterval(state, r) 透過數值方法求出混合曲線達到目標機率的經過時間。它依賴全部三個狀態欄位,回傳小數天。
實作先驗證 ,將目標限制到 [0.0001, 0.9999],達到上界時回傳零。其餘情況在對數時間上執行最多七次有界 Newton 更新;回憶機率誤差超過 0.001 時回退到二分搜尋。結果受 sMax 限制,因此極端目標可能無法達到。
設定與遷移
FSRS-7 需要獨立的 34 個權重。參數遷移函式會為空輸入提供預設值,非空輸入則必須包含 34 個權重。FSRS-3 至 FSRS-6 的權重和記憶狀態無法直接轉換為 FSRS-7。遷移卡片資料時,請使用基於 FSRS-7 的排程器,透過 reschedule 重播複習歷史、重建記憶狀態,並保留小數經過天數。上面的 0.8 係數用於初始化及 Again 更新。