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 更新。